10
20 :
30 in%=OPENIN("ic10/bin")
40 :
50 PRINT" A7 A0---------+ +--------D7 - "
60 PRINT" A6 A1--------+| |+-------D6 - "
70 PRINT" A4 A2-------+|| ||+------D5 BLK2 BLK2 I/O"
80 PRINT"A10 A3------+||| |||+-----D4 BLK1 BLK1 I/O"
90 PRINT" A9 A4-----+|||| ||||+----D3 M0OE MEM0 OUTPUT ENABLE"
100 PRINT" IO A5----+||||| |||||+---D2 CKS M3002 CLOCK SELECT"
110 PRINT" A3 A6---+|||||| ||||||+--D1 PCS 6522 VIA SELECT"
120 PRINT" A5 A7--+||||||| |||||||+-D0 ACS 6551 ACIA SELECT"
130 PRINT" A8 A8-+|||||||| ||||||||"
140 PRINT" ||||||||| ||||||||"
150 :
160 FOR loop%=0 TO 511:a%=loop%
170 a%=(loop%AND1)*64+(loop%AND2)*2+(loop%AND4)*32+(loop%AND8)DIV4+(loop%AND16)DIV16+(loop%AND32)*8+(loop%AND64)DIV4+(loop%AND128)DIV16+(loop%AND256)DIV8
180
190 PTR#in%=a%:b%=BGET#in%
200 a$=FNb0(a%,9):b$=FNb0(b%,8)
210 PRINT SPC7;a$;" -> ";b$;
220 addr%=&F800+(loop%AND255)*8
230 PRINT SPC3;"&";FNh0(addr%,4);" -> ";
240 b%=NOT b% EOR 4
250 IF b%AND1 :PRINT"ACIA ";
260 IF b%AND2 :PRINT"VIA ";
270 IF b%AND4 :PRINT"RTC ";
280 IF b%AND8 :PRINT"MEM0 ";
290 IF b%AND16 :PRINT"BLK1 ";
300 IF b%AND32 :PRINT"BLK2 ";
310 IF b%AND64 :PRINT"d6 ";
320 IF b%AND128:PRINT"d7 ";
330 PRINT
340 NEXT loop%
350 CLOSE#in%
360 END
370 :
380
390 DEFFNh0(A%,N%)=RIGHT$("0000000"+STR$~A%,N%)
400 :
410
420 DEFFNb0(A%,N%):LOCAL A$,B$:IFA%<0:B$="1":A%=A% AND &7FFFFFFF ELSE B$="0"
430 REPEAT A$=STR$(A% AND 1)+A$:A%=A% DIV 2:UNTILA%=0:=RIGHT$(STRING$(N%,B$)+A$,N%)