Retour
General adresses

This page is an attempt to make a cross table of adresses existing on all machines. Specifics adresses can be fount on dedicated pages.
Even if tables for PC-1350 and 1401/02 are the most complet, you can find some informations about PC-1360 and 1403. Please contact me if you have more informations or if you want to add a new machine.

Dans cette page, j'ai tenté de faire une table croisée des différentes adresses qui existent sur toutes les machines. Les adresses plus spécifiques peuvent être trouvées dans les pages dédiées à chaque machine.
On notera bien évidement que les tables pour les PC-1350 et 1401/02 sont les plus complètes, mais il y a aussi quelques adresses pour les PC-1360 et 1403. N'hésitez pas à me contacter pour me donner les adresses manquantes ou pour ajouter de nouvelles machines ...

It seems, informations for PC-1403 also apply to PC-1460. Thanks to Pierre for informations about theses machines.
Some informations for PC-1360 come from the aldweb web site. Thanks to Laurent.
Most informations are the result of my own search (long search ;D) but few of them come from the old Sharpentier french revue. Thanks to Pocket.

System RAM

  PC-1350 PC-1401/02 PC-1360 PC-1403/60
Main system data
Should have the same structure on all PC except old series (1401/02 for example)
Screen buffer
&6D00 - &6D5F &47B0 - &47FF
idem Input buffer
FOR stack
&6E06 - &6E5F &4706 - &465F
String buffer
&6E60 - &6EAF &4760 - &47AF
Input buffer
&6EB0 - &6EFF &47B0 - &47FF
GOSUB stack
&7090 - &70A3 &6068 - &607B
Memory flags
0 Memory protected (CLEAR CLOAD ... = ERROR 1)
1 16 K
2 8 K
3 4 K
4 MEM "C"
5
6
7
&6F00 N/A &FF00
Start BASIC
@dr of the 255 begging the BASIC program
Constant (should be modified to reserve some protected memories)
&6F01/02 &46E1/E2 &FFD7/D8 &FF01/02
End BASIC
@dr of the 255 ending the BASIC program
Increase when a lines is added to the program.
&6F03/04 &46E3/E4 &FFD9/DA &FF03/04
Last MERGEd
start of the last MERGEd BASIC program
&6F05/06 N/A &FFDB/DC &FF05/06
Start of Variables
@dr of the first variable
Decrease when a new variable is created.
&6F07/08 &46FC/FD &FFDD/DE &FF07/08
Password
The first byte is 245
&6F09 - &6F10 &46C0 - &46C7 &FFE0 - &FFE7 &FF09 - &FF10
Flags
0
1
2
3 PRINT = LPRINT
4
5
6
7
&6F12 &46D7 &FF12
Flags
0 ?? but deals w/ variables
1 Unset if read pointer valid
2 WAIT without value
3 Extended variable activated
4 Hexadecimal mode (for PC-14??)
5
6 ?? but deals w/ variables
7 DIM A() : Extended variable disabled
&6F13 &46D8 &FF13
Flags
0
1 Can display the cursor
2
3
4
5 BASIC program protected
6
7
&6F14 &46D9 &FF14
Keyboard Flags
0 All key activated
1 Keybord in ERROR mode (only arrow and CE/CLS)
2 Program stopped by a WAIT
3 RESERVE edition mode
4
5 Program line input mode
6
7
&6F15 &46DA &FF15
Flags
0
1
2
3
4
5
6 TEXT mode
7 Japan mode
&6F16 N/A &FF16
Flags
0
1 PRINT ; activated
2 CURSOR activated
3
4
5
6
7
&6F17 N/A
CALL return @dr
Where the BASIC restart after a CALL
&6F20/21 &46B5/B6 &FF2A/2B
READ pointer &6F22/23 &46FE/FF &FF2C/2D
FOR stack pointer
&6F2B &FF35
GOSUB stack pointer
&6F2C &FF36
Function stack pointer &6F2E
Flags
0
1
2 Scientific notation in USING
3
4
5
6
7
&6F39 &46F8
USING integer part
&6F3A &46F9 &FF41
USING Fractionnary part &6F3B &46FA &FF42
USING String part &6F3C &46FB &FF43
Number of characters in the print buffer
&6F4E
Flags
0
1
2 Printer ON
3
4
5
6
7
&6F50 &46BD
Start of RESERVE data &6F55/56 N/A
Last key typed &6F57
CALL @dr
@dr of the last CALL
The previous octet old a &79 (JP)
&6F5A/5B &46DC/DD
LINE - X original coordinates &6F5C/5D N/A N/A
LINE - Y original coordinates &6F5E/5F N/A N/A
GFX Flags
(PSET PRESET LINE)
0 Set mode S
1 Reset mode R
2 Reverse mode X
3 Box mode B
4 Filled Box mode BF
5 Pattern activated
6
7
&6F62 N/A N/A
GFX commands X coordinates &6F63/64 N/A &30A8/A9 N/A
GFX commands Y coordinates &6F65/66 N/A &30AC/AD N/A
LINE command X2 coordinates &6F67/68 N/A &30AA/AB N/A
LINE command Y2 coordinates &6F69/6A N/A &30AE/AF N/A
Other system data
Last result &70A8 - &70AF &46A0 - &46A7 &FFF8 - &FFFF
CAL mode memory N/A &46A8 - &46AE N/A &FFE8 - &FFEF
WAIT value &70B3/B4 &46E5/F&46E6 &FF69/6A
Saved X &70B5/B6 &46E5/F&46E6 &FF69/6A
RND seed &7298 - &729F &6098 - &609F
Print buffer
&7480 - &7497
Break @dr &749A/9B &4702/03
Error @dr &749C/9D &4704/05 &FF69/6A
SIO parameters
SIO Flags
0
1
2
3
4
5 Character on the 2nd buffer
6 Transfer finished
7 The SIO is OPEN
&78B0 N/A &FF9C
EOT code &78B1 N/A &FF9D
SIO Flags
0 300 bd
1 600 bd
2 1200 bd
3
4
5
6 Transmiting EOL
7 Transmiting EOT
&78B2 N/A &FF9E
SIO Flags
0 LF
1 CR + LF
2 CR
3 Transfering a BASIC program
4 Stop flag (not set=1/ set=2)
5
Parity
0?=None 01=Odd 11=Even
6
7 Byte lenght (not set=7, set=8)
&78B3 N/A &FF9F

