5 DIM FSAVE$(20),FLOAD$(20),FL$(40),FLL$(20),DELETE$(118),EXPAND$(102),N$(13),FILL$(230),CLEAR$(26)›10 DIM PPB(7),BPL(7),MXW(7),LPS(7),COL(11),CL(3)›15 A=PEEK(106):TOP=A-40:SP=TOP+8:SC=SP*256:DL=256*TOP:SCROLL=DL+600:POKE 106,TOP›20 X=16:ICCOM=834:ICBADR=836:ICBLEN=840:GRAPHICS 0:SCON=PEEK(559):F=1670:K4=4096:N$="No equivalent"›25 C=707:FOR I=0 TO 7:IF I/2=INT(I/2) THEN C=C+1:IF C=711 THEN C=712›30 COL(I)=C:NEXT I:CL(0)=0:CL(1)=85:CL(2)=170:CL(3)=255:FMS=ADR("hhhชLVไ")›35 RESTORE 770:FOR I=0 TO 7:READ W,N,C,T:PPB(I)=W:BPL(I)=N:MXW(I)=C:LPS(I)=T:NEXT I:POKE 16,112:GOTO 315›40 OPEN #1,4,0,FL$:GET #1,MD:GET #1,WD:GET #1,LLO:GET #1,LHI:LN=LLO+256*LHI:SZ=WD*LN›45 FOR I=0 TO 6 STEP 2:GET #1,N:POKE COL(I),N:NEXT I›50 POKE ICBADR+X+1,SH:POKE ICBADR+X,SL:POKE ICBLEN+X+1,1+INT(SZ/256):POKE ICBLEN+X,0›55 POKE ICCOM+X,7:I=USR(FMS,X):CLOSE #1:RETURN ›60 OPEN #1,8,0,"D1:TEMPFILE.PIX":PUT #1,M:PUT #1,WIDE:PUT #1,LLO:PUT #1,LHI›65 FOR I=0 TO 6 STEP 2:PUT #1,PEEK(COL(I)):NEXT I:POKE PEEK(1688)+256*PEEK(1689),PEEK(1690)›70 POKE ICBADR+X+1,SH:POKE ICBADR+X,SL:POKE ICBLEN+X+1,1+INT((LINE*WIDE)/256):POKE ICBLEN+X,0›75 POKE ICCOM+X,11:I=USR(FMS,X):CLOSE #1:RETURN ›80 IF ((LINE*WIDE-PIX)3 THEN 185›195 DI=4*T+DI:IF DI/2=INT(DI/2) THEN POKE COL(DI),PEEK(COL(DI))-2+256*(PEEK(COL(DI))<2):GOTO 185›200 POKE COL(DI),PEEK(COL(DI))+2-256*(PEEK(COL(DI))>253):GOTO 185›205 FLL$=FL$:FOR I=1 TO LEN(FL$):N=ASC(FL$(I,I)):ON N=58 GOSUB 245:NEXT I:FL$=FLL$›210 FLL$=FL$:FOR I=1 TO LEN(FL$):N=ASC(FL$(I,I)):ON N=46 GOSUB 250:NEXT I:FL$=FLL$›215 IF LEN(FL$)>8 THEN FL$=FL$(1,8)›220 IF LEN(FL$)<1 THEN 265›225 N=ASC(FL$(1,1)):IF N>90 OR N<65 THEN 260›230 IF LEN(FL$)<2 THEN GOTO 240›235 FOR I=2 TO LEN(FL$):N=ASC(FL$(I,I)):ON (N>90 OR N<65) AND (N>57 OR N<48) GOTO 255:NEXT I›240 FLL$="D1:":FLL$(4)=FL$:N=0:RETURN ›245 FLL$=FL$(I+1,LEN(FL$)):RETURN ›250 FLL$=FL$(1,I-1):RETURN ›255 POP :? "}":? "Illegal characters in ";FL$:GOTO 265›260 ? "}":? FL$;" must start with a capital":? "letter.":GOTO 265›265 ? "Let's try that name again.":N=1:RETURN ›270 TRAP 275:OPEN #1,4,0,FL$:N=0:CLOSE #1:RETURN ›275 ? :? FL$;" isn't on disk in":? "drive 1":? "Insert disk with ";FL$;"and":? "press RETURN.":CLOSE #1›280 ? "Or to try another file name, press anyother key."›285 ON PEEK(753)<>3 GOTO 285:GOSUB 635:ON N=12 GOTO 270:N=1:RETURN ›290 TRAP 310:OPEN #1,4,0,FL$:? FL$;" is already on disk.":? "Unless you change the name, the old"›295 ? "file will be lost. To change the namepress RETURN":? "Or press any other key to continue.":CLOSE #1›300 ON PEEK(753)<>3 GOTO 300:GOSUB 635:ON N=12 GOTO 305:N=0:RETURN ›305 N=I:RETURN ›310 CLOSE #1:N=0:RETURN ›315 ? "} ำใ๒ๅๅ๎โ๙๔ๅ๒":? :? :? ›320 GOSUB 695:? :? "What file should hold your finished screen? (Eight characters)":POKE 764,255:INPUT FSAVE$›325 FL$=FSAVE$:GOSUB 205:ON N GOTO 320:FSAVE$=FLL$:FSAVE$(LEN(FLL$)+1)=".PIX"›330 FL$=FSAVE$:GOSUB 290:ON N GOTO 320›335 FLOAD$="":? :? "Would you like to edit a screen you have already saved? (Y or N) "›340 GOSUB 635:ON N=35 GOTO 390:ON N=43 GOTO 345:GOTO 340›345 ? :? "What is the name of the saved screen file? ":POKE 764,255:INPUT FLOAD$›350 FL$=FLOAD$:GOSUB 205:ON N=0 GOTO 355:GOTO 335›355 FLOAD$=FLL$:FLOAD$(LEN(FLL$)+1)=".PIX"›360 FL$=FLOAD$:GOSUB 270:ON N GOTO 335:OPEN #1,4,0,FLOAD$:GET #1,MD:GET #1,WD:GET #1,LLO:GET #1,LHI›365 CLOSE #1:FLOAD=1:LN=LLO+256*LHI›370 ? :? FLOAD$;" was saved as:":? "Mode ";MD;",":? "with ";LN;" lines":? "of ";WD;" characters per line."›375 ? "If you wish to ใ่แ๎็ๅ these parameterspress RETURN.":? "To leave them ๕๎ใ่แ๎็ๅไ press any other key."›380 ON PEEK(753)<>3 GOTO 380:GOSUB 635:IF N=12 THEN 395›385 M=MD:M8=M-8:WIDE=WD:LINE=LN:GOTO 445›390 FLOAD=0›395 ? :? "What Antic made will you work in?":? :? "Antic","Graphics":? 8,3:? 9,4:? "A (10)",5:? "B (11)",6›400 ? "C (12)",N$:? "D (13)",7:? "E (14)",N$:? "F (15)",8:POKE 764,255›405 TRAP 405:OPEN #1,4,0,"K:":GET #1,N:CLOSE #1:ON N<56 OR (N>57 AND N<65) OR N>70 GOTO 405›410 M=N-48:M=M-7*(M>9):M8=M-8›415 ? :? "How wide a line?":? " (Minimum ";BPL(M8);" bytes":? " maximum ";MXW(M8);" bytes)"›420 POKE 764,255:TRAP 420:INPUT WIDE:WIDE=INT(WIDE):GOSUB 640:GOSUB 745›425 ? :? "How many lines do you want to edit?":? "(Minimum ";LPS(M8);", Maximum ";MXL;")"›430 TRAP 430:INPUT LINE›435 LINE=INT(LINE):ON LINE<=MXL AND LINE>=LPS(M8) GOTO 440:LINE=MXL*(LINE>MXL)+LPS(M8)*(LINEK4)*(K4-INT(K4/WIDE)*WIDE):SH=INT(SC/256):SL=SC-256*SH›475 POKE 1670,WIDE-1:POKE 1674,LLO-1+256*(LLO=0):POKE 1675,LHI-(LLO=255)›480 POKE 1678,BPL(M8)-1:POKE 1680,LPS(M8)-1:POKE 1692,CL(3):POKE 1693,PPB(M8):POKE 1698,LPS(M8):POKE 1699,WIDE›485 GOSUB 755:GOSUB 490:GOSUB 505:GOSUB 650:GOSUB 530:ON FLOAD GOSUB 500:GOTO 110›490 OPEN #1,4,0,"D1:CLEARS.SUB":FOR I=1 TO 26:GET #1,N:CLEAR$(I,I)=CHR$(N):NEXT I:CLOSE #1›495 C=USR(ADR(CLEAR$),SP):RETURN ›500 T=SZ:FL$=FLOAD$:GOSUB 40:SZ=T:RETURN ›505 DL4=DL+4:DL5=DL+5:FOR I=0 TO 2:POKE DL+I,112:NEXT I:C=INT(SC/256):N=SC-C*256›510 FOR I=1686 TO 1688 STEP 2:POKE I,N:POKE I+1,C:NEXT I:N=0›515 FOR I=DL+3 TO DL+3*LPS(M8) STEP 3:C=SC+N*WIDE:POKE I,64+M:T=INT(C/256)›520 POKE I+2,T:POKE I+1,C-256*T:N=N+1:NEXT I›525 POKE I,65:POKE I+1,0:POKE I+2,DL/256:RETURN ›530 OPEN #1,4,0,"D:SCROLL.SUB":N=INT(SCROLL/256):C=SCROLL-256*N›535 POKE ICBADR+X+1,N:POKE ICBADR+X,C:POKE ICBLEN+X+1,3:POKE ICBLEN+X,0›540 POKE ICCOM+X,7:I=USR(FMS,X):CLOSE #1›545 POKE 560,0:POKE 561,DL/256:CLOSE #1:RETURN ›550 POKE PEEK(1688)+256*PEEK(1689),PEEK(1690):GOSUB 60:GRAPHICS 0:POKE 764,255›555 ? "Screen is saved as D1:TEMPFILE.SCR":? :? "Do you want to save the screen as":? FSAVE$;"? (Y or N)"›560 GOSUB 635:ON N<>43 AND N<>35 GOTO 560:IF N=43 THEN GOSUB 610:GOTO 570›565 FSAVE=0›570 ? :? "Do you want to quit? (Y or N)":POKE 764,255›575 GOSUB 635:ON N<>43 AND N<>35 GOTO 575:ON N=35 GOTO 580:ON N=43 GOTO 605›580 ? :? "To return to edit the same screen, press ฯะิษฯฮ":? :? "To start SCREENBYTER over, press ำิมาิ"›585 OPT=PEEK(53279):ON ((OPT=6)+(2*(OPT=3))) GOTO 590,595:GOTO 585›590 POKE 106,A:GRAPHICS 0:GOTO 20›595 POKE 106,TOP:FL$="D1:TEMPFILE.PIX":IF FSAVE=1 THEN FL$=FSAVE$›600 GOSUB 755:GOSUB 40:GOSUB 505:POKE 560,0:POKE 561,DL/256:GOTO 110›605 POKE 106,A:POKE 764,255:GRAPHICS 0:END ›610 FSAVE=1:TRAP 615:OPEN #2,4,0,FSAVE$:CLOSE #2:XIO 36,#2,0,0,FSAVE$:XIO 33,#2,0,0,FSAVE$:GOTO 620›615 CLOSE #2›620 FL$="D1:TEMPFILE.PIX":FLL$=FSAVE$(4,LEN(FSAVE$)):FL$(17)=FLL$›625 XIO 32,#1,0,0,FL$:RETURN ›630 ON PEEK(753)<>3 GOTO 630:RETURN ›635 C=PEEK(764):N=C-64*INT(C/64):RETURN ›640 IF WIDE>=BPL(M8) AND WIDE<=MXW(M8) THEN RETURN ›645 WIDE=MXW(M8)*(WIDE>MXW(M8))+BPL(M8)*(WIDE0 THEN SHIF=3:POKE 1692,CL(SHIF)›730 RETURN ›735 N=(VERS=255):SOUND 0,200*N,14*N,4*N:RETURN ›740 FOR I=0 TO 10:NEXT I:RETURN ›745 IF BPL(M8)=MXW(M8) THEN MXL=LPS(M8):RETURN ›750 MXL=INT(K4/WIDE):RETURN ›755 FOR I=1677 TO 1681 STEP 2:POKE I,0:NEXT I:FOR I=1686 TO 1688 STEP 2:POKE I,SL:POKE I+1,SH:NEXT I›760 N=128+64*(PPB(M8)=2):POKE 1696,N:POKE 1701,N›765 POKE 1672,0:POKE 1676,0:VERS=0:GOSUB 735:POKE 1695,VERS:RETURN ›770 DATA 2,10,170,24,1,10,85,48,2,20,85,48,1,20,42,96›775 DATA 1,20,21,192,2,40,42,96,2,40,40,192,1,40,40,192›