100 DEFINT A-Z
110 "S_ERASE"
120 HAD=3:MAD=&HC000
130 TIME=0
140 "PRGM"
150 PRINT TIME
160 "RESET"
170 END
180 '
190 LABEL"FSTART"
200 HI=&H0:AD=&H5555:DA=&HAA:"WR"       '1ST CYCLE
210 HI=&H0:AD=&H2AAA:DA=&H55:"WR"       '2ND CYCLE
220 RETURN
230 '
240 LABEL"S_ERASE"      'SECTOR ERASE
250 "FSTART"
260 HI=&H0:AD=&H5555:DA=&H80:"WR"       '3RD CYCLE
270 HI=&H0:AD=&H5555:DA=&HAA:"WR"       '4TH CYCLE
280 HI=&H0:AD=&H2AAA:DA=&H55:"WR"       '5TH CYCLE
290 HI=&H3:AD=&HC000:DA=&H30:"WR"       '6TH CYCLE
300 "TOGGLE"
310 RETURN
320 '
330 LABEL"PRGM"         'PROGRAM
340 FOR Z=0 TO 255
350 PRINT CHR$(11);HEX$(Z);":";
360 "FSTART"
370 HI=&H0:AD=&H5555:DA=&HA0:"WR"       '3RD CYCLE
380 HI=HAD:AD=MAD:DA=Z:"WR"             '4TH CYCLE
390 "POLL"
400 MAD=MAD+1
410 NEXT
420 RETURN
430 '
440 LABEL"DISPSIGN"
450 "FSTART"
460 HI=&H0:AD=&H5555:DA=&H90:"WR"       '3RD CYCLE
470 HI=&H0:AD=&H0:"RD":PRINTHEX$(DA);"-";
480 HI=&H0:AD=&H1:"RD":PRINTHEX$(DA)
490 'HI=&H0:AD=&H100:"RD":PRINTHEX$(DA);"-";
500 'HI=&H0:AD=&H101:"RD":PRINTHEX$(DA)
510 RETURN
520 '
530 LABEL"RESET":HI=&H0:AD=&HF0F0:DA=&HF0:"WR":RETURN
540 '
550 LABEL"POLL"         'POLLING
560 D0=DA AND &B10000000
570 D1=INP(&HE03)
580 IF (D1 AND &B10000000)=D0 THEN PRINT"Q":RETURN
590 IF (D1 AND &B100000)=0 THEN PRINT"q";:GOTO570
600 D1=INP(&HE03)
610 IF ((D1 AND &B10000000) XOR D0)=0 THEN PRINT"9":RETURN
620 PRINT"FAIL:POLL"
630 "RESET"
640 END
650 '
660 LABEL"TOGGLE"      'TOGGLE
670 D1=INP(&HE03)AND&B1100000
680 DA=INP(&HE03)AND&B1100000
690 IF (D1 XOR DA)=0 THEN PRINT"Q":RETURN
700 D1=DA
710 IF (DA AND &B100000)=0 THEN PRINT"q";:GOTO680
720 DA=INP(&HE03)AND&B1100000
730 IF (D1 XOR DA)=0 THEN PRINT"9":RETURN
740 PRINT"FAIL:TOGGLE"
750 "RESET"
760 END
770 '
780 LABEL"RD"
790 OUT &HE00,HI                'HIGH
800 OUT &HE01,INT(AD/256)AND&HFF'MID
810 OUT &HE02,AD AND&HFF        'LOW
820 DA=INP(&HE03)               'DATA
830 RETURN
840 '
850 LABEL"WR"
860 OUT &HE00,HI                'HIGH
870 OUT &HE01,INT(AD/256)AND&HFF'MID
880 OUT &HE02,AD AND&HFF        'LOW
890 OUT &HE03,DA                'DATA
900 RETURN