ROM common functions

PC-1350 PC-1401/02 PC-1360 PC-1403/60
BCD registers
Xreg <- 0
Clear $10 - &17
&0142 &0101 &0BDE &0152
Yreg <- 0
Clear $18 - &1F
&0136 &00F5 &0BE8 &0146
Zreg <- 0
Clear $20 - &17
&013C &00FB &0BEE &014C
Xreg <-> Yreg &020F &01F3 &0B97 &027F
Yreg <- Xreg &01D2 &1B6 &0AA9 &1EF
Zreg <- Xreg &01EF &01D3 &0AC3 &020C
Wreg <- Xreg &01FB &01DF &0ACF &0218
Xreg <- Yreg &01B6 &019A &0A7D &01D3
Zreg <- Yreg &01E3 &01C7 &0ADE &0200
Wreg <- Yreg &019C &0180 &0ADB &01B9
Xreg <- Zreg &01DE &01C2 &0A8B &01FB
Xreg <- Wreg &01C4 &01A8 &0A99 &01E1
Yreg <- Wreg &01A8 &018C &0AB7 &01C5
16 bits registers
X <- BA &0282 &0267 &110D &039D
X <- BA - 1 &0297 &0270 &111E &03C4
X <- BA + 1 &0287
Y <- BA &027D &0264 &1108 &0398
Y <-> BA &17B5 &17D8
Y <- BA - 1 &02B5 &0278 &1124 &03CE
Y <- BA + 1 &028D
push X &115C &1321 &1153 &0DF6
pop X &1167 &132C &115E &0E01
X <- Y &1419 &15F3 &112F &158E
Y <- X &1414 &15EE &112A &1589
X <-> $0d,$0c &161A &163E &1143 &159E
$0d,$0c <- X &1558 &113E
$0d,$0c <- Y &1553 &1134
X <-> $39,$38 &108E &123E &0D4A
X <- $39,$38 &141E
$39,$38 <- X &140B &15E5
X <- Save X &0A17 &0BDB
Save X <- X &0A0A &0BE8
[IXL - IYS]*B &1175 &133A &1233 &0E0F
X <- CALL Rtn @dr &1D89 &AE94 &1217 &13DA
CALL Rtn @dr <- X &1D84 &AE8F &1212 &13D5
X <- Start BASIC &1471 &1643 &11EB &15AB
X <- Input Buffer &0293 &026C &03A2
Y <- Input Buffer &02B1 &0274
X <- Start Reserve &148A
Conv BCD <- BIN
Xreg = BCD, $19,$18=Bin
Unsigned 16 bits
(0 / 65535)
&11B0 &13C5 &088A &1446
Signed 16 bits
(-32768 / 32767)
&11B7 &13CC &0889 &144D
Conv BIN <- BCD
Xreg = BCD, $19,$18=Bin
Unsigned 16 bits
(0 / 65535)
&163A &1664 &091D &1609
Signed 16 bits
(-32768 / 32767)
&11B7 &13CC &0889 &15FE
Line number
(0 / 65279)
&1633 &1650 &0916 &1602
Byte
(0 / 255)
&162B &1655 &090E &15FA
Byte not null
(1 / 255)
&1627 &1651 &090A &15F6
String position
(0 / 80)
&1623 &164D &0906 &15F2
String position not null
(1 / 80)
&161F &1649 &0902 &15EE
Reading arguments
Read arguments
X<- start of argument
X-> first unknown character
For numbers result in Xref
For string : $16/$15 = address of the string
$17 = length of the string
$14 = &D0 if the result is a string.
&8039
&0AB8
&0C30 &4016 &0B28
Check if the result is a string &1410 &15EA &0E1C
Find a variable &1A54 &1A60 &19DE
ERROR
ERROR 1 &10EC &12B4 &10C0 &0D77
ERROR 2 &10E4 &12AE &10B9 &0D71
ERROR 3 &10F0 &12B8 &10C8 &0D7B
ERROR 4 &10F4 &12BC &10CD &0D7F
ERROR 5 &10F8 &12C0 &10D2 &0D83
ERROR 6 &10FC &12C4 &10D7 &0D87
ERROR 7 &1100 &12C8 &10DC &0D8B
ERROR 8 &1104 &12CC &10E1 &0D8F
ERROR 9 &1108 &12D0 &10E6 &0D93
ERROR (Accu) &10E6 &12B0 &10BB &0D73
Sharp dedicated connector (SD)
11 pins connector
Reset SD &0A91 &0B30
MOTOR ON
for remotly controled tape reader
&8048 &803F
MOTOR OFF
for remotly controled tape reader
&804B &8042
Raw print external print buffer
Print "print buffer" on the printer (CE-126P)
no characters conversion done
&1C05
Internal print buffer <- External print buffer
Copy the "print buffer" into $10 -> $27
K=address of the first unused byte ($10 + (print buffer len)).
&1BE9
Raw print internal print buffer
Print $10 -> $27 on the printer (CE-126P)
no characters conversion done
&8054 &804E
Print Accu
(on CE-126P)
no characters conversion done
&A372 (ROM 1) &A7FA ('FACT' ROM)
Display
LCD On &04B1 &05A2 &13C8 &04B8
LCD Off &04A0 &059E &13C4 &04B4
Display a line
On PC-13xx A=number of the line to display
A=4 for the whole screen.
&807E
&1DF3
&1A18
Display $10 -> $28
On PC-13xx A=number of the line where to display
&801E &8015
&135F
Refresh the whole screen
&1DD9 &13F8
Clear screen buffer &1E0C &C691 ('FACT' ROM) &14B6
Y <- address of a line in the screen buffer
On PC-13xx A=number of the line.
&1CD0 N/A but should be replaced by &0274 &16B5
Keyboard
Raw inkey$ &0436 &048F &00B5 &0E68
Test OFF
Z: result.
&04DF &05CA
GET
remove 'RUN' indicator before call it because [DEF]+?? while crash ...
&1204 &1425 &47EF (???) &1494
Misc
Test if the memory is protected &14C1 N/A &11F1 &08BD