sound fixes + pseudo stereło

This commit is contained in:
2024-08-18 15:46:57 -04:00
parent 2629d97905
commit 88c550ba45
9 changed files with 75 additions and 2173 deletions
+17 -4
View File
@@ -31,6 +31,9 @@ swap_table=$0600 ; table for swap bytes in left characters :)
;---------------------------------------------------
.IF ALONE =1
; dark screean and BASIC off
org $2000
PLAYER
icl 'music/playlzs16.asm' ; Music Player
ORG $3000
mva #0 dmactls ; dark screen
mva #$ff portb
@@ -39,12 +42,22 @@ swap_table=$0600 ; table for swap bytes in left characters :)
mva #$ff portb ; BASIC off
rts
ini $3000
.else
PLAYER = $2000
INIT_SONG = PLAYER+3
org $e0
song_start_ptr .ds 2
song_end_ptr .ds 2
chn_copy .ds 9
chn_pos .ds 9
bptr .ds 2
cur_pos .ds 1
chn_bits .ds 1
bit_data .ds 1
.ENDIF
;---------------------------------------------------
org $2000
PLAYER
icl 'music/playlzs16.asm' ; Music Player
org $3000
PMgraph
org PMGraph+$800 ; P/M graphics for clouds
BIN
View File
Binary file not shown.
-13
View File
@@ -1,13 +0,0 @@
1
2
3
2
4
2
5
2
3
2
4
2
6
+42 -19
View File
@@ -12,11 +12,18 @@
icl '../lib/ATARISYS.ASM'
icl '../lib/MACRO.ASM'
;---------------------------------------------------
;BASIC OFF
ORG $3000
mva #0 dmactls ; dark screen
; and wait one frame :)
waitRTC
mva #$ff portb ; BASIC off
rts
ini $3000
org $2000
PLAYER
icl '../music/playlzs16.asm' ; Music Player
;---------------------------------------------------
; BASIC off
ORG $2c00
start1
mva #$ff portb
@@ -139,9 +146,6 @@ leet_speeks_h
.by >leet_speek2
.by >leet_speek3
.by >leet_speek4
leet_screen
.ds 32*9
leet_screen_end
;--------------------------------------------------
.proc PlayMusic
mwa #MUSIC_DATA song_start_ptr
@@ -152,20 +156,25 @@ leet_screen_end
.endp
.proc StopMusic
VMAIN XITVBV,7 ; jsr SetVBL
waitRTC
ldx #8
lda #0
@ sta POKEY,x
sta POKEY+$10,x
dex
bpl @-
rts
.endp
.proc VBLinterrupt
jsr PLAYER
pla
tay
pla
tax
pla
rti
jmp XITVBV
.endp
leet_screen
.ds 32*9
leet_screen_end
.align $100
MUSIC_DATA
ins '../music/Title.lzss' ; title music
ins '../music/title.lzss' ; title music
MUSIC_DATA_END
ini start1
@@ -189,7 +198,11 @@ start
mva #0 COLOR2
sta COLBAK
mva #15 COLOR1
POKEY_INIT
;POKEY_INIT
mva #0 AUDCTL
sta AUDCTL+$10
mva #3 SKSTAT
sta SKSTAT+$10
pause 3
lda #0
sta $d40e ; NMI OFF
@@ -232,15 +245,15 @@ please_wait_loop
bne exit_tech_diff
sta wsync ;------------
lda TRIG0
beq exit_tech_diff
beq exit_tech_diff
sta wsync ;------------
tya
and #$0F
ora #$10
sta AUDC1
sta AUDC2
sta AUDC3
sta AUDC1+$10 ;pseudo stereo
sta AUDC2+$10
sta AUDC3+$10
;sta AUDC4
@@ -250,11 +263,12 @@ please_wait_loop
sta wsync
beq @+
sta wsync
jmp @-
@
inx
cpx #11
sne:ldx #1
cpx #11 ; track length
sne:ldx #1 ; jump to second sample
jmp please_wait_loop
exit_tech_diff
@@ -277,8 +291,17 @@ exit_tech_diff
cli ; IRQ on
mva #0 DMACTLS
sta dmactl
rts
;jmp quiet ; rts
.proc quiet
ldx #8
lda #0
@ sta POKEY,x
sta POKEY+$10,x
dex
bpl @-
rts
.endp
sample1
ins 'wait1.wav.bin'
sample_end1
-653
View File
@@ -1,653 +0,0 @@
mads 2.1.7 build 3 (13 Sep 23)
Label table:
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 TEMP_W2
00 0085 TEMP_W3
00 2000 PLAYER
00 00E0 SONG_START_PTR
00 00E2 SONG_END_PTR
00 00E4 CHN_COPY
00 00ED CHN_POS
00 00F6 BPTR
00 00F8 CUR_POS
00 00F9 CHN_BITS
00 00FA BIT_DATA
00 2003 INIT_SONG
00 2006 INIT_SONG.0@
00 2040 INIT_SONG.CLEAR
00 2048 INIT_SONG.CBUF
00 2056 PLAY_FRAME
00 2062 PLAY_FRAME.CHN_LOOP
00 2074 PLAY_FRAME.GOT_BIT
00 2080 PLAY_FRAME.DO_COPY_BYTE
00 2088 PLAY_FRAME.STORE
00 208F PLAY_FRAME.SKIP_CHN
00 2096 PLAY_FRAME.CHECK_END_SONG
00 20A8 GET_BYTE
00 20A9 SONG_PTR
00 2100 BUFFERS
00 2C00 START1
00 2C27 LEET_ANIM
00 2C50 1@
00 2C74 NEXT_LETTER
00 2C93 LEET_END
00 2C9A WAIT_FOR_RELEASING_KEYZ
00 2C9A WAIT_FOR_RELEASING_KEYZ.2@
00 2CA1 WAIT_FOR_RELEASING_KEYZ.3@
00 2CAC WAIT_FOR_RELEASING_KEYZ.4@
00 2CB2 DL_PRE
00 2CD2 PRE_SCREEN
00 2DF2 PRE_SCREEN_END
00 2DF2 LEET_SPEEK1
00 2E0C LEET_SPEEK2
00 2E26 LEET_SPEEK3
00 2E40 LEET_SPEEK4
00 2E5A LEET_SPEEKS_L
00 2E5E LEET_SPEEKS_H
00 2E62 LEET_SCREEN
00 2F82 LEET_SCREEN_END
00 2F82 PLAYMUSIC
00 2F9F STOPMUSIC
00 2FA9 VBLINTERRUPT
00 3000 MUSIC_DATA
00 357F MUSIC_DATA_END
00 3000 SCREEN
00 3410 DL
00 343C START
00 3482 PLEASE_WAIT_LOOP
00 3498 5@
00 3499 SAMPLE_LOAD
00 34FA 6@
00 3504 EXIT_TECH_DIFF
00 3504 7@
00 350B 8@
00 3516 9@
00 352A SAMPLE1
00 4896 SAMPLE_END1
00 4896 SAMPLE2
00 6B7B SAMPLE_END2
00 6B7B SAMPLE3
00 6E15 SAMPLE_END3
00 6E15 SAMPLE4
00 70AF SAMPLE_END4
00 70AF SAMPLE5
00 98C9 SAMPLE_END5
00 98C9 SAMPLES_L
00 98D4 SAMPLES_H
00 98DF SAMPLES_END_L
00 98EA SAMPLES_END_H
00 98F5 FINITO
-1483
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
+16 -1
View File
@@ -54,6 +54,12 @@ bit_data .ds 1
inx
bne @-
;clear pokey_save
ldx #8
@ sta pokey_save,x
dex
bpl @-
mva #1 bit_data
; here initializes song pointer:
@@ -85,6 +91,13 @@ cbuf
; Play one frame of the song
;
.proc play_frame
; play old frame on second pokey
ldx #8
@ lda pokey_save,x
sta POKEY+$10,x
dex
bpl @-
lda #>buffers
sta bptr+1
@@ -128,6 +141,7 @@ do_copy_byte:
store:
ldy cur_pos
sta POKEY, x ; Store to output and buffer
sta pokey_save,x
sta (bptr), y
skip_chn:
@@ -168,7 +182,8 @@ get_byte
jmp @- */
pokey_save
.ds 9
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.align $100
BIN
View File
Binary file not shown.