00020 ** GLOOM 3-D V1.2 DEMONSTRATION GRAPHICS ENGINE ** 00040 ** BY JOHN KOWALSKI (SOCK MASTER) FOR 6809 COCO 3 ** 00060 ** COPYRIGHT (C) 1996 BY JOHN KOWALSKI. ** 00080 00100 START EQU 3584 00120 ORG START 00140 SETDP START/256 00160 TEMP FCB 0 00180 GFBANK FCB 0 GFENGINE MMU BANK 00200 DISTEM FDB 0 00220 DISTAX FCB 0 DRAW ROUTINE TEMP 00240 NEWBAR FDB 0 00260 OLDBAR FDB 0 00280 TURN FCB 0 00300 SPEED FCB 0 00320 GFYX EQU GOON+1 00340 CTAADD EQU DIREC1+1 00360 ENGINE LDY NEWBAR 00380 DIR EQU *+1 00400 LDD #0 00420 ADDD #64 00440 STB 255 04860 LDB #255 04880 AZER STB ,-X 04900 CMPX #0 04920 BHI DLOOP 04940 LDB #255 04960 STB $0000 04980 LDD #$3031 05000 STD 65444 05020 *ANDCC #175 UNMASK IRQ & FIRQ 05040 DUH JSR ENGINE **THIS IS WHERE THE GAME GOES 05060 JSR KEYIN DECODE KEYBOARD CONTROLS 05080 LDB TURN 05100 LDA KEYBUF+5 05120 ANDA #8 05140 BNE NOLEFT 05160 SUBB #3 05180 CMPB #-24 05200 BGT NOLEFT 05220 LDB #-24 05240 NOLEFT LDA KEYBUF+6 05260 ANDA #8 05280 BNE NORITE 05300 ADDB #3 05320 CMPB #24 05340 BLT NORITE 05360 LDB #24 05380 NORITE CMPB #0 05400 BGE POSIT 05420 ADDB #2 05440 BCC POSIT 05460 CLRB 05480 POSIT BLE NEGIT 05500 SUBB #2 05520 BCC NEGIT 05540 CLRB 05560 NEGIT STB TURN 05580 SEX 05600 ADDD DIR 05620 STD DIR 05640 LDB SPEED 05660 LDA KEYBUF+4 05680 ANDA #8 05700 BNE NOUP 05720 ADDB #3 05740 CMPB #32 05760 BLT NOUP 05780 LDB #32 05800 NOUP LDA KEYBUF+3 05820 ANDA #8 05840 BNE NODOWN 05860 SUBB #3 05880 CMPB #-32 05900 BGT NODOWN 05920 LDB #-32 05940 NODOWN CMPB #0 05960 BGE FORWAR 05980 ADDB #2 06000 BCC FORWAR 06020 CLRB 06040 FORWAR BLE BACKWA 06060 SUBB #2 06080 BCC BACKWA 06100 CLRB 06120 BACKWA STB SPEED 06140 CMPB #0 06160 BGT GOPOS 06180 BEQ GONO 06200 LDD DIR 06220 ADDA #1 06240 ANDA #1 06260 BSR ANGLE 06280 LDA SPEED 06300 NEGA 06320 BRA GOGO 06340 GOPOS LDD DIR 06360 BSR ANGLE 06380 LDA SPEED 06400 GOGO LDU 362,X 06420 PSHS A 06440 BSR MULTIP 06460 ADDD XLOC 06480 STD XLOC 06500 LDU 360,X 06520 PULS A 06540 BSR MULTIP 06560 ADDD YLOC 06580 YOKE1 CMPA #129 PREVENT FROM WALKING OFF MAP AREA 06600 BHI YOKE 06620 ADDD #64 06640 BRA YOKE1 06660 YOKE CMPA #190 06680 BLO YOKE2 06700 SUBD #64 06720 BRA YOKE 06740 YOKE2 STD YLOC 06760 GONO JMP DUH DO IT ALL AGAIN 06780 ANGLE ANDA #1 *CALC MOVEMENT ANGLE SUBROUTINE 06800 BNE FIRST 06820 LDA #12 06840 MUL CALC RADAR TABLE LOCATION 06860 BRA SECOND 06880 FIRST LDA #12 06900 MUL 06920 ADDA #12 06940 SECOND STA 65446 MMU BANK 6 FOR RADAR POINTER 06960 INCA 06980 STA 65447 MMU BANK 7 FOR RADAR POINTER 07000 LSRB 07020 LSRB 07040 LSRB 07060 ORB #192 (OFFSET TO 49152-65535 WORKSPACE) 07080 STB