start tok64 d64-xoh1n0 0 GOTO 1000 1 GETz$:IF z$="" THEN 1 2 RETURN 10 INPUT#15,er,er$:IF er=0 THEN RETURN 20 PRINT"disk error #"er:PRINT er$:END:RETURN 100 PRINT"{home}{down*3}":FOR i=0 TO 15:FOR j=0 TO nc:PRINTTAB(j*20);v$(i+j*16); 110 NEXT j:PRINT:NEXT i 120 POKE xb,0:rl=0:cl=0:GOSUB 600 130 FOR i=0 TO 1 STEP 0:GOSUB 1:z=ASC(z$):tc=cl:tr=rl:FOR j=0 TO 1 STEP 0 140 IF(zAND127)=29 THEN cl=(cl+1+2*(z=157))AND nc 150 IF(zAND127)=17 THEN rl=(rl+1+2*(z=145))AND 15 160 IF z=13 THEN i=1 170 IF v$(rl+cl*16)<>b$ THEN j=1 180 NEXT:IF(tc<>cl)OR(tr<>rl) THEN GOSUB 500 190 NEXT:RETURN 500 POKE xa,tr+3:PRINT:PRINTTAB(tc*20);v$(tr+16*tc) 600 POKE xa,rl+3:PRINT:PRINTTAB(cl*20);"{reverse on}";v$(rl+16*cl):RETURN 900 FOR i=1 TO nv:v$(i)=b$:NEXT:RETURN 1000 PRINT"{home*2}{clear}":GOSUB 6000 1010 nc=1:IF PEEK(213)=79 THEN nc=3 1020 nv=(nc+1)*16-1:GOSUB 2000:b$="{space*19}":DIMv$(nv) 1100 np=0:sl=1:v$(0)="next page":PRINT"{clear}{down}{reverse on}"he$ 1110 sl=sl+np:np=ma-sl+1:IF np>nv THEN np=nv 1120 IF np=0 THEN 3000 1130 GOSUB 900:FOR i=1 TO np:v$(i)=pr$(sl+i-1):NEXT 1140 GOSUB 100:IF cl+rl=0 THEN 1110 1150 GOTO 5000 2000 GOSUB 2900:ma=0 2010 OPEN 15,un,15,"i"+dr$:GOSUB 10 2020 OPEN 1,un,3,"$"+dr$ 2030 SYS 896 2040 fo=ASC(in$):IF (fo AND 3)=1 THEN 2100 2050 CLOSE 1:CLOSE 15:PRINT"bad disk form at":END 2100 he$=MID$(in$,143,16) 2110 IF fo>1 THEN se=18:he$=he$+", 1541/4040 format":GOTO 2200 2120 IF fo=1 THEN se=19:he$=he$+", 2040 format" 2200 DIM pr$(se*8):FOR i=1 TO se:SYS 896 2210 FOR j=1 TO 254 STEP 32:a=ASC(MID$(in$,j)) AND 127 2220 IF a=2 THEN ma=ma+1:pr$(ma)=MID$(in$,j+3,16) 2230 NEXT j 2240 IF st THEN i=se 2250 NEXT i 2260 CLOSE 1:CLOSE 15:RETURN 2900 un=8:dr=0:dr$="0" 2910 RETURN 2920 PRINT"unit #{space*2}";un;:INPUT"{left*4}";un 2930 PRINT"drive #{space*2}";dr;:INPUT"{left*4}";dr:IF dr*(dr-1) THEN 2930 2940 dr$=STR$(dr):RETURN 3000 GOSUB 900:PRINT"{clear}{down}no more programs on disk.{space*2}options are:" 3020 v$(0)="see new disk":v$(2)="restart this disk":v$(4)="quit" 3030 GOSUB 100:IF rl=0 THEN RUN 3040 IF rl=2 THEN 1100 3050 PRINT"{clear}":END 5000 PRINT"{clear}{down*2}load";CHR$(34);v$(rl+16*cl);CHR$(34);",";un:PRINT"{down*4}run{home}"; 5010 IF xa=214 THEN POKE 631,13:POKE 632,13:POKE xb,2:END 5020 POKE 623,13:POKE 624,13:POKE 158,2:END 6000 in$="zz":FOR i=1 TO 6:in$=in$+in$:NEXT 6010 in$=MID$(in$,2):in$=in$+in$ 6020 IF PEEK(65535)=255 THEN xa=214:xb=198:GOTO 6040 6030 xa=216:xb=158 6040 FOR i=896 TO 929:READ x$:IF LEFT$(x$,1)<>"a" THEN 6060 6050 x$=STR$(VAL(RIGHT$(x$,LEN(x$)-1))+3*(xa=216)) 6060 POKE i,VAL(x$):NEXT 6070 RETURN 6080 DATA 160,2,177,a45,153,a137,0,200,192,6,208,246,162 6090 DATA 1,32,198,255,32,228,255,164,a142,145,a140,200 6100 DATA 132,a142,196,a139,208,242,76,204,255 stop tok64 (bastext 1.0)