diff --git a/dino.lab b/dino.lab deleted file mode 100644 index f0384dc..0000000 --- a/dino.lab +++ /dev/null @@ -1,691 +0,0 @@ -mads 2.1.7 build 3 (13 Sep 23) -Label table: -00 0008 SCR_HEIGHT -00 0040 WORLD_LENGTH -00 0010 DIFF_LEVELS -00 E400 EDITRV -00 E410 SCRENV -00 E420 KEYBDV -00 E430 PRINTV -00 E440 CASETV -00 E450 DISKIV -00 E453 DSKINV -00 E456 CIOV -00 E459 SIOV -00 E45C SETVBV -00 E45F SYSVBV -00 E462 XITVBV -00 E465 SIOINV -00 E468 SENDEV -00 E46B INTINV -00 E46E CIOINV -00 E471 BLKBDV -00 E474 WARMSV -00 E477 COLDSV -00 E47A RBLOKV -00 E47D CSOPIV -00 E480 PUPDIV -00 E483 SLFTSV -00 E486 PHENTV -00 E489 PHULNV -00 E48C PHINIV -00 0003 _OPEN -00 0005 GETREC -00 0007 GETCHR -00 0009 PUTREC -00 000B PUTCHR -00 000C _CLOSE -00 000D STATIS -00 000E SPECIL -00 0011 DRAWLN -00 0012 FILLIN -00 0020 RENAME -00 0021 DELETE -00 0022 FORMAT -00 0023 LOCKFL -00 0024 UNLOCK -00 0025 POINT -00 0026 NOTE -00 00FF IOCFRE -00 0001 APPEND -00 0002 DIRECT -00 0004 OPNIN -00 0008 OPNOT -00 000C OPNINO -00 0010 MXDMOD -00 0020 INSCLR -00 0045 SCREDT -00 004B KBD -00 0053 DISPLY -00 0050 PRINTR -00 0043 CASSET -00 0052 RS232 -00 0044 DISK -00 0001 SUCCES -00 0080 BRKABT -00 0081 PRVOPN -00 0082 NONDEV -00 0083 WRONLY -00 0084 NVALID -00 0085 NOTOPN -00 0086 BADIOC -00 0087 RDONLY -00 0088 EOFERR -00 0089 TRNRCD -00 008A TIMOUT -00 008B DNACK -00 008C FRMERR -00 008D CRSROR -00 008E OVRRUN -00 008F CHKERR -00 0090 DERRER -00 0091 BADMOD -00 0092 FNCNOT -00 0093 SCRMEM -00 00AA FILENF -00 0000 LNFLG -00 0001 NGFLAG -00 0002 CASINI -00 0004 RAMLO -00 0006 TRAMSZ -00 0007 TSTDAT -00 0008 WARMST -00 0009 BOOTQ -00 000A DOSVEC -00 000C DOSINI -00 000E APPMHI -00 0010 POKMSK -00 0011 BRKKEY -00 0012 RTCLOK -00 0015 BUFADR -00 0017 ICCOMT -00 0018 DSKFMS -00 001A DSKUTL -00 001C ABUFPT -00 0020 ICHIDZ -00 0021 ICDNOZ -00 0022 ICCOMZ -00 0023 ICSTAZ -00 0024 ICBALZ -00 0025 ICBAHZ -00 0026 ICPTLZ -00 0027 ICPTHZ -00 0028 ICBLLZ -00 0029 ICBLHZ -00 002A ICAX1Z -00 002B ICAX2Z -00 002C ICSPRZ -00 002E ICIDNO -00 002F CIOCHR -00 0030 STATUS -00 0031 CHKSUM -00 0032 BUFRLO -00 0033 BUFRHI -00 0034 BFENLO -00 0035 BFENHI -00 0036 LTEMP -00 0038 BUFRFL -00 0039 RECVDN -00 003A XMTDON -00 003B CHKSNT -00 003C NOCKSM -00 003E FTYPE -00 003F FEOF -00 0040 FREQ -00 0041 SOUNDR -00 0042 CRITIC -00 0043 FMSZPG -00 004A ZCHAIN -00 004C DSTAT -00 004D ATRACT -00 004E DRKMSK -00 004F COLRSH -00 0050 TMPCHR -00 0051 HOLD1 -00 0052 LMARGN -00 0053 RMARGN -00 0054 ROWCRS -00 0055 COLCRS -00 0057 DINDEX -00 0058 SAVMSC -00 005A OLDROW -00 005B OLDCOL -00 005D OLDCHR -00 005E OLDADR -00 0060 FKDEF -00 0062 PALNTS -00 0063 LOGCOL -00 0064 ADRESS -00 0066 MLTEMP -00 0068 SAVADR -00 006A RAMTOP -00 006B BUFCNT -00 006C BUFSTR -00 006E BITMSK -00 006F SHFAMT -00 0070 ROWAC -00 0072 COLAC -00 0074 ENDPT -00 0076 DELTAR -00 0077 DELTAC -00 0079 KEYDEF -00 007B SWPFLG -00 007C HOLDCH -00 007D INSDAT -00 007E COUNTR -00 0200 VDSLST -00 0202 VPRCED -00 0204 VINTER -00 0206 VBREAK -00 0208 VKEYBD -00 020A VSERIN -00 020C VSEROR -00 020E VSEROC -00 0210 VTIMR1 -00 0212 VTIMR2 -00 0214 VTIMR4 -00 0216 VIMIRQ -00 0218 CDTMV1 -00 021A CDTMV2 -00 021C CDTMV3 -00 021E CDTMV4 -00 0220 CDTMV5 -00 0222 VVBLKI -00 0224 VVBLKD -00 0226 CDTMA1 -00 0228 CDTMA2 -00 022A CDTMF3 -00 022B SRTIMR -00 022C CDTMF4 -00 022D INTEMP -00 022E CDTMF5 -00 022F DMACTLS -00 0230 DLPTRS -00 0232 SSKCTL -00 0233 LCOUNT -00 0234 LPENH -00 0235 LPENV -00 0236 BRKKY -00 0238 RELADR -00 023A CDEVIC -00 023B CCOMND -00 023C CAUX1 -00 023D CAUX2 -00 023F ERRFLG -00 0240 DFLAGS -00 0241 DBSECT -00 0242 BOOTAD -00 0244 COLDST -00 0245 RECLEN -00 0246 DSKTIM -00 026C VSFLAG -00 026D KEYDIS -00 026E FINE -00 026F GPRIOR -00 0270 PADDL0 -00 0271 PADDL1 -00 0272 PADDL2 -00 0273 PADDL3 -00 0278 STICK0 -00 0279 STICK1 -00 027C PTRIG0 -00 027D PTRIG1 -00 027E PTRIG2 -00 027F PTRIG3 -00 0284 STRIG0 -00 0285 STRIG1 -00 0288 HIBYTE -00 0289 WMODE -00 028A BLIM -00 028B IMASK -00 028C JVECK -00 028E NEWADR -00 0290 TXTROW -00 0291 TXTCOL -00 0293 TINDEX -00 0294 TXTMSC -00 0296 TXTOLD -00 029C CRETRY -00 029D HOLD3 -00 029E SUBTMP -00 029F HOLD2 -00 02A0 DMASK -00 02A1 TMPLBT -00 02A2 ESCFLG -00 02A3 TABMAP -00 02B2 LOGMAP -00 02B6 INVFLG -00 02B7 FILFLG -00 02B8 TMPROW -00 02B9 TMPCOL -00 02BB SCRFLG -00 02BC HOLD4 -00 02BD DRETRY -00 02BE SHFLOK -00 02BF BOTSCR -00 02C0 PCOLR0 -00 02C1 PCOLR1 -00 02C2 PCOLR2 -00 02C3 PCOLR3 -00 02C4 COLOR0 -00 02C5 COLOR1 -00 02C6 COLOR2 -00 02C7 COLOR3 -00 02C8 COLOR4 -00 02C8 COLBAKS -00 02C9 RUNADR -00 02CB HIUSED -00 02CD ZHIUSE -00 02CF GBYTEA -00 02D1 LOADAD -00 02D3 ZLOADA -00 02D5 DSCTLN -00 02D7 ACMISR -00 02D9 KRPDEL -00 02DA KEYREP -00 02DB NOCLIK -00 02DC HELPFG -00 02DD DMASAV -00 02DE PBPNT -00 02DF PBUFSZ -00 02E0 DOSRUN -00 02E4 RAMSIZ -00 02E5 MEMTOP -00 02E7 MEMLO -00 02E9 HNDLOD -00 02EA DVSTAT -00 02EE CBAUDL -00 02EF CBAUDH -00 02F0 CRSINH -00 02F1 KEYDEL -00 02F2 CH1 -00 02F3 CHACT -00 02F4 CHBAS -00 02F5 NEWROW -00 02F6 NEWCOL -00 02F8 ROWINC -00 02F9 COLINC -00 02FA CHAR -00 02FB ATACHR -00 02FC CHKEY -00 02FD FILDAT -00 02FE DSPFLG -00 02FF SSFLAG -00 0300 DDEVIC -00 0301 DUNIT -00 0302 DCOMND -00 0303 DSTATS -00 0304 DBUFLO -00 0305 DBUFHI -00 0306 DTIMLO -00 0307 DUNUSE -00 0308 DBYTLO -00 0309 DBYTHI -00 030A DAUX1 -00 030B DAUX2 -00 030C TIMER1 -00 030E JMPERS -00 030F CASFLG -00 0310 TIMER2 -00 0314 PTIMOT -00 0316 SAVIO -00 0317 TIMFLG -00 0318 STACKP -00 0319 TSTAT -00 031A HATABS -00 033D PUPBT1 -00 033E PUPBT2 -00 033F PUPBT3 -00 0340 ICHID -00 0341 ICDNO -00 0342 ICCOM -00 0343 ICSTA -00 0344 ICBAL -00 0345 ICBAH -00 0346 ICPTL -00 0347 ICPTH -00 0348 ICBLL -00 0349 ICBLH -00 034A ICAX1 -00 034B ICAX2 -00 034C ICSPR -00 03C0 PRNBUF -00 03E8 SUPERF -00 03E9 CKEY -00 03EA CASSBT -00 03EB CARTCK -00 03ED ACMVAR -00 03F9 MINTLK -00 03FA GINTLK -00 03FB CHLINK -00 03FD CASBUF -00 0480 USAREA -00 D200 POKEY -00 D200 POT0 -00 D201 POT1 -00 D202 POT2 -00 D203 POT3 -00 D204 POT4 -00 D205 POT5 -00 D206 POT6 -00 D207 POT7 -00 D208 ALLPOT -00 D209 KBCODE -00 D20A RANDOM -00 D20B POTGO -00 D20D SERIN -00 D20E IRQST -00 D20F SKSTAT -00 D200 AUDF1 -00 D201 AUDC1 -00 D202 AUDF2 -00 D203 AUDC2 -00 D204 AUDF3 -00 D205 AUDC3 -00 D206 AUDF4 -00 D207 AUDC4 -00 D208 AUDCTL -00 D209 STIMER -00 D20A SKRES -00 D20D SEROUT -00 D20E IRQEN -00 D20F SKCTL -00 D000 GTIA -00 D000 HPOSP0 -00 D001 HPOSP1 -00 D002 HPOSP2 -00 D003 HPOSP3 -00 D004 HPOSM0 -00 D005 HPOSM1 -00 D006 HPOSM2 -00 D007 HPOSM3 -00 D008 SIZEP0 -00 D009 SIZEP1 -00 D00A SIZEP2 -00 D00B SIZEP3 -00 D00C SIZEM -00 D00D GRAFP0 -00 D00E GRAFP1 -00 D00F GRAFP2 -00 D010 GRAFP3 -00 D011 GRAFM -00 D012 COLPM0 -00 D013 COLPM1 -00 D014 COLPM2 -00 D015 COLPM3 -00 D016 COLPF0 -00 D017 COLPF1 -00 D018 COLPF2 -00 D019 COLPF3 -00 D01A COLBAK -00 D01B PRIOR -00 D01C VDELAY -00 D01D GRACTL -00 D01E HITCLR -00 D01F CONSOL -00 D000 M0PF -00 D001 M1PF -00 D002 M2PF -00 D003 M3PF -00 D004 P0PF -00 D005 P1PF -00 D006 P2PF -00 D007 P3PF -00 D008 M0PL -00 D009 M1PL -00 D00A M2PL -00 D00B M3PL -00 D00C P0PL -00 D00D P1PL -00 D00E P2PL -00 D00F P3PL -00 D010 TRIG0 -00 D011 TRIG1 -00 D012 TRIG2 -00 D013 TRIG3 -00 D014 PAL -00 D400 ANTIC -00 D400 DMACTL -00 D401 CHACTL -00 D402 DLPTR -00 D404 HSCROL -00 D405 VSCROL -00 D407 PMBASE -00 D409 CHBASE -00 D40A WSYNC -00 D40B VCOUNT -00 D40C PENH -00 D40D PENV -00 D40E NMIEN -00 D40F NMIRES -00 D40F NMIST -00 D300 PIA -00 D300 PORTA -00 D301 PORTB -00 D302 PACTL -00 D303 PBCTL -00 0001 JUMP -00 0041 JVB -00 0010 SCH -00 0020 SCV -00 0040 LMS -00 0080 DLII -00 0000 SKIP1 -00 0010 SKIP2 -00 0020 SKIP3 -00 0030 SKIP4 -00 0040 SKIP5 -00 0050 SKIP6 -00 0060 SKIP7 -00 0070 SKIP8 -00 0002 MODE2 -00 0004 MODE4 -00 0008 MODE8 -00 000E MODEE -00 000F MODEF -FFFD 0000 @DMACTL -00 0000 @DMACTL.BLANK -00 0001 @DMACTL.NARROW -00 0002 @DMACTL.STANDARD -00 0003 @DMACTL.WIDE -00 0004 @DMACTL.MISSILES -00 0008 @DMACTL.PLAYERS -00 0010 @DMACTL.LINEX1 -00 0000 @DMACTL.LINEX2 -00 0020 @DMACTL.DMA -00 003F SCR48 -00 003E SCR40 -00 003D SCR32 -FFFD 0000 @PMCNTL -00 0001 @PMCNTL.MISSILES -00 0002 @PMCNTL.PLAYERS -00 0004 @PMCNTL.TRIGS -FFFD 0000 @GTICTL -00 0000 @GTICTL.PRIOR0 -00 0001 @GTICTL.PRIOR1 -00 0002 @GTICTL.PRIOR2 -00 0004 @GTICTL.PRIOR4 -00 0008 @GTICTL.PRIOR8 -00 0010 @GTICTL.PLY5 -00 0020 @GTICTL.MLC -00 0040 @GTICTL.MODE9 -00 0080 @GTICTL.MODE10 -00 00C0 @GTICTL.MODE11 -FFFD 0000 @KBCODE -00 00FF @KBCODE._NONE -00 001C @KBCODE._ESC -00 001F @KBCODE._1 -00 001E @KBCODE._2 -00 001A @KBCODE._3 -00 0018 @KBCODE._4 -00 001D @KBCODE._5 -00 001B @KBCODE._6 -00 0033 @KBCODE._7 -00 0035 @KBCODE._8 -00 0030 @KBCODE._9 -00 0032 @KBCODE._0 -00 0036 @KBCODE._LT -00 0037 @KBCODE._GT -00 0034 @KBCODE._DEL -00 002C @KBCODE._TAB -00 002F @KBCODE._Q -00 002E @KBCODE._W -00 002A @KBCODE._E -00 0028 @KBCODE._R -00 002D @KBCODE._T -00 002B @KBCODE._Y -00 000B @KBCODE._U -00 000D @KBCODE._I -00 0008 @KBCODE._O -00 000A @KBCODE._P -00 000E @KBCODE._MIN -00 000E @KBCODE._UP -00 000F @KBCODE._EQ -00 000F @KBCODE._DOWN -00 000C @KBCODE._RET -00 003F @KBCODE._A -00 003E @KBCODE._S -00 003A @KBCODE._D -00 0038 @KBCODE._F -00 003D @KBCODE._G -00 0039 @KBCODE._H -00 0001 @KBCODE._J -00 0005 @KBCODE._K -00 0000 @KBCODE._L -00 0002 @KBCODE._SEMICOLON -00 0006 @KBCODE._PLUS -00 0006 @KBCODE._LEFT -00 0007 @KBCODE._ASTERISK -00 0007 @KBCODE._RIGHT -00 003C @KBCODE._CAPS -00 0017 @KBCODE._Z -00 0016 @KBCODE._X -00 0012 @KBCODE._C -00 0010 @KBCODE._V -00 0015 @KBCODE._B -00 0024 @KBCODE._N -00 0025 @KBCODE._M -00 0020 @KBCODE._COMMA -00 0022 @KBCODE._DOT -00 0026 @KBCODE._SLASH -00 0027 @KBCODE._ATARI -00 0011 @KBCODE._HELP -00 0003 @KBCODE._F1 -00 0004 @KBCODE._F2 -00 0013 @KBCODE._F3 -00 0014 @KBCODE._F4 -00 0021 @KBCODE._SPACE -00 009B EOL -00 0080 TEMP_W -00 0082 TEMP_B -00 0083 DINOWALKPHASE -00 0084 DINOSTATE -00 0085 JUMPPHASE -00 2000 FONT1 -00 2400 FONT2 -00 2800 FONT3 -00 2C00 FONT4 -00 3000 SCREEN -00 3800 GAMEDL -00 3810 LINE0_ADDR -00 3813 LINE1_ADDR -00 3816 LINE2_ADDR -00 3819 LINE3_ADDR -00 381C LINE4_ADDR -00 381F LINE5_ADDR -00 3822 LINE6_ADDR -00 3825 LINE7_ADDR -00 382A WORLDTABLE -00 386A FIRSTSTART -00 38AF ENDLOOP -00 390D GENERATECHARSETS -00 390F GENERATECHARSETS.COPYLOOP -00 3937 CLEARWORLD -00 393B CLEARWORLD.0@ -00 3942 CLEARSCREEN -00 3946 CLEARSCREEN.CLEARLOOP -00 395F WORLDTOSCREEN -00 3966 WORLDTOSCREEN.TOSCREENLOOP -00 396F WORLDTOSCREEN.NOTHINGTODRAW -00 3978 WORLDSHIFT -00 397A WORLDSHIFT.SHIFT -00 3994 WORLDSHIFT.1@ -00 399E WORLDSHIFT.INSERTOBJECT -00 39B9 WORLDSHIFT.NOINSERT -00 39BA ANIMATE -00 39BC ANIMATE.2@ -00 39CE ANIMATE.NOBIRD -00 39E6 ANIMATE.ENDJUMP -00 39EC ANIMATE.NOJUMP -00 39ED SHOWOBJECT -00 39F9 SHOWOBJECT.OBJECTLOOP -00 3A00 SHOWOBJECT.3@ -00 3A12 SHOWOBJECT.4@ -00 3A24 SHOWOBJECT.5@ -00 3A36 SHOWOBJECT.6@ -00 3A48 SHOWDINO -00 3A63 SHOWDINO.DINOLOOP -00 3A6A SHOWDINO.7@ -00 3A7C SHOWDINO.8@ -00 3A8E SHOWDINO.9@ -00 3AA0 SHOWDINO.10@ -00 3AB2 SHOWDINO.JUMP -00 3AC9 SHOWDINO.JPHASE1 -00 3ACB SHOWDINO.DINOLOOP1 -00 3AD2 SHOWDINO.11@ -00 3AE4 SHOWDINO.12@ -00 3AF6 SHOWDINO.13@ -00 3B08 SHOWDINO.14@ -00 3B1A SHOWDINO.JPHASE2 -00 3B1C SHOWDINO.DINOLOOP2 -00 3B23 SHOWDINO.15@ -00 3B35 SHOWDINO.16@ -00 3B47 SHOWDINO.17@ -00 3B59 SHOWDINO.18@ -00 3B6B SHOWDINO.JPHASE3 -00 3B6D SHOWDINO.DINOLOOP3 -00 3B74 SHOWDINO.19@ -00 3B86 SHOWDINO.20@ -00 3B98 SHOWDINO.21@ -00 3BAA SHOWDINO.22@ -00 3BBC SHOWDINO.JPHASE4 -00 3BBE SHOWDINO.DINOLOOP4 -00 3BC5 SHOWDINO.23@ -00 3BD7 SHOWDINO.24@ -00 3BE9 SHOWDINO.25@ -00 3BFB SHOWDINO.26@ -00 3C0D CHECKJOY -00 3C33 CHECKJOY.WALK -00 3C37 CHECKJOY.NOCHANGE -00 3C38 CHECKJOY.UP -00 3C41 CHECKJOY.DOWN -00 3C46 SETSTART -00 3C56 SETSTART.FADECOLOR -00 3C70 SETGAMESCREEN -00 3C85 DINO_RUN_0 -00 3C99 DINO_RUN_1 -00 3CAD DINO_RUN_2 -00 3CC1 DINO_CROUCH_1 -00 3CD5 DINO_CROUCH_2 -00 3CE9 DINOSHAPESTABLEL -00 3CEF DINOSHAPESTABLEH -00 3CF5 GROUND_0 -00 3CFD BIRD_0 -00 3D05 BIRD_1 -00 3D0D BIRD_2 -00 3D15 BIRD_0A -00 3D1D BIRD_1A -00 3D25 BIRD_2A -00 3D2D CACTUS_0 -00 3D35 CACTUS_1 -00 3D3D CACTUS_2 -00 3D45 CACTUS_3 -00 3D4D CACTUS_4 -00 3D55 GROUND_1 -00 3D5D GROUND_2 -00 3D65 SHAPESTABLEL -00 3D74 SHAPESTABLEH -00 3D83 DIFF_OBJECT_GAP -00 3D93 DIFF_LEVEL -00 3D94 DINOJUMPTR -00 0007 JUMPLEN diff --git a/dino.lst b/dino.lst deleted file mode 100644 index 1084d2d..0000000 --- a/dino.lst +++ /dev/null @@ -1,1662 +0,0 @@ -mads 2.1.7 build 3 (13 Sep 23) -Source: dino.asm - 1 = 0008 SCR_HEIGHT = 8 - 2 = 0040 WORLD_LENGTH = 64 - 3 = 0010 DIFF_LEVELS = 16 - 4 - 5 ; No internet - 6 ;--------------------------------------------------- - 7 OPT r+ - 8 - 9 ;--------------------------------------------------- - 10 ; Zpage variables - 11 .zpvar temp_w .word = $80 - 12 .zpvar temp_b .byte - 13 .zpvar DinoWalkPhase .byte - 14 .zpvar DinoState .byte ; 0/1 - walk, 2/3 - crouch, 4... - jump - 15 .zpvar JumpPhase .byte - 16 ;--------------------------------------------------- - 17 icl 'lib/ATARISYS.ASM' -Source: ATARISYS.ASM - 1 ;**************************************************************************** - 2 ;* ATARI PERSONAL COMPUTER * - 3 ;* SYSTEM EQUATES * - 4 ;**************************************************************************** - 5 ; - 6 ; OPERATING SYSTEM EQUATE FILE - 7 ; - 8 ; MODULE ORIGIN TABLE - 9 ; - 10 ; VECTOR TABLE - 11 ; - 12 ; HANDLER ENTRY POINTS ARE CALL- - 13 ; ED OUT IN THE FOLLOWING VECTOR - 14 ; TABLE. THESE ARE THE ADDRESSES - 15 ; MINUS ONE. - 16 ; - 17 ; EXAMPLE FOR EDITOR - 18 ; - 19 ; E400 OPEN - 20 ; 2 CLOSE - 21 ; 4 GET - 22 ; 6 PUT - 23 ; 8 STATUS - 24 ; A SPECIAL - 25 ; C JUMP TO POWER ON INIT - 26 ; F NOT USED - 27 ; - 28 = E400 EDITRV EQU $E400 ;EDITOR - 29 = E410 SCRENV EQU $E410 ;TV SCREEN - 30 = E420 KEYBDV EQU $E420 ;KEYBOARD - 31 = E430 PRINTV EQU $E430 ;PRINTER - 32 = E440 CASETV EQU $E440 ;CASSETTE - 33 ; - 34 ; JUMP VECTOR TABLE - 35 ; - 36 ; THE FOLLOWING IS A TABLE OF - 37 ; JUMP INSTRUCTIONS TO VARIOUS - 38 ; ENTRY POINTS IN THE OPERATING - 39 ; SYSTEM - 40 ; - 41 = E450 DISKIV EQU $E450 ;DISK INITIALIZATION - 42 = E453 DSKINV EQU $E453 ;DISK INTERFACE - 43 = E456 CIOV EQU $E456 ;CENTRAL I/O ROUTINE - 44 = E459 SIOV EQU $E459 ;SERIAL I/O ROUTINE - 45 = E45C SETVBV EQU $E45C ;SET SYSTEM TIMERS - 46 = E45F SYSVBV EQU $E45F ;VBLANK CALCULATIONS - 47 = E462 XITVBV EQU $E462 ;EXIT VBLANK - 48 = E465 SIOINV EQU $E465 ;SIO INITIALIZATION - 49 = E468 SENDEV EQU $E468 ;SEND ENABLE ROUTINE - 50 = E46B INTINV EQU $E46B ;INTRPT HANDLER INIT - 51 = E46E CIOINV EQU $E46E ;CIO INITIALIZATION - 52 = E471 BLKBDV EQU $E471 ;BLACKBOARD MODE - 53 = E474 WARMSV EQU $E474 ;WARM START VECTOR - 54 = E477 COLDSV EQU $E477 ;COLD START VECTOR - 55 = E47A RBLOKV EQU $E47A ;CASSETTE READ BLOCK - 56 = E47D CSOPIV EQU $E47D ;CASSETTE INPUT OPEN - 57 ; - 58 ; VECTORS ADDED FOR 800XL - 59 ; - 60 = E480 PUPDIV EQU $E480 ;POWER UP DISPLAY - 61 = E483 SLFTSV EQU $E483 ;SELF TEST PROGRAM - 62 = E486 PHENTV EQU $E486 ;UPLOADED HANDLER ENTER - 63 = E489 PHULNV EQU $E489 ;UPLOADED HANDLER UNLINK - 64 = E48C PHINIV EQU $E48C ;UPLOADED HANDLER INIT - 65 ; - 66 ; OPERATING SYSTEM EQUATES - 67 ; - 68 ; COMMAND CODES FOR IOCBS - 69 ; - 70 = 0003 _OPEN EQU $03 ;OPEN FOR I/O - 71 = 0005 GETREC EQU $05 ;GET RECORD (TEXT) - 72 = 0007 GETCHR EQU $07 ;GET CHARACTER(S) - 73 = 0009 PUTREC EQU $09 ;PUT RECORD (TEXT) - 74 = 000B PUTCHR EQU $0B ;PUT CHARACTER(S) - 75 = 000C _CLOSE EQU $0C ;CLOSE DEVICE - 76 = 000D STATIS EQU $0D ;STATUS REQUEST - 77 = 000E SPECIL EQU $0E ;SPECIAL ENTRY COMMAND - 78 ; - 79 ; SPECIAL ENTRY COMMANDS - 80 ; - 81 = 0011 DRAWLN EQU $11 ;DRAW LINE - 82 = 0012 FILLIN EQU $12 ;FILL - 83 = 0020 RENAME EQU $20 ;RENAME DISK FILE - 84 = 0021 DELETE EQU $21 ;DELETE DISK FILE - 85 = 0022 FORMAT EQU $22 ;FORMAT DISK - 86 = 0023 LOCKFL EQU $23 ;LOCK FILE - 87 = 0024 UNLOCK EQU $24 ;UNLOCK FILE - 88 = 0025 POINT EQU $25 ;POINT SECTOR - 89 = 0026 NOTE EQU $26 ;NOTE SECTOR - 90 = 00FF IOCFRE EQU $FF ;IOCB "FREE" - 91 ; - 92 ; AUX1 EQUATES - 93 ; () INDICATES WHICH DEVICES - 94 ; - 95 = 0001 APPEND EQU $01 ;WR APPEND(D)-SCN RD(E) - 96 = 0002 DIRECT EQU $02 ;OPEN DIRECTORY(D) - 97 = 0004 OPNIN EQU $04 ;OPEN FOR INPUT(ALL) - 98 = 0008 OPNOT EQU $08 ;OPEN FOR OUTPUT(ALL) - 99 = 000C OPNINO EQU $0C ;OPEN INPUT&OUTPUT(ALL) - 100 = 0010 MXDMOD EQU $10 ;OPEN MIXED MODE(E,S) - 101 = 0020 INSCLR EQU $20 ;OPEN W/O CLEAR(E,S) - 102 ; - 103 ; DEVICE NAMES - 104 ; - 105 = 0045 SCREDT EQU 'E' ;SCREEN EDITOR (R/W) - 106 = 004B KBD EQU 'K' ;KEYBOARD (R ONLY) - 107 = 0053 DISPLY EQU 'S' ;SCREEN DISPLAY (R/W) - 108 = 0050 PRINTR EQU 'P' ;PRINTER (W ONLY) - 109 = 0043 CASSET EQU 'C' ;CASSETTE (R/W) - 110 = 0052 RS232 EQU 'R' ;MODEM (R/W) - 111 = 0044 DISK EQU 'D' ;DISK (R/W) - 112 ; - 113 ; - 114 ; - 115 ; OPERATING SYSTEM STATUS CODES - 116 ; - 117 = 0001 SUCCES EQU $01 ;SUCCESSFUL OPERATION - 118 = 0080 BRKABT EQU $80 ;BREAK KEY ABORT - 119 = 0081 PRVOPN EQU $81 ;IOCB ALREADY OPEN - 120 = 0082 NONDEV EQU $82 ;NON-EXISTANT DEVICE - 121 = 0083 WRONLY EQU $83 ;IOCB OPEN FOR W ONLY - 122 = 0084 NVALID EQU $84 ;INVALID COMMAND - 123 = 0085 NOTOPN EQU $85 ;DEVICE/FILE NOT OPEN - 124 = 0086 BADIOC EQU $86 ;INVALID IOCB # - 125 = 0087 RDONLY EQU $87 ;IOCB OPEN FOR R ONLY - 126 = 0088 EOFERR EQU $88 ;END OF FILE - 127 = 0089 TRNRCD EQU $89 ;TRUNCATED RECORD - 128 = 008A TIMOUT EQU $8A ;PERIPHERAL TIMEOUT - 129 = 008B DNACK EQU $8B ;DEVICE NO ACKNOWLEDGE - 130 = 008C FRMERR EQU $8C ;SERIAL BUS FRAME ERR - 131 = 008D CRSROR EQU $8D ;CURSOR OVERRANGE - 132 = 008E OVRRUN EQU $8E ;SERIAL DATA OVERRUN - 133 = 008F CHKERR EQU $8F ;SERIAL CHECKSUM ERR - 134 = 0090 DERRER EQU $90 ;PERIPHRAL DEVICE ERR - 135 = 0091 BADMOD EQU $91 ;BAD SCREEN MODE # - 136 = 0092 FNCNOT EQU $92 ;NONEXISTANT FUNCTION - 137 = 0093 SCRMEM EQU $93 ;SCREEN MEM TOO SMALL - 138 = 00AA FILENF EQU $AA ;FILE NOT FOUND - 139 ; - 140 ; PAGE ZERO RAM ASSIGNMENTS - 141 ; - 142 = 0000 LNFLG EQU $00 ;LINBUG RAM - 143 = 0001 NGFLAG EQU $01 ;POWER-UP SELF-TEST FLAG - 144 ; - 145 ; THESE LOCATIONS NOT CLEARED - 146 ; - 147 = 0002 CASINI EQU $02 ;CASSETTE INIT LOC - 148 = 0004 RAMLO EQU $04 ;RAM POINTER MEM TST - 149 = 0006 TRAMSZ EQU $06 ;TEMP REG RAM SIZE - 150 = 0007 TSTDAT EQU $07 ;RAM TEST DATA REG - 151 ; - 152 ;CLEARED ON COLDSTART ONLY - 153 ; - 154 = 0008 WARMST EQU $08 ;WARM START FLAG - 155 = 0009 BOOTQ EQU $09 ;SUCCESSFUL BOOT FLG - 156 = 000A DOSVEC EQU $0A ;DOS START VECTOR - 157 = 000C DOSINI EQU $0C ;DOS INIT ADDRESS - 158 = 000E APPMHI EQU $0E ;APPL MEM HI LIMIT - 159 ; - 160 ;CLEARED ON COLD OR WARM START - 161 ; - 162 = 0010 POKMSK EQU $10 ;MASK POKEY IRQ - 163 = 0011 BRKKEY EQU $11 ;BREAK KEY FLAG - 164 = 0012 RTCLOK EQU $12 ;REAL TIME CLOCK - 165 = 0015 BUFADR EQU $15 ;INDIRECT BUFF ADDR - 166 = 0017 ICCOMT EQU $17 ;COMMAND FOR VECTOR - 167 = 0018 DSKFMS EQU $18 ;FMS POINTER - 168 = 001A DSKUTL EQU $1A ;DISK UTILITIES PTR - 169 = 001C ABUFPT EQU $1C ;RESERVED - 170 = 0020 ICHIDZ EQU $20 ;HANDLER INDEX # - 171 = 0021 ICDNOZ EQU $21 ;DEVICE NUMBER - 172 = 0022 ICCOMZ EQU $22 ;COMMAND CODE - 173 = 0023 ICSTAZ EQU $23 ;STATUS RETURN - 174 = 0024 ICBALZ EQU $24 ;BUFFER ADDRESS - 175 = 0025 ICBAHZ EQU $25 - 176 = 0026 ICPTLZ EQU $26 ;PUT BYTE ROUTINE-1 - 177 = 0027 ICPTHZ EQU $27 - 178 = 0028 ICBLLZ EQU $28 ;BUFFER LENGTH - 179 = 0029 ICBLHZ EQU $29 - 180 = 002A ICAX1Z EQU $2A ;AUXILIARY BYTES - 181 = 002B ICAX2Z EQU $2B - 182 = 002C ICSPRZ EQU $2C ;SPARE BYTES - 183 = 002E ICIDNO EQU $2E ;IOCB # X 16 - 184 = 002F CIOCHR EQU $2F ;CIO CHARACTER BYTE - 185 = 0030 STATUS EQU $30 ;INTERNAL STATUS - 186 = 0031 CHKSUM EQU $31 ;CHECKSUM - 187 = 0032 BUFRLO EQU $32 ;DATA BUFFER LO BYTE - 188 = 0033 BUFRHI EQU $33 ;DATA BUFFER HI BYTE - 189 = 0034 BFENLO EQU $34 ;NEXT BYTE PAST DATA - 190 = 0035 BFENHI EQU $35 ;BUFFER (HI & LO) - 191 = 0036 LTEMP EQU $36 ;LOADER TEMP - 192 = 0038 BUFRFL EQU $38 ;DATA BUFFR FULL FLG - 193 = 0039 RECVDN EQU $39 ;RECIEVE DONE FLAG - 194 = 003A XMTDON EQU $3A ;XMIT DONE FLAG - 195 = 003B CHKSNT EQU $3B ;CHECKSUM SENT FLAG - 196 = 003C NOCKSM EQU $3C ;NO CHKSUM SENT FLAG - 197 ;BPTR EQU $3D ;CASSETTE DATA INDEX - 198 = 003E FTYPE EQU $3E ;INTERRECORD GAP TYPE - 199 = 003F FEOF EQU $3F ;END OF FILE FLAG - 200 = 0040 FREQ EQU $40 ;BEEP COUNT - 201 = 0041 SOUNDR EQU $41 ;NOISY I/O FLAG - 202 = 0042 CRITIC EQU $42 ;CRITICAL MODE - 203 = 0043 FMSZPG EQU $43 ;FMS ZERO PAGE - 204 = 004A ZCHAIN EQU $4A ;HANDLER LOADER TEMP - 205 = 004C DSTAT EQU $4C ;DISPLAY STATUS - 206 = 004D ATRACT EQU $4D ;ATTRACT FLAG - 207 = 004E DRKMSK EQU $4E ;DARK ATTRACT MASK - 208 = 004F COLRSH EQU $4F ;COLOR SHIFTER - 209 = 0050 TMPCHR EQU $50 ;TEMP STORAGE - 210 = 0051 HOLD1 EQU $51 ;TEMP STORAGE - 211 = 0052 LMARGN EQU $52 ;LEFT MARGIN (1) - 212 = 0053 RMARGN EQU $53 ;RIGHT MARGIN (38) - 213 = 0054 ROWCRS EQU $54 ;CURSOR COUNTERS - 214 = 0055 COLCRS EQU $55 - 215 = 0057 DINDEX EQU $57 ;DISPLAY MODE # - 216 = 0058 SAVMSC EQU $58 ;SCREEN MEM ADDR - 217 = 005A OLDROW EQU $5A ;DRAW START POSIT - 218 = 005B OLDCOL EQU $5B - 219 = 005D OLDCHR EQU $5D ;DATA UNDER CURSOR - 220 = 005E OLDADR EQU $5E ;CURSOR MEM ADDR - 221 = 0060 FKDEF EQU $60 ;FUNC KEY DEFEAT POINTER - 222 = 0062 PALNTS EQU $62 ;PAL/NTSC FLAG - 223 = 0063 LOGCOL EQU $63 ;COL IN LOGICAL LINE - 224 = 0064 ADRESS EQU $64 ;TEMP STORAGE - 225 = 0066 MLTEMP EQU $66 ;TEMP STORAGE - 226 = 0068 SAVADR EQU $68 ;TEMP STORAGE - 227 = 006A RAMTOP EQU $6A ;AVAILABLE RAM PAGES - 228 = 006B BUFCNT EQU $6B ;BUFFER COUNT - 229 = 006C BUFSTR EQU $6C ;EDITOR GETCH POINTR - 230 = 006E BITMSK EQU $6E ;BIT MASK - 231 = 006F SHFAMT EQU $6F ;PIXEL JUSTIFICATION - 232 = 0070 ROWAC EQU $70 ;ROW ACCUMULATOR - 233 = 0072 COLAC EQU $72 ;COLUMN ACCUMULATOR - 234 = 0074 ENDPT EQU $74 ;LINE LENGTH - 235 = 0076 DELTAR EQU $76 ;DELTA ROW - 236 = 0077 DELTAC EQU $77 ;DELTA COLUMN - 237 = 0079 KEYDEF EQU $79 ;KEY DEFEAT POINTER - 238 = 007B SWPFLG EQU $7B ;SPLIT SCN CURS CNTL - 239 = 007C HOLDCH EQU $7C ;KB CHAR TEMP HOLD - 240 = 007D INSDAT EQU $7D ;TEMP STORAGE - 241 = 007E COUNTR EQU $7E ;DRAW ITERATION CNT - 242 ; - 243 ; 80-FF ARE RESERVED FOR USER - 244 ; - 245 ; NOTE: SEE FLOATING POINT - 246 ; SUBROUTINE AREA FOR ZERO - 247 ; PAGE CELLS - 248 ; - 249 ; PAGE 1 - HARDWARE STACK - 250 ; - 251 ; PAGE TWO RAM ASSIGNMENTS - 252 ; - 253 = 0200 VDSLST EQU $0200 ;DSP LIST NMI VECTOR - 254 = 0202 VPRCED EQU $0202 ;PROCEED IRQ VECTOR - 255 = 0204 VINTER EQU $0204 ;INTERUPT IRQ VECTOR - 256 = 0206 VBREAK EQU $0206 ;BRK INST IRQ VECTOR - 257 = 0208 VKEYBD EQU $0208 ;POKEY KB IRQ VECTOR - 258 = 020A VSERIN EQU $020A ;POKEY INPUT RDY IRQ - 259 = 020C VSEROR EQU $020C ;POKEY OUTPUT RDY - 260 = 020E VSEROC EQU $020E ;POKEY OUTPUT DONE - 261 = 0210 VTIMR1 EQU $0210 ;POKEY TIMER 1 IRQ - 262 = 0212 VTIMR2 EQU $0212 ;POKEY TIMER 2 IRQ - 263 = 0214 VTIMR4 EQU $0214 ;POKEY TIMER 4 IRQ - 264 = 0216 VIMIRQ EQU $0216 ;IMMED IRQ VECTOR - 265 = 0218 CDTMV1 EQU $0218 ;COUNT DOWN TIMER 1 - 266 = 021A CDTMV2 EQU $021A ;COUNT DOWN TIMER 2 - 267 = 021C CDTMV3 EQU $021C ;COUNT DOWN TIMER 3 - 268 = 021E CDTMV4 EQU $021E ;COUNT DOWN TIMER 4 - 269 = 0220 CDTMV5 EQU $0220 ;COUNT DOWN TIMER 5 - 270 = 0222 VVBLKI EQU $0222 ;IMM VBLK NMI VECTOR - 271 = 0224 VVBLKD EQU $0224 ;DEF VBLK NMI VECTOR - 272 = 0226 CDTMA1 EQU $0226 ;CDTMV1 JSR ADDRESS - 273 = 0228 CDTMA2 EQU $0228 ;CDTMV2 JSR ADDRESS - 274 = 022A CDTMF3 EQU $022A ;CDTMV3 FLAG - 275 = 022B SRTIMR EQU $022B ;SOFTWARE REPEAT TMR - 276 = 022C CDTMF4 EQU $022C ;CDTMV4 FLAG - 277 = 022D INTEMP EQU $022D ;IAN'S TEMP - 278 = 022E CDTMF5 EQU $022E ;CDTMV5 FLAG - 279 = 022F DMACTLS EQU $022F ;SAVE DMACTL REG - 280 = 0230 DLPTRS EQU $0230 ;SAVE DISP LIST LO - 281 ;SDLSTH EQU $0231 ;SAVE DISP LIST HI - 282 = 0232 SSKCTL EQU $0232 ;SKCTL REGISTER RAM - 283 = 0233 LCOUNT EQU $0233 ;LOADER TEMP - 284 = 0234 LPENH EQU $0234 ;LIGHT PEN HORIZONTAL - 285 = 0235 LPENV EQU $0235 ;LIGHT PEN VERTICAL - 286 = 0236 BRKKY EQU $0236 ;BREAK KEY VECTOR - 287 = 0238 RELADR EQU $0238 ;LOADER REL ADDR - 288 = 023A CDEVIC EQU $023A ;COMMAND BUFFER-DEV - 289 = 023B CCOMND EQU $023B ;COMMAND BUFFER-CMND - 290 = 023C CAUX1 EQU $023C ;COMMAND BUFFER AUX1 - 291 = 023D CAUX2 EQU $023D ;COMMAND BUFFER AUX2 - 292 ;TEMP EQU $023E ;TEMPORARY RAM CELL - 293 = 023F ERRFLG EQU $023F ;DEVICE ERROR FLAG - 294 = 0240 DFLAGS EQU $0240 ;DISK FLAGS(SECTOR1) - 295 = 0241 DBSECT EQU $0241 ;# DISK BOOT SECTORS - 296 = 0242 BOOTAD EQU $0242 ;DISK BOOT ADDRESS - 297 = 0244 COLDST EQU $0244 ;COLDSTART FLAG 1=CS - 298 = 0245 RECLEN EQU $0245 ;LOADER LENGTH - 299 = 0246 DSKTIM EQU $0246 ;DISK TIME OUT REG - 300 = 026C VSFLAG EQU $026C ;FINE SCROLL TEMP - 301 = 026D KEYDIS EQU $026D ;KEY DISABLE FLAG - 302 = 026E FINE EQU $026E ;FINE SCROLL ENABLE(A1200) - 303 = 026F GPRIOR EQU $026F ;GLOBAL PRIORITY - 304 = 0270 PADDL0 EQU $0270 ;POT 0 RAM CELL - 305 = 0271 PADDL1 EQU $0271 - 306 = 0272 PADDL2 EQU $0272 - 307 = 0273 PADDL3 EQU $0273 - 308 = 0278 STICK0 EQU $0278 ;JOYSTICK 0 RAM CELL - 309 = 0279 STICK1 EQU $0279 - 310 = 027C PTRIG0 EQU $027C ;PADDLE TRIGGER 0 - 311 = 027D PTRIG1 EQU $027D - 312 = 027E PTRIG2 EQU $027E - 313 = 027F PTRIG3 EQU $027F - 314 = 0284 STRIG0 EQU $0284 ;JOYSTICK TRIGGER 0 - 315 = 0285 STRIG1 EQU $0285 - 316 = 0288 HIBYTE EQU $0288 ;LOADER - 317 = 0289 WMODE EQU $0289 ;CASSETTE R/W MODE - 318 = 028A BLIM EQU $028A ;CASSETTE RECORD SIZE - 319 = 028B IMASK EQU $028B - 320 = 028C JVECK EQU $028C ;JUMP VECTOR - 321 = 028E NEWADR EQU $028E ;LOADER NEW ADDRESS - 322 = 0290 TXTROW EQU $0290 ;TEXT ROWCRS - 323 = 0291 TXTCOL EQU $0291 ;TEXT COLCRS - 324 = 0293 TINDEX EQU $0293 ;TEXT INDEX - 325 = 0294 TXTMSC EQU $0294 ;TEXT WINDOW MEM ADD - 326 = 0296 TXTOLD EQU $0296 ;TEXT OLDROW & COL - 327 = 029C CRETRY EQU $029C ;# COMMAND RETRIES - 328 = 029D HOLD3 EQU $029D - 329 = 029E SUBTMP EQU $029E - 330 = 029F HOLD2 EQU $029F - 331 = 02A0 DMASK EQU $02A0 ;PIXEL LOCATION MASK - 332 = 02A1 TMPLBT EQU $02A1 - 333 = 02A2 ESCFLG EQU $02A2 ;ESCAPE FLAG - 334 = 02A3 TABMAP EQU $02A3 ;TAB STOP MAP - 335 = 02B2 LOGMAP EQU $02B2 ;LINE START BIT MAP - 336 = 02B6 INVFLG EQU $02B6 ;INVERSE VIDEO FLAG - 337 = 02B7 FILFLG EQU $02B7 ;FILL FLAG FOR DRAW - 338 = 02B8 TMPROW EQU $02B8 - 339 = 02B9 TMPCOL EQU $02B9 - 340 = 02BB SCRFLG EQU $02BB ;SET IF SCROLLING - 341 = 02BC HOLD4 EQU $02BC ;TEMP USED BY DRAW - 342 = 02BD DRETRY EQU $02BD ;# OF DEVICE RETRIES - 343 = 02BE SHFLOK EQU $02BE ;SHIFT/CTL LOCK FLAG - 344 = 02BF BOTSCR EQU $02BF ;BOTTOM OF SCREEN - 345 = 02C0 PCOLR0 EQU $02C0 ;P0 COLOR - 346 = 02C1 PCOLR1 EQU $02C1 ;P1 COLOR - 347 = 02C2 PCOLR2 EQU $02C2 ;P2 COLOR - 348 = 02C3 PCOLR3 EQU $02C3 ;P3 COLOR - 349 = 02C4 COLOR0 EQU $02C4 ;COLOR 0 - 350 = 02C5 COLOR1 EQU $02C5 - 351 = 02C6 COLOR2 EQU $02C6 - 352 = 02C7 COLOR3 EQU $02C7 - 353 = 02C8 COLOR4 EQU $02C8 - 354 = 02C8 COLBAKS EQU COLOR4 - 355 = 02C9 RUNADR EQU $02C9 ;LOADER - 356 = 02CB HIUSED EQU $02CB ;LOADER - 357 = 02CD ZHIUSE EQU $02CD ;LOADER - 358 = 02CF GBYTEA EQU $02CF ;LOADER - 359 = 02D1 LOADAD EQU $02D1 ;LOADER - 360 = 02D3 ZLOADA EQU $02D3 ;LOADER - 361 = 02D5 DSCTLN EQU $02D5 ;DISK SECTOR LENGTH - 362 = 02D7 ACMISR EQU $02D7 ;RESERVED - 363 = 02D9 KRPDEL EQU $02D9 ;KEY REPEAT DELAY - 364 = 02DA KEYREP EQU $02DA ;KEY REPEAT RATE(VBLANKS) - 365 = 02DB NOCLIK EQU $02DB ;CLICK ENABLE/DISABLE - 366 = 02DC HELPFG EQU $02DC ;HELP KEY FLAG - 367 = 02DD DMASAV EQU $02DD ;DMA SAVE STATE - 368 = 02DE PBPNT EQU $02DE ;PRINT BUFFER POINTER - 369 = 02DF PBUFSZ EQU $02DF ;PRINT BUFFER SIZE - 370 = 02E0 DOSRUN EQU $02E0 ;DOS RUN/INIT ADDRESSES - 371 = 02E4 RAMSIZ EQU $02E4 ;RAM SIZE-HIGH BYTE - 372 = 02E5 MEMTOP EQU $02E5 ;TOP OF AVAIL MEMORY - 373 = 02E7 MEMLO EQU $02E7 ;BOTTOM OF AVAIL MEM - 374 = 02E9 HNDLOD EQU $02E9 ;POLL FLAG (1200) - 375 = 02EA DVSTAT EQU $02EA ;STATUS BUFFER - 376 = 02EE CBAUDL EQU $02EE ;CASSETTE BAUD RATE - 377 = 02EF CBAUDH EQU $02EF - 378 = 02F0 CRSINH EQU $02F0 ;CURSOR INHIBIT 0=ON - 379 = 02F1 KEYDEL EQU $02F1 ;KEY DELAY - 380 = 02F2 CH1 EQU $02F2 ;PRIOR KB CHAR CODE - 381 = 02F3 CHACT EQU $02F3 ;CHACTL REGISTER RAM - 382 = 02F4 CHBAS EQU $02F4 ;CHBAS REGISTER RAM - 383 = 02F5 NEWROW EQU $02F5 ;POINT DRAW GOES TO - 384 = 02F6 NEWCOL EQU $02F6 - 385 = 02F8 ROWINC EQU $02F8 ;ROW INCREMENT VALUE - 386 = 02F9 COLINC EQU $02F9 ;COL INCREMENT VALUE - 387 = 02FA CHAR EQU $02FA ;INTERNAL CHAR CODE - 388 = 02FB ATACHR EQU $02FB ;ATASCII CHARACTER - 389 = 02FC CHKEY EQU $02FC ;KB CHAR CODE (FIFO) - 390 = 02FD FILDAT EQU $02FD ;RIGHT FILL DATA - 391 = 02FE DSPFLG EQU $02FE ;DISPLAY FLAG - 392 = 02FF SSFLAG EQU $02FF ;START/STOP FLAG - 393 ; - 394 ; PAGE THREE RAM ASSIGNMENTS - 395 ; - 396 = 0300 DDEVIC EQU $0300 ;BUS I.D. NUMBER - 397 = 0301 DUNIT EQU $0301 ;UNIT NUMBER - 398 = 0302 DCOMND EQU $0302 ;BUS COMMAND - 399 = 0303 DSTATS EQU $0303 ;COMMAND TYPE/STATUS - 400 = 0304 DBUFLO EQU $0304 ;DATA BUFFER LO BYTE - 401 = 0305 DBUFHI EQU $0305 ;DATA BUFFER HI BYTE - 402 = 0306 DTIMLO EQU $0306 ;DEVICE TIMEOUT SECS - 403 = 0307 DUNUSE EQU $0307 ;UNUSED BYTE - 404 = 0308 DBYTLO EQU $0308 ;# OF BYTES XFERRED - 405 = 0309 DBYTHI EQU $0309 - 406 = 030A DAUX1 EQU $030A ;COMMAND AUX BYTE 1 - 407 = 030B DAUX2 EQU $030B ;COMMAND AUX BYTE 2 - 408 = 030C TIMER1 EQU $030C ;INITIAL TIMER VALUE - 409 = 030E JMPERS EQU $030E ;OPTIONS (1200) - 410 = 030F CASFLG EQU $030F ;CASSETE MODE IF SET - 411 = 0310 TIMER2 EQU $0310 ;FINAL TIMER VALUE - 412 ;TEMP1 EQU $0312 ;TEMP STORAGE - 413 ;TEMP2 EQU $0313 ;TEMP STORAGE - 414 = 0314 PTIMOT EQU $0314 ;PRINTER TIMEOUT REG - 415 ;TEMP3 EQU $0315 ;TEMP STORAGE - 416 = 0316 SAVIO EQU $0316 ;SAVE SERIAL IN DATA - 417 = 0317 TIMFLG EQU $0317 ;TIMEOUT FLAG C BAUD - 418 = 0318 STACKP EQU $0318 ;SIO STACK PTR SAVE - 419 = 0319 TSTAT EQU $0319 ;TEMP STATUS HOLDER - 420 = 031A HATABS EQU $031A ;HANDLER ADDR TABLE - 421 = 033D PUPBT1 EQU $033D ;POWER/UP RESET - 422 = 033E PUPBT2 EQU $033E - 423 = 033F PUPBT3 EQU $033F - 424 = 0340 ICHID EQU $0340 ;HANDLER INDEX # - 425 = 0341 ICDNO EQU $0341 ;DEVICE NUMBER - 426 = 0342 ICCOM EQU $0342 ;COMMAND CODE - 427 = 0343 ICSTA EQU $0343 ;STATUS - 428 = 0344 ICBAL EQU $0344 ;BUFFER ADDR LO BYTE - 429 = 0345 ICBAH EQU $0345 ;BUFFER ADDR HI BYTE - 430 = 0346 ICPTL EQU $0346 ;PUT ROUTINE ADDR-1 - 431 = 0347 ICPTH EQU $0347 - 432 = 0348 ICBLL EQU $0348 ;BUFFER LENGTH LO - 433 = 0349 ICBLH EQU $0349 ;BUFFER LENGTH HI - 434 = 034A ICAX1 EQU $034A ;AUX BYTE 1 - 435 = 034B ICAX2 EQU $034B ;AUX BYTE 2 - 436 = 034C ICSPR EQU $034C ;SPARE BYTES - 437 = 03C0 PRNBUF EQU $03C0 ;PRINTER BUFFER (40 BYTES) - 438 = 03E8 SUPERF EQU $03E8 ;SCREEN EDITOR - 439 = 03E9 CKEY EQU $03E9 ;START KEY FLAG - 440 = 03EA CASSBT EQU $03EA ;CASSETTE BOOT FLAG - 441 = 03EB CARTCK EQU $03EB ;CARTRIDGE CHECKSUM - 442 = 03ED ACMVAR EQU $03ED ;RESERVED - 443 = 03F9 MINTLK EQU $03F9 ;RESERVED - 444 = 03FA GINTLK EQU $03FA ;CART INTERLOCK - 445 = 03FB CHLINK EQU $03FB ;HANDLER CHAIN - 446 ; - 447 ; PAGE FOUR RAM ASSIGNMENTS - 448 ; - 449 = 03FD CASBUF EQU $03FD ;CASSETTE BUFFER (131 BYTES) - 450 = 0480 USAREA EQU $0480 ;USER AREA - 451 ; - 452 ; PAGE FIVE AND SIX ARE RESERVED - 453 ; FOR USER WORK SPACE - 454 ; - 455 ; COLLEEN MNEMONICS - 456 ; - 457 ; --------------------------------------------------------------------------- - 458 = D200 POKEY EQU $D200 - 459 ; --------------------------------------------------------------------------- - 460 ; - 461 ; READ - 462 ; - 463 = D200 POT0 EQU POKEY+$00 - 464 = D201 POT1 EQU POKEY+$01 - 465 = D202 POT2 EQU POKEY+$02 - 466 = D203 POT3 EQU POKEY+$03 - 467 = D204 POT4 EQU POKEY+$04 - 468 = D205 POT5 EQU POKEY+$05 - 469 = D206 POT6 EQU POKEY+$06 - 470 = D207 POT7 EQU POKEY+$07 - 471 = D208 ALLPOT EQU POKEY+$08 - 472 = D209 KBCODE EQU POKEY+$09 - 473 = D20A RANDOM EQU POKEY+$0a - 474 = D20B POTGO EQU POKEY+$0b - 475 = D20D SERIN EQU POKEY+$0d - 476 = D20E IRQST EQU POKEY+$0e - 477 = D20F SKSTAT EQU POKEY+$0f - 478 ; - 479 ; WRITE - 480 ; - 481 = D200 AUDF1 EQU POKEY+$00 - 482 = D201 AUDC1 EQU POKEY+$01 - 483 = D202 AUDF2 EQU POKEY+$02 - 484 = D203 AUDC2 EQU POKEY+$03 - 485 = D204 AUDF3 EQU POKEY+$04 - 486 = D205 AUDC3 EQU POKEY+$05 - 487 = D206 AUDF4 EQU POKEY+$06 - 488 = D207 AUDC4 EQU POKEY+$07 - 489 = D208 AUDCTL EQU POKEY+$08 - 490 = D209 STIMER EQU POKEY+$09 - 491 = D20A SKRES EQU POKEY+$0a - 492 = D20D SEROUT EQU POKEY+$0d - 493 = D20E IRQEN EQU POKEY+$0e - 494 = D20F SKCTL EQU POKEY+$0f - 495 ; - 496 ; - 497 ; - 498 ; --------------------------------------------------------------------------- - 499 = D000 GTIA EQU $D000 - 500 ; --------------------------------------------------------------------------- - 501 ; - 502 ; WRITE - 503 ; - 504 = D000 HPOSP0 EQU GTIA+$00 - 505 = D001 HPOSP1 EQU GTIA+$01 - 506 = D002 HPOSP2 EQU GTIA+$02 - 507 = D003 HPOSP3 EQU GTIA+$03 - 508 = D004 HPOSM0 EQU GTIA+$04 - 509 = D005 HPOSM1 EQU GTIA+$05 - 510 = D006 HPOSM2 EQU GTIA+$06 - 511 = D007 HPOSM3 EQU GTIA+$07 - 512 = D008 SIZEP0 EQU GTIA+$08 - 513 = D009 SIZEP1 EQU GTIA+$09 - 514 = D00A SIZEP2 EQU GTIA+$0a - 515 = D00B SIZEP3 EQU GTIA+$0b - 516 = D00C SIZEM EQU GTIA+$0c - 517 = D00D GRAFP0 EQU GTIA+$0d - 518 = D00E GRAFP1 EQU GTIA+$0e - 519 = D00F GRAFP2 EQU GTIA+$0f - 520 = D010 GRAFP3 EQU GTIA+$10 - 521 = D011 GRAFM EQU GTIA+$11 - 522 = D012 COLPM0 EQU GTIA+$12 - 523 = D013 COLPM1 EQU GTIA+$13 - 524 = D014 COLPM2 EQU GTIA+$14 - 525 = D015 COLPM3 EQU GTIA+$15 - 526 = D016 COLPF0 EQU GTIA+$16 - 527 = D017 COLPF1 EQU GTIA+$17 - 528 = D018 COLPF2 EQU GTIA+$18 - 529 = D019 COLPF3 EQU GTIA+$19 - 530 = D01A COLBAK EQU GTIA+$1a - 531 = D01B PRIOR EQU GTIA+$1b - 532 = D01C VDELAY EQU GTIA+$1c - 533 = D01D GRACTL EQU GTIA+$1d - 534 = D01E HITCLR EQU GTIA+$1e - 535 = D01F CONSOL EQU GTIA+$1f - 536 ; - 537 ; READ - 538 ; - 539 = D000 M0PF EQU GTIA+$00 - 540 = D001 M1PF EQU GTIA+$01 - 541 = D002 M2PF EQU GTIA+$02 - 542 = D003 M3PF EQU GTIA+$03 - 543 = D004 P0PF EQU GTIA+$04 - 544 = D005 P1PF EQU GTIA+$05 - 545 = D006 P2PF EQU GTIA+$06 - 546 = D007 P3PF EQU GTIA+$07 - 547 = D008 M0PL EQU GTIA+$08 - 548 = D009 M1PL EQU GTIA+$09 - 549 = D00A M2PL EQU GTIA+$0a - 550 = D00B M3PL EQU GTIA+$0b - 551 = D00C P0PL EQU GTIA+$0c - 552 = D00D P1PL EQU GTIA+$0d - 553 = D00E P2PL EQU GTIA+$0e - 554 = D00F P3PL EQU GTIA+$0f - 555 = D010 TRIG0 EQU GTIA+$10 - 556 = D011 TRIG1 EQU GTIA+$11 - 557 = D012 TRIG2 EQU GTIA+$12 - 558 = D013 TRIG3 EQU GTIA+$13 - 559 = D014 PAL EQU GTIA+$14 - 560 ; - 561 ; - 562 ; --------------------------------------------------------------------------- - 563 = D400 ANTIC EQU $D400 - 564 ; --------------------------------------------------------------------------- - 565 ; - 566 = D400 DMACTL EQU ANTIC+$00 - 567 = D401 CHACTL EQU ANTIC+$01 - 568 = D402 DLPTR EQU ANTIC+$02 - 569 ;DLISTH EQU ANTIC+$03 - 570 = D404 HSCROL EQU ANTIC+$04 - 571 = D405 VSCROL EQU ANTIC+$05 - 572 = D407 PMBASE EQU ANTIC+$07 - 573 = D409 CHBASE EQU ANTIC+$09 - 574 = D40A WSYNC EQU ANTIC+$0a - 575 = D40B VCOUNT EQU ANTIC+$0b - 576 = D40C PENH EQU ANTIC+$0c - 577 = D40D PENV EQU ANTIC+$0d - 578 = D40E NMIEN EQU ANTIC+$0e - 579 = D40F NMIRES EQU ANTIC+$0f - 580 = D40F NMIST EQU ANTIC+$0f - 581 ; - 582 ; - 583 ; --------------------------------------------------------------------------- - 584 = D300 PIA EQU $D300 - 585 ; --------------------------------------------------------------------------- - 586 ; - 587 = D300 PORTA EQU PIA+0 - 588 = D301 PORTB EQU PIA+1 - 589 = D302 PACTL EQU PIA+2 - 590 = D303 PBCTL EQU PIA+3 - 591 ; - 592 ; --------------------------------------------------------------------------- - 593 ; Atari ANTIC chip display list equates - 594 ; --------------------------------------------------------------------------- - 595 ; - 596 = 0001 JUMP EQU $01 ; display list jump instruction (3 byte) - 597 = 0041 JVB EQU $41 ; display list jump and wait for vblank instruction (3) - 598 ; - 599 = 0010 SCH EQU $10 ; display list horizontal scrolling - 600 = 0020 SCV EQU $20 ; display list vertical scrolling - 601 = 0040 LMS EQU $40 ; display list load memory scan instruction (3 byte) - 602 = 0080 DLII EQU $80 ; display list interrupt instruction - 603 ; - 604 = 0000 SKIP1 EQU $00 ; display list skip 1 scan line instruction - 605 = 0010 SKIP2 EQU $10 ; display list skip 2 scan lines instruction - 606 = 0020 SKIP3 EQU $20 ; display list skip 3 scan lines instruction - 607 = 0030 SKIP4 EQU $30 ; display list skip 4 scan lines instruction - 608 = 0040 SKIP5 EQU $40 ; display list skip 5 scan lines instruction - 609 = 0050 SKIP6 EQU $50 ; display list skip 6 scan lines instruction - 610 = 0060 SKIP7 EQU $60 ; display list skip 7 scan lines instruction - 611 = 0070 SKIP8 EQU $70 ; display list skip 8 scan lines instruction - 612 ; - 613 = 0002 MODE2 EQU $02 ; display list mode 2 - 614 = 0004 MODE4 EQU $04 ; display list mode 4 - 615 = 0008 MODE8 EQU $08 ; display list mode 8 - 616 = 000E MODEE EQU $0E ; display list mode E - 617 = 000F MODEF EQU $0F ; display list mode F - 618 ; --------------------------------------------------------------------------- - 619 ; ENUMS - 620 ; --------------------------------------------------------------------------- - 621 - 622 .enum @dmactl - 623 = 0000 blank = %00 - 624 = 0001 narrow = %01 - 625 = 0002 standard= %10 - 626 = 0003 wide = %11 - 627 = 0004 missiles= %100 - 628 = 0008 players = %1000 - 629 = 0010 lineX1 = %10000 - 630 = 0000 lineX2 = %00000 - 631 = 0020 dma = %100000 - 632 .ende - 633 - 634 = 003F scr48 = @dmactl(wide|dma|players|missiles|lineX1) - 635 = 003E scr40 = @dmactl(standard|dma|players|missiles|lineX1) - 636 = 003D scr32 = @dmactl(narrow|dma|players|missiles|lineX1) - 637 - 638 .enum @pmcntl - 639 = 0001 missiles= %1 - 640 = 0002 players = %10 - 641 = 0004 trigs = %100 - 642 .ende - 643 - 644 .enum @gtictl - 645 = 0000 prior0 = %0 - 646 = 0001 prior1 = %1 - 647 = 0002 prior2 = %10 - 648 = 0004 prior4 = %100 - 649 = 0008 prior8 = %1000 - 650 = 0010 ply5 = %10000 ; Fifth Player Enable - 651 = 0020 mlc = %100000 ; Multiple Color Player Enable - 652 = 0040 mode9 = %01000000 - 653 = 0080 mode10 = %10000000 - 654 = 00C0 mode11 = %11000000 - 655 .ende - 656 ; --------------------------------------------------------------------------- - 657 ; KBCODEs - 658 ; --------------------------------------------------------------------------- - 659 .enum @kbcode - 660 = 00FF _none = 255 - 661 = 001C _esc = 28 - 662 = 001F _1 = 31 - 663 = 001E _2 = 30 - 664 = 001A _3 = 26 - 665 = 0018 _4 = 24 - 666 = 001D _5 = 29 - 667 = 001B _6 = 27 - 668 = 0033 _7 = 51 - 669 = 0035 _8 = 53 - 670 = 0030 _9 = 48 - 671 = 0032 _0 = 50 - 672 = 0036 _lt = 54 - 673 = 0037 _gt = 55 - 674 = 0034 _del = 52 - 675 = 002C _tab = 44 - 676 = 002F _Q = 47 - 677 = 002E _W = 46 - 678 = 002A _E = 42 - 679 = 0028 _R = 40 - 680 = 002D _T = 45 - 681 = 002B _Y = 43 - 682 = 000B _U = 11 - 683 = 000D _I = 13 - 684 = 0008 _O = 8 - 685 = 000A _P = 10 - 686 = 000E _min = 14 - 687 = 000E _up = 14 ; cursor function - 688 = 000F _eq = 15 - 689 = 000F _down = 15 ; cursor function - 690 = 000C _ret = 12 - 691 = 003F _A = 63 - 692 = 003E _S = 62 - 693 = 003A _D = 58 - 694 = 0038 _F = 56 - 695 = 003D _G = 61 - 696 = 0039 _H = 57 - 697 = 0001 _J = 1 - 698 = 0005 _K = 5 - 699 = 0000 _L = 0 - 700 = 0002 _semicolon = 2 - 701 = 0006 _plus = 6 - 702 = 0006 _left = 6 ; cursor function - 703 = 0007 _asterisk = 7 - 704 = 0007 _right = 7 ; cursor function - 705 = 003C _caps = 60 - 706 = 0017 _Z = 23 - 707 = 0016 _X = 22 - 708 = 0012 _C = 18 - 709 = 0010 _V = 16 - 710 = 0015 _B = 21 - 711 = 0024 _N = 36 - 712 = 0025 _M = 37 - 713 = 0020 _comma = 32 - 714 = 0022 _dot = 34 - 715 = 0026 _slash = 38 - 716 = 0027 _atari = 39 - 717 = 0011 _help = 17 - 718 = 0003 _F1 = 3 - 719 = 0004 _F2 = 4 - 720 = 0013 _F3 = 19 - 721 = 0014 _F4 = 20 - 722 = 0021 _space = 33 - 723 .ende - 724 = 009B EOL = $9b - 724 = 0080 TEMP_W - 724 = 0082 TEMP_B - 724 = 0083 DINOWALKPHASE - 724 = 0084 DINOSTATE - 724 = 0085 JUMPPHASE - 18 icl 'lib/MACRO.ASM' -Source: MACRO.ASM - 1 ;------------------------------------- - 2 .MACRO ROLW - 3 ROL :1 - 4 ROL :1+1 - 5 .ENDM - 6 ;------------------------------------- - 7 .MACRO ASLW - 8 ASL :1 - 9 ROL :1+1 - 10 .ENDM - 11 ;------------------------------------- - 12 .MACRO RORW - 13 ROR :1+1 - 14 ROR :1 - 15 .ENDM - 16 ;------------------------------------- - 17 .MACRO LSRW - 18 LSR :1+1 - 19 ROR :1 - 20 .ENDM - 21 - 22 ;------------------------------------- - 23 .MACRO VMAIN - 24 ; VMAIN #WORD,interrupt.vector - 25 ; interrupt.vector: - 26 ; 0 - VIMIRQ - 27 ; 1 - TIMCNT1 - 28 ; 2 - TIMCNT2 - 29 ; 3 - TIMCNT3 - 30 ; 4 - TIMCNT4 - 31 ; 5 - TIMCNT5 - 32 ; 6 - VVBLKI - 33 ; 7 - VVBLKD - 34 ; 8 - TIMVEC1 - 35 ; 9 - TIMVEC2 - 36 ; Initialises Vertical Blank Interrupts - 37 ; (works only with system interrupts ON) - 38 LDY # <:1 - 39 LDX # >:1 - 40 LDA #:2 - 41 JSR SETVBV - 42 .ENDM - 43 ;------------------------------------- - 44 .MACRO VDLI - 45 ; VDLI #WORD - 46 ; Initialises Display List Interrupts - 47 LDY # <:1 - 48 LDX # >:1 - 49 LDA #$C0 - 50 STY $0200 - 51 STX $0201 - 52 STA NMIEN - 53 .ENDM - 54 ;------------------------------------- - 55 .MACRO VDL - 56 ; VDL #WORD - 57 ; Changes Display List addres - 58 ; and sets width of the screen - 59 ; vdl dl,$01 - narrow screen (32 bytes) - 60 ; vdl dl,$02 - normal screen (40 bytes) - 61 ; vdl dl,$03 - wide screen (48 bytes) - 62 ; (works only with system interrupts ON) - 63 - 64 .if %0=2 - 65 lda dmactls - 66 and #$fc - 67 ora #%2 - 68 sta dmactls - 69 .endif - 70 - 71 LDA # <%1 - 72 STA DLPTRS - 73 LDA # >%1 - 74 STA DLPTRS+1 - 75 .ENDM - 76 ;------------------------------------- - 77 .MACRO halt - 78 ?stop - 79 lda RANDOM - 80 and #$05 - 81 sta COLBAK - 82 jmp ?stop - 83 .ENDM - 84 ;------------------------------------- - 85 .MACRO KEY - 86 ; KEY - 87 ; waits for releasing and pressing "any key" - 88 PHA - 89 ?CK1 LDA SKSTAT - 90 AND #$04 - 91 BEQ ?CK1 - 92 ?CK LDA SKSTAT - 93 AND #$04 - 94 BNE ?CK - 95 PLA - 96 .ENDM - 97 ;------------------------------------- - 98 .MACRO WAIT - 99 ; WAIT - 100 ; waits one frame (1/50 s(PAL) or 1/60s(NTSC)) - 101 ?ze LDA VCOUNT - 102 cmp #16 ; if line<16 then wait for line>15 (long VBI protection) - 103 bcc ?ze - 104 sbc #10 ; last lines correction - 105 ?wa cmp VCOUNT - 106 bcc ?wa - 107 ?wf cmp VCOUNT - 108 bcs ?wf - 109 .ENDM - 110 ;------------------------------------- - 111 .macro waitRTC - 112 lda RTCLOK+2 - 113 ?wa cmp RTCLOK+2 - 114 beq ?wa - 115 .endm - 116 ;------------------------------------- - 117 .macro negw - 118 ; negate the given word (0-a) - 119 ;------------------------------------- - 120 sec - 121 lda #$00 - 122 sbc :1 - 123 sta :1 - 124 lda #$00 - 125 sbc :1+1 - 126 sta :1+1 - 127 .endm - 128 ;------------------------------------- - 129 .macro randomize - 130 ;usage: randomize floor ceiling - 131 ;returns (in A) a random .byte between "floor" and "ceiling" - 132 .if :2 < :1 - 133 .error "floor higher than ceiling" - 134 .endif - 135 ?rand - 136 lda random - 137 cmp #:2+1-:1 ;ceiling - 138 bcs ?rand - 139 .if %1>0 ; if floor = 0 - no add offset - 140 adc #:1 - 141 .endif - 142 .endm - 143 ;------------------------------------- - 144 .macro phx - 145 txa - 146 pha - 147 .endm - 148 ;------------------------------------- - 149 .macro phy - 150 tya - 151 pha - 152 .endm - 153 ;------------------------------------- - 154 .macro plx - 155 pla - 156 tax - 157 .endm - 158 ;------------------------------------- - 159 .macro ply - 160 pla - 161 tay - 162 .endm - 163 ;------------------------------------- - 164 .macro txy - 165 txa - 166 tay - 167 .endm - 168 ;------------------------------------- - 169 .macro tyx - 170 tya - 171 tax - 172 .endm - 173 ;------------------------------------- - 174 .macro pause - 175 ;waits :1 number (byte) of frames - 176 ldx #:1 - 177 ?PAUSELOOP - 178 wait - 179 dex - 180 bne ?PAUSELOOP - 181 .ENDM - 182 - 19 ;--------------------------------------------------- - 20 ; dark screean and BASIC off - 21 ORG $2000 - 22 FFFF> 2000-2015> A9 00 + mva #0 dmactls ; dark screen - 23 2005 A9 FF 8D 01 D3 mva #$ff portb - 24 ; and wait one frame :) - 25 200A waitRTC ; or waitRTC ? -Macro: WAITRTC [Source: MACRO.ASM] - 1 200A A5 14 lda RTCLOK+2 - 2 200C C5 14 ?wa cmp RTCLOK+2 - 3 200E F0 FC beq ?wa -Source: dino.asm - 26 2010 A9 FF 8D 01 D3 mva #$ff portb ; BASIC off - 27 2015 60 rts - 28 02E2-02E3> 00 20 ini $2000 - 29 ;--------------------------------------------------- - 30 - 31 org $2000 - 32 ;--------------------------------------------------- - 33 ; 4 charsets for fine scroll - 34 2000 font1 - 35 2000-2FFF> 00 00 00 00 + ins 'artwork/dino1.fnt' ; 1 charset - 36 = 2400 font2 = font1+$400 - 37 2400 00 00 00 00 00 00 + ins 'artwork/dino2.fnt' ; 2 charset - 38 = 2800 font3 = font2+$400 - 39 2800 00 00 00 00 00 00 + ins 'artwork/dino3.fnt' ; 3 charset - 40 = 2C00 font4 = font3+$400 - 41 2C00 00 00 00 00 00 00 + ins 'artwork/dino4.fnt' ; 4 charset - 42 org font4+$400 - 43 ; screen data - 44 ; SCR_HEIGHT lines 256bytes each - 45 3000 screen - 46 = 3000 .ds $100*SCR_HEIGHT - 47 ; display list - 48 3800 GameDL - 49 3800-3D92> 70 70 70 70 + :15 .byte SKIP8 ; empty lines - 50 - 51 .rept SCR_HEIGHT, # - 52 .BYTE MODE2+LMS+SCH - 53 LINE:1_ADDR - 54 .WORD SCREEN+$100*# - 55 .endr -Source: REPT - 52 380F 52 .BYTE MODE2+LMS+SCH - 52 3810 LINE0_ADDR - 52 3810 00 30 .WORD SCREEN+$100*# - 52 3812 52 .BYTE MODE2+LMS+SCH - 52 3813 LINE1_ADDR - 52 3813 00 31 .WORD SCREEN+$100*# - 52 3815 52 .BYTE MODE2+LMS+SCH - 52 3816 LINE2_ADDR - 52 3816 00 32 .WORD SCREEN+$100*# - 52 3818 52 .BYTE MODE2+LMS+SCH - 52 3819 LINE3_ADDR - 52 3819 00 33 .WORD SCREEN+$100*# - 52 381B 52 .BYTE MODE2+LMS+SCH - 52 381C LINE4_ADDR - 52 381C 00 34 .WORD SCREEN+$100*# - 52 381E 52 .BYTE MODE2+LMS+SCH - 52 381F LINE5_ADDR - 52 381F 00 35 .WORD SCREEN+$100*# - 52 3821 52 .BYTE MODE2+LMS+SCH - 52 3822 LINE6_ADDR - 52 3822 00 36 .WORD SCREEN+$100*# - 52 3824 52 .BYTE MODE2+LMS+SCH - 52 3825 LINE7_ADDR - 52 3825 00 37 .WORD SCREEN+$100*# -Source: dino.asm - 56 3827 41 .byte JVB - 57 3828 00 38 .word GameDL - 58 ;--------------------------------------------------- - 59 ; World table without dino - 60 382A WorldTable - 61 382A 00 00 00 00 00 00 + :WORLD_LENGTH .byte 0 ; ground - 62 ;--------------------------------------------------- - 63 386A FirstSTART - 64 386A 20 0D 39 jsr GenerateCharsets - 65 386D 20 70 3C jsr SetGameScreen - 66 3870 20 46 3C jsr SetStart - 67 3873 A9 00 8D 93 3D mva #0 diff_level - 68 - 69 ; test only (some object in the world) - 70 3878 A9 01 lda #1 ;bird0 - 71 387A 8D 34 38 sta WorldTable+10 - 72 387D A9 04 lda #4 ;cactus - 73 387F 8D 3E 38 sta WorldTable+20 - 74 3882 A9 84 lda #4+$80 ; cactus (second char) - 75 3884 8D 3F 38 sta WorldTable+21 - 76 ; - 77 3887 A2 05 ldx #5 ; position - 78 3889 A0 00 ldy #0 ; shape - 79 388B 20 48 3A jsr ShowDino - 80 388E A2 0A ldx #10 ; position - 81 3890 A0 01 ldy #1 ; shape - 82 3892 20 48 3A jsr ShowDino - 83 3895 A2 0F ldx #15 ; position - 84 3897 A0 02 ldy #2 ; shape - 85 3899 20 48 3A jsr ShowDino - 86 389C A2 14 ldx #20 ; position - 87 389E A0 03 ldy #3 ; shape - 88 38A0 20 48 3A jsr ShowDino - 89 38A3 A2 19 ldx #25 ; position - 90 38A5 A0 04 ldy #4 ; shape - 91 38A7 20 48 3A jsr ShowDino - 92 38AA A9 50 8D 20 37 mva #$50 screen+$700+32 - 93 38AF EndLoop - 94 ;lda #$32 - 95 ;sta COLBAK - 96 38AF 20 5F 39 jsr WorldToScreen - 97 38B2 20 48 3A jsr ShowDino - 98 ;lda #$5f - 99 ;sta COLBAK - 100 38B5 20 0D 3C jsr CheckJoy - 101 ;waitRTC ; or waitRTC ? - 102 ;key - 103 38B8 A9 24 8D F4 02 mva #>font2 chbas - 104 38BD waitRTC ; or waitRTC ? -Macro: WAITRTC [Source: MACRO.ASM] - 1 38BD A5 14 lda RTCLOK+2 - 2 38BF C5 14 ?wa cmp RTCLOK+2 - 3 38C1 F0 FC beq ?wa -Source: dino.asm - 105 38C3 A9 03 8D 04 D4 mva #3 hscrol - 106 ;waitRTC ; or waitRTC ? - 107 ;key - 108 38C8 A9 28 8D F4 02 mva #>font3 chbas - 109 38CD waitRTC ; or waitRTC ? -Macro: WAITRTC [Source: MACRO.ASM] - 1 38CD A5 14 lda RTCLOK+2 - 2 38CF C5 14 ?wa cmp RTCLOK+2 - 3 38D1 F0 FC beq ?wa -Source: dino.asm - 110 38D3 A9 02 8D 04 D4 mva #2 hscrol - 111 38D8 20 78 39 jsr WorldShift ; better place (flickering) - 112 ;waitRTC ; or waitRTC ? - 113 ;key - 114 38DB A9 2C 8D F4 02 mva #>font4 chbas - 115 38E0 waitRTC ; or waitRTC ? -Macro: WAITRTC [Source: MACRO.ASM] - 1 38E0 A5 14 lda RTCLOK+2 - 2 38E2 C5 14 ?wa cmp RTCLOK+2 - 3 38E4 F0 FC beq ?wa -Source: dino.asm - 116 38E6 A9 01 8D 04 D4 mva #1 hscrol - 117 ;waitRTC ; or waitRTC ? - 118 ;key - 119 38EB 20 BA 39 jsr Animate - 120 38EE A9 20 8D F4 02 mva #>font1 chbas - 121 38F3 waitRTC ; or waitRTC ? -Macro: WAITRTC [Source: MACRO.ASM] - 1 38F3 A5 14 lda RTCLOK+2 - 2 38F5 C5 14 ?wa cmp RTCLOK+2 - 3 38F7 F0 FC beq ?wa -Source: dino.asm - 122 38F9 A9 04 8D 04 D4 mva #4 hscrol - 123 38FE 4C AF 38 jmp EndLoop - 124 3901 halt -Macro: HALT [Source: MACRO.ASM] - 1 3901 ?stop - 2 3901 AD 0A D2 lda RANDOM - 3 3904 29 05 and #$05 - 4 3906 8D 1A D0 sta COLBAK - 5 3909 4C 01 39 jmp ?stop -Source: dino.asm - 125 390C 60 rts - 126 - 127 ;----------------------------------------------- - 128 ; Generation of character sets 2,3 and 4 of 1 - 129 ; By copying and horizontal shift dino - 130 ;----------------------------------------------- - 131 390D .proc GenerateCharsets - 132 ; copy charset 1 to 2,3 and 4 (but not dino chars) - 133 390D A0 00 ldy #0 - 134 390F CopyLoop - 135 390F B9 00 20 lda font1,y - 136 3912 99 00 24 sta font2,y - 137 3915 99 00 28 sta font3,y - 138 3918 99 00 2C sta font4,y - 139 391B B9 00 22 lda font1+$200,y - 140 391E 99 00 26 sta font2+$200,y - 141 3921 99 00 2A sta font3+$200,y - 142 3924 99 00 2E sta font4+$200,y - 143 3927 B9 00 23 lda font1+$300,y - 144 392A 99 00 27 sta font2+$300,y - 145 392D 99 00 2B sta font3+$300,y - 146 3930 99 00 2F sta font4+$300,y - 147 3933 C8 iny - 148 3934 D0 D9 bne CopyLoop - 149 - 150 3936 60 rts - 151 .endp - 152 ;----------------------------------------------- - 153 3937 .proc ClearWorld - 154 3937 A0 3F ldy #WORLD_LENGTH-1 ; world size - 155 3939 A9 00 lda #0 ; ground - 156 393B 99 2A 38 @ sta WorldTable,y - 157 393E 88 dey - 158 393F 10 FA bpl @- - 159 3941 60 rts - 160 .endp - 161 3942 .proc ClearScreen - 162 3942 A0 2C ldy #44 ; visible screen len - 163 3944 A9 00 lda #0 - 164 3946 ClearLoop - 165 3946 99 00 37 sta screen+$700,y - 166 3949 99 00 36 sta screen+$600,y - 167 394C 99 00 35 sta screen+$500,y - 168 394F 99 00 34 sta screen+$400,y - 169 3952 99 00 33 sta screen+$300,y - 170 3955 99 00 32 sta screen+$200,y - 171 3958 99 00 31 sta screen+$100,y - 172 395B 88 dey - 173 395C D0 E8 bne ClearLoop - 174 395E 60 rts - 175 .endp - 176 ;----------------------------------------------- - 177 395F .proc WorldToScreen - 178 395F 20 42 39 jsr ClearScreen - 179 3962 A2 00 ldx #0 ; start position - 180 3964 86 82 stx temp_b - 181 3966 ToScreenLoop - 182 3966 BD 2A 38 lda WorldTable,x - 183 3969 30 04 bmi NothingToDraw - 184 396B A8 tay - 185 396C 20 ED 39 jsr ShowObject - 186 396F NothingToDraw - 187 396F E6 82 inc temp_b - 188 3971 A6 82 ldx temp_b - 189 3973 E0 40 cpx #WORLD_LENGTH - 190 3975 D0 EF bne ToScreenLoop - 191 3977 60 rts - 192 .endp - 193 ;----------------------------------------------- - 194 3978 .proc WorldShift - 195 3978 A0 00 ldy #0 - 196 397A Shift - 197 397A B9 2B 38 lda WorldTable+1,y - 198 397D 99 2A 38 sta WorldTable,y - 199 3980 C8 iny - 200 3981 C0 3F cpy #WORLD_LENGTH-1 - 201 3983 D0 F5 bne Shift - 202 3985 A9 00 lda #0 ;ground - 203 3987 99 2A 38 sta WorldTable,y - 204 ; now we can insert random object to world end - 205 - 206 ; check if there is enough of the gap between obstacles - 207 - 208 ; get the gap for the given difficulty level - 209 398A AE 93 3D ldx diff_level - 210 398D A9 40 lda #WORLD_LENGTH - 211 398F 38 sec - 212 3990 FD 83 3D sbc diff_object_gap,x - 213 3993 AA tax - 214 - 215 ; is there a gap? - 216 @ - 217 3994 BD 2A 38 lda WorldTable,x - 218 3997 D0 20 bne noInsert - 219 3999 E8 inx - 220 399A E0 40 cpx #WORLD_LENGTH - 221 399C D0 F6 bne @- - 222 ;all zeroes - 223 399E insertObject - 224 399E AD 0A D2 lda RANDOM - 225 39A1 29 01 and #%00000001 ; insert 50/50 - 226 39A3 F0 14 beq noInsert - 227 39A5 randomize 8 13 ; cactuses and hole -Macro: RANDOMIZE [Source: MACRO.ASM] - 6 39A5 ?rand - 7 39A5 AD 0A D2 lda random - 8 39A8 C9 06 cmp #13+1-8 ;ceiling - 9 39AA B0 F9 bcs ?rand - 11 39AC 69 08 adc #8 -Source: dino.asm - 228 39AE 8D 68 38 sta WorldTable+WORLD_LENGTH-2 - 229 39B1 09 80 ora #$80 - 230 39B3 8D 69 38 sta WorldTable+WORLD_LENGTH-1 - 231 39B6 EE 93 3D inc diff_level - 232 - 233 - 234 - 235 39B9 noInsert - 236 39B9 60 rts - 237 .endp - 238 ;----------------------------------------------- - 239 39BA .proc Animate - 240 39BA A0 40 ldy #WORLD_LENGTH - 241 39BC B9 2A 38 @ lda WorldTable,y - 242 39BF AA tax - 243 39C0 29 7F and #%01111111 - 244 39C2 F0 0A beq NoBird - 245 39C4 C9 08 cmp #8 ; first cactus - 246 39C6 B0 06 bcs NoBird - 247 ; then animate bird - 248 39C8 8A txa - 249 39C9 49 01 eor #%0000001 - 250 39CB 99 2A 38 sta WorldTable,y - 251 39CE NoBird - 252 39CE 88 dey - 253 39CF 10 EB bpl @- - 254 ; animate Dino - 255 39D1 A5 83 lda DinoWalkPhase - 256 39D3 49 01 eor #%00000001 - 257 39D5 85 83 sta DinoWalkPhase - 258 ; jump - 259 39D7 A5 84 lda DinoState - 260 39D9 C9 04 cmp #4 ; jump state - 261 39DB D0 0F bne NoJump - 262 39DD A5 85 lda JumpPhase - 263 39DF C9 07 cmp #JumpLen ; max jump phase - 264 39E1 F0 03 beq EndJump - 265 39E3 E6 85 inc JumpPhase - 266 39E5 60 rts - 267 39E6 EndJump - 268 39E6 A9 00 lda #0 - 269 39E8 85 85 sta JumpPhase - 270 39EA 85 84 sta DinoState - 271 39EC NoJump - 272 39EC 60 rts - 273 .endp - 274 ;----------------------------------------------- - 275 ; Show Object on screen - 276 ; X - y position - 277 ; Y - shape nr - 278 ;----------------------------------------------- - 279 39ED .proc ShowObject - 280 39ED B9 65 3D lda ShapesTableL,y - 281 39F0 85 80 sta temp_w - 282 39F2 B9 74 3D lda ShapesTableH,y - 283 39F5 85 81 sta temp_w+1 - 284 39F7 A0 00 ldy #0 - 285 39F9 ObjectLoop - 286 39F9 B1 80 lda (temp_w),y - 287 39FB 30 03 bmi @+ - 288 39FD 9D 00 34 sta screen+$400,x - 289 3A00 18 A5 80 69 02 85 + @ adw temp_w #2 - 290 3A0B B1 80 lda (temp_w),y - 291 3A0D 30 03 bmi @+ - 292 3A0F 9D 00 35 sta screen+$500,x - 293 3A12 18 A5 80 69 02 85 + @ adw temp_w #2 - 294 3A1D B1 80 lda (temp_w),y - 295 3A1F 30 03 bmi @+ - 296 3A21 9D 00 36 sta screen+$600,x - 297 3A24 18 A5 80 69 02 85 + @ adw temp_w #2 - 298 3A2F B1 80 lda (temp_w),y - 299 3A31 30 03 bmi @+ - 300 3A33 9D 00 37 sta screen+$700,x - 301 3A36 38 A5 80 E9 06 85 + @ sbw temp_w #6 - 302 3A41 E8 inx - 303 3A42 C8 iny - 304 3A43 C0 02 cpy #2 ; object width - 305 3A45 D0 B2 bne ObjectLoop - 306 3A47 60 rts - 307 .endp - 308 ;----------------------------------------------- - 309 ; Show Dino on screen (test) - 310 ;----------------------------------------------- - 311 3A48 .proc ShowDino - 312 3A48 A2 05 ldx #5 ; position - 313 3A4A A5 84 lda DinoState - 314 3A4C 05 83 ora DinoWalkPhase ; shape - 315 3A4E A8 tay - 316 3A4F B9 E9 3C lda DinoShapesTableL,y - 317 3A52 85 80 sta temp_w - 318 3A54 B9 EF 3C lda DinoShapesTableH,y - 319 3A57 85 81 sta temp_w+1 - 320 3A59 C0 04 cpy #4 ; jump - 321 3A5B F0 55 beq Jump - 322 3A5D C0 05 cpy #5 ; jump - 323 3A5F F0 51 beq Jump - 324 3A61 A0 00 ldy #0 - 325 3A63 DinoLoop - 326 3A63 B1 80 lda (temp_w),y - 327 3A65 30 03 bmi @+ - 328 3A67 9D 00 34 sta screen+$400,x - 329 3A6A 18 A5 80 69 05 85 + @ adw temp_w #5 - 330 3A75 B1 80 lda (temp_w),y - 331 3A77 30 03 bmi @+ - 332 3A79 9D 00 35 sta screen+$500,x - 333 3A7C 18 A5 80 69 05 85 + @ adw temp_w #5 - 334 3A87 B1 80 lda (temp_w),y - 335 3A89 30 03 bmi @+ - 336 3A8B 9D 00 36 sta screen+$600,x - 337 3A8E 18 A5 80 69 05 85 + @ adw temp_w #5 - 338 3A99 B1 80 lda (temp_w),y - 339 3A9B 30 03 bmi @+ - 340 3A9D 9D 00 37 sta screen+$700,x - 341 3AA0 38 A5 80 E9 0F 85 + @ sbw temp_w #15 - 342 3AAB E8 inx - 343 3AAC C8 iny - 344 3AAD C0 05 cpy #5 ; dino width - 345 3AAF D0 B2 bne DinoLoop - 346 3AB1 60 rts - 347 3AB2 Jump - 348 3AB2 A4 85 ldy JumpPhase - 349 3AB4 B9 94 3D lda DinoJumpTr,y - 350 3AB7 C9 02 cmp #2 - 351 3AB9 F0 5F beq jPhase2 - 352 3ABB C9 03 cmp #3 - 353 3ABD D0 03 4C 6B 3B jeq jPhase3 - 354 3AC2 C9 04 cmp #4 - 355 3AC4 D0 03 4C BC 3B jeq jPhase4 - 356 3AC9 jPhase1 - 357 3AC9 A0 00 ldy #0 - 358 3ACB DinoLoop1 - 359 3ACB B1 80 lda (temp_w),y - 360 3ACD 30 03 bmi @+ - 361 3ACF 9D 00 33 sta screen+$300,x - 362 3AD2 18 A5 80 69 05 85 + @ adw temp_w #5 - 363 3ADD B1 80 lda (temp_w),y - 364 3ADF 30 03 bmi @+ - 365 3AE1 9D 00 34 sta screen+$400,x - 366 3AE4 18 A5 80 69 05 85 + @ adw temp_w #5 - 367 3AEF B1 80 lda (temp_w),y - 368 3AF1 30 03 bmi @+ - 369 3AF3 9D 00 35 sta screen+$500,x - 370 3AF6 18 A5 80 69 05 85 + @ adw temp_w #5 - 371 3B01 B1 80 lda (temp_w),y - 372 3B03 30 03 bmi @+ - 373 3B05 9D 00 36 sta screen+$600,x - 374 3B08 38 A5 80 E9 0F 85 + @ sbw temp_w #15 - 375 3B13 E8 inx - 376 3B14 C8 iny - 377 3B15 C0 05 cpy #5 ; dino width - 378 3B17 D0 B2 bne DinoLoop1 - 379 3B19 60 rts - 380 3B1A jPhase2 - 381 3B1A A0 00 ldy #0 - 382 3B1C DinoLoop2 - 383 3B1C B1 80 lda (temp_w),y - 384 3B1E 30 03 bmi @+ - 385 3B20 9D 00 32 sta screen+$200,x - 386 3B23 18 A5 80 69 05 85 + @ adw temp_w #5 - 387 3B2E B1 80 lda (temp_w),y - 388 3B30 30 03 bmi @+ - 389 3B32 9D 00 33 sta screen+$300,x - 390 3B35 18 A5 80 69 05 85 + @ adw temp_w #5 - 391 3B40 B1 80 lda (temp_w),y - 392 3B42 30 03 bmi @+ - 393 3B44 9D 00 34 sta screen+$400,x - 394 3B47 18 A5 80 69 05 85 + @ adw temp_w #5 - 395 3B52 B1 80 lda (temp_w),y - 396 3B54 30 03 bmi @+ - 397 3B56 9D 00 35 sta screen+$500,x - 398 3B59 38 A5 80 E9 0F 85 + @ sbw temp_w #15 - 399 3B64 E8 inx - 400 3B65 C8 iny - 401 3B66 C0 05 cpy #5 ; dino width - 402 3B68 D0 B2 bne DinoLoop2 - 403 3B6A 60 rts - 404 3B6B jPhase3 - 405 3B6B A0 00 ldy #0 - 406 3B6D DinoLoop3 - 407 3B6D B1 80 lda (temp_w),y - 408 3B6F 30 03 bmi @+ - 409 3B71 9D 00 31 sta screen+$100,x - 410 3B74 18 A5 80 69 05 85 + @ adw temp_w #5 - 411 3B7F B1 80 lda (temp_w),y - 412 3B81 30 03 bmi @+ - 413 3B83 9D 00 32 sta screen+$200,x - 414 3B86 18 A5 80 69 05 85 + @ adw temp_w #5 - 415 3B91 B1 80 lda (temp_w),y - 416 3B93 30 03 bmi @+ - 417 3B95 9D 00 33 sta screen+$300,x - 418 3B98 18 A5 80 69 05 85 + @ adw temp_w #5 - 419 3BA3 B1 80 lda (temp_w),y - 420 3BA5 30 03 bmi @+ - 421 3BA7 9D 00 34 sta screen+$400,x - 422 3BAA 38 A5 80 E9 0F 85 + @ sbw temp_w #15 - 423 3BB5 E8 inx - 424 3BB6 C8 iny - 425 3BB7 C0 05 cpy #5 ; dino width - 426 3BB9 D0 B2 bne DinoLoop3 - 427 3BBB 60 rts - 428 3BBC jPhase4 - 429 3BBC A0 00 ldy #0 - 430 3BBE DinoLoop4 - 431 3BBE B1 80 lda (temp_w),y - 432 3BC0 30 03 bmi @+ - 433 3BC2 9D 00 30 sta screen,x - 434 3BC5 18 A5 80 69 05 85 + @ adw temp_w #5 - 435 3BD0 B1 80 lda (temp_w),y - 436 3BD2 30 03 bmi @+ - 437 3BD4 9D 00 31 sta screen+$100,x - 438 3BD7 18 A5 80 69 05 85 + @ adw temp_w #5 - 439 3BE2 B1 80 lda (temp_w),y - 440 3BE4 30 03 bmi @+ - 441 3BE6 9D 00 32 sta screen+$200,x - 442 3BE9 18 A5 80 69 05 85 + @ adw temp_w #5 - 443 3BF4 B1 80 lda (temp_w),y - 444 3BF6 30 03 bmi @+ - 445 3BF8 9D 00 33 sta screen+$300,x - 446 3BFB 38 A5 80 E9 0F 85 + @ sbw temp_w #15 - 447 3C06 E8 inx - 448 3C07 C8 iny - 449 3C08 C0 05 cpy #5 ; dino width - 450 3C0A D0 B2 bne DinoLoop4 - 451 3C0C 60 rts - 452 .endp - 453 ;----------------------------------------------- - 454 3C0D .proc CheckJoy - 455 3C0D A5 84 lda DinoState - 456 3C0F C9 04 cmp #4 ; jump state - 457 3C11 F0 24 beq NoChange - 458 3C13 AD 78 02 lda STICK0 - 459 3C16 29 02 and #%00000010 ; down - 460 3C18 F0 27 beq Down - 461 3C1A AD 78 02 lda STICK0 - 462 3C1D 29 01 and #%00000001 ; up - 463 3C1F F0 17 beq Up - 464 ; check keyboard - 465 3C21 AD 0F D2 lda SKSTAT - 466 3C24 C9 F7 cmp #$f7 ; SHIFT - 467 3C26 F0 19 beq Down - 468 3C28 C9 FF cmp #$ff - 469 3C2A F0 07 beq Walk - 470 3C2C AD 09 D2 lda kbcode - 471 3C2F C9 21 cmp #@kbcode._space - 472 3C31 F0 05 beq Up - 473 3C33 Walk - 474 3C33 A9 00 lda #0 - 475 3C35 85 84 sta DinoState - 476 3C37 NoChange - 477 3C37 60 rts - 478 3C38 A9 04 Up lda #4 - 479 3C3A 85 84 sta DinoState - 480 3C3C A9 00 lda #0 - 481 3C3E 85 85 sta JumpPhase - 482 3C40 60 rts - 483 3C41 Down - 484 3C41 A9 02 lda #2 - 485 3C43 85 84 sta DinoState - 486 3C45 60 rts - 487 .endp - 488 ;----------------------------------------------- - 489 3C46 .proc SetStart - 490 3C46 20 37 39 jsr ClearWorld - 491 3C49 A9 00 lda #0 - 492 3C4B 85 83 sta DinoWalkPhase - 493 3C4D A9 00 lda #0 - 494 3C4F 85 84 sta DinoState - 495 3C51 8D C5 02 sta COLOR1 - 496 3C54 A0 00 ldy #0 - 497 3C56 FadeColor - 498 3C56 8C C6 02 sty COLOR2 - 499 3C59 8C C8 02 sty COLOR4 - 500 3C5C waitRTC -Macro: WAITRTC [Source: MACRO.ASM] - 1 3C5C A5 14 lda RTCLOK+2 - 2 3C5E C5 14 ?wa cmp RTCLOK+2 - 3 3C60 F0 FC beq ?wa -Source: dino.asm - 501 3C62 C8 iny - 502 3C63 C0 10 cpy #$10 - 503 3C65 D0 EF bne FadeColor - 504 3C67 A9 0F lda #$0f - 505 3C69 8D C6 02 sta COLOR2 - 506 3C6C 8D C8 02 sta COLOR4 - 507 3C6F 60 rts - 508 .endp - 509 ;----------------------------------------------- - 510 3C70 .proc SetGameScreen - 511 3C70 A9 00 8D 30 02 A9 + mwa #GameDL dlptrs - 512 3C7A A9 3E lda #%00111110 ; normal screen width, DL on, P/M on - 513 3C7C 8D 2F 02 sta dmactls - 514 3C7F A9 20 8D F4 02 mva #>font1 chbas - 515 3C84 60 rts - 516 .endp - 517 ;-------------------------------------------------- - 518 3C85 icl 'artwork/shapes.asm' -Source: shapes.asm - 1 ; @com.wudsn.ide.asm.mainsourcefile=dino.asm - 2 - 3 .IF *>0 ;this is a trick that prevents compiling this file alone - 4 - 5 ; dno run - 6 3C85 dino_run_0 ; anly '0' jumps - 7 3C85 FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. .' - 8 3C8A 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## .' - 9 3C8F 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## ..' - 10 3C94 22 26 2A FF FF .by $22, $26, $2a, $ff, $ff ; '## ..' - 11 3C99 dino_run_1 - 12 3C99 FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. .' - 13 3C9E 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## .' - 14 3CA3 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## ..' - 15 3CA8 2D 2E 2F FF FF .by $2d, $2e, $2f, $ff, $ff ; '## ..' - 16 3CAD dino_run_2 - 17 3CAD FF 23 27 2B FF .by $ff, $23, $27, $2b, $ff ; '. .' - 18 3CB2 20 24 28 2C FF .by $20, $24, $28, $2c, $ff ; ' ## .' - 19 3CB7 21 25 29 FF FF .by $21, $25, $29, $ff, $ff ; '## ..' - 20 3CBC 30 31 32 FF FF .by $30, $31, $32, $ff, $ff ; '## ..' - 21 3CC1 dino_crouch_1 - 22 3CC1 FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff ; '.....' - 23 3CC6 FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff ; '.....' - 24 3CCB 33 34 35 36 37 .by $33, $34, $35, $36, $37 ; '#### ' - 25 3CD0 38 39 3A 3B 3C .by $38, $39, $3a, $3b, $3c ; '#### ' - 26 3CD5 dino_crouch_2 - 27 3CD5 FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff ; '.....' - 28 3CDA FF FF FF FF FF .by $ff, $ff, $ff, $ff, $ff ; '.....' - 29 3CDF 33 34 35 36 37 .by $33, $34, $35, $36, $37 ; '#### ' - 30 3CE4 3D 3E 3F 3B 3C .by $3d, $3e, $3f, $3b, $3c ; '#### ' - 31 3CE9 DinoShapesTableL - 32 3CE9 99 .by dino_run_1 - 40 3CF0 3C .by >dino_run_2 - 41 3CF1 3C .by >dino_crouch_1 - 42 3CF2 3C .by >dino_crouch_2 - 43 3CF3 3C .by >dino_run_0 ; jump - 44 3CF4 3C .by >dino_run_0 ; jump - 45 ; other objects - 46 3CF5 ground_0 - 47 3CF5 FF FF .by $ff, $ff ; '..' - 48 3CF7 FF FF .by $ff, $ff ; '..' - 49 3CF9 FF FF .by $ff, $ff ; '..' - 50 3CFB 52 52 .by $52, $52 ; '##' - 51 3CFD bird_0 - 52 3CFD FF FF .by $ff, $ff ; '..' - 53 3CFF FF FF .by $ff, $ff ; '..' - 54 3D01 40 41 .by $40, $41 ; '##' - 55 3D03 52 52 .by $52, $52 ; '##' - 56 3D05 bird_1 - 57 3D05 FF FF .by $ff, $ff ; '..' - 58 3D07 40 41 .by $40, $41 ; '##' - 59 3D09 FF FF .by $ff, $ff ; '..' - 60 3D0B 52 52 .by $52, $52 ; '##' - 61 3D0D bird_2 - 62 3D0D 40 41 .by $40, $41 ; '##' - 63 3D0F FF FF .by $ff, $ff ; '..' - 64 3D11 FF FF .by $ff, $ff ; ''.' - 65 3D13 52 52 .by $52, $52 ; '##' - 66 3D15 bird_0a - 67 3D15 FF FF .by $ff, $ff ; '..' - 68 3D17 FF FF .by $ff, $ff ; '..' - 69 3D19 42 43 .by $42, $43 ; '##' - 70 3D1B 52 52 .by $52, $52 ; '##' - 71 3D1D bird_1a - 72 3D1D FF FF .by $ff, $ff ; '..' - 73 3D1F 42 43 .by $42, $43 ; '##' - 74 3D21 FF FF .by $ff, $ff ; '..' - 75 3D23 52 52 .by $52, $52 ; '##' - 76 3D25 bird_2a - 77 3D25 42 43 .by $42, $43 ; '##' - 78 3D27 FF FF .by $ff, $ff ; '..' - 79 3D29 FF FF .by $ff, $ff ; ''.' - 80 3D2B 52 52 .by $52, $52 ; '##' - 81 3D2D cactus_0 - 82 3D2D FF FF .by $ff, $ff ; '..' - 83 3D2F FF FF .by $ff, $ff ; '..' - 84 3D31 46 47 .by $46, $47 ; '##' - 85 3D33 44 45 .by $44, $45 ; '##' - 86 3D35 cactus_1 - 87 3D35 FF FF .by $ff, $ff ; '..' - 88 3D37 FF FF .by $ff, $ff ; '..' - 89 3D39 4A 4B .by $4a, $4b ; '##' - 90 3D3B 48 49 .by $48, $49 ; '##' - 91 3D3D cactus_2 - 92 3D3D FF FF .by $ff, $ff ; '..' - 93 3D3F 50 51 .by $50, $51 ; '##' - 94 3D41 4E 4F .by $4e, $4f ; '##' - 95 3D43 4C 4D .by $4c, $4d ; '##' - 96 3D45 cactus_3 - 97 3D45 FF FF .by $ff, $ff ; '..' - 98 3D47 57 FF .by $57, $ff ; '#.' - 99 3D49 56 FF .by $56, $ff ; '#.' - 100 3D4B 55 52 .by $55, $52 ; '##' - 101 3D4D cactus_4 - 102 3D4D FF FF .by $ff, $ff ; '..' - 103 3D4F FF FF .by $ff, $ff ; '..' - 104 3D51 59 FF .by $59, $ff ; '#.' - 105 3D53 58 52 .by $58, $52 ; '##' - 106 3D55 ground_1 - 107 3D55 FF FF .by $ff, $ff ; '..' - 108 3D57 FF FF .by $ff, $ff ; '..' - 109 3D59 FF FF .by $ff, $ff ; '..' - 110 3D5B 53 54 .by $53, $54 ; '##' - 111 3D5D ground_2 - 112 3D5D FF FF .by $ff, $ff ; '..' - 113 3D5F FF FF .by $ff, $ff ; '..' - 114 3D61 FF FF .by $ff, $ff ; '..' - 115 3D63 5A 52 .by $5a, $52 ; '##' - 116 - 117 3D65 ShapesTableL - 118 3D65 F5 .by ground_0 - 135 3D75 3C .by >ground_0 - 136 3D76 3C .by >bird_0 - 137 3D77 3D .by >bird_0a - 138 3D78 3D .by >bird_1 - 139 3D79 3D .by >bird_1a - 140 3D7A 3D .by >bird_2 - 141 3D7B 3D .by >bird_2a - 142 3D7C 3D .by >cactus_0 - 143 3D7D 3D .by >cactus_1 - 144 3D7E 3D .by >cactus_2 - 145 3D7F 3D .by >cactus_3 - 146 3D80 3D .by >cactus_4 - 147 3D81 3D .by >ground_1 - 148 3D82 3D .by >ground_2 - 149 3D83 diff_object_gap ; min distance between obstacles by difficulty level - 150 3D83 14 13 12 11 10 0F + :DIFF_LEVELS .by 20-# - 151 ;----------vars---------- - 152 = 3D93 diff_level .ds 1 - 153 3D94-3D9B> 01 02 03 04 + DinoJumpTr .by 1,2,3,4,4,3,2,1 - 154 = 0007 JumpLen = 7 - 155 .endif ; .IF *>0 - 519 ;-------------------------------------------------- - 520 - 521 02E0-02E1> 6A 38 run FirstSTART