;8bit sound test program ; ; 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 ; ; 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 SKCTLS = $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 ; M0PF = $D000 HPOSP0 = $D000 M1PF = $D001 HPOSP1 = $D001 M2PF = $D002 HPOSP2 = $D002 M3PF = $D003 HPOSP3 = $D003 P0PF = $D004 HPOSM0 = $D004 P1PF = $D005 HPOSM1 = $D005 P2PF = $D006 HPOSM2 = $D006 P3PF = $D007 HPOSM3 = $D007 M0PL = $D008 SIZEP0 = $D008 M1PL = $D009 SIZEP1 = $D009 M2PL = $D00A SIZEP2 = $D00A M3PL = $D00B SIZEP3 = $D00B P0PL = $D00C SIZEM = $D00C P1PL = $D00D GRAFP0 = $D00D P2PL = $D00E GRAFP1 = $D00E P3PL = $D00F GRAFP2 = $D00F TRIG0 = $D010 GRAFP3 = $D010 TRIG1 = $D011 GRAFM = $D011 TRIG2 = $D012 COLPM0 = $D012 TRIG3 = $D013 COLPM1 = $D013 PAL = $D014 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 ; POT0 = $D200 AUDF0 = $D200 POT1 = $D201 AUDC0 = $D201 POT2 = $D202 AUDF1 = $D202 POT3 = $D203 AUDC1 = $D203 POT4 = $D204 AUDF2 = $D204 POT5 = $D205 AUDC2 = $D205 POT6 = $D206 AUDF3 = $D206 POT7 = $D207 AUDC3 = $D207 ALLPOT = $D208 AUDCTL = $D208 KBCODE = $D209 STIMER = $D209 RANDOM = $D20A SKREST = $D20A POTGO = $D20B SERIN = $D20D SEROUT = $D20D IRQST = $D20E IRQEN = $D20E SKSTAT = $D20F 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 NMIST = $D40F 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 ;******* Variables ******************************** SOUNDZP = $00d0 ;2 BYTES - SOUND ADDRESSES ; org $4000 ;Start of code ;************** insert TUNES here *********************** icl 'galaga-soundfx.s' ; icl 'TUNES_POKEY_TEST6.S' ;Triangle wave test ;*************** start code ************************** START sei ;Disable interrupts cld ;Clear decimal mode ;************** Clear zero page ****** ldx #$d0 lda #$00 crloop1 sta $00,x ;Clear zero page inx bne crloop1 ;************* sprite code ************************** ;************* Clear RAM ************************** lda #$00 ldy #$00 crloop3 sta $2200,y ;Store data iny ;Next byte cpy #$40 bne crloop3 ;Branch if not done page jsr RSTPOKEY jsr CLEARTUN ldx #>VBID ;set pointer to VBI ldy #