170 A = 0: FOR X = 1 TO L:D = ASC( MID$ (A$,X,1)):A = A +A(L -X) *(D -48 *(D <58 AND D >47) -55 *(D >64 AND D <71)): NEXT
180 IF A <736 OR A >39424 THEN HOME : PRINT : PRINT CHR$(7)"INVALID ADDRESS. PLEASE DOUBLE CHECK": PRINT "AND RE-ENTER": PRINT : PRINT "PRESS RETURN TO CONTINUE ";: GET Z$: ON (Z$ = CHR$(13)) +1 GOTO 180,100
190 L = 8192: IF A <9472 THEN L = 34048: REM - LOAD AT $2000 IF ADDRESS IS ABOVE $2500 OTHERWISE LOAD AT $8500
200 HOME : PRINT : PRINT "INSTALLING HEX.CHECKER MACHINE CODE"
210 FOR X = 0 TO 252: READ ML: POKE L +X,ML: NEXT
220 IF L = 8192 THEN FOR X = 0 TO 7: READ ML: POKE L +ML, PEEK(L +ML) -101: NEXT
550 VTAB 4: PRINT "ENTER SLOT # ";: GET SL$: PRINT SL$: IF VAL(SL$) <2 OR VAL(SL$) >7 THEN 550
560 HTAB 1: VTAB 6: PRINT "ENTER DRIVE # ";: GET DR$: PRINT DR$: IF VAL(DR$) <1 OR VAL(DR$) >2 THEN 560
570 VTAB 22: HTAB 1: PRINT "PRESS RETURN TO CONTINUE, ESC TO BACK UP";: GET RS$: PRINT " ": IF RS$ = CHR$(13) THEN HTAB 1: VTAB 22: CALL -958: RETURN
580 GOTO 550
590 ER = PEEK(222): IF ER = 3 OR ER = 2 THEN VTAB 22: HTAB 1: PRINT "BAD SLOT OR DRIVE NUMBERS. PRESS RETURN";: GET R$: PRINT : VTAB 22: HTAB 1: CALL -958: GOTO 100
600 IF ER = 8 THEN VTAB 22: HTAB 1: PRINT "I/O ERROR. PRESS RETURN";: GET R$: PRINT : VTAB 22: HTAB 1: CALL -958: GOTO 100