10
20 :
30 in%=OPENIN("ic09/bin")
40 :
50 PRINT" L6 A0---------+ +--------D7 -"
60 PRINT" L7 A1--------+| |+-------D6 BLK0 EXTERNAL"
70 PRINT" L8 A2-------+|| ||+------D5 M1 APP ROM"
80 PRINT" A14 A3------+||| |||+-----D4 M3 RAM"
90 PRINT" A15 A4-----+|||| ||||+----D3 M2 RAM"
100 PRINT" A11 A5----+||||| |||||+---D2 M0 MOS ROM"
110 PRINT" A12 A6---+|||||| ||||||+--D1 CB A13 to RAM"
120 PRINT" A13 A7--+||||||| |||||||+-D0 IO I/O SPACE"
130 PRINT" L9 A8-+|||||||| ||||||||"
140 PRINT" ||||||||| ||||||||"
150 :
160 FOR loop%=0 TO 511
170 a%=(loop%AND7)*32+(loop%AND&18)+(loop%AND&E0)DIV32
180 PTR#in%=a%:b%=BGET#in%
190 a$=FNb0(a%,9):b$=FNb0(b%,8)
200 IF loop%:IF (loop% AND 31)=0:PRINT
210 IF (loop% AND 31)=0:PRINT "link=";~loop%DIV32;" "; ELSE PRINT SPC8;
220 PRINT a$;" -> ";b$;
230 addr%=(a%AND&18)*&800+(a%AND&E0)*&40
240 PRINT SPC3;"&";FNh0(addr%,4);" -> ";
250 b%=NOTb%
260 IF b%AND1 :PRINT"IO ";
270 IF b%AND2 :PRINT"CB ";
280 IF b%AND4 :PRINT"M0 ";
290 IF b%AND8 :PRINT"M2 ";
300 IF b%AND16 :PRINT"M3 ";
310 IF b%AND32 :PRINT"M1 ";
320 IF b%AND64 :PRINT"BLK0 ";
330 IF b%AND128:PRINT"d7 ";
340 PRINT
350 NEXT loop%
360 CLOSE#in%
370 END
380 :
390
400 DEFFNh0(A%,N%)=RIGHT$("0000000"+STR$~A%,N%)
410 :
420
430 DEFFNb0(A%,N%):LOCAL A$,B$:IFA%<0:B$="1":A%=A% AND &7FFFFFFF ELSE B$="0"
440 REPEAT A$=STR$(A% AND 1)+A$:A%=A% DIV 2:UNTILA%=0:=RIGHT$(STRING$(N%,B$)+A$,N%)
450 :