*ALPHABET MAZE - COPYRIGHT 1984 - BY JEFFREY STANTON ORG $3800 *** TF "D:MAZE.OBJ" *ZERO PAGE EQUATES SHPL EQU $F0 SHPH EQU $F1 SHPML EQU $F2 SHPMH EQU $F3 SHPMOL EQU $F4 SHPMOH EQU $F5 PMADR EQU $F6 MAPL EQU $F8 MAPH EQU $F9 *OTHER EQUATES SCREEN EQU $8700 ; ADR OF SCREEN NDLIST EQU $9400 ; ADR OF DISPLAY LIST CHRSET EQU $9000 ; ADR OF CHARACTER SET SETSIZ EQU 1024 SETVBK EQU $E45C XITVBK EQU $E462 STICK EQU $278 CHBAS EQU $2F4 ; CHARACTER SET BASE COLOR4 EQU $2C8 *PLAYER MISSILE EQUATES PMBASE EQU $D407 PDATA EQU $8800 ; ADR OF P/M AREA GRACTL EQU $D01D DMACTL EQU $22F HITCLR EQU $D01E SIZEP0 EQU $D008 ; PLAYER SIZES SIZEP1 EQU $D009 SIZEP2 EQU $D00A SIZEP3 EQU $D00B COLPM0 EQU $2C0 ; PLAYER COLORS COLPM1 EQU $2C1 COLPM2 EQU $2C2 COLPM3 EQU $2C3 HPOSP0 EQU $D000 ; HORIZ PLAYER POSITIONS HPOSP1 EQU $D001 HPOSP2 EQU $D002 HPOSP3 EQU $D003 P0PL EQU $D00C ; PLAYER TO PLAYER COLLISIONS RANDOM EQU $D20A CONSOL EQU $D01F DSCRN DB $05,$0C,$0C,$0C,$0C,$0C,$0C,$0C,$06,$0F DB $0F,$05,$0C,$0C,$0C,$0C,$0C,$0C,$0C,$06 DB $03,$05,$0C,$0C,$04,$0C,$0C,$0C,$00,$0C DB $0C,$00,$0C,$0C,$0C,$04,$0C,$0C,$06,$03 DB $03,$03,$0F,$0F,$03,$05,$0C,$0C,$02,$0F DB $0F,$01,$0C,$0C,$06,$03,$0F,$0F,$03,$03 DB $01,$0A,$0F,$0F,$09,$02,$0F,$0F,$01,$0C DB $0C,$02,$0F,$0F,$01,$0A,$0F,$0F,$09,$02 DB $01,$0C,$0C,$0C,$0C,$02,$0F,$05,$0A,$0F DB $0F,$09,$06,$0F,$01,$0C,$0C,$0C,$0C,$02 DB $03,$0F,$0F,$0F,$0F,$01,$0C,$02,$0F,$0F DB $0F,$0F,$01,$0C,$02,$0F,$0F,$0F,$0F,$03 DB $03,$05,$0C,$0C,$0C,$02,$0F,$09,$06,$0F DB $0F,$05,$0A,$0F,$01,$0C,$0C,$0C,$06,$03 DB $03,$01,$0C,$0C,$06,$03,$0F,$0F,$01,$04 DB $04,$02,$0F,$0F,$03,$05,$0C,$0C,$02,$03 DB $03,$03,$0F,$0F,$03,$09,$0C,$0C,$02,$03 DB $03,$01,$0C,$0C,$0A,$03,$0F,$0F,$03,$03 DB $03,$09,$0C,$06,$09,$0C,$0C,$0C,$0A,$03 DB $03,$09,$0C,$0C,$0C,$0A,$05,$0C,$0A,$03 DB $09,$0C,$0C,$08,$0C,$0C,$0C,$0C,$0C,$0A DB $09,$0C,$0C,$0C,$0C,$0C,$08,$0C,$0C,$0A DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 DS $10 DSCRN2 DB $05,$0C,$0C,$0C,$06,$0F,$05,$0C,$0C,$0C DB $0C,$0C,$0C,$06,$0F,$05,$0C,$0C,$0C,$06 DB $01,$04,$04,$04,$08,$0C,$02,$05,$0C,$0C DB $0C,$0C,$06,$01,$0C,$08,$04,$04,$04,$02 DB $03,$03,$03,$03,$05,$04,$08,$00,$0C,$04 DB $04,$0C,$00,$08,$04,$06,$03,$03,$03,$03 DB $03,$03,$03,$03,$01,$0A,$0F,$03,$0F,$09 DB $0A,$0F,$03,$0F,$09,$02,$03,$03,$03,$03 DB $01,$0A,$03,$03,$03,$0F,$05,$02,$0F,$0F DB $0F,$0F,$01,$06,$0F,$03,$03,$03,$09,$02 DB $01,$0C,$02,$09,$08,$0C,$08,$00,$0C,$0C DB $0C,$0C,$00,$08,$0C,$08,$0A,$01,$0C,$02 DB $03,$0F,$01,$0C,$0C,$0C,$0C,$02,$0F,$0F DB $0F,$0F,$01,$0C,$0C,$0C,$0C,$0A,$0F,$03 DB $01,$04,$08,$04,$0C,$0C,$0C,$02,$0F,$05 DB $06,$0F,$01,$0C,$0C,$0C,$04,$0C,$04,$02 DB $01,$0A,$0F,$03,$05,$0C,$0C,$08,$0C,$02 DB $01,$0C,$08,$0C,$0C,$06,$03,$0F,$09,$02 DB $03,$0F,$05,$02,$03,$05,$0C,$0C,$0C,$0A DB $09,$0C,$0C,$0C,$06,$03,$01,$06,$0F,$03 DB $09,$0C,$08,$08,$08,$08,$0C,$0C,$0C,$0C DB $0C,$0C,$0C,$0C,$08,$08,$08,$08,$0C,$0A DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 DS $10 DLIST DB $70,$70,$70,$47,$00,$87,$07,$07 DB $07,$07,$07,$07,$07,$07,$07,$07 DB $07,$41,$00,$94 *MAP CHARACTER DATA DCHAR DB $00,$00,$00,$00,$00,$00,$00,$00 DB $80,$80,$80,$80,$80,$80,$80,$80 DB $01,$01,$01,$01,$01,$01,$01,$01 DB $81,$81,$81,$81,$81,$81,$81,$81 DB $FF,$00,$00,$00,$00,$00,$00,$00 DB $FF,$80,$80,$80,$80,$80,$80,$80 DB $FF,$01,$01,$01,$01,$01,$01,$01 DB $FF,$81,$81,$81,$81,$81,$81,$81 DB $00,$00,$00,$00,$00,$00,$00,$FF DB $80,$80,$80,$80,$80,$80,$80,$FF DB $01,$01,$01,$01,$01,$01,$01,$FF DB $81,$81,$81,$81,$81,$81,$81,$FF DB $FF,$00,$00,$00,$00,$00,$00,$FF DB $FF,$80,$80,$80,$80,$80,$80,$FF DB $FF,$01,$01,$01,$01,$01,$01,$FF DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF TITLE DB $20,$20,$20,$41,$4C,$50,$48,$41,$42,$45 DB $54,$20,$4D,$41,$5A,$45,$20,$20,$20,$20 DB $20,$20,$20,$20,$20,$20,$20,$20,$20,$20 DB $20,$20,$20,$20,$20,$20,$20,$20,$20,$20 DB $20,$42,$59,$20,$4A,$45,$46,$46,$52,$45 DB $59,$20,$53,$54,$41,$4E,$54,$4F,$4E,$20 TITLE1 *** AT SELECT: EASY DB 0,0,0,$33,$25,$2C,$25,$23,$34,$1A,$00,$25,$21,$33,$39,0,0,0,0,0 *** AT HARD DB 0,0,0,0,0,0,0,0,0,0,0,$28,$21,$32,$24,0,0,0,0,0 DS $08 TITLE2 *** AT NEXT LEVEL DB 0,0,0,0,0,$2E,$25,$38,$34,$00,$2C,$25,$36,$25,$2C,0,0,0,0,0 *VARIABLES X0 DS 1 ; PLAYER'S MAN POSITION XX DS 4 ; REST OF PLAYER POSITIONS Y0 DS 1 YY DS 4 ; REST OF PLAYER POSITIONS XB DS 4 ; BLOCK EACH PLAYER IN YB DS 4 FLAGL DS 4 ; LEGAL MOVE FLAGS FOR EACH PLAYER FLAGR DS 4 FLAGU DS 4 FLAGD DS 4 RELL DS 4 ; DIRECTION WANT TO MOVE IN FLAGS RELR DS 4 RELU DS 4 RELD DS 4 MFLAGL DS 4 ; MATCH FLAGS MFLAGR DS 4 MFLAGU DS 4 MFLAGD DS 4 TEMPX DS 1 TEMPY DS 1 TEMPL DS 4 TEMPH DS 4 BLOCK DS 1 ; OFFSET IN SCREEN MEMORY OF CURRENT BLOCK POINT0 DB 1 ; SHAPE PLAYER 0 POINT1 DB 2 POINT2 DB 3 POINT3 DB 0 DL DS $04 ; AUTO FLAGS DR DS $04 DU DS $04 DD DS $04 INHIBIT DB 0 ; PREVENTS OBTAINING TWO JOYSTICK DIRECTIONS VBFLAG DB 0 ; VBLANK FINISHED FLAG $ON DIAGONAL LFLAG DB 0 ; INDICATES WHETHER AT CENTER OF BLOCK NUM DB 0 ; NUMBER OF DIRECTION MATCH FLAGS PAUSE DB 0 ; PAUSE FLAG SLOW DB 0 ; SETS MINUS SIGN TO HALF SPEED HALF DB 0 ; COUNTER WHEN PLAYER MOVES AT HALF SPEED LEVEL DS $01 ; MAZE LEVEL ONCE DS $01 ; PREVENTS DOUBLE COLLISIONS @ HALF SPEED *POINTERS TO PM DATA SHPLO DB $00,$08,$10,$18,$20,$28,$30,$38 DB $40,$48,$50,$58,$60,$68,$70,$78 DB $80,$88,$90,$98,$A0,$A8,$B0,$B8 DB $C0,$C8,$D0,$D8,$E0 DS $65 *MAKE SURE STARTS @$2C00 *PLAYER MISSILE DATA SHAPES DB $00,$00,$00,$3C,$3C,$00,$00,$00 ; MINUS SIGN DB $18,$3C,$66,$42,$7E,$42,$42,$42 ; LETTER A DB $7C,$42,$42,$7C,$42,$42,$42,$7C ; B DB $1E,$20,$40,$40,$40,$40,$20,$1E ; C DB $78,$44,$42,$42,$42,$42,$44,$78 ; D DB $7E,$40,$40,$7C,$40,$40,$40,$7E ; E DB $7E,$40,$40,$7C,$40,$40,$40,$40 ; F DB $1E,$20,$40,$40,$4E,$42,$22,$1C ; G DB $42,$42,$42,$7E,$42,$42,$42,$42 ; H DB $7C,$10,$10,$10,$10,$10,$10,$7C ; I DB $04,$04,$04,$04,$04,$44,$44,$38 ; J DB $44,$48,$50,$60,$60,$50,$48,$44 ; K DB $40,$40,$40,$40,$40,$40,$40,$7E ; L DB $41,$63,$55,$49,$41,$41,$41,$41 ; M DB $62,$62,$52,$52,$4A,$4A,$46,$46 ; N DB $18,$24,$42,$42,$42,$42,$24,$18 ; 0 DB $7C,$42,$42,$42,$7C,$40,$40,$40 ; P DB $18,$24,$42,$42,$42,$42,$26,$1B ; Q DB $7C,$42,$42,$42,$7C,$44,$42,$41 ; R DB $3E,$40,$40,$40,$3C,$02,$02,$7C ; S DB $FE,$10,$10,$10,$10,$10,$10,$10 ; T DB $42,$42,$42,$42,$42,$42,$42,$3C ; U DB $82,$82,$82,$82,$44,$44,$28,$10 ; V DB $41,$41,$41,$41,$49,$55,$63,$41 ; W DB $41,$22,$14,$08,$14,$22,$41,$00 ; X DB $42,$42,$24,$18,$10,$20,$40,$40 ; Y DB $7F,$02,$04,$08,$10,$20,$7F,$00 ; Z DB $00,$00,$00,$00,$00,$00,$00,$00 ; BLANK DB $00,$00,$00,$00,$00,$00,$00,$00 ; BLANK *SETUP DLIST BEGIN LDX #$00 DLOOP LDA DLIST,X STA NDLIST,X INX CPX #$15 ; 21 ELEMENTS BNE DLOOP LDA #NDLIST ; LOCATION OF DISPLAY LIST STA $230 LDA #