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"