This page is an attempt to make a cross table of adresses existing on all machines. Specifics adresses can be fount on dedicated pages. |
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. |
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.
PC-1350 | PC-1401/02 | PC-1360 | PC-1403/60 | PC-2500 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | &6E06 - &6E5F | |||||||||||||||||
String buffer | &6E60 - &6EAF | &4760 - &47AF | &6E60 - &6EAF | |||||||||||||||||
Input buffer | &6EB0 - &6EFF | &47B0 - &47FF | &6EB0 - &6EFF | |||||||||||||||||
Memory flags
| &6F00 | N/A | &FF00 | |||||||||||||||||
Start BASIC @dr of the 255 begging the BASIC programConstant (should be modified to reserve some protected memories) | &6F01/02 | &46E1/E2 | &FFD7/D8 | &FF01/02 | &6D91/92 | |||||||||||||||
End BASIC @dr of the 255 ending the BASIC programIncrease when a lines is added to the program. |
&6F03/04 | &46E3/E4 | &FFD9/DA | &FF03/04 | &6D93/94 | |||||||||||||||
Last MERGEd start of the last MERGEd BASIC program | &6F05/06 | N/A | &FFDB/DC | &FF05/06 | &6D95/96 | |||||||||||||||
Start of Variables @dr of the first variable Decrease when a new variable is created. |
&6F07/08 | &46FC/FD | &FFDD/DE | &FF07/08 | &6D97/98 | |||||||||||||||
Password The first byte is 245
| &6F09 - &6F10 | &46C0 - &46C7 | &FFE0 - &FFE7 | &FF09 - &FF10 | ||||||||||||||||
Flags
| &6F12 | &46D7 | &FF12 | &6DA2 | ||||||||||||||||
Flags
| &6F13 | &46D8 | &FF13 | &6DA3 | ||||||||||||||||
Flags
| &6F14 | &46D9 | &FF14 | |||||||||||||||||
Keyboard Flags
| &6F15 | &46DA | &FF15 | |||||||||||||||||
Flags
| &6F16 | N/A | &FF16 | |||||||||||||||||
Flags
| &6F17 | N/A | ||||||||||||||||||
CALL return @dr Where the BASIC restart after a CALL
|
&6F20/21 | &46B5/B6 | &FF2A/2B | &6DB0/B1 | ||||||||||||||||
READ pointer | &6F22/23 | &46FE/FF | &FF2C/2D | &6DB2/B3 | ||||||||||||||||
Input buffer pointer | &6F2A | &46F1 | &6DBA | |||||||||||||||||
FOR stack pointer | &6F2B | &FF35 | &6DBB | |||||||||||||||||
GOSUB stack pointer | &6F2C | &FF36 | &6DBC | |||||||||||||||||
Function stack pointer | &6F2E | &46F6 | &6DBE | |||||||||||||||||
String Buffer pointer | &6F2F | &46F7 | &6DBF | |||||||||||||||||
Function Ope. Number | &6F30 | &46F2 | &6DC0 | |||||||||||||||||
Input buffer cursor | &6F38 | &46EA | &6DC8 | |||||||||||||||||
Flags
| &6F39 | &46F8 | &6DC9 | |||||||||||||||||
USING integer part | &6F3A | &46F9 | &FF41 | &6DCA | ||||||||||||||||
USING Fractionnary part
| &6F3B | &46FA | &FF42 | &6DCB | ||||||||||||||||
USING String part
| &6F3C | &46FB | &FF43 | &6DCC | ||||||||||||||||
Number of characters in the print buffer | &6F4E | |||||||||||||||||||
Flags
| &6F50 | &46BD | ||||||||||||||||||
Start of RESERVE data | &6F55/56 | N/A | N/A | &6DE5/E6 | ||||||||||||||||
Last key typed | &6F57 | |||||||||||||||||||
CALL @dr @dr of the last CALL The previous octet old a &79 ( JP )
|
&6F5A/5B | &46DC/DD | &6DEA/EB | |||||||||||||||||
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 )
| &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 | ||||||||||||||||||||
GOSUB stack | &7090 - &70A3 | &6068 - &607B | &7090 - &70A3 | |||||||||||||||||
Last result | &70A8 - &70AF | &46A0 - &46A7 | &FFF8 - &FFFF | &70A8 - &70AF | ||||||||||||||||
CAL mode memory | N/A | &46A8 - &46AE | N/A | &FFE8 - &FFEF | N/A | |||||||||||||||
APO counters | &70B0 -> B2 | &607D -> 7E | &70B0 -> B2 | |||||||||||||||||
WAIT value | &70B3/B4 | &46E5/E6 | &FF69/6A | &70B3/B4 | ||||||||||||||||
Saved X | &70B5/B6 | &46B9/BA | &FF69/6A | &70B5/B6 | ||||||||||||||||
RND seed | &7298 - &729F | &6098 - &609F | &7298 - &729F | |||||||||||||||||
Print buffer | &7480 - &7497 | |||||||||||||||||||
Previous Old @dr | &7498/99 | &4700/01 | &7498/99 | |||||||||||||||||
Break @dr | &749A/9B | &4702/03 | &749A/9B | |||||||||||||||||
Error @dr | &749C/9D | &4704/05 | &FF69/6A | &749C/9D | ||||||||||||||||
Data stack | &7680 - &76BF | &6010 - &6067 | &7680 - &76BF | |||||||||||||||||
SIO parameters | ||||||||||||||||||||
SIO Flags
| &78B0 | N/A | &FF9C | |||||||||||||||||
EOT code | &78B1 | N/A | &FF9D | |||||||||||||||||
SIO Flags
| &78B2 | N/A | &FF9E | |||||||||||||||||
SIO Flags
| &78B3 | N/A | &FF9F |
PC-1350 | PC-1401/02 | PC-1360 | PC-1403/60 | PC-2500 | |
---|---|---|---|---|---|
BCD registers | |||||
Xreg <- 0 Clear $10 - &17 | &0142 | &0101 | &0BDE | &0152 | &0168 |
Yreg <- 0 Clear $18 - &1F | &0136 | &00F5 | &0BE8 | &0146 | &015C |
Zreg <- 0 Clear $20 - &17 | &013C | &00FB | &0BEE | &014C | &0162 |
Xreg <-> Yreg | &020F | &01F3 | &0B97 | &027F | &0235 |
Yreg <- Xreg | &01D2 | &1B6 | &0AA9 | &01EF | &01F8 |
Zreg <- Xreg | &01EF | &01D3 | &0AC3 | &020C | &0215 |
Wreg <- Xreg | &01FB | &01DF | &0ACF | &0218 | &0221 |
Xreg <- Yreg | &01B6 | &019A | &0A7D | &01D3 | &01DC |
Zreg <- Yreg | &01E3 | &01C7 | &0ADE | &0200 | &0209 |
Wreg <- Yreg | &019C | &0180 | &0ADB | &01B9 | &01C2 |
Xreg <- Zreg | &01DE | &01C2 | &0A8B | &01FB | &0204 |
Xreg <- Wreg | &01C4 | &01A8 | &0A99 | &01E1 | &01EA |
Yreg <- Wreg | &01A8 | &018C | &0AB7 | &01C5 | &01CE |
16 bits registers | |||||
X <- BA | &0282 | &0267 | &110D | &039D | &02A8 |
X <- BA - 1 | &0297 | &0270 | &111E | &03C4 | &02BD |
X <- BA + 1 | &0287 | ||||
Y <- BA | &027D | &0264 | &1108 | &0398 | &02A3 |
Y <-> BA | &17B5 | &17D8 | &193C | ||
Y <- BA - 1 | &02B5 | &0278 | &1124 | &03CE | &02DB |
Y <- BA + 1 | &028D | ||||
push X | &115C | &1321 | &1153 | &0DF6 | &1140 |
pop X | &1167 | &132C | &115E | &0E01 | &114B |
X <- Y | &1419 | &15F3 | &112F | &158E | &1497 |
Y <- X | &1414 | &15EE | &112A | &1589 | &1492 |
X <-> $0d,$0c | &161A | &163E | &1143 | &159E | &17C3 |
$0d,$0c <- X | &1558 | &113E | |||
$0d,$0c <- Y | &1553 | &1134 | |||
X <-> $39,$38 | &108E | &123E | &0D4A | &1072 | |
X <- $39,$38 | &141E | ||||
$39,$38 <- X | &140B | &15E5 | |||
X <- Save X | &0A17 | &0BDB | &0B52 | ||
Save X <- X | &0A0A | &0BE8 | &0B45 | ||
[IXL - IYS]*B | &1175 | &133A | &1233 | &0E0F | &1159 |
X <- CALL Rtn @dr | &1D89 | &AE94 | &1217 | &13DA | |
CALL Rtn @dr <- X | &1D84 | &AE8F | &1212 | &13D5 | |
X <- Start BASIC | &1471 | &1643 | &11EB | &15AB | &1555 |
X <- Input Buffer | &0293 | &026C | &03A2 | &02B9 | |
Y <- Input Buffer | &02B1 | &0274 | &02D7 | ||
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
| &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 | &10D0 |
ERROR 2 | &10E4 | &12AE | &10B9 | &0D71 | &10C8 |
ERROR 3 | &10F0 | &12B8 | &10C8 | &0D7B | &10D4 |
ERROR 4 | &10F4 | &12BC | &10CD | &0D7F | &10D8 |
ERROR 5 | &10F8 | &12C0 | &10D2 | &0D83 | &10DC |
ERROR 6 | &10FC | &12C4 | &10D7 | &0D87 | &10E0 |
ERROR 7 | &1100 | &12C8 | &10DC | &0D8B | &10E4 |
ERROR 8 | &1104 | &12CC | &10E1 | &0D8F | &10E8 |
ERROR 9 | &1108 | &12D0 | &10E6 | &0D93 | &10EC |
ERROR (Accu) | &10E6 | &12B0 | &10BB | &0D73 | &10CA |
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 | &052E |
LCD Off | &04A0 | &059E | &13C4 | &04B4 | &052A |
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 | &045C |
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 |
Tip : You can find lot of additional address /lab
directory of my Sharptool emulator.