' Xicor X2212 programmer software, by VO1CPU ' Modified by WB8VLC & VO1CPU LET LPT = &H378 LET DELAY = 9 ' 9 is OK for most Pentium class systems DIM WriteBuffer(0 TO 255) AS INTEGER INPUT "Enter file to program:"; n$ OPEN n$ FOR INPUT AS #1 PRINT "Reading..." FOR I = 0 TO 255 A$ = INPUT$(1, #1) FOR J = 0 TO 15 IF A$ = HEX$(J) THEN WriteBuffer(I) = J NEXT J NEXT I CLOSE #1 OUT LPT + 2, 4 PRINT "Insert ROM in socket and hit a key.": A$ = INPUT$(1) PRINT "Programming..." FOR I = 0 TO 255 OUT LPT, WriteBuffer(I) FOR D = 1 TO DELAY: NEXT D OUT LPT + 2, 5 FOR D = 1 TO DELAY: NEXT D ' you can omit the next 4 lines if you're using a '373. OUT LPT + 2, 4 FOR D = 1 TO DELAY: NEXT D OUT LPT + 2, 5 FOR D = 1 TO DELAY: NEXT D OUT LPT, I FOR D = 1 TO DELAY: NEXT D OUT LPT + 2, 7 FOR D = 1 TO DELAY: NEXT D OUT LPT + 2, 5 FOR D = 1 TO DELAY: NEXT D OUT LPT + 2, 4 FOR D = 1 TO DELAY: NEXT D NEXT I PRINT "Verifying..." VF = 0 FOR I = 0 TO 255 OUT LPT, I FOR D = 1 TO DELAY: NEXT D OUT LPT + 2, 6 FOR D = 1 TO DELAY: NEXT D IF WriteBuffer(I) <> (INP(LPT + 1) / 8) AND 15 THEN I = 255: LET VF = 1 FOR D = 1 TO DELAY: NEXT D OUT LPT + 2, 4 FOR D = 1 TO DELAY: NEXT D NEXT I IF VF = 1 THEN PRINT "Verify failed! Check your programmer." ELSE PRINT "Storing..." OUT LPT + 2, 0 FOR D = 1 TO DELAY: NEXT D OUT LPT + 2, 4 PRINT "Done." END IF PRINT "Remove ROM from programmer, and hit a key.": A$ = INPUT$(1)