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 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
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 &6D91/92
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 &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
0
1
2
3 PRINT = LPRINT
4
5
6
7
&6F12 &46D7 &FF12 &6DA2
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 &6DA3
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 &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
0
1
2 Scientific notation in USING
3
4
5
6
7
&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
0
1
2 Printer ON
3
4
5
6
7
&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)
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
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
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 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
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 &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.