10 MTOP = 06FFH:CLEAR:REM RESERVE A BUFFER 20 XTAL = 12000000 30 REM COPY BASIC52 TO EPROM 40 REM BUFFER AT 0700H SIZE 100H 50 FOR I = 0700H TO 07FFH 60 XBY(I)=0:REM CLEAR BUFFER 70 NEXT I 80 DBY(40H)=3CH:DBY(41H)=B0H:REM 50MS 90 DBY(38)=DBY(38).AND.0F7H:REM NORMAL MODE 100 FOR S=0 TO 1FFFH STEP 100H 110 D = S+8000H:PRINT:PRINT "SOURCE = ",:PH1.S 120 REM COPY BLOCK TO BUFFER 130 FOR I = 0 TO 0FFH 140 XBY(0700H+I) = CBY(S+I) 150 NEXT I 200 REM PROGRAM BUFFER TO D 210 PUSH D-1:GOSUB 1000:POP Q1:DBY(26)=Q1:POP Q1:DBY(24)=Q1 220 DBY(27)=07H:DBY(25)=00H:REM SOURCE = BUFFER 230 DBY(30)=0:DBY(31)=1 : REM PROG 100H BYTES 240 PRINT "BUFFER = ",:PH1.(DBY(27)*256+DBY(25)) 250 PRINT "DEST = ",:PH1.(DBY(26)*256+DBY(24)+1) 260 PRINT "# BYTES ",:PH1.(DBY(31)*256+DBY(30)) 270 PGM 280 NEXT S 300 REM CHECK EPROM 310 PRINT "CHECKING ..." 320 FOR S = 0 TO 1FFFH 330 D = S+8000H 340 IF (CBY(S)<>XBY(D)) GOSUB 400 350 NEXT S 360 PRINT "EPROM PROGRAMMED.":END 400 PRINT "ERROR ",:PH0.CBY(S), 410 PRINT" <>",:PH0.XBY(D), 420 PRINT" @",:PH1.S 430 RETURN 900 END 1000 POP Q1: PUSH(Q1.AND.0FFH):PUSH(INT(Q1/256)):RETURN