diff --git a/README.md b/README.md index 901435e..329c153 100644 --- a/README.md +++ b/README.md @@ -2613,93 +2613,93 @@ TODO: FIXME 13. `LIST` ```Basic -4864 ONERR GOTO 9000 -1 REM Fantavision (C) 1985 by Scott Anderson - 9/26/85 -3 HIMEM: 2 * 4096 -5 POKE 1012,0 -9 HOME: VTAB 23:HTAB 4:PRINT "PRESS THE SPACE BAR TO CHANGE THE": - HTAB 3:PRINT "DRAWING TOOL OR TO MAKE A SHOW DISK."; -10 GOTO 5000 -100 HTAB 11-2*(I>4): PRINT LEF$( I$(I),1)" - "I$(I):RETURN -150 HTAB 2:FOR I = 1 TO 38: PRINT " ";:NEXT: RETURN -180 HTAB 10 - (LEN( I$( ID ) ) ) / 2: PRINT "THE DRAWING TOOL IS A "I$(ID)".":RETURN -400 REM Get Input Device -410 TEXT: HOME: HTAB 9:PRINT "= [ FANTAVISION MENU ] =":PRINT:GOSUB 150 -430 FOR I = 1 to NI: VTAB 4 + 2*I + 2*(I>4):GOSUB 100:NEXT -440 VTAB 22: CALL EB: PRINT: HTAB 13:PRINT "YOU CHOICE:";: GET A$: A=ASC(A$): A=A-32*(A>96):A$=CHR$(A):PRINT A$; -445 I = NI -450 IF A <> ASC( I$(I) ) THEN I=I-1:ON I > 0 GOTO 450:PRINT CHR$(7);:GOTO 440 -460 ON I > 4 GOTO 490:ID = I: D = ND -470 IF DB%(D,0) <> ID THEN D=D-1:ON D > 0 GOTO 470 -480 IF D THEN GOSUB 500:ON SL > 0 GOTO 490:VTAB 23:HTAB 5:PRINT "WHAT SLOT IS THE " I$(ID)" IN? :";: GET A$:SL = VAL( A$ ):PRINT SL;:ON NOT SL GOTO 440 -490 RETURN -500 B=1:SL=7 -510 IF PEEK(12*4096 + SL*256 + DB%(0,B)) = DB%(D,B) THEN B=B+1: ON B < 5 GOTO 510:GOTO 580 -520 B = 1: SL = SL - 1:ON SL > 0 GOTO 510 -580 RETURN -600 L = DS*16 + 49292:X = PEEK( L - 3 ): X = PEEK( L - 1 ):REM Dr2 on -610 X = PEEK( L ): DD = 2:FOR I = 1 to 20: IF PEEK(L) = X THEN NEXT I:DD = 1 -630 X = PEEK( L - 4 ):RETURN -800 REM -890 RETURN -900 REM -990 RETURN -5000 REM Start of program -5020 LS = 4*256 - 2: IL = LS + 1 -5040 EB = 64578 -5050 Z = 43008: IO = 48249: BF = 48896: CA = 776: CP = 789 -5060 DS = PEEK( IO + 1 ) / 16 -5070 GOSUB 600 -5100 DATA 6,MOUSE,GRAPICS TABLET,KOALA PAD,JOY STICK,CREATE A SHOW DISK,QUIT THIS MENU -5110 READ NI:FOR I = 1 TO NI: READ I$(I):NEXT -5200 DATA 2 -5201 DATA 0, 5, 7, 11, 12 -5210 DATA 1, 56, 24, 1, 32 -5211 DATA 2,120,255,200,160 -5230 READ ND: FOR D = 0 TO ND: FOR B = 0 TO 4: READ DB%(D,B):NEXT:NEXT -5300 D = ND -5310 GOSUB 500: IF SL=0 THEN D=D-1:ON D > 0 GOTO 5310 -5320 IF D THEN ID = DB%(D,0) -5340 ID = ID+4 * NOT ID -5600 VTAB 22:GOSUB 180 -6000 A = PEEK( 49152 ): IF A > 127 THEN 6800 -6010 W = W + 1: IF W < 150 GOTO 6000: GOTO 6900 -6800 GOSUB 400:ON I = 5 GOTO 7000 -6820 IF QF THEN 8000 -6840 HOME: VTAB 15: GOSUB 180 -6900 ID = ID - (ID = 4) -6920 POKE LS-1,255 * (DD=2): POKE LS,SL:POKE IL,ID-1 -6940 CALL 768 -7000 :TEXT:HOME:VTAB 3:HTAB 9:PRINT "=[ CREATE A SHOW DISK ]=" -7010 VTAB 22:CALL EB: PRINT: PRINT " :::::::: PRESS 'ESC' TO EXIT ::::::::" -7020 VTAB 6:HTAB 3:PRINT "TO CREATE A SHOW DISK, THIS PROGRAM": HTAB 3:PRINT "MUST COPY SOME FILES FROM THE MOVIE":HTAB 3:PRINT "MATINEED ON SIDE II OF FANTAVISION." -7030 GOSUB 150 -7050 ON DD = 1 GOTO 7100:VTAB 13:HTAB 3:PRINT "INSERT THE MATINEE IN DRIVE 1," -7060 HTAB 7:PRINT "AND A BLANK DISK IN DRIVE 2." -7070 PRINT:HTAB 9:PRINT "PRESS RETURN WHEN READY:";:GET A$:ON A$ = CHR$(27) GOTO 7900:GOTO 7200 -7100 VTAB 14:HTAB 8:PRINT "INSERT BLANK SHOW DISKETTE":HTAB 7:PRINT "IN DRIVE 1 AND PRESS RETURN:";:GET A$ -7120 ON A$ = CHR$(27) GOTO 7900 -7200 POKE ZP + 2, 2:POKE ZP + 5,96 + 128*(DD=2):POKE 0,0:POKE IO+2,DD:CALL CA:IF PEEK(0) THEN 7700 -7220 B = PEEK( BF + 4 ):ON B < 241 or PEEK( BF + 2 ) <> 3 or PEEEK( BF + 36 ) <> 13 GOTO 7700 -7230 B = B - 240: N$ = "": FOR I = 1 TO B: N$ = N$ + CHR$( PEEK( BF + 4 + I ) ):NEXT -7240 IF N$ = "FANTAVISION" THEN POKE 0, 144:GOTO 9900 -7250 VTAB 18:HTAB 13 - B / 2: PRINT "DESTROY "N$"? (Y/N):"; -7300 GET A$: ON A$ <> "Y" AND A$ <> "y" GOTO 7900:VTAB 18:HTAB 1:PRINT SPC(40) -7700 QF + 1: POKE 0,0: CALL CP: IF PEEK(0) THEN 9900 -7900 GOTO 6800 -8000 HOME: VTAB 10, HTAB 9:PRINT "INSERT THE DESIRED DISK,":PRINT:HTAB 12:PRINT "THEN PRESS RETURN:";:GET A$ -8010 PRINT: CALL 12*4096 + DS*256 -9000 Error trap -9010 RUN -9900 REM Dos Errors -9910 ER = PEEK( 0 ):POKE 0,0:VTAB 12:CALL EB:PRINT CHR$(7):FLASH -9920 IF ER=39 THEN HTAB 12:PRINT "UNABLE TO FORMAT.":GOTO 9990 -9930 IF ER=43 OR ER=16 THEN HTAB 13:PRINT "WRITE PROTECTED.":GOTO 9990 -9940 IF ER=51 THEN HTAB 13:PRINT "DRIVE TOO SLOW.":GOTO 9990 -9950 IF ER=52 THEN HTAB 13:PRINT "DRIVE TOO FAST.":GOTO 9990 -9970 IF ER=144 THEN HTAB 8:PRINT "CAN'T DESTROY FANTAVISION!":GOTO 9990 -9980 HTAB 15:PRINT "DRIVE ERROR." -9990 NORMAL:HTAB 16:HTAB 9:PRINT "PRESS ANY KEY FOR MENU:";:GET A$:GOTO 5400 + 4864 ONERR GOTO 9000 + 1 REM Fantavision (C) 1985 by Scott Anderson - 9/26/85 + 3 HIMEM: 2 * 4096 + 5 POKE 1012,0 + 9 HOME: VTAB 23:HTAB 4:PRINT "PRESS THE SPACE BAR TO CHANGE THE": + HTAB 3:PRINT "DRAWING TOOL OR TO MAKE A SHOW DISK."; + 10 GOTO 5000 + 100 HTAB 11-2*(I>4): PRINT LEF$( I$(I),1)" - "I$(I):RETURN + 150 HTAB 2:FOR I = 1 TO 38: PRINT " ";:NEXT: RETURN + 180 HTAB 10 - (LEN( I$( ID ) ) ) / 2: PRINT "THE DRAWING TOOL IS A "I$(ID)".":RETURN + 400 REM Get Input Device + 410 TEXT: HOME: HTAB 9:PRINT "= [ FANTAVISION MENU ] =":PRINT:GOSUB 150 + 430 FOR I = 1 to NI: VTAB 4 + 2*I + 2*(I>4):GOSUB 100:NEXT + 440 VTAB 22: CALL EB: PRINT: HTAB 13:PRINT "YOU CHOICE:";: GET A$: A=ASC(A$): A=A-32*(A>96):A$=CHR$(A):PRINT A$; + 445 I = NI + 450 IF A <> ASC( I$(I) ) THEN I=I-1:ON I > 0 GOTO 450:PRINT CHR$(7);:GOTO 440 + 460 ON I > 4 GOTO 490:ID = I: D = ND + 470 IF DB%(D,0) <> ID THEN D=D-1:ON D > 0 GOTO 470 + 480 IF D THEN GOSUB 500:ON SL > 0 GOTO 490:VTAB 23:HTAB 5:PRINT "WHAT SLOT IS THE " I$(ID)" IN? :";: GET A$:SL = VAL( A$ ):PRINT SL;:ON NOT SL GOTO 440 + 490 RETURN + 500 B=1:SL=7 + 510 IF PEEK(12*4096 + SL*256 + DB%(0,B)) = DB%(D,B) THEN B=B+1: ON B < 5 GOTO 510:GOTO 580 + 520 B = 1: SL = SL - 1:ON SL > 0 GOTO 510 + 580 RETURN + 600 L = DS*16 + 49292:X = PEEK( L - 3 ): X = PEEK( L - 1 ):REM Dr2 on + 610 X = PEEK( L ): DD = 2:FOR I = 1 to 20: IF PEEK(L) = X THEN NEXT I:DD = 1 + 630 X = PEEK( L - 4 ):RETURN + 800 REM + 890 RETURN + 900 REM + 990 RETURN + 5000 REM Start of program + 5020 LS = 4*256 - 2: IL = LS + 1 + 5040 EB = 64578 + 5050 Z = 43008: IO = 48249: BF = 48896: CA = 776: CP = 789 + 5060 DS = PEEK( IO + 1 ) / 16 + 5070 GOSUB 600 + 5100 DATA 6,MOUSE,GRAPICS TABLET,KOALA PAD,JOY STICK,CREATE A SHOW DISK,QUIT THIS MENU + 5110 READ NI:FOR I = 1 TO NI: READ I$(I):NEXT + 5200 DATA 2 + 5201 DATA 0, 5, 7, 11, 12 + 5210 DATA 1, 56, 24, 1, 32 + 5211 DATA 2,120,255,200,160 + 5230 READ ND: FOR D = 0 TO ND: FOR B = 0 TO 4: READ DB%(D,B):NEXT:NEXT + 5300 D = ND + 5310 GOSUB 500: IF SL=0 THEN D=D-1:ON D > 0 GOTO 5310 + 5320 IF D THEN ID = DB%(D,0) + 5340 ID = ID+4 * NOT ID + 5600 VTAB 22:GOSUB 180 + 6000 A = PEEK( 49152 ): IF A > 127 THEN 6800 + 6010 W = W + 1: IF W < 150 GOTO 6000: GOTO 6900 + 6800 GOSUB 400:ON I = 5 GOTO 7000 + 6820 IF QF THEN 8000 + 6840 HOME: VTAB 15: GOSUB 180 + 6900 ID = ID - (ID = 4) + 6920 POKE LS-1,255 * (DD=2): POKE LS,SL:POKE IL,ID-1 + 6940 CALL 768 + 7000 :TEXT:HOME:VTAB 3:HTAB 9:PRINT "=[ CREATE A SHOW DISK ]=" + 7010 VTAB 22:CALL EB: PRINT: PRINT " :::::::: PRESS 'ESC' TO EXIT ::::::::" + 7020 VTAB 6:HTAB 3:PRINT "TO CREATE A SHOW DISK, THIS PROGRAM": HTAB 3:PRINT "MUST COPY SOME FILES FROM THE MOVIE":HTAB 3:PRINT "MATINEED ON SIDE II OF FANTAVISION." + 7030 GOSUB 150 + 7050 ON DD = 1 GOTO 7100:VTAB 13:HTAB 3:PRINT "INSERT THE MATINEE IN DRIVE 1," + 7060 HTAB 7:PRINT "AND A BLANK DISK IN DRIVE 2." + 7070 PRINT:HTAB 9:PRINT "PRESS RETURN WHEN READY:";:GET A$:ON A$ = CHR$(27) GOTO 7900:GOTO 7200 + 7100 VTAB 14:HTAB 8:PRINT "INSERT BLANK SHOW DISKETTE":HTAB 7:PRINT "IN DRIVE 1 AND PRESS RETURN:";:GET A$ + 7120 ON A$ = CHR$(27) GOTO 7900 + 7200 POKE ZP + 2, 2:POKE ZP + 5,96 + 128*(DD=2):POKE 0,0:POKE IO+2,DD:CALL CA:IF PEEK(0) THEN 7700 + 7220 B = PEEK( BF + 4 ):ON B < 241 or PEEK( BF + 2 ) <> 3 or PEEEK( BF + 36 ) <> 13 GOTO 7700 + 7230 B = B - 240: N$ = "": FOR I = 1 TO B: N$ = N$ + CHR$( PEEK( BF + 4 + I ) ):NEXT + 7240 IF N$ = "FANTAVISION" THEN POKE 0, 144:GOTO 9900 + 7250 VTAB 18:HTAB 13 - B / 2: PRINT "DESTROY "N$"? (Y/N):"; + 7300 GET A$: ON A$ <> "Y" AND A$ <> "y" GOTO 7900:VTAB 18:HTAB 1:PRINT SPC(40) + 7700 QF + 1: POKE 0,0: CALL CP: IF PEEK(0) THEN 9900 + 7900 GOTO 6800 + 8000 HOME: VTAB 10, HTAB 9:PRINT "INSERT THE DESIRED DISK,":PRINT:HTAB 12:PRINT "THEN PRESS RETURN:";:GET A$ + 8010 PRINT: CALL 12*4096 + DS*256 + 9000 Error trap + 9010 RUN + 9900 REM Dos Errors + 9910 ER = PEEK( 0 ):POKE 0,0:VTAB 12:CALL EB:PRINT CHR$(7):FLASH + 9920 IF ER=39 THEN HTAB 12:PRINT "UNABLE TO FORMAT.":GOTO 9990 + 9930 IF ER=43 OR ER=16 THEN HTAB 13:PRINT "WRITE PROTECTED.":GOTO 9990 + 9940 IF ER=51 THEN HTAB 13:PRINT "DRIVE TOO SLOW.":GOTO 9990 + 9950 IF ER=52 THEN HTAB 13:PRINT "DRIVE TOO FAST.":GOTO 9990 + 9970 IF ER=144 THEN HTAB 8:PRINT "CAN'T DESTROY FANTAVISION!":GOTO 9990 + 9980 HTAB 15:PRINT "DRIVE ERROR." + 9990 NORMAL:HTAB 16:HTAB 9:PRINT "PRESS ANY KEY FOR MENU:";:GET A$:GOTO 5400 ``` NOTES: