hp41cx Prog Handbook
hp41cx Prog Handbook
Index
3 Microprocessor registers 39 Key code maps
4 RAM structure & user flags 40 -
5 Status registers 41 -
6 Register structure 42 -
7 Flag register d 43 Bankswitching & Module structure
8 Key assign flag registers & e 44 ROM structure
9 BLDSPEC print 45 GTO 00-14
10 Mcode class 0 46 GTO 15-99
11 - 47 XEQ
12 Mcode class 1 & 2 48 XROM# & END & XEQ/GTO IND
13 Mcode class 3 49 Alpha
14 Error messages 50 HpCX41 mainframe functions
15 Interrupts & prompts 51 Module ID’s
16 Partial key sequence 52 XROM #’s
17 Card reader + tone generator 53 -
18 Wand 54 -
19 HP-IL interface 55 -
20 - 56 -
21 Printer 57 -
22 Timer 58 -
23 - 59 -
24 Display 60 -
25 - 61 -
26 Port dependent jumps 62 -
27 Entry points 63 -
28 - 64 -
29 - 65 -
30 - 66 Buffer ID’s & Bytes pr. function
31 - 67 System Memory Map © Ángel Martin
32 - 68 -
33 - 69 -
34 - 70 -
35 Fat Addresses
36 ROM function names & DEBUG registers
37 Synthetic QRC 1
38 Synthetic QRC 2
2
HP 41 microprocessor
CPU register connections: CPU:
C 56 bit accumulator
P Q
STK4
STK3 B
{ System
memory
(RAM)
A
B
M
N
G
PC
STK
56
56
56
56
8
16
16
bit
bit
bit
bit
bit
bit
bit
primary arithmetic register
secondary arithmetic register
storage register
storage register
storage register
program counter
4-level CPU return stack
A M
{
STK2 KY 8 bit keyboard buffer register
STK C N T 8 bit beeper output register
ST 8 bit CPU flag register (0-7)
G X 6 bit CPU flag register (9-13)
PC F1 14 bit peripheral flag register
A P 4 bit pointer
Keyboard
KY ST
T
X
F1
{ C
E
B
Q
DISPLAY:
A
B
4
48
48
bit
bit
bit
pointer
display
display
register
register
(bit 0-3 of each chr)
(bit 4-7 of each chr)
C 12 bit display register (bit 8 of each chr)
E 12 bit display register (annunciators)
CPU FLAGS:
3
RAM structure User & system flags
3EF 1007 set at turn on cleared if printer is absent
cleared at turn on matches flag 55 at turn on
system flags - not applicable maintained by memory
Extended Memory #2
301 769
2EF 751 00 general use 28 decimal point
01 general use 29 digit grouping
Extended Memory #1
02 general use 30 CAT mode
201 513
03 general use 31 timer MDY / DMY
1FF Top of Main Memory 511 04 general use 32 IL manio
05 general use 33 IL lock
06 general use 34 ADRON / ADROFF
DATA register 00
07 general use 35 disable autostart
Top of User programs 08 general use 36 digit number 8,9
09 general use 37 digit number 4,5,6,7
10 general use 38 digit number 2,3,6,7
.END.
11 auto execute 39 digit number 1,3,5,7,9
12 double wide print 40 display FIX / SCI
000 0
4
Status registers
6 5 4 3 2 1 0
e SHIFTED KEY ASSIGNMENTS PTEMP2 PROGRAM LINE # 00F
d FLAG REGISTER 00E
c SREG ABS. ADR. printer use COLD START 169 REG 00 ABS.ADR. .END. ABS.ADR. 00D
b 3rd return 2nd return 1st return PRGM POINTER 00C
a 6th return 5th return 4th return 3rd return 00B
UNSHIFTED KEY ASSIGNMENTS last instruction exec. PASN keycode 00A
Q TEMPORARY ALPHA SCRATCH 009
P ALPHA register (25-28) ALPHA register (22-24) 008
O ALPHA register (15-21) 007
N ALPHA register (8-14) 006
M ALPHA register (1-7) 005
L USER stack register L 004
X USER stack register X 003
Y USER stack register Y 002
Z USER stack register Z 001
T USER stack register T 000
13 12 11 10 9 8 7 6 5 4 3 2 1 0
5
RAM register structure
One RAM register is 56 bits:
55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
or 14 nybbles:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
or 7 bytes:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
MS M XS XP
ADR S&X
KY
MS 13 sign of mantissa
M 3-12 mantissa
XS 2 sign of exponent
XP 0-1 exponent
S&X 0-2 sign of exponent and exponent
ADR 3-6 address field
KY 3-4 key buffer field
6
Flag register d
disable autostart
Printer existence
lower case print
IL-printer TRACE
printer enable
digit grouping
ADRON / ADROFF
contiunuous ON
end of record
decimal point
TINTR enable
number entry
error ignore
audio enable
general use
general use
general use
general use
general use
general use
general use
general use
general use
general use
general use
general use
general use
ALPHA entry
protection
USER mode
PRGM mode
CAT mode
IL manio
IL lock
low BAT
message
SHIFT
ALPHA
SST
I/O
PSE
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
nybble 13 nybble 12 nybble 11 nybble 10 nybble 9 nybble 8 nybble 7 nybble 6 nybble 5 nybble 4 nybble 3 nybble 2 nybble 1 nybble 0
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
* * * * * * * * * * * * *
F 8 0 0 0 0 9 5 0 4 E 0 0 0
UserCode : Mcode :
247,248,0,0,149,4,224,0 04E C=0 ALL
RCL M 144, 117 2DC PT=13
STO d 145, 126 3D0 LD@PT- F
210 LD@PT- 8
29C PT=7
250 LD@PT- 9
150 LD@PT- 5
010 LD@PT- 0
110 LD@PT- 4
390 LD@PT- E
3A8 WRIT (14)d
7
Key assign flag registers & e
line # (reg e)
line # (reg e)
nonexistent
*
*
*
*
*
*
*
*
*
*
ENTER
SHIFT
X<>Y
CLX
SST
TAN
R/S
EEX
RCL
COS
LOG
CHS
STO
SIN
XEQ
1/X
R
LN
√X
Σ+
3
6
9
.
2
5
8
0
1
4
7
/
*
+
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
nybble 13 nybble 12 nybble 11 nybble 10 nybble 9 nybble 8 nybble 7 nybble 6 nybble 5 nybble 4 nybble 3 nybble 2 nybble 1 nybble 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
E F E F E F 6 F A 0 7 F F F
UserCode : Mcode :
247,239,239,239,111,160,127,255 04E C=0 ALL
2DC PT=13
RCL M 144, 117
3D0 LD@PT- E
STO e 145, 127 210 LD@PT- F
LD@PT- E
STO 145, 122 250 LD@PT- F
150 LD@PT- E
010 LD@PT- F
110 LD@PT- 6
390 LD@PT- F
LD@PT- A
LD@PT- 0
LD@PT- 7
LD@PT- F
LD@PT- F
LD@PT- F
3E8 WRIT (15)e 2A8 WRIT (10)
8
BLDSPEC print
alpha 120 96 80 72 7 6 4
0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0
4 1 E 3 0 5 0 9 0 1 C 3 0 4
17 227 5 9 1 195 4
Column #
1 2 3 4 5 6 7
1
2
4
8
16
32
64
120 96 80 72 7 6 4
UserCode : Mcode :
247,17,227,5,9,1,195,4 04E C=0 ALL
RCL M 144, 117 2DC PT=13
ACSPEC 167, 68 3D0 LD@PT- F
210 LD@PT- 8
PRBUF 167, 74 29C PT=7
250 LD@PT- 9
150 LD@PT- 5
010 LD@PT- 0
110 LD@PT- 4
390 LD@PT- E
3A8 WRIT (14)d
9
M-code (Class 0) xx xxxx xx00
T Z Y X L M N O P Q
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CLRF 384 304 204 004 044 084 144 284 104 244 0C4 184 344 2C4 clear CPU flag p
SETF 388 308 208 008 048 088 148 288 108 248 0C8 188 348 2C8 set CPU flag p
?FSET 38C 30C 20C 00C 04C 08C 14C 28C 10C 24C 0CC 18C 34C 2CC set carry if CPU flag p is set
PT= 39C 31C 21C 01C 05C 09C 15C 29C 11C 25C 0DC 19C 35C 2DC set pointer to digit p
?PT= 394 314 214 014 054 094 154 294 114 254 0D4 194 354 2D4 set carry if pointer is at p
LD@PT- 010 050 090 0D0 110 150 190 1D0 210 250 290 2D0 310 350 390 3D0 load C with p at pointer (PT=PT-1)
RCR 33C 23C 03C 07C 0BC 17C 2BC 13C 27C 0FC 1BC 37C 2FC rotate C p digits right
WRIT 028 068 0A8 0E8 128 168 1A8 1E8 228 268 2A8 2E8 328 368 3A8 3E8 write C to selected user memory
READ 078 0B8 0F8 138 178 1B8 1F8 238 278 2B8 2F8 338 378 3B8 3F8 read selected user memory to C
HPIL=C 200 240 280 2C0 300 340 380 3C0 copy C[1;0] to HPIL register p
SELP 024 064 0A4 0E4 124 164 1A4 1E4 224 264 2A4 2E4 324 364 3A4 3E4 select peripheral to take control
10
M-code (Class 0) xx xxxx xx00
1.word : ccccdddd01 B=0 02E 03A 026 03E 036 022 02A 032 Clear B
2.word : aaaabbbbtt C=0 04E 05A 046 05E 056 042 04A 052 Clear C
A=C 10E 11A 106 11E 116 102 10A 112 Copy C to A
tt is 00=?NC XQ
C=B 0CE 0DA 0C6 0DE 0D6 0C2 0CA 0D2 Copy B to C
01=?C XQ
10=?NC GO B=A 08E 09A 086 09E 096 082 08A 092 Copy B to A
11=?C GO A<>C 0AE 0BA 0A6 0BE 0B6 0A2 0AA 0B2 Exchange A and C
C<>B 0EE 0FA 0E6 0FE 0F6 0E2 0EA 0F2 Exchange C and B
A<>B 06E 07A 066 07E 076 062 06A 072 Exchange A and B
C=C+A 20E 21A 206 21E 216 202 20A 212 Add A to C
A=A+C 14E 15A 146 15E 156 142 14A 152 Add C to A
A=A+B 12E 13A 126 13E 136 122 12A 132 Add B to A
C=C+C 1EE 1FA 1E6 1FE 1F6 1E2 1EA 1F2 Shift C 1 bit left
C=A-C 24E 25A 246 25E 256 242 24A 252 Subtract C from A
A=A-C 1CE 1DA 1C6 1DE 1D6 1C2 1CA 1D2 Subtract C from A
A=A-B 18E 19A 186 19E 196 182 18A 192 Subtract B from A
C=C+1 22E 23A 226 23E 236 222 22A 232 Increment C
A=A+1 16E 17A 166 17E 176 162 16A 172 Increment A
C=C-1 26E 27A 266 27E 276 262 26A 272 Decrement C
A=A-1 1AE 1BA 1A6 1BE 1B6 1A2 1AA 1B2 Decrement A
?C≠0 2EE 2FA 2E6 2FE 2F6 2E2 2EA 2F2 Carry if C≠0
?A≠0 34E 35A 346 35E 356 342 34A 352 Carry if A≠0
?B≠0 2CE 2DA 2C6 2DE 2D6 2C2 2CA 2D2 Carry if B≠0
?A≠C 36E 37A 366 37E 376 362 36A 372 Carry if A≠C
?A<C 30E 31A 306 31E 316 302 30A 312 Carry if A<C
?A<B 32E 33A 326 33E 336 322 32A 332 Carry if A<B
RSHFC 3CE 3DA 3C6 3DE 3D6 3C2 3CA 3D2 Shift C 1 digit right
RSHFA 38E 39A 386 39E 396 382 38A 392 Shift A 1 digit
RSHFB 3AE 3BA 3A6 3BE 3B6 3A2 3AA 3B2 Shift B 1 digit right
LSHFA 3EE 3FA 3E6 3FE 3F6 3E2 3EA 3F2 Shift A 1 digit left
C=0-C 28E 29A 286 29E 296 282 28A 292 1’s complement
C=-C-1 2AE 2BA 2A6 2BE 2B6 2A2 2AA 2B2 2’s complement
12
M-code (Class 3) xx xxxx xx11
JNC+ JC+ JNC- JC- JNC+ JC+ JNC- JC- Jump distance D :
01 00B 00F 3FB 3FF 20 103 107 303 307
02 013 017 3F3 3F7 21 10B 10F 2FB 2FF rddddddn11
03 01B 01F 3EB 3EF 22 113 117 2F3 2F7
04 023 027 3E3 3E7 23 11B 11F 2EB 2EF r is 0=forward or 1=backwards
05 02B 02F 3DB 3DF 24 123 127 2E3 2E7 dddddd is the distance
06 033 037 3D3 3D7 25 12B 12F 2DB 2DF n is 0=JC or 1=JNC
07 03B 03F 3CB 3CF 26 133 137 2D3 2D7
08 043 047 3C3 3C7 27 13B 13F 2CB 2CF
09 04B 04F 3BB 3BF 28 143 147 2C3 2C7
0A 053 057 3B3 3B7 29 14B 14F 2BB 2BF
0B 05B 05F 3AB 3AF 2A 153 157 2B3 2B7
0C 063 067 3A3 3A7 2B 15B 15F 2AB 2AF
0D 06B 06F 39B 39F 2C 163 167 2A3 2A7
0E 073 077 393 397 2D 16B 16F 29B 29F
0F 07B 07F 38B 38F 2E 173 177 293 297
10 083 087 383 387 2F 17B 17F 28B 28F
11 08B 08F 37B 37F 30 183 187 283 287
12 093 097 373 377 31 18B 18F 27B 27F
13 09B 09F 36B 36F 32 193 197 273 277
14 0A3 0A7 363 367 33 19B 19F 26B 26F
15 0AB 0AF 35B 35F 34 1A3 1A7 263 267
16 0B3 0B7 353 357 35 1AB 1AF 25B 25F
17 0BB 0BF 34B 34F 36 1B3 1B7 253 257
18 0C3 0C7 343 347 37 1BB 1BF 24B 24F
19 0CB 0CF 33B 33F 38 1C3 1C7 243 247
1A 0D3 0D7 333 337 39 1CB 1CF 23B 23F
1B 0DB 0DF 32B 32F 3A 1D3 1D7 233 237
1C 0E3 0E7 323 327 3B 1DB 1DF 22B 22F
1D 0EB 0EF 31B 31F 3C 1E3 1E7 223 227
1E 0F3 0F7 313 317 3D 1EB 1EF 21B 21F
1F 0FB 0FF 30B 30F 3E 1F3 1F7 213 217
3F 1FB 1FF 20B 20F
40 203 207
13
Custom error message Error messages
3A1 ?NC XQ MAINFRAME:
088 ->22E8 ERRSUB ALPHA DATA 14E2 PRIVATE 2184 RAM 2172
3C1 ?NC XQ DATA ERROR 282D OUT OF RANGE 00A2 ROM 21F0
0B0 ->2CF0 ENLCD NONEXISTENT 02E0 TRY AGAIN 2F72
3BD ?NC GO
01C ->07EF MESSL XF:
00D M DIR EMPTY 3C7B KEYCODE ERR 310A REC TOO LONG 3A2D
005 E DUP FL 30E8 NAME ERR 3565 ROM 5 Bank 2:
013 S END OF FL 3E7E NO DRIVE 3675 CHKSUM ERR 5219
013 S FL NOT FOUND 3D2D NO ROOM 30CF FL SIZE ERR 5391
001 A FL TYPE ERR 3D22 NO SUCH ALM 394A END OF REC 5651
007 G
205 E
TIME:
3DD ?NC XQ CAT EMPTY 3790 DATA ERROR Z NO ROOM
0AC ->2BF7 DSPLFT DATA ERROR X ERROR = Dnn TIMER ALARM 5EAE
201 ?NC XQ DATA ERROR Y ERROR = Rnn
070 ->1C80 MSG105
3ED ?NC XQ
08A ->22FB ERR110 PRINTER:
OUT OF PAPER PRINT ERROR PRINTER OFF
14
Using interrupts M-CODE prompts
xFF4 Interrupt checked during Pause Leftmost digit of
xFF5 Interrupt checked if system flag 53 set 1st chr 2nd chr
xFF6 Interrupt checked on wakeup /not ON key Example op1 op2 Type of prompt
xFF7 Interrupt checked when HP41 is turned off SIN 0 - none
xFF8 Interrupt checked just before CPU stops COPY 1 0 Alpha input only (null input OK)
xFF9 Interrupt checked on wakeup /ON key DEL 1 1 3 digits (4 by pressing EEX)
xFFA Interrupt checked on MEMORY LOST 1 2 Same as COPY (but no null input)
FIX 1 3 1 digit (+ indirect register/indirect stack)
Before interrupt routine : STO 2 0 2 digits (+indirect reg/stack + stack) (*1)
1. Save nybble 3 to 10 of register C ASTO 2 1 Same as STO (*2)
FS?C 2 2 2 digits (+ indirect register/stack)
2 3 Same as FS?C
LBL 3 0 Non-null alpha or 2 digits
After interrupt routine :
XEQ 3 1 Same as LBL (+ stack/indirect stack)
1. Restore nybble 3 to 10 of register C
3 2 Same as LBL
2. Have P as selected pointer
GTO 3 3 Same as XEQ (*3)
3. Load user flags 48 to 55 into
register ST (Status set zero SS0)
4. Have chip 0 selected 1 When the +/*- keys are pressed at the double prompt, the
5. CPU must be in HEX mode functions defaults to the storeage arithmetic function
6. GOTO address 27F3 2 The storage arithmetic part does not work
3 If the decimal key is pressed at the double prompt the function
changes to GTO.
25D ?NC XQ This entry point selects chip 0 Numeric entry : S&X of CPU A-register
01C ->0797 LDSST0 and places the user flags 48 to Indirect numeric entry : +080h in S&X of A-reg.
260 SETHEX 55 in C and then in ST register
0A0 SLCT P ALPHA entry : Q status register
3CD ?NC GO This entry point returns to
09E ->27F3 RMCK10 continue interrupt polling
15
Partial key sequence
NEXT1 ?NC XQ 0E45 NEXT3 ?NC XQ 0E4B
NEXT2 ?NC XQ 0E48 NEXT ?NC XQ 0E50
PTEMP1 in ST
PTEMP2 in G
Rightmost digit of Partial key code in mantissa sign of A
Logical key code in nybble 1 & 2 of N
PTEMP1
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
Decimal point SHIFT ALPHA key from digit key bit 0 of op1 bit 1 of op2 bit 0 of op2
row 1 or 2
PTEMP2
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
not used INDIRECT bit XROM bit INSERT bit 0 bit 0 of op1 bit 1 of op2 bit 0 of op2
set if indirect set if XROM fcn set if PRGM mode bit 8 of 1st chr bit 9 of 2nd chr bit 8 of 2nd chr
operand & PRGMable of fcn name of fcn name of fcn name
115 ?NC XQ
038 0E45 NEXT1
07B JNC +0F if backarrow key !
04C ?FSET 4 all other keys goes here
:
:
215 ?NC XQ
00C 0385 RSTSQ
16
Peripherals : The Card Reader
130 LDI S&X
010 CON 16
270 RAMSLCT de-selects user memory
130 LDI S&X
0FC CON 252
3F0 PRPH SLCT selects the card reader
17
Peripherals : The wand
130 LDI S&X
010 CON 16
270 RAMSLCT de-selects user memory
130 LDI S&X
0FE CON 254
3F0 PRPH SLCT selects the wand
2D8 ST<>T
18
Peripherals : The HP-IL interface
16C ?IFCR set carry if interface ready
2AC ?SRQR set carry if interface request service
12C ?FRAV set carry if a frame is available from the loop
26C ?FRNS set carry if frame not returned as it was sent
0EC ?ORAV set carry if an output register is available
200 HPIL=C 0(T) copies C[1;0] to HP-IL register 0 SELP r cccccccc01b copies cccccccc to HP-IL register r
240 HPIL=C 1(Z) copies C[1;0] to HP-IL register 1
280 HPIL=C 2(Y) copies C[1;0] to HP-IL register 2 024 SELP 0(T) 124 SELP 4(L)
2C0 HPIL=C 3(X) copies C[1;0] to HP-IL register 3 064 SELP 1(Z) 164 SELP 5(M)
300 HPIL=C 4(L) copies C[1;0] to HP-IL register 4 0A4 SELP 2(Y) 1A4 SELP 6(N)
340 HPIL=C 5(M) copies C[1;0] to HP-IL register 5 0E4 SELP 3(X) 1E4 SELP 7(O)
380 HPIL=C 6(N) copies C[1;0] to HP-IL register 6
003 ?PFSET copies HP-IL register 0 TO C[1;0] 103 ?PFSET copies HP-IL register 4 TO C[1;0]
064 SELP 1(Z) 164 SELP 5(M)
07A C=PREG 1 17A C=PREG 5
043 ?PFSET copies HP-IL register 1 TO C[1;0] 143 ?PFSET copies HP-IL register 5 TO C[1;0]
0A4 SELP 2(Y) 1A4 SELP 6(N)
0BA C=PREG 2 1BA C=PREG 6
083 ?PFSET copies HP-IL register 2 TO C[1;0] 183 ?PFSET copies HP-IL register 6 TO C[1;0]
0E4 SELP 3(X) 1E4 SELP 7(O)
0FA C=PREG 3 1FA C=PREG 7
0C3 ?PFSET copies HP-IL register 3 TO C[1;0] 1C3 ?PFSET copies HP-IL register 7 TO C[1;0]
19
Peripherals : The HP-IL interface
Register 0 : status Register 1 : control interrupt
bit 0 master clear bit 0 w:enable FI line r:output register available
bit 1 clear IFC received bit 1 w:not used r:frame received not as sent
bit 2 write:set local ready read: RFC received bit 2 w:not used r:frame available
bit 3 send receive request bit 3 w:not used r:service request received
bit 4 listener active bit 4 w:not used r:interface clear received
bit 5 talker active bit 5 w:output control bits r:input control bits
bit 6 controller active bit 6 w:output control bits r:input control bits
bit 7 system controller bit 7 w:output control bits r:input control bits
20
Peripherals : The printer
3AC ?PBSY set carry if the printer is busy
264 SELP 9 transfers control to the printer until an instruction with the rightmost bit set
bit meaning
15-14 printer mode: 00 = MAN 10 = TRACE 01 = NORM
13 PRINT key is down
12 PAPER ADVANCE key is down
11 printer is OUT OF PAPER
10 printer battery is low
9 printer is idle (not printing)
8 printer buffer is empty
7 printer is using lower case (SF13)
6 printer is in graphics mode (column mode)
5 printer is using double width (SF12)
4 printer is printing right justified
3 last byte sent was End-Of-Line
2 printer error is occuring
1-0 always set
21
Peripherals : The timer
130 LDI S&X status register bits:
010 CON 16 bit meaning
270 RAMSLCT de-selects user memory 12 timer is in TEST A mode
130 LDI S&X 11 timer is in TEST B mode
0FB CON 21 10 set if the interval timer is running
3F0 PRPH SLCT selects the timer 9 set if ALARM B is enabled (usually clear)
8 set if ALARM A is enabled (usually set)
7 set if CLOCK B is counting forwards
6 set if CLOCK A is counting forwards
5 set if timer chip supply voltage has been low
4 set if the interval timer has counted a whole interval
3 set if an overflow has occurred in CLOCK B
2 set if ALARM B register is the same as CLOCK B
1 set if an overflow has occurred in CLOCK A
0 set if ALARM A register is the same as CLOCK A
CLOCK REGISTER A CURRENT TIME (1/100 SECONDS SINCE JAN 1 1900, DECIMALLY, RIGHT ALIGNED)
22
Peripherals : The timer
028 WRIT 0(T) copy the C register to the active clock register
038 READ DATA copy the active clock register to the C register
068 WRIT 1(Z) as WRIT 0(T) but used after READ 1(Z), takes into account the time used since reading the time
078 READ 1(Z) as READ DATA, used when correcting the time using T+X
0A8 WRIT 2(Y) copy the C register to the active alarm register
0B8 READ 2(Y) copy the active alarm registerto the C register
0E8 WRIT 3(X) if pointer set to A: copy C[5;0] to the timer status register (can only clear bits)
if pointer set to B: copy C[16;4] to timer accuracy factor register (0 to 99.9 , C[16] = sign)
178 READ 5(M) copy the value of the interval timer to C[4;0]
1E8 WRIT 7(O) stop the interval timer
228 WRIT 8(P) clear test mode (A or B)
268 WRIT 9(Q) set test mode (A or B)
2A8 WRIT 10() disable the active alarm, but does not clear it
ALARM A is re-enabled at turn-off, timer alarms (negative stopwatch alarms) can’t be disabled
23
Peripherals : The display
130 LDI S&X 0 1 2 3 4 5 6 7 8 9 A B C D E F
010 CON 16 0
270 RAMSLCT de-selects user memory 1
130 LDI S&X
2
0FD CON 253
3
3F0 PRPH SLCT selects display
4
8 7 6 5 4 3 2 1 0
5
”Halfnuts” only
spec punct. row column
6
(0-7) (0-F)
7
C B A
ALPHA
USER
PRGM
BAT
RAD
N \ 76
G
0
1
2
3
4
11 10 9 8 7 6 5 4 3 2 1 0
M [ 75
E
2F0 WRIT DATA writes C S&X to annunciators
178 READ 5(M) reads annunciators to C S&X
24
Peripherals : The display
Instruction Hex # of chrs Rotation Digs in C C B A
READ DATA 038 12 12 (1 each)
WRIT 0 (T) 028 12 12 (1 each)
READ 1 (Z) 078 12 12 (1 each)
WRIT 1 (Z) 068 12 12 (1 each)
READ 2 (Y) 0B8 12 12 (1 each)
WRIT 2 (Y) 0A8 12 12 (1 each)
READ 3 (X) 0F8 6 12 (2 each)
WRIT 3 (X) 0E8 6 12 (2 each)
READ 4 (L) 138 4 12 (3 each)
WRIT 4 (L) 128 4 12 (3 each)
WRIT 5 (M) 168 6 12 (2 each)
READ 6 (N) 1B8 1 1
WRIT 6 (N) 1A8 4 12 (3 each)
READ 7 (O) 1F8 1 1
WRIT 7 (O) 1E8 1 1
READ 8 (P) 238 1 1
WRIT 8 (P) 228 1 1
READ 9 (Q) 278 1 1
WRIT 9 (Q) 268 1 1
READ 10 () 2B8 1 1
WRIT 10 () 2A8 1 1
READ 11 (a) 2F8 1 1
WRIT 11 (a) 2E8 1 1
READ 12 (b) 338 1 2
WRIT 12 (b) 328 1 2
READ 13 (c) 378 1 2
WRIT 13 (c) 368 1 2
READ 14 (d) 3B8 1 3
WRIT 14 (d) 3A8 1 3
READ 15 (e) 3F8 1 3
WRIT 15 (e) 3E8 1 3
bit 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0
A char 12th 11th 10th 9th 8th 7th 6th 5th 4th 3rd 2nd 1st
bit 7 6 5 4 7 6 5 4 7 6 5 4 7 6 5 4 7 6 5 4 7 6 5 4 7 6 5 4 7 6 5 4 7 6 5 4 7 6 5 4 7 6 5 4 7 6 5 4
B char 12th 11th 10th 9th 8th 7th 6th 5th 4th 3rd 2nd 1st
bit 8 8 8 8 8 8 8 8 8 8 8 8
C char 12 11 10 9 8 7 6 5 4 3 2 1
ann. B U G R S 0 1 2 3 4 P A
E bit 12 11 10 9 8 7 6 5 4 3 2 1
25
Port dependent jumps
341 ?NC XQ PORT DEP: 349 ?NC XQ PORT DEP:
08C ->23D0 GO 1st quarter 08C ->23D2 XQ 1st quarter
qXX ->pQXX p000-p3FF qXX ->pQXX p000-p3FF
26
HP41CX ENTRY POINTS ENTRY ADR MCODE
27
HP41CX ENTRY POINTS ENTRY ADR MCODE
28
HP41CX ENTRY POINTS ENTRY ADR MCODE
29
HP41CX ENTRY POINTS ENTRY ADR MCODE
LDD_P_ 0B1D MINUS 1054 MSGWR 1C56 NFRPR 00EE 3B9 000
LDDP10 0B1E MOD 104F MSGX 1C75 NFRPU 00F0 3C1 000
LDSST0 0797 MOD10 195C 171 064 MSGYES 1C62 NFRSIG 00C2
LEFTJ 2BF7 MODE 134D MULTIPLY 105C NFRST_PLUS 0BEE
LINN1A 2A93 MODE1 134F N NFRX 00CC 331 000
LINNM1 2A90 MOVREG 215C NAM40 0F34 NFRXY 00DA 369 000
LINNUM 2A8B MP1_10 184F NAM44_ 0F7D NLT000 0E91
LN 11A6 MP2_10 184D 135 060 NAME20 0EE6 NLT020 0EA0
LN1_PLUS_X 1220 MP2_13 1852 NAME21 0EE9 NLT040 0EAA
LN10 1B45 115 06C MPY150 1865 NAME33 0EEF NM44_5 0F7E
LN560 1BD3 MSG 1C6B NAME37 0F09 NOPRT 015B
LNAP 1A8A MSG105 1C80 201 070 NAME4A 0FA4 NOREG9 095E 179 024
LNC10 1AAE MSG110 1C86 219 070 NAME4D 0FAC NOSKP 1619 065 058
LNC10_ 1AAD MSGA 1C6C 1B1 070 NAMEA 0ED9 NOTFIX 0ADD
LNC20 1ABD MSGAD 1C18 NBYTA0 2D04 NRM10 1870
LNSUB 19F9 MSGDE 1C22 NBYTAB 2D06 NRM11 1871
LNSUB_MINUS 19F8 MSGDLY 037C NEXT 0E50 141 038 NRM12 1872
LOAD3 14FA MSGE 1C71 NEXT1 0E45 115 038 NRM13 1884
LOG 11AC MSGML 1C2D NEXT2 0E48 121 038 NROOM3 28C2
LSWKUP 0180 MSGNE 1C38 NEXT3 0E4B 12D 038 NULT_ 0E65
M MSGNL 1C3C NFRC 00F1 3C5 000 NULT_3 0E7C
MASK 2C88 MSGNO 1C64 NFRENT 00C4 NULT_5 0E8F
MEAN 11B9 MSGOF 1C4F NFRFST 00F7 3DD 000 NULTST 0EC6
MEMCHK 0205 MSGPR 1C43 NFRKB 00C7 31D 000 NWGOOS 07D4
MEMLFT 05A1 MSGRAM 1C67 NFRKB1 00C6 NXBYT3 29B7
MESSL 07EF 3BD 01C MSGROM 1C6A NFRNC 00A5 295 000 NXBYTA 29B9
MIDDIG 0DE0 MSGTA 1C5F NFRNIO 0106 NXBYTO 2D0B
30
HP41CX ENTRY POINTS ENTRY ADR MCODE
31
HP41CX ENTRY POINTS ENTRY ADR MCODE
32
HP41CX ENTRY POINTS ENTRY ADR MCODE
33
HP41CX ENTRY POINTS ENTRY ADR MCODE
XSCI 16C0 1
XSF 164A 1/X10 188B 22D 060
XSGREG 1659 10X 1BF8 3E1 06C
XSIGN 0FF4
XSIZE 1795
XSST 2260
XSTYON 1411
XTOHRS 19B2
XTONE 16DE
XVIEW 036F
XX_EQ_0 1606
XX_EQ_Y 1614
XX_GT_0 15F1
XX_GT_Y 15F8
XX_LE_0 160D
XX_LE_0A 1609
XX_LE_Y 1601
XX_LT_0 15FA
XX_LT_Y 15EF
XX_NE_0 1611
XX_NE_Y 1629
XXEQ 252F
XY_TO_X 1B11
Y
Y_MINUS_X 1421
Y_TO_X 102A
34
ADR1 XROM#
FAT-addresses ADR2 FCN#
35
ROM function names DEBUG registers
Address Code Description ABS nybbles
reg
x00E 004 M-code # 13 12 11 10 09 08 07 06 05 04 03 02 01 00
x00F 002 Function address x402 487 0 0 RTN 3 RTN 2 RTN 1
: 488 KY RTN 4 XY P Q G ST
x409 054 T
x40A 19C FIX 0 = hex mode SLCT P
36
Synthetic QRC
37
Synthetic QRC
38
Keycode maps
10 30 70 80 C0 11 12 13 14 15
11 31 71 81 C1 21 22 23 24 25
12 32 72 82 C2 32 33 34 35
13 73 83 C3 41 42 43 44
14 34 74 84 51 52 53 54
15 35 75 85 61 62 63 64
16 36 76 86 71 72 73 74
17 37 77 87 81 82 83 84
39
Keycode maps
09 19 29 39 49
041 042 043 044 045 01 11 21 31 41
0A 1A 2A 3A 4A
046 047 048 049 040 02 12 22 32 42
0B 1B 2B 3B 4B
100 000 000 000 000 03 13 23 33 43
0C 2C 3C 4C
000 000 000 00F 04 24 34 44
0D 1D 2D 3D
002 027 028 029 05 15 25 35
0E 1E 2E 3E
001 024 025 026 06 16 26 36
0F 1F 2F 3F
003 021 022 023 07 17 27 37
10 20 30 40
004 020 200 000 08 18 28 38
h
p HEWLETT PACKARD HP 41CX h
p HEWLETT PACKARD HP 41CX
40
Keycode maps
08 18 28 38 48 61 62 63 64 65
00 10 20 30 40 41 42 43 44 45
09 19 29 39 49 7E 25 1D 3C 3E
01 11 21 31 41 46 47 48 49 4A
0B 2B 3B 4B 5E D 24 187
03 23 33 43 4E 4F 50 0
0C 1C 2C 3C 2D 37 38 39
04 14 24 34 51 52 53 54
0D 1D 2D 3D 2B 34 35 36
05 15 25 35 55 56 57 58
0E 1E 2E 3E 2A 31 32 33
06 16 26 36 59 5A 3D 3F
0F 1F 2F 3F 2F 30 2E 17E
07 17 27 37 3A 20 2C 105
h
p
HEWLETT PACKARD HP 41CX h
p HEWLETT PACKARD HP 41CX
41
Keycode maps
h
p HEWLETT PACKARD HP 41CX h
p HEWLETT PACKARD HP 41CX
42
ROM module structure ROM bankswitching
Address Code Description
Word at xFFD :
x000 XROM ID #
x001 # of FAT entries (n) bit 9 bit 8
x002 t0a Address of 1st function in page 0 0 page not bankswitched
x003 0aa t is 0=Mcode or 2=UserCode 0 1 bankswitched, primary bank
: 1 0 bankswitched, indeterminate bank (HP)
x(2n) Address of last function in page 1 1 bankswitched, secondary bank
x(2n+1)
x(2n+2) 000 End of FAT
x(2n+3) 000
x(2n+4) Start of functions or program code
Straight 16K module Bankswitched 16K module
:
:
: Page F Page F
: Page E Page E
: Page D Page D
: Page C Page C
: Page B Core 3 Page B
Secondary
xFC7 100 Enable bank 1 Page A Core 2 Page A
xFC8 3E0 Page 9 Core 1 Page 9 Core 1 Core 3
xFC9 180 Enable bank 2
Page 8 Core 0 Page 8 Core 0 Core 2
ZEPROM in port 1 or 2 ZEPROM in port 1
xFCA 3E0
:
xFF4 Interrupt checked during Pause Bankswitched 12K module Straight 8K module
xFF5 Interrupt checked if system flag 53 set
Secondary banks Dummy banks
xFF6 Interrupt checked on wakeup /not ON key
xFF7 Interrupt checked when HP41 is turned off Page 9 Core 1 Core 3 Page 9 Core 1 Core 1
xFF8 Interrupt checked just before CPU stops Page 8 Core 0 Core 0 Page 8 Core 0 Core 0
xFF9 Interrupt checked on wakeup /ON key ZEPROM in port 1 ZEPROM in port 1
43
ROM structure
Primary Bank Page Secondary Bank Page
IL Mass Storage 7
Take-over ROM 4
CX Extended 3
System ROM 2 2
System ROM 1 1
System ROM 0 0
44
GTO 00 - 14 forward GTO 00 - 14 backwards
Bx xx Bx xx
RAM ROM RAM ROM
1011 is B 1011 is B
llll is label# + 1 llll is label# + 1
0 is forward 1 is backwards
bbb is number of bytes bbb is number of bytes
rrrr is number of registers rrrr is number of registers
45
GTO 15 - 99 forward GTO 15 - 99 backwards
Dx xx xx Dx xx xx
RAM ROM RAM ROM
1101 bbbr rrrr rrrr 0lll llll 1101 bbbr rrrr rrrr 1lll llll
1101 is D 1101 is D
bbb is number of bytes bbb is number of bytes
r rrrr rrrr is number of registers r rrrr rrrr is number of registers
0 is forward 1 is backwards
lll llll is label# lll llll is label#
46
XEQ forward XEQ backwards
Ex xx xx Ex xx xx
RAM ROM RAM ROM
1110 bbbr rrrr rrrr 0lll llll 1110 bbbr rrrr rrrr 1lll llll
1110 is E 1110 is E
bbb is number of bytes bbb is number of bytes
r rrrr rrrr is number of registers r rrrr rrrr is number of registers
0 is forwards 1 is backwards
lll llll is label# lll llll is label#
47
XROM # END
Ax xx Cx xx xx
1010 0ddd ddff ffff 1100 bbbr rrrr rrrr 0ne0 1pc1
1010 is A 1100 is C
ddd dd is device# bbb is number of bytes to next END
ff ffff is function# r rrrr rrrr is number of registers to next END
n is 0=NOT PRIVATE or 1=PRIVATE
e is 0=END or 1=.END.
p is 0=packed or 1=unpacked
c is 0=compiled or 1=not c
1010 1110 is AE
t is 0=GTO IND or 1=XEQ IND
rrr rrrr is the ”indirect” register
48
alpha XEQ alpha
Fx xx xx .... xx 1E Fx xx xx ....
1111 nnnn aabb ccdd .... eeff 0001 1110 1111 nnnn aabb ccdd .... eeff
49
HP41 CX mainframe functions ID = 004
000 CAT 064 + 086 LOG 108 HMS 130 GRAD 152 VIEW
001 GTO.. 065 - 087 10↑X 109 HR 131 ENTER↑ 153 ΣREG
002 DEL 066 * 088 E↑X-1 110 RND 132 STOP 154 ASTO
003 COPY 067 / 089 SIN 111 OCT 133 RTN 155 ARCL
004 CLP 068 X<Y? 090 COS 112 CLΣ 134 BEEP 156 FIX
005 R/S 069 X>Y? 091 TAN 113 X<>Y 135 CLA 157 SCI
006 SIZE 070 X<=Y? 092 ASIN 114 PI 136 ASHF 158 ENG
007 BST 071 Σ+ 093 ACOS 115 CLST 137 PSE 159 TONE
008 SST 072 Σ- 094 ATAN 116 R↑ 138 CLRG
009 ON 073 HMS+ 095 DEC 117 RDN 139 AOFF 168 SF
010 PACK 074 HMS- 096 1/X 118 LASTX 140 AON 169 CF
075 MOD 097 ABS 119 CLX 141 OFF 170 FS?C
014 SHIFT 076 % 098 FACT 120 X=Y? 142 PROMPT 171 FC?C
015 ASN 077 %CH 099 X≠0? 121 X≠Y? 143 ADV 172 FS?
078 P-R 100 X>0? 122 SIGN 144 RCL 173 FC?
079 R-P 101 LNX+1 123 X<=0? 145 STO
080 LN 102 X<0? 124 MEAN 146 ST+ 206 X<>
081 X↑2 103 X=0? 125 SDEV 147 ST- 207 LBL
082 SQRT 104 INT 126 AVIEW 148 ST* 208 GTO
083 Y↑X 105 FRC 127 CLD 149 ST/
084 CHS 106 D-R 128 DEG 150 ISG 224 XEQ
085 E↑X 107 R-D 129 RAD 151 DSE
50
MODULE ID’s The colors represent the way I have the module: green = actual module; purple, black & blue = programable module; orange = digital
2 STAT 1 EXTENDED IL
3 SURVEYING 1 SANDMATH
12 MACHINE
13 THERMAL SANDBOX TOOLBOX ROM
14 NAVIGATION PROTOPARIO
16 PETROLEUM SIMPLEX
19 STRC ANAL X SECURITIES X AVIATION X CLIN LAB X Advantage Application ROM HP-IL DIAG
20 PPC ROM
21 DEL.SERV.1 SCHENK MODUL KOELN4 SEA KING MK5 ML-IDC BG/UG IDC MLROM DATA LOGGER HYDRACOMP ASSEMBLER 3
23 EXTENDED I/O
25 X FUNCTIONS
26 TIME MODULE
27 WAND DAVID ASSEM PROFISET L
28 HP-IL
30 CARD READER
31 DEL.SERV.1 SCHENK MODUL KOELN4 RAMBOXII SUP-R-ROM DATA LOGGER PROFISET U CO-OP ROM
01 02 02 03 04
MATH 1 STAT 1 DAVID ASSEM SURVEYING 1 CMT-200
00 MATH 1C 39 SSS 00 STAT 1B 00 DAVID-ASSEM 00 SURVEY 1B 00 -DIGIO 1B
01 MATRIX 40 ASA 01 ΣBSTAT 01 ASSM 01 TRAV 01 ANDXY
02 SIMEQ 41 SAA 02 ΣBSTG 02 BEG/END 02 COMP 02 A>BUF
03 VCOL 42 SAS 03 *BE 03 BUF>REG 03 TRANSIT 03 BUF>AX
04 VMAT 43 SSA 04 ΣMMTUG 04 DISTOA 04 ADJUST 04 BUF>TX
05 PVT 44 TRANS 05 ΣMMTGD 05 REG>BUF 05 INTER 05 BUF>X
06 DET 45 *FN 06 *MT 06 CURVE 06 BUFX
07 INV 07 *MD 07 HORIZ 07 FLAG>X
08 EDIT 08 ΣAOVONE 08 VERT 08 FLAG<>X
09 SOLVE 09 ΣANOTWO 09 RESECT 09 HS
10 SOL 10 ΣANOCOV 10 PREAREA 10 IA
11 POLY 11 ΣLIN 11 ENDVOL 11 IAX
12 ROOTS 12 ΣEXP 12 PIT 12 IBUFX
13 INTG 13 ΣLOGVONE 13 COORD 13 ICX
14 DIFEQ 14 ΣPOW 14 ACRES 14 IDX
15 FOUR 15 ΣPOLYP 15 AZ 15 INTMASK
16 C+ 16 ΣPOLYC 16 BRG 16 INTOFF
17 C- 17 ΣMLRXY 17 CIR 17 INTON
18 C* 18 ΣMLRXYZ 18 INVERSE 18 INVOFF
19 C/ 19 ΣPTST 19 NE 19 INVON
20 MAGZ 20 ΣTSTAT 20 TS 20 MATCHI
21 CINV 21 ΣXSQEV 21 *AO 21 NOTX
22 Z
N 22 ΣEEFXSQ 22 *
22 OA
23 Z
1/N 23 ΣCTKK 23 *BR 23 OBUFX
24 e
N 24 ΣCTKKK 24 *DL 24 OCX
25 LNZ 25 ΣSPEAR 25 *DS 25 ODX
26 a
Z 26 ΣNORMD 26 *EL 26 ORXY
27 LOGZ 27 ΣCHISQD 27 *H 27 PT>X
28 Z
W 28 *a 28 *S 28 RATE
29 Z
1/W 29 *b 29 *A1 29 STROBE
30 SINZ 30 *B1 30 TIMEI
31 COSZ 31 *IN 31 TIMEO
32 TANZ 32 *YN 32 TX>BUF
33 SINH 33 VIEWIN
34 COSH 34 WAITIX
35 TANH 35 X>A
36 ASINH 36 X>BUF
37 ACISH 37 X>FLAG
38 ATANH 38 X>PT
52
XROM # HEADER MCODE USERCODE
04 04 05 05
CO-OP MODULE FINANCIAL 1 PANAME ZENROM 1
05 06 07
STANDARD CIRCUIT 1 HEPAX
07 08 09 09
STRC ANAL X STRESS PANAME CCD
09 09 10 10 10
HOME MGMT ZEP PROG GAMES FORECAST 1 FORECASTER 2
10 11 11
PPC CCD REAL ESTATE
12 13 14 15
MACHINE THERMAL NAVIGATION PETROLEUM
00 MACHINE 1A 00 THRML 1A 00 NAVIG 1B 39 SIGHT 00 PETROL 1A 39 BW
01 CAM 01 KWONG 01 NA 40 RM 01 Z 40 CBW
02 HAR 02 IDEAL 02 *NA 41 DR 02 CG 41 UW
03 CYC 03 POLYTRP 03 STAR 42 *DR 03 CCG 42 CUW
04 PAR 04 ISNFLOW 04 *STAR 43 GCPOS 04 BG 43 CPSAT
05 DWECC 05 FLOW 05 SUN 44 *GCPOS 05 CBG 44 CFR
06 GEN4BAR 06 FLOW2 06 *SUN 45 GC 06 UG 45 CCFR
07 4BAR 07 H2O 07 *SUNL 46 *GC 07 CUG
08 CRANK 08 Re 08 *SUNU 47 GCPLAN 08 TcPc
09 GEAR 09 ENERGY 09 MOON 48 *GCPLAN 09 CTcPc
10 SPUR 10 HEATEX 10 *MOON 49 GCPLOT 10 CCWA
11 INV 11 A0 11 *MOONU 50 *GCPLOT 11 PROP
12 SPRING 12 E0 12 *MOONL 51 DSPP2 12 W0
13 MOTION 13 ACNT 13 VENUS 52 LOTOL 13 COMP
14 COORD 14 ECNT 14 *VENUS 53 *LOTOL 14 SOUR
15 POINTS 15 APAR 15 P 54 DSPL 15 IN
16 3POINTS 16 EPAR 16 MARS 55 DSPLO 16 CGASG
17 FCON 17 APRC 17 *MARS 56 RLPOS 17 CTPC
18 BCON 18 W1
18 EPRC 18 JUPITER 57 *RLPOS
19 INI 19 CHV
19 ACRS 19 *JUPIT 58 RL
20 *O 20 CCB
20 ECRS 20 SATURN 59 *RL
21 *IN 21 W2
21 BLKBODY 21 *SATUR 60 *M/a
22 +360
22 EbL 22 SRT 61 *ec 22 W3
23 *OUT
23 UNIT? 23 *SRT 23 CO
24 KEY
24 SZ? 24 JD 24 CCOb
25 INPUT 25 D+T 25 CCO
26 OUTPUT 26 LBRYZX 26 COS
27 KEY 27 ZYXdHA 27 W4
28 -SI 28 DSPHAd 28 W5
29 SI- 29 *IN 29 BO
30 *IN1 30 CBOb
31 DMT 31 CBO
32 DMS 32 CBT
33 HR 33 UO
34 *T 34 CUOd
35 FA 35 CUOb
36 GST 36 CUO
37 BODY 37 CW
38 *BODY 38 CCW
58
XROM # HEADER MCODE USERCODE
16 17 18 19
PETROLEUM PLOTTER PLOTTER CLINICAL LAB X
00 RS 39 OUT 00 -PLOTTER 1A- 00 -PLOTTER 2A- 00 CLINLAB 1A 39 *PR
01 CRSb 40 INK 01 CLIPUU 01 PCLBUF 01 BEERS 40 *R
02 Pb 41 INU 02 CSIZE 02 PDIR 02 BRA 41 *SE
03 CPb 42 CZ 03 CSIZEO 03 PRCL 03 CREAT 42 *SR
04 BT 43 CCR 04 DGTIZE 04 NEWPLOT 04 BLOOD 43 *TC
05 CBTb 44 CON 05 DRAW 05 REPLOT 05 O2SAT 44 *X
06 RSW 45 INCON 06 FRAME 06 PLINIT 06 RCI 45 *XE
07 CRSW 07 GCLEAR 07 PLTUXY 07 TBV 46 *YN
08 CT 08 IDRAW 08 PLANOT 08 THY
09 CCT 09 IMOVE 09 Y? 09 RADCORR
10 CCTb 10 IPLOT 10 X? 10 RIA
11 TITLE 11 LABEL 11 BC 11 BSTAT
12 W6 12 LDIR 12 BCA 12 CHI
13 Y/N? 13 LIMIT 13 BCAA 13 TSTAT
14 ITcPc 14 LOCATD 14 BCCKSM 14 TDIST
15 STDTP 15 LOCATE 15 BCO 15 *
16 SEPTP 16 LORG 16 BCP 16 *0
17 T 17 LTYPE 17 BCREGX 17 *1
18 P 18 LTYPEO 18 BCSIZE 18 *2
19 GASG 19 LXAXIS 19 BCX 19 *3
20 OILG 20 LYAXIS 20 BCXS 20 *4
21 IRS 21 MOVE 21 *5
22 RSI 22 PEN 22 *6
23 %NACL 23 PENDN 23 *7
24 %POR 24 PENUP 24 *8
25 W7 25 PINIT 25 *9
26 W8 26 PLOT 26 *A
27 W9 27 PLREGX 27 *C
28 X0 28 RATIO 28 *CO
29 X1 29 RPLOT 29 *CR
30 X2 30 SCALE 30 *CS
31 X3 31 SETGU 31 *F
32 X4 32 SETUU 32 *H
33 X5 33 TICLEN 33 *HG
34 X6 34 UNCLIP 34 *IN
35 X7 35 WHERE 35 *I125
36 X8 36 XAXIS 36 *I131
37 OUTK 37 XAXISO 37 *P
38 OUTU 38 YAXIS 38 *Pt
59
XROM # HEADER MCODE USERCODE
19 19 19 20 21
SECURITIES X STRC ANAL X AVIATION PPC SEA KING MK5
21 21 22
ASSEMBLER 3 DEL.SERV.1 ADVANTAGE
22 23 23
HP-IL DEVEL CLINICAL LAB X EXTENDED I/O
24 24 25 26
ADVANTAGE HP-IL DEVEL XF TIME
27 27 28 29 29
WAND EXT IL HP-IL PRINTER IR PRINTER
30 31 31 31
CARD READER DEL.SERV.1 RAMBOX32 CO-OP MODULE
66
System Memory Map © Ángel M. Martin - May 2014
Main Memory Extended Memory
2.4 kB On-line APPCHR - ARCLCHR 4.22 kB Off-line
APPREC - GETREC
ARCLREC
GETBF - SAVEBF
GETKA - SAVEKA
GETP - SAVEP
GETR/X - SAVER/X
GETST - SAVEST
GETSUB
GETX - SAVEX
GETZS - SAVEZS
INSCHR/REC
MRGKA
RCLPT/A - SEEKPT/A
(S)WRTK - READK
(S)WRTP/V - READP
WRTR/X - READR/X
(S)WRTS - READS HGETA - HSAVEA
WRTBUF - READBUF HAPPCHR
WRTCAL - READCAL HAPPREC - HGETREC
(S)WRTA - READA HARCLRC
READSUB READA - WRTA COPY/HGETP - HSAVEP
READCAL - WRTCAL HGETA - HSAVEA
READF - WRTDF HGETK - HSAVEK
READXM - WRTXM
HGETR/X - HSAVER/X
SAVEAS - GETAS
HGETX - HSAVEX
HINSCHR/REC
HRCLPT/A - HSEKPT/A
HP-IL
HREADFL - HWRTFL
READROM - WRTROM
Mass Storage
CX/HP-IL Skwid’s Extensions HEPAX
HEPAX RAM
1 MB Off-line 32 kB On-line
67
System Memory Map © Ángel M. Martin - May 2014
Main RAM ALPHA I/O Area General XM PRGM/DATA/ASCII
7P<>S A<>RG _ _ ARCLBF - ASTOBF CLEM/CLXM GETP - SAVEP
CLMM A<>ST B?/BUF? FLCOPY GETSUB
CLP A>ST/ST>A BF>RGX - RGX>BF RENMFL RSTCHK
CLRAM A>RG - RG>A BF>ST - ST>BF RETPFL XQXM
CLRG/X ABSP BFHD FLDH
CLS AINT/AIP/ARCLI BHEAD FLSIZE
CLST BFLNG PURFL CRFLD
ALENG/X/XY
CLX BRFCL - BFSTO RESZFL CLFL
ANUM/DEL WORKFL
ENTER^ AREV CLB/DELBUF GETR/X - SAVER/X
PCLPS CLRBF GETX - SAVEX
ASHF/X - AROT/X
COPY CRBUF RCLPT/A - SEEKPT/A
LASTX ASWAP/USWAP KACLR GETBF - SAVEBF WRTDF - READF
NRCLX - NSTOY AXEQ? KALNG GETKA - SAVEKA
PC>X - X>PC (L)ATOX - XTOAL KAPCK GETST - SAVEST
PC<>RTN CLA/-/C/? REIDBF GETZS - SAVEZS APPCHR - ARCLCHR
PACK LADEL/X RESZBF MRGKA APPREC - GETREC
PEEKR - POKER LEFT$ - MID$ - RIGHT$ ARCLREC
R - RDN LOW$ - UPR$ ASROOM
RAMED/EDIT M<>N/O/P CRFLAS
REGMOVE/SWAP N<>O/P DELCHR/REC
RCLBM - STOBM O<>P ED
ST>RG - RG>ST POSA GETAS - SAVEAS
ST<>RG _ _ PRESP/FX - POSTSP/ INSCHR/REC
ST>S - S>ST FX POSFL
ST<>S RATOX - XTOA(R) RCLPT/A - SEEKPT/A
(A)STO - (A)RCL REMZER
STOFLAG - RCLFLAG XATOX - ASTOXX
SWAPR YTOAX/ASUB
(P)SIZE
X<>
Main Memory
X<>BM
2.4 kB On-line
X<>F
X<>Y
X<I>Y Extended Memory
4.22 kB Off-line
68
System Memory Map © Ángel M. Martin - May 2014
-HEPAX 1F” XF(A) HEPAX(A) RAMBOX
CLRAM ALENG AND BUFLNG?
CODE ANUM BCAT CLLSTFL
COPYROM AROT BCD-BIN CLPG
DECODE/YX ATOX BIN-BCD CLRFL
DISASM CLEM CTRAST COPYPG
HAPPCHR/REC CLKEYS DELETE CRDIR
HARCLRC CLRGX INSERT CRFLDTA
HASROOM GETKEY NOT CRFLBUF
HCLFL GEYTKEYX OR CRFLKEY
HCRFLAS PASN PGROOM ENDPG
HCRFLD PCLPS PGSUM FNC?
HDELCHR/REC POSA ROTYX FRBYT?
PSIZE SHIFTYX INITPG
HEPDIR/X
RCLFLAG X-$ KEYAS?
HEPROOM REGMOVE X+Y LDPGM
HEXEDIT REGSWAP XOR LDREG/X - GTREG/X
HFLADR RTN? Y-X
HFLSIZE LDREGXY - GTREGXY
SIZE? LDKEY - GTKEY
HFLTYP SREG?
HGETREC LDBUF - GTBUF
STOFLAG PG<>
HINSCHR/REC X#NN? PG?
HPOSFL X<=NN? PGSUM
HPROMPT X<>F PTCT
HPURFL X<NN? PG01/10
HRCLPT/A X=NN? SETPRV
HRENAME X>=NN? UNPTCT
HSAVEA - HGETA X>NN? WRTPG - READPG
HSAVEK - HGETK XTOA XQ>XR
HSAVEP - HGETP XQ>GO
HSAVER/X - HGETR/X XQXM
HSAVEX - HGETX
HSEC
HSEKPT/A RAMBOX
HEPAX RAM 16 kB On-line /
HUNSEC
32 kB On-line 16 kb Off-line
HWRKFL
HWRTFL - HREADFL
PRIVATE
RAMTOG
READROM - WRTROM
RLSRAM
69
System Memory Map © Ángel M. Martin - May 2014
ProfiSET
70
Revision 2.07