8-Bit Software Online Conversion

Agog Ago Title Screen - Listing

20REM AGOG1 40REM all by JS Swiszczowski 80: 90final=TRUE 420ADD=&70:OLD=&72:NEW=&74:OLD0=&76:NE W0=&78:ROWS=&80 460!ADD=&280 560DIM c 100 580L%=31:PROCass 590FOR M%=2 TO 0 STEP -1 610L%=31:H%=9:r%=49:?ROWS=H% 620PROCold(2,2):F%=2^(2-M%):Q%=M%*12 630MODE M% 632PRINTTAB(F%*10-10,30)"Press ";:COLO UR135:COLOUR0:PRINT"SPACE";CHR$20;" for menu";:VDU30 635MOVE 64*(10*(F%-1)+6)DIV F%,64:DRAW 8*(80*(F%-1)+87)DIV F%,64 640IF M%=1 THEN VDU19,3,6;0; 660IF M%=2 THEN FOR i%=8 TO 15:VDU19,i %,(16-i%)MOD8;0;:NEXT 740PROCagog(28,416,.5) 760PROCmove 780PROClots 800TIME=0:REPEATUNTIL TIME>200 805c?44=114-c?44 806c?53=114-c?53 810NEXT M% 820GOTO 9000 1020: 1060DEFPROCass 1140IF L%*8>256 THEN STOP 1180FORI%=0TO2STEP2:P%=c 1220[OPTI% 1260LDY #(L%*8)MOD256:BNE MAIN:LDA #1:S TA MLOC+1:STA MLOC2+1 1300.MAIN 1340LDA OLD0:CLC 1380.MLOC ADC#1 ½ 0 or 1 1420STA OLD 1460LDA OLD0+1:ADC#0:STA OLD+1 1500LDA NEW0:CLC 1540.MLOC2 ADC#1 ½ 0 or 1 1580STA NEW 1620LDA NEW0+1:ADC#0:STA NEW+1 1660LDX ROWS 1700.L1:LDY #(L%*8-1)MOD256 1780.L2:LDA (OLD),Y:AND #255:STA (NEW), Y:DEY:BNE L2 2020LDA (OLD),Y:AND#255:STA (NEW),Y 2140LDA OLD:CLC:ADC ADD:STA OLD 2300LDA OLD+1:ADC ADD+1:STA OLD+1 2420LDA NEW:CLC:ADC ADD:STA NEW 2580LDA NEW+1:ADC ADD+1:STA NEW+1 2700DEX:BNE L1 2780RTS:]NEXT 2820ENDPROC 2860: 2900DEFPROCbox 2940MOVEX0%*16,1023-Y0%*32:GCOL0,2-(M%= 2) 2980DRAWX0%*16,1024-(Y0%+H%)*32 3020DRAW(X0%+L%)*16-4,1024-(Y0%+H%)*32 3060DRAW(X0%+L%)*16-4,1023-Y0%*32 3100DRAWX0%*16,1023-Y0%*32 3140ENDPROC 3180: 3220DEFPROClots 3221L%=31:PROCbox 3222LOCAL B%,T%:B%=TRUE 3225PROCold(1,2) 3240PROCass:PROCbox 3280c?53=73:c?44=73 3300T%=25:X1%=80-L%:Y1%=2 3420REPEAT:PROCc 3620Y1%=Y1%+6:X1%=X1%-16 3700z=INKEY(T%) 3740UNTIL X1%<0 OR Y1%+H%>32 3820ENDPROC 4300: 4340DEFPROCagog(x0%,y0%,f) 4380LOCAL A%,B%,J%,N%,R%,X%,Y%,F$,X$ 4420RESTORE 5620 4460R%=3:C%=1:R%=3:N%=1+M%*(M%+1) 4500B%=TRUE 4540REPEAT:A%=TRUE:K%=85 4580GCOLR%,C%:C%=C%MOD N% +1 4620READ X$,Y%:F$=LEFT$(X$,1) 4660IF INSTR("MPE",F$) THEN X%=EVAL(MID $(X$,2)):PROCdec ELSE X%=VAL(X$) 4700IF A% THEN PLOT K%,x0%+X%*f,y0%+Y%* f 4740X1%=r%:Y1%=Y0%:PROCc:Y1%=20:PROCc:X 1%=1:PROCc 4780B%=FALSE 4820UNTIL F$="E" 4822ENDPROC 4824: 4828DEFPROCmove 4860B%=TRUE 4880Y1%=20:PROCold(r%-1,Y0%):L%=32:PROC ass 4900FOR J%=-1 TO 1 STEP2 4910IF J%=1 THEN Y1%=2:PROCold(r%,20) 4940*FX21 5020FOR Z%=1 TO r%-1:X1%=-Z%*J%-r%*(J%= 1) 5060IF INKEY(7) 5100PROCc 5220NEXT:NEXT 5260ENDPROC 5300: 5340DEFPROCc 5380!NEW0=&2FFF+Y1%*640+X1%*8 5400SOUND1,1,X1%+Y1%+Q%,1 5404SOUND2,2,X1%-Y1%+Q%,1 5408SOUND3,3,Y1%-X1%+Q%,1 5420IF B% THEN 5520 5460c?53=114-c?53 5500c?44=114-c?44 5520*FX19 5540CALL c 5560IF INKEY(-99) THEN 9000 5580ENDPROC 5620: 5660DATA M40,540,M140,600,208,980 5700DATA M240,640,300,680 5740DATA M112,700,M260,770,260,712 5780DATA M360,680,M392,552,460,600,500, 960 5820DATA M380,900,364,800,468,740 5860DATA M576,800,M576,908,670,1000,740 ,924 5900DATA 712,808,644,732,576,800 5940DATA 576,908 5980DATA P440*f,110*f 6020DATA M360,680,M380,540,460,600,500, 960 6060DATA M380,900,360,780,470,750 6100DATA E0,0 6140: 6180DEFPROCdec 6220IF F$="M" THEN K%=4:ENDPROC 6300A%=FALSE 6340IF F$="P" THEN x0%=x0%+X%:y0%=y0%+Y % 6500ENDPROC 7000: 7010DEFPROCold(a%,b%) 7070!OLD0=&2FFF+a%*8+b%*640 7077X0%=a%:Y0%=b% 7080ENDPROC 7090: 7100DEFPROCnew(a%,b%) 7110!NEW0=&2FFF+a%*8+b%*640 7117X1%=a%:Y1%=b% 7120ENDPROC 9000: 9005*FX21 9010IF final THEN CHAIN "!MENU"