1 *ALPHABET MAZE - COPYRIGHT 1984 - BY JEFFREY STANTON 2 ORG $3800 3 *** TF "D:MAZE.OBJ" 4 *ZERO PAGE EQUATES 5 SHPL EQU $F0 6 SHPH EQU $F1 7 SHPML EQU $F2 8 SHPMH EQU $F3 9 SHPMOL EQU $F4 10 SHPMOH EQU $F5 11 PMADR EQU $F6 12 MAPL EQU $F8 13 MAPH EQU $F9 14 *OTHER EQUATES 15 SCREEN EQU $8700 ; ADR OF SCREEN 16 NDLIST EQU $9400 ; ADR OF DISPLAY LIST 17 CHRSET EQU $9000 ; ADR OF CHARACTER SET 18 SETSIZ EQU 1024 19 SETVBK EQU $E45C 20 XITVBK EQU $E462 21 STICK EQU $278 22 CHBAS EQU $2F4 ; CHARACTER SET BASE 23 COLOR4 EQU $2C8 24 *PLAYER MISSILE EQUATES 25 PMBASE EQU $D407 26 PDATA EQU $8800 ; ADR OF P/M AREA 27 GRACTL EQU $D01D 28 DMACTL EQU $22F 29 HITCLR EQU $D01E 30 SIZEP0 EQU $D008 ; PLAYER SIZES 31 SIZEP1 EQU $D009 32 SIZEP2 EQU $D00A 33 SIZEP3 EQU $D00B 34 COLPM0 EQU $2C0 ; PLAYER COLORS 35 COLPM1 EQU $2C1 36 COLPM2 EQU $2C2 37 COLPM3 EQU $2C3 38 HPOSP0 EQU $D000 ; HORIZ PLAYER POSITIONS 39 HPOSP1 EQU $D001 40 HPOSP2 EQU $D002 41 HPOSP3 EQU $D003 42 P0PL EQU $D00C ; PLAYER TO PLAYER COLLISIONS 43 RANDOM EQU $D20A 44 CONSOL EQU $D01F 3800 050C0C 45 DSCRN DB $05,$0C,$0C,$0C,$0C,$0C,$0C,$0C,$06,$0F 380A 0F050C 46 DB $0F,$05,$0C,$0C,$0C,$0C,$0C,$0C,$0C,$06 3814 03050C 47 DB $03,$05,$0C,$0C,$04,$0C,$0C,$0C,$00,$0C 381E 0C000C 48 DB $0C,$00,$0C,$0C,$0C,$04,$0C,$0C,$06,$03 3828 03030F 49 DB $03,$03,$0F,$0F,$03,$05,$0C,$0C,$02,$0F 3832 0F010C 50 DB $0F,$01,$0C,$0C,$06,$03,$0F,$0F,$03,$03 383C 010A0F 51 DB $01,$0A,$0F,$0F,$09,$02,$0F,$0F,$01,$0C 3846 0C020F 52 DB $0C,$02,$0F,$0F,$01,$0A,$0F,$0F,$09,$02 3850 010C0C 53 DB $01,$0C,$0C,$0C,$0C,$02,$0F,$05,$0A,$0F 385A 0F0906 54 DB $0F,$09,$06,$0F,$01,$0C,$0C,$0C,$0C,$02 3864 030F0F 55 DB $03,$0F,$0F,$0F,$0F,$01,$0C,$02,$0F,$0F 386E 0F0F01 56 DB $0F,$0F,$01,$0C,$02,$0F,$0F,$0F,$0F,$03 3878 03050C 57 DB $03,$05,$0C,$0C,$0C,$02,$0F,$09,$06,$0F 3882 0F050A 58 DB $0F,$05,$0A,$0F,$01,$0C,$0C,$0C,$06,$03 388C 03010C 59 DB $03,$01,$0C,$0C,$06,$03,$0F,$0F,$01,$04 3896 04020F 60 DB $04,$02,$0F,$0F,$03,$05,$0C,$0C,$02,$03 38A0 03030F 61 DB $03,$03,$0F,$0F,$03,$09,$0C,$0C,$02,$03 38AA 03010C 62 DB $03,$01,$0C,$0C,$0A,$03,$0F,$0F,$03,$03 38B4 03090C 63 DB $03,$09,$0C,$06,$09,$0C,$0C,$0C,$0A,$03 38BE 03090C 64 DB $03,$09,$0C,$0C,$0C,$0A,$05,$0C,$0A,$03 38C8 090C0C 65 DB $09,$0C,$0C,$08,$0C,$0C,$0C,$0C,$0C,$0A 38D2 090C0C 66 DB $09,$0C,$0C,$0C,$0C,$0C,$08,$0C,$0C,$0A 38DC 000000 67 DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 38E6 000000 68 DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 38F0 000000 69 DS $10 3900 050C0C 70 DSCRN2 DB $05,$0C,$0C,$0C,$06,$0F,$05,$0C,$0C,$0C 390A 0C0C0C 71 DB $0C,$0C,$0C,$06,$0F,$05,$0C,$0C,$0C,$06 3914 010404 72 DB $01,$04,$04,$04,$08,$0C,$02,$05,$0C,$0C 391E 0C0C06 73 DB $0C,$0C,$06,$01,$0C,$08,$04,$04,$04,$02 3928 030303 74 DB $03,$03,$03,$03,$05,$04,$08,$00,$0C,$04 3932 040C00 75 DB $04,$0C,$00,$08,$04,$06,$03,$03,$03,$03 393C 030303 76 DB $03,$03,$03,$03,$01,$0A,$0F,$03,$0F,$09 3946 0A0F03 77 DB $0A,$0F,$03,$0F,$09,$02,$03,$03,$03,$03 3950 010A03 78 DB $01,$0A,$03,$03,$03,$0F,$05,$02,$0F,$0F 395A 0F0F01 79 DB $0F,$0F,$01,$06,$0F,$03,$03,$03,$09,$02 3964 010C02 80 DB $01,$0C,$02,$09,$08,$0C,$08,$00,$0C,$0C 396E 0C0C00 81 DB $0C,$0C,$00,$08,$0C,$08,$0A,$01,$0C,$02 3978 030F01 82 DB $03,$0F,$01,$0C,$0C,$0C,$0C,$02,$0F,$0F 3982 0F0F01 83 DB $0F,$0F,$01,$0C,$0C,$0C,$0C,$0A,$0F,$03 398C 010408 84 DB $01,$04,$08,$04,$0C,$0C,$0C,$02,$0F,$05 3996 060F01 85 DB $06,$0F,$01,$0C,$0C,$0C,$04,$0C,$04,$02 39A0 010A0F 86 DB $01,$0A,$0F,$03,$05,$0C,$0C,$08,$0C,$02 39AA 010C08 87 DB $01,$0C,$08,$0C,$0C,$06,$03,$0F,$09,$02 39B4 030F05 88 DB $03,$0F,$05,$02,$03,$05,$0C,$0C,$0C,$0A 39BE 090C0C 89 DB $09,$0C,$0C,$0C,$06,$03,$01,$06,$0F,$03 39C8 090C08 90 DB $09,$0C,$08,$08,$08,$08,$0C,$0C,$0C,$0C 39D2 0C0C0C 91 DB $0C,$0C,$0C,$0C,$08,$08,$08,$08,$0C,$0A 39DC 000000 92 DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 39E6 000000 93 DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 39F0 000000 94 DS $10 3A00 707070 95 DLIST DB $70,$70,$70,$47,$00,$87,$07,$07 3A08 070707 96 DB $07,$07,$07,$07,$07,$07,$07,$07 3A10 074100 97 DB $07,$41,$00,$94 98 *MAP CHARACTER DATA 3A14 000000 99 DCHAR DB $00,$00,$00,$00,$00,$00,$00,$00 3A1C 808080 100 DB $80,$80,$80,$80,$80,$80,$80,$80 3A24 010101 101 DB $01,$01,$01,$01,$01,$01,$01,$01 3A2C 818181 102 DB $81,$81,$81,$81,$81,$81,$81,$81 3A34 FF0000 103 DB $FF,$00,$00,$00,$00,$00,$00,$00 3A3C FF8080 104 DB $FF,$80,$80,$80,$80,$80,$80,$80 3A44 FF0101 105 DB $FF,$01,$01,$01,$01,$01,$01,$01 3A4C FF8181 106 DB $FF,$81,$81,$81,$81,$81,$81,$81 3A54 000000 107 DB $00,$00,$00,$00,$00,$00,$00,$FF 3A5C 808080 108 DB $80,$80,$80,$80,$80,$80,$80,$FF 3A64 010101 109 DB $01,$01,$01,$01,$01,$01,$01,$FF 3A6C 818181 110 DB $81,$81,$81,$81,$81,$81,$81,$FF 3A74 FF0000 111 DB $FF,$00,$00,$00,$00,$00,$00,$FF 3A7C FF8080 112 DB $FF,$80,$80,$80,$80,$80,$80,$FF 3A84 FF0101 113 DB $FF,$01,$01,$01,$01,$01,$01,$FF 3A8C FFFFFF 114 DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF 3A94 202020 115 TITLE DB $20,$20,$20,$41,$4C,$50,$48,$41,$42,$45 3A9E 54204D 116 DB $54,$20,$4D,$41,$5A,$45,$20,$20,$20,$20 3AA8 202020 117 DB $20,$20,$20,$20,$20,$20,$20,$20,$20,$20 3AB2 202020 118 DB $20,$20,$20,$20,$20,$20,$20,$20,$20,$20 3ABC 204259 119 DB $20,$42,$59,$20,$4A,$45,$46,$46,$52,$45 3AC6 592053 120 DB $59,$20,$53,$54,$41,$4E,$54,$4F,$4E,$20 121 TITLE1 122 *** AT SELECT: EASY 3AD0 000000 123 DB 0,0,0,$33,$25,$2C,$25,$23,$34,$1A,$00,$25,$21,$33,$39,0,0,0,0,0 124 *** AT HARD 3AE4 000000 125 DB 0,0,0,0,0,0,0,0,0,0,0,$28,$21,$32,$24,0,0,0,0,0 3AF8 000000 126 DS $08 127 TITLE2 128 *** AT NEXT LEVEL 3B00 000000 129 DB 0,0,0,0,0,$2E,$25,$38,$34,$00,$2C,$25,$36,$25,$2C,0,0,0,0,0 130 *VARIABLES 3B14 00 131 X0 DS 1 ; PLAYER'S MAN POSITION 3B15 000000 132 XX DS 4 ; REST OF PLAYER POSITIONS 3B19 00 133 Y0 DS 1 3B1A 000000 134 YY DS 4 ; REST OF PLAYER POSITIONS 3B1E 000000 135 XB DS 4 ; BLOCK EACH PLAYER IN 3B22 000000 136 YB DS 4 3B26 000000 137 FLAGL DS 4 ; LEGAL MOVE FLAGS FOR EACH PLAYER 3B2A 000000 138 FLAGR DS 4 3B2E 000000 139 FLAGU DS 4 3B32 000000 140 FLAGD DS 4 3B36 000000 141 RELL DS 4 ; DIRECTION WANT TO MOVE IN FLAGS 3B3A 000000 142 RELR DS 4 3B3E 000000 143 RELU DS 4 3B42 000000 144 RELD DS 4 3B46 000000 145 MFLAGL DS 4 ; MATCH FLAGS 3B4A 000000 146 MFLAGR DS 4 3B4E 000000 147 MFLAGU DS 4 3B52 000000 148 MFLAGD DS 4 3B56 00 149 TEMPX DS 1 3B57 00 150 TEMPY DS 1 3B58 000000 151 TEMPL DS 4 3B5C 000000 152 TEMPH DS 4 3B60 00 153 BLOCK DS 1 ; OFFSET IN SCREEN MEMORY OF CURRENT BLOCK 3B61 01 154 POINT0 DB 1 ; SHAPE PLAYER 0 3B62 02 155 POINT1 DB 2 3B63 03 156 POINT2 DB 3 3B64 00 157 POINT3 DB 0 3B65 000000 158 DL DS $04 ; AUTO FLAGS 3B69 000000 159 DR DS $04 3B6D 000000 160 DU DS $04 3B71 000000 161 DD DS $04 3B75 00 162 INHIBIT DB 0 ; PREVENTS OBTAINING TWO JOYSTICK DIRECTIONS 3B76 00 163 VBFLAG DB 0 ; VBLANK FINISHED FLAG $ON DIAGONAL 3B77 00 164 LFLAG DB 0 ; INDICATES WHETHER AT CENTER OF BLOCK 3B78 00 165 NUM DB 0 ; NUMBER OF DIRECTION MATCH FLAGS 3B79 00 166 PAUSE DB 0 ; PAUSE FLAG 3B7A 00 167 SLOW DB 0 ; SETS MINUS SIGN TO HALF SPEED 3B7B 00 168 HALF DB 0 ; COUNTER WHEN PLAYER MOVES AT HALF SPEED 3B7C 00 169 LEVEL DS $01 ; MAZE LEVEL 3B7D 00 170 ONCE DS $01 ; PREVENTS DOUBLE COLLISIONS @ HALF SPEED 171 *POINTERS TO PM DATA 3B7E 000810 172 SHPLO DB $00,$08,$10,$18,$20,$28,$30,$38 3B86 404850 173 DB $40,$48,$50,$58,$60,$68,$70,$78 3B8E 808890 174 DB $80,$88,$90,$98,$A0,$A8,$B0,$B8 3B96 C0C8D0 175 DB $C0,$C8,$D0,$D8,$E0 3B9B 000000 176 DS $65 177 *MAKE SURE STARTS @$2C00 178 *PLAYER MISSILE DATA 3C00 000000 179 SHAPES DB $00,$00,$00,$3C,$3C,$00,$00,$00 ; MINUS SIGN 3C08 183C66 180 DB $18,$3C,$66,$42,$7E,$42,$42,$42 ; LETTER A 3C10 7C4242 181 DB $7C,$42,$42,$7C,$42,$42,$42,$7C ; B 3C18 1E2040 182 DB $1E,$20,$40,$40,$40,$40,$20,$1E ; C 3C20 784442 183 DB $78,$44,$42,$42,$42,$42,$44,$78 ; D 3C28 7E4040 184 DB $7E,$40,$40,$7C,$40,$40,$40,$7E ; E 3C30 7E4040 185 DB $7E,$40,$40,$7C,$40,$40,$40,$40 ; F 3C38 1E2040 186 DB $1E,$20,$40,$40,$4E,$42,$22,$1C ; G 3C40 424242 187 DB $42,$42,$42,$7E,$42,$42,$42,$42 ; H 3C48 7C1010 188 DB $7C,$10,$10,$10,$10,$10,$10,$7C ; I 3C50 040404 189 DB $04,$04,$04,$04,$04,$44,$44,$38 ; J 3C58 444850 190 DB $44,$48,$50,$60,$60,$50,$48,$44 ; K 3C60 404040 191 DB $40,$40,$40,$40,$40,$40,$40,$7E ; L 3C68 416355 192 DB $41,$63,$55,$49,$41,$41,$41,$41 ; M 3C70 626252 193 DB $62,$62,$52,$52,$4A,$4A,$46,$46 ; N 3C78 182442 194 DB $18,$24,$42,$42,$42,$42,$24,$18 ; 0 3C80 7C4242 195 DB $7C,$42,$42,$42,$7C,$40,$40,$40 ; P 3C88 182442 196 DB $18,$24,$42,$42,$42,$42,$26,$1B ; Q 3C90 7C4242 197 DB $7C,$42,$42,$42,$7C,$44,$42,$41 ; R 3C98 3E4040 198 DB $3E,$40,$40,$40,$3C,$02,$02,$7C ; S 3CA0 FE1010 199 DB $FE,$10,$10,$10,$10,$10,$10,$10 ; T 3CA8 424242 200 DB $42,$42,$42,$42,$42,$42,$42,$3C ; U 3CB0 828282 201 DB $82,$82,$82,$82,$44,$44,$28,$10 ; V 3CB8 414141 202 DB $41,$41,$41,$41,$49,$55,$63,$41 ; W 3CC0 412214 203 DB $41,$22,$14,$08,$14,$22,$41,$00 ; X 3CC8 424224 204 DB $42,$42,$24,$18,$10,$20,$40,$40 ; Y 3CD0 7F0204 205 DB $7F,$02,$04,$08,$10,$20,$7F,$00 ; Z 3CD8 000000 206 DB $00,$00,$00,$00,$00,$00,$00,$00 ; BLANK 3CE0 000000 207 DB $00,$00,$00,$00,$00,$00,$00,$00 ; BLANK 208 *SETUP DLIST 209 BEGIN 3CE8 A200 210 LDX #$00 3CEA BD003A 211 DLOOP LDA DLIST,X 3CED 9D0094 212 STA NDLIST,X 3CF0 E8 213 INX 3CF1 E015 214 CPX #$15 ; 21 ELEMENTS 3CF3 D0F5 215 BNE DLOOP 3CF5 A900 216 LDA #NDLIST ; LOCATION OF DISPLAY LIST 3CF7 8D3002 217 STA $230 3CFA A994 218 LDA #