; ; System equates ; ; OS EQUATES ; ---------- ; ; Syntax: ; Use '=' for addresses ; and '#' for values ; ; IO EQUATES ; ICHID = $0000 ICDNO = $0001 ICCOM = $0002 ICSTA = $0003 ICBAL = $0004 ICBAH = $0005 ICPTL = $0006 ICPTH = $0007 ICBLL = $0008 ICBLH = $0009 ICAX1 = $000A ICAX2 = $000B ICAX3 = $000C ICAX4 = $000D ICAX5 = $000E ICAX6 = $000F ; ; DISPLAY LIST EQUATES ; ADLI = $0080 AVB = $0040 ALMS = $0040 AVSCR = $0020 AHSCR = $0010 AJMP = $0001 AEMPTY1 = $0000 AEMPTY2 = $0010 AEMPTY3 = $0020 AEMPTY4 = $0030 AEMPTY5 = $0040 AEMPTY6 = $0050 AEMPTY7 = $0060 AEMPTY8 = $0070 ; ; OS VARIABLES FOR XL/XE ; ; PAGE 0 ; NGFLAG = $0001 CASINI = $0002 RAMLO = $0004 TRAMSZ = $0006 CMCMD = $0007 WARMST = $0008 BOOT = $0009 DOSVEC = $000A DOSINI = $000C APPMHI = $000E POKMSK = $0010 BRKKEY = $0011 RTCLOK = $0012 BUFADR = $0015 ICCOMT = $0017 DSKFMS = $0018 DSKUTL = $001A ABUFPT = $001C ICHIDZ = $0020 ICDNOZ = $0021 ICCOMZ = $0022 ICSTAZ = $0023 ICBALZ = $0024 ICBAHZ = $0025 ICPTLZ = $0026 ICPTHZ = $0027 ICBLLZ = $0028 ICBLHZ = $0029 ICAX1Z = $002A ICAX2Z = $002B ICAX3Z = $002C ICAX4Z = $002D ICAX5Z = $002E ICAX6Z = $002F STATUS = $0030 CHKSUM = $0031 BUFRLO = $0032 BUFRHI = $0033 BFENLO = $0034 BFENHI = $0035 LTEMP = $0036 BUFRFL = $0038 RECVDN = $0039 XMTDON = $003A CHKSNT = $003B NOCKSM = $003C BPTR = $003D FTYPE = $003E FEOF = $003F FREQ = $0040 SOUNDR = $0041 CRITIC = $0042 FMSZPG = $0043 ZCHAIN = $004A DSTAT = $004C ATRACT = $004D DRKMSK = $004E COLRSH = $004F TEMP = $0050 HOLD1 = $0051 LMARGN = $0052 RMARGN = $0053 ROWCRS = $0054 COLCRS = $0055 DINDEX = $0057 SAVMSC = $0058 OLDROW = $005A OLDCOL = $005B OLDCHR = $005D OLDADR = $005E FKDEF = $0060 PALNTS = $0062 LOGCOL = $0063 ADRESS = $0064 MLTTMP = $0066 SAVADR = $0068 RAMTOP = $006A BUFCNT = $006B BUFSTR = $006C BITMSK = $006E SHFAMT = $006F ROWAC = $0070 COLAC = $0072 ENDPT = $0074 DELTAR = $0076 DELTAC = $0077 KEYDEF = $0079 SWPFLG = $007B HOLDCH = $007C INSDAT = $007D COUNTR = $007E LOMEM = $0080 VNTP = $0082 VNTD = $0084 VVTP = $0086 STMTAB = $0088 STMCUR = $008A STARP = $008C RUNSTK = $008E TOPSTK = $0090 MEOLFLG = $0092 POKADR = $0095 DATAD = $00B6 DATALN = $00B7 STOPLN = $00BA SAVCUR = $00BE IOCMD = $00C0 IODVC = $00C1 PROMPT = $00C2 ERRSAVE = $00C3 COLOUR = $00C8 PTABW = $00C9 LOADFLG = $00CA FR0 = $00D4 FRE = $00DA FR1 = $00E0 FR2 = $00E6 FRX = $00EC EEXP = $00ED NSIGN = $00EE ESIGN = $00EF FCHRFLG = $00F0 DIGRT = $00F1 CIX = $00F2 INBUFF = $00F3 ZTEMP1 = $00F5 ZTEMP4 = $00F7 ZTEMP3 = $00F9 RADFLG = $00FB FLPTR = $00FC FPTR2 = $00FE ; ; PAGE 2 ; VDSLST = $0200 VPRCED = $0202 VINTER = $0204 VBREAK = $0206 VKEYBD = $0208 VSERIN = $020A VSEROR = $020C VSEROC = $020E VTIMR1 = $0210 VTIMR2 = $0212 VTIMR4 = $0214 VIMIRQ = $0216 CDTMV1 = $0218 CDTMV2 = $021A CDTMV3 = $021C CDTMV4 = $021E CDTMV5 = $0220 VVBLKI = $0222 VVBLKD = $0224 CDTMA1 = $0226 CDTMA2 = $0228 CDTMF3 = $022A SRTIMR = $022B CDTMF4 = $022C INTEMP = $022D CDTMF5 = $022E SDMCTL = $022F SDLSTL = $0230 SDLSTH = $0231 SSKCTL = $0232 SPARE = $0233 LPENH = $0234 LPENV = $0235 BRKKY = $0236 VPIRQ = $0238 CDEVIC = $023A CCOMND = $023B CAUX1 = $023C CAUX2 = $023D TMPSIO = $023E ERRFLG = $023F DFLAGS = $0240 DBSECT = $0241 BOOTAD = $0242 COLDST = $0244 RECLEN = $0245 DSKTIM = $0246 PDVMSK = $0247 SHPDVS = $0248 PDMSK = $0249 RELADR = $024A PPTMPA = $024C PPTMPX = $024D CHSALT = $026B VSFLAG = $026C KEYDIS = $026D FINE = $026E GPRIOR = $026F PADDL0 = $0270 PADDL1 = $0271 PADDL2 = $0272 PADDL3 = $0273 PADDL4 = $0274 PADDL5 = $0275 PADDL6 = $0276 PADDL7 = $0277 STICK0 = $0278 STICK1 = $0279 STICK2 = $027A STICK3 = $027B PTRIG0 = $027C PTRIG1 = $027D PTRIG2 = $027E PTRIG3 = $027F PTRIG4 = $0280 PTRIG5 = $0281 PTRIG6 = $0282 PTRIG7 = $0283 STRIG0 = $0284 STRIG1 = $0285 STRIG2 = $0286 STRIG3 = $0287 HIBYTE = $0288 WMODE = $0289 BLIM = $028A IMASK = $028B JVECK = $028C NEWADR = $028E TXTROW = $0290 TXTCOL = $0291 TINDEX = $0293 TXTMSC = $0294 TXTOLD = $0296 CRETRY = $029C HOLD3 = $029D SUBTMP = $029E HOLD2 = $029F DMASK = $02A0 TMPLBT = $02A1 ESCFLG = $02A2 TABMAP = $02A3 LOGMAP = $02B2 INVFLG = $02B6 FILFLG = $02B7 TMPROW = $02B8 TMPCOL = $02B9 SCRFLG = $02BB HOLD4 = $02BC DRETRY = $02BD SHFLOC = $02BE BOTSCR = $02BF PCOLR0 = $02C0 PCOLR1 = $02C1 PCOLR2 = $02C2 PCOLR3 = $02C3 COLOR0 = $02C4 COLOR1 = $02C5 COLOR2 = $02C6 COLOR3 = $02C7 COLOR4 = $02C8 RUNADR = $02C9 HIUSED = $02CB ZHIUSE = $02CD GBYTEA = $02CF LOADAD = $02D1 ZLOADA = $02D3 DSCTLN = $02D5 ACMISR = $02D7 KRPDER = $02D9 KEYREP = $02DA NOCLIK = $02DB HELPFG = $02DC DMASAV = $02DD PBPNT = $02DE PBUFSZ = $02DF RUNAD = $02E0 INITAD = $02E2 RAMSIZ = $02E4 MEMTOP = $02E5 MEMLO = $02E7 HNDLOD = $02E9 DVSTAT = $02EA CBAUDL = $02EE CBAUDH = $02EF CRSINH = $02F0 KEYDEL = $02F1 CH1 = $02F2 CHACT = $02F3 CHBAS = $02F4 NEWROW = $02F5 NEWCOL = $02F6 ROWINC = $02F8 COLINC = $02F9 CHAR = $02FA ATACHR = $02FB CH = $02FC FILDAT = $02FD DSPFLG = $02FE SSFLAG = $02FF ; ; PAGE 3 ; DDEVIC = $0300 DUNIT = $0301 DCOMND = $0302 DSTATS = $0303 DBUFLO = $0304 DBUFHI = $0305 DTIMLO = $0306 DUNUSE = $0307 DBYTLO = $0308 DBYTHI = $0309 DAUX1 = $030A DAUX2 = $030B TIMER1 = $030C ADDCOR = $030E CASFLG = $030F TIMER2 = $0310 TEMP1 = $0312 TEMP2 = $0314 TEMP3 = $0315 SAVIO = $0316 TIMFLG = $0317 STACKP = $0318 TSTAT = $0319 HATABS = $031A PUPBT1 = $033D PUPBT2 = $033E PUPBT3 = $033F IOCB0 = $0340 IOCB1 = $0350 IOCB2 = $0360 IOCB3 = $0370 IOCB4 = $0380 IOCB5 = $0390 IOCB6 = $03A0 IOCB7 = $03B0 PRNBUF = $03C0 SUPERF = $03E8 CKEY = $03E9 CASSBT = $03EA CARTCK = $03EB DERRF = $03EC ACMVAR = $03ED BASICF = $03F8 MINTLK = $03F9 GINTLK = $03FA CHLINK = $03FB CASBUF = $03FD ; ; HARDWARE REGISTERS ; ; GTIA ; HPOSP0 = $D000 HPOSP1 = $D001 HPOSP2 = $D002 HPOSP3 = $D003 HPOSM0 = $D004 HPOSM1 = $D005 HPOSM2 = $D006 HPOSM3 = $D007 SIZEP0 = $D008 SIZEP1 = $D009 SIZEP2 = $D00A SIZEP3 = $D00B SIZEM = $D00C GRAFP0 = $D00D GRAFP1 = $D00E GRAFP2 = $D00F GRAFP3 = $D010 GRAFM = $D011 COLPM0 = $D012 COLPM1 = $D013 COLPM2 = $D014 COLPM3 = $D015 COLPF0 = $D016 COLPF1 = $D017 COLPF2 = $D018 COLPF3 = $D019 COLBK = $D01A PRIOR = $D01B VDELAY = $D01C GRACTL = $D01D HITCLR = $D01E CONSOL = $D01F ; ; POKEY ; AUDF1 = $D200 AUDC1 = $D201 AUDF2 = $D202 AUDC2 = $D203 AUDF3 = $D204 AUDC3 = $D205 AUDF4 = $D206 AUDC4 = $D207 AUDCTL = $D208 STIMER = $D209 SKREST = $D20A POTGO = $D20B SEROUT = $D20D IRQEN = $D20E SKCTL = $D20F ; ; PIA ; PORTA = $D300 PORTB = $D301 PACTL = $D302 PBCTL = $D303 ; ; ANTIC ; DMACLT = $D400 CHACTL = $D401 DLISTL = $D402 DLISTH = $D403 HSCROL = $D404 VSCROL = $D405 PMBASE = $D407 CHBASE = $D409 WSYNC = $D40A VCOUNT = $D40B PENH = $D40C PENV = $D40D NMIEN = $D40E NMIRES = $D40F ; ; FLOATING POINT ROUTINES ; AFP = $D800 FASC = $D8E6 IFP = $D9AA FPI = $D9D2 ZFR0 = $DA44 ZF1 = $DA46 FSUB = $DA60 FADD = $DA66 FMUL = $DADB FDIV = $DB28 PLYEVL = $DD40 FLD0R = $DD89 FLD0P = $DD8D FLD1R = $DD98 FLD1P = $DD9C FSTOR = $DDA7 FSTOP = $DDAB FMOVE = $DDB6 EXP = $DDC0 EXP10 = $DDCC LOG = $DECD LOG10 = $DED1 ; ; ROM VECTORS ; DSKINV = $E453 CIOV = $E456 SIOV = $E459 SETVBV = $E45C SYSVBV = $E45F XITVBV = $E462 SIOINV = $E465 SENDEV = $E468 INTINV = $E46B CIOINV = $E46E SELFSV = $E471 WARMSV = $E474 COLDSV = $E477 RBLOKV = $E47A CSOPIV = $E47D PUPDIV = $E480 SELFTSV = $E483 PENTV = $E486 PHUNLV = $E489 PHINIV = $E48C GPDVV = $E48F ; ; Code equates ; L0404 = $0404 L4F4D = $4F4D L4F4F = $4F4F L8400 = $8400 LB022 = $B022 LB065 = $B065 LB0B7 = $B0B7 LB137 = $B137 LB14C = $B14C LBC20 = $BC20 LBEEA = $BEEA ; ; Start of code ; *= $B000 ; LDY #$00 LDX #$16 LB004 LDA #$00 STA COUNTR+1,X LDA LB0E4,Y STA LB0F9,X EOR #$FF ADC #$14 STA LB137,Y STA LB14C,X INY DEX BNE LB004 LDY #$0F LB01E LDA #$4F STA LBC20,X INX BNE LB01E INC LB022 DEY BNE LB01E STA GPRIOR INY STY VNTP INY LB033 LDA LB0B4,Y STA LBEEA,Y DEY BPL LB033 INY LB03D LDA LOMEM STA L8400,Y LDA LOMEM+1 ADC #$5B STA LOMEM+1 BCC LB050 LDA LOMEM ADC #$10 STA LOMEM LB050 INY BNE LB03D LB053 LDA #$31 STA VNTP+1 LB057 LDA VCOUNT BNE LB057 LDY #$28 LB05E STA L4F4F,Y DEY BPL LB05E LDY #$28 LDA L8400,Y STA LOMEM LDA LB0E4,Y TAX LB06F LDA LOMEM STA L4F4D,X INX TXA CMP LB0B7,Y BNE LB06F LB07B LDA LOMEM EOR #$FF STA L4F4D,X INX TXA CMP LB137,Y BNE LB07B DEC LB065 BNE LB093 LDA #$28 STA LB065 LB093 LDA VNTD ADC #$80 STA VNTD BCC LB0A8 LDY #$00 LB09D LDA LB0B7,Y ADC VNTP STA LB0B7,Y INY BNE LB09D LB0A8 DEC VNTP+1 BNE LB057 LDA VNTP EOR #$FF STA VNTP BNE LB053 LB0B4 EOR (ICHIDZ,X) LDY L0404,X .SBYTE "$$%%%%&&&'''" .SBYTE "((()))**+++," .SBYTE ",,---...////" .SBYTE "0001111" LB0E4 .SBYTE "####" .BYTE $02,$02,$02,$02 .BYTE $02,$02 .SBYTE "!!!!!!!!!!!" LB0F9 .SBYTE "!" ; .END