Reformat vsndrm1.src
authorRobert Hogan <robhogan@gmail.com>
Tue, 13 Jul 2021 16:53:26 +0000 (17:53 +0100)
committerRobert Hogan <robhogan@gmail.com>
Tue, 13 Jul 2021 16:53:26 +0000 (17:53 +0100)
.gitmodules
Makefile
src/vsndrm1.src
vasm-mirror [new submodule]

index 5f53a1272955e87ee8a1ad3fbcaffae59eda6918..60a7236cf55c397cbc4b5acad2d6c2ae8f1f7c37 100644 (file)
@@ -1,3 +1,6 @@
 [submodule "asm6809"]
        path = asm6809
        url = https://www.6809.org.uk/git/asm6809.git
+[submodule "vasm-mirror"]
+       path = vasm-mirror
+       url = git@github.com:mbitsnbites/vasm-mirror.git
index 9f3b1224dc859cf3c7cb04619bdae5a12058218d..446fb0aab676510ca295d041f8ca9614a4227346 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -42,6 +42,10 @@ defender:
        # Build roms
        ./asm6809/src/asm6809 -B src/mess0.src src/romf8.src src/romc0.src src/romc8.src\
                        -l bin/roms.lst -o bin/roms.o
+       #
+       # Build sound
+       ./asm6809/src/asm6809 -B --6309 src/vsndrm1.src\
+                       -l bin/vsndrm1.lst -o bin/vsndrm1.o
 
 # Recreate the uncompressed ROM images in DEFENDER.EXE
 defender.rom: defender
index a87e23766dcc589d00ff5164f920f1d7a2e528ec..7b6cbe6c6d2e268d2c1309a57416718d07db71c7 100755 (executable)
@@ -1,5 +1,5 @@
-       NOGEN
-       NAM     DEFENDER SOUNDS REV. 1.0 BY SAM D 10/80
+*       NOGEN
+*       NAM    DEFENDER         ;SOUNDS REV. 1.0 BY SAM D 10/80
 *COPYRIGHT WILLIAMS ELECTRONICS 1980
 *PROGRAM ORIGINATION DATE 10/24/80
 *PROGRAM RELEASE 10/31/80
 *
 *SYSTEM CONSTANTS
 *
-ROM    EQU     $F800
-SOUND  EQU     $400
-CKORG  EQU     $F700   CHECKSUM PROG ORG
-ENDRAM EQU     $7F
-VECTOR EQU     $FFF8   RESET,INT VECTORS
-WVELEN EQU     72
-BG2MAX EQU     29
-SP1SND EQU     $0E     SPINNER SOUND #1 CODE
-B2SND  EQU     $12     BONUS SOUND #2 CODE
-SP1MAX EQU     32
-TACC   EQU     4       TACCATA TEMPO CONSTANT
-PHANC  EQU     3       PHANTOM TEMPO CONTANT
-TAF    EQU     34715!>1        NOTE TIMES
-TA     EQU     36780!>1
-TBF    EQU     38967!>1
-TB     EQU     41284!>1
-TC     EQU     43739!>1
-TCS    EQU     46340!>1
-TD     EQU     49096!>1
-TEF    EQU     52015!>1
-TE     EQU     55108!>1
-TF     EQU     58385!>1
-TFS    EQU     61857!>1
-TG     EQU     65535!>1
+ROM     EQU    $F800
+SOUND   EQU    $400
+CKORG   EQU    $F700            ;CHECKSUM PROG ORG
+ENDRAM  EQU    $7F
+VECTOR  EQU    $FFF8            ;RESET,INT VECTORS
+WVELEN  EQU    72
+BG2MAX  EQU    29
+SP1SND  EQU    $0E              ;SPINNER SOUND #1 CODE
+B2SND   EQU    $12              ;BONUS SOUND #2 CODE
+SP1MAX  EQU    32
+TACC    EQU    4                ;TACCATA TEMPO CONSTANT
+PHANC   EQU    3                ;PHANTOM TEMPO CONTANT
+TAF     EQU    34715!>1         ;NOTE TIMES
+TA      EQU    36780!>1
+TBF     EQU    38967!>1
+TB      EQU    41284!>1
+TC      EQU    43739!>1
+TCS     EQU    46340!>1
+TD      EQU    49096!>1
+TEF     EQU    52015!>1
+TE      EQU    55108!>1
+TF      EQU    58385!>1
+TFS     EQU    61857!>1
+TG      EQU    65535!>1
 *
 * TALKING EQUATES
 *
-TALK   EQU     $EFFD   ENTRY TO TALKING
-TALKD  EQU     $EFFA   ENTRY FOR DIAGNOSTICS
+TALK    EQU    $EFFD            ;ENTRY TO TALKING
+TALKD   EQU    $EFFA            ;ENTRY FOR DIAGNOSTICS
 *
 * SCREAM EQUATES
 *
-ECHOS  EQU     4
-FREQ   EQU     0               
-TIMER  EQU     1
+ECHOS   EQU    4
+FREQ    EQU    0
+TIMER   EQU    1
 *
 *GLOBALS
 *
-       ORG     0
-TLKGL  RMB     4       TALKING GLOBALS
-BG1FLG RMB     1       BACKGROUND SOUND 1
-BG2FLG RMB     1       BACKGROUND SOUND 2
-SP1FLG RMB     1       SPINNER FLAG
-B2FLG  RMB     1       BONUS #2 FLAG
-ORGFLG RMB     1       ORGAN FLAG
-HI     RMB     1       RANDOM SEED
-LO     RMB     1       RANDOM SEED
+        ORG    0
+TLKGL   RMB    4                ;TALKING GLOBALS
+BG1FLG  RMB    1                ;BACKGROUND SOUND 1
+BG2FLG  RMB    1                ;BACKGROUND SOUND 2
+SP1FLG  RMB    1                ;SPINNER FLAG
+B2FLG   RMB    1                ;BONUS #2 FLAG
+ORGFLG  RMB    1                ;ORGAN FLAG
+HI      RMB    1                ;RANDOM SEED
+LO      RMB    1                ;RANDOM SEED
 *
 *TEMPORARIES
 *
-TMPRAM EQU     *       TEMPORARY RAM
-TEMPX  RMB     2       X TEMPS
-XPLAY  RMB     2
-XPTR   RMB     2
-TEMPA  RMB     1       ACCA TEMP
-TEMPB  RMB     1
-LOCRAM EQU     *
+TMPRAM  EQU    *                ;TEMPORARY RAM
+TEMPX   RMB    2                ;X TEMPS
+XPLAY   RMB    2
+XPTR    RMB    2
+TEMPA   RMB    1                ;ACCA TEMP
+TEMPB   RMB    1
+LOCRAM  EQU    *
 *
 *GWAVE PARAMETERS
 *
-       ORG     LOCRAM
-GECHO  RMB     1       ECHO FLAG
-GCCNT  RMB     1       CYCLE COUNT
-GECDEC RMB     1       # OF DECAYS PER ECHO
-GDFINC RMB     1       DELTA FREQ INC
-GDCNT  RMB     1       DELTA FREQ COUNT
-GWFRM  RMB     2       WAVEFORM ADDRESS
+        ORG    LOCRAM
+GECHO   RMB    1                ;ECHO FLAG
+GCCNT   RMB    1                ;CYCLE COUNT
+GECDEC  RMB    1                ;# OF DECAYS PER ECHO
+GDFINC  RMB    1                ;DELTA FREQ INC
+GDCNT   RMB    1                ;DELTA FREQ COUNT
+GWFRM   RMB    2                ;WAVEFORM ADDRESS
 *TEMPORARY OR COMPUTED PARAMETERS
-PRDECA RMB     1       PRE-DECAY FACTOR
-GWFRQ  RMB     2       FREQ TABLE ADDR
-FRQEND RMB     2       END ADDR FREQ TABLE
-WVEND  RMB     2       WAVE END ADDR
-GPER   RMB     1       PERIOD
-GECNT  RMB     1       # OF ECHOES COUNTER
-FOFSET RMB     1       FREQUENCY OFFSET
+PRDECA  RMB    1                ;PRE-DECAY FACTOR
+GWFRQ   RMB    2                ;FREQ TABLE ADDR
+FRQEND  RMB    2                ;END ADDR FREQ TABLE
+WVEND   RMB    2                ;WAVE END ADDR
+GPER    RMB    1                ;PERIOD
+GECNT   RMB    1                ;# OF ECHOES COUNTER
+FOFSET  RMB    1                ;FREQUENCY OFFSET
 *
 *GWAVE TABLES
 *
-GWTAB  RMB     WVELEN  WAVE TABLE
+GWTAB   RMB    WVELEN           ;WAVE TABLE
 *
 *VARIWAVE PARAMETERS
 *
-       ORG     LOCRAM
-LOPER  RMB     1       LO PERIOD
-HIPER  RMB     1       HIPERIOD
-LODT   RMB     1       PERIOD DELTAS
-HIDT   RMB     1
-HIEN   RMB     1       END PERIOD
-SWPDT  RMB     2       SWEEP PERIOD
-LOMOD  RMB     1       BASE FREQ MOD
-VAMP   RMB     1       AMPLITUDE
-LOCNT  RMB     1       PERIOD COUNTERS
-HICNT  RMB     1
+        ORG    LOCRAM
+LOPER   RMB    1                ;LO PERIOD
+HIPER   RMB    1                ;HIPERIOD
+LODT    RMB    1                ;PERIOD DELTAS
+HIDT    RMB    1
+HIEN    RMB    1                ;END PERIOD
+SWPDT   RMB    2                ;SWEEP PERIOD
+LOMOD   RMB    1                ;BASE FREQ MOD
+VAMP    RMB    1                ;AMPLITUDE
+LOCNT   RMB    1                ;PERIOD COUNTERS
+HICNT   RMB    1
 *
 *NOISE ROUTINE PARAMETERS
 *
-       ORG     LOCRAM
-DECAY  RMB     1
-NAMP   RMB     1
-CYCNT  RMB     1
-NFRQ1  RMB     2
-NFFLG  RMB     1
-LFREQ  RMB     1
-DFREQ  RMB     1
+        ORG    LOCRAM
+DECAY   RMB    1
+NAMP    RMB    1
+CYCNT   RMB    1
+NFRQ1   RMB    2
+NFFLG   RMB    1
+LFREQ   RMB    1
+DFREQ   RMB    1
 *
 *FILTERED NOISE ROUTINE PARAMETERS
 *
-       ORG     LOCRAM
-FMAX   RMB     1       MAXIMUM_FREQUENCY
-FHI    RMB     1       FREQUENCY
-FLO    RMB     1 
-SAMPC  RMB     2       SAMPLE COUNT
-FDFLG  RMB     1       FREQUENCY DECREMENT FLAG
-DSFLG  RMB     1       DISTORTION FLAG
+        ORG    LOCRAM
+FMAX    RMB    1                ;MAXIMUM_FREQUENCY
+FHI     RMB    1                ;FREQUENCY
+FLO     RMB    1
+SAMPC   RMB    2                ;SAMPLE COUNT
+FDFLG   RMB    1                ;FREQUENCY DECREMENT FLAG
+DSFLG   RMB    1                ;DISTORTION FLAG
 *
 *SCREAM TABLES
 *
-       ORG     LOCRAM
-STABLE RMB     2*ECHOS SCREAM TABLE
-SRMEND EQU     *
+        ORG    LOCRAM
+STABLE  RMB    2*ECHOS          ;SCREAM TABLE
+SRMEND  EQU    *
 *
 *ORGAN PARAMETERS
 *
-       ORG     LOCRAM
-DUR    RMB     2       NOTE DURATION
-OSCIL  RMB     1       OSCILLATORS
-RDELAY RMB     60      RAM DELAY LOAD
+        ORG    LOCRAM
+DUR     RMB    2                ;NOTE DURATION
+OSCIL   RMB    1                ;OSCILLATORS
+RDELAY  RMB    60               ;RAM DELAY LOAD
 *
 * CHECKSUM CALCULATOR & RELOCATOR
 *
-       ORG     CKORG
-CKSUM  LDS     #$F7FF  SET STACK POINTER
-       LDX     #$FFFF  INDEX TO END OF ROM
-       CLRB            ZERO CHECKSUM
-CKSUM1 ADCB    0,X     ADD IN PROGRAM BYTE
-       DEX             TO NEXT BYTE
-       CPX     #$F800  DONE YET?
-       BNE     CKSUM1  NOPE...
-       STAB    0,X     SAVE CHECKSUM AT BEGINNING
-       STX     FROM    SAVE FOR RELO
-       LDX     #$6800  DESTINATION
-       STX     TO      SAVE FOR LATER
-RELO   LDX     FROM    GET SOURCE
-       LDAA    0,X     GRAB THE BYTE
-       INX             UPDATE
-       STX     FROM    UPDATE SOURCE ADDRESS
-       LDX     TO      GET DESTINATION ADDRESS
-       STAA    0,X     SAVE IT IN NEW LOCATION
-       INX             UPDATE
-       STX     TO      UPDATE DESTINATION ADDRESS
-       LDX     FROM    GET THE SOURCE
-       BNE     RELO    KEEP MOVING
-       WAI             TURN OFF LEDS
-FROM   RMB     2       FOR POINTER
-TO     RMB     2       FOR POINTER
+        ORG    CKORG
+CKSUM   LDS    #$F7FF           ;SET STACK POINTER
+        LDX    #$FFFF           ;INDEX TO END OF ROM
+        CLRB                    ;ZERO CHECKSUM
+CKSUM1  ADCB   0,X              ;ADD IN PROGRAM BYTE
+        DEX                     ;TO NEXT BYTE
+        CPX    #$F800           ;DONE YET?
+        BNE    CKSUM1           ;NOPE...
+        STAB   0,X              ;SAVE CHECKSUM AT BEGINNING
+        STX    FROM             ;SAVE FOR RELO
+        LDX    #$6800           ;DESTINATION
+        STX    TO               ;SAVE FOR LATER
+RELO    LDX    FROM             ;GET SOURCE
+        LDAA   0,X              ;GRAB THE BYTE
+        INX                     ;UPDATE
+        STX    FROM             ;UPDATE SOURCE ADDRESS
+        LDX    TO               ;GET DESTINATION ADDRESS
+        STAA   0,X              ;SAVE IT IN NEW LOCATION
+        INX                     ;UPDATE
+        STX    TO               ;UPDATE DESTINATION ADDRESS
+        LDX    FROM             ;GET THE SOURCE
+        BNE    RELO             ;KEEP MOVING
+        WAI                     ;TURN OFF LEDS
+FROM    RMB    2                ;FOR POINTER
+TO      RMB    2                ;FOR POINTER
 *
 * MAIN PROGRAM
 *
-       ORG     ROM
-       FCB     $FE     CHECKSUM BYTE
-SETUP  SEI             SET INTERRUPT MASK
-       LDS     #ENDRAM INITIALIZE STACK POINTER
-       LDX     #SOUND  INDEX TO PIA
-       CLR     1,X     ACCESS DDRA
-       CLR     3,X     ACCESS DDRB
-       LDAA    #$FF    PA0-PA7
-       STAA    0,X     SET SIDE A AS OUTPUTS
-       CLR     2,X     SET B SIDE AS INPUTS
-       LDAA    #$37    CB2 LOW, IRQ ALLOWED
-       STAA    3,X     PROGRAM B CONTROL REG
-       LDAA    #$3C    CA2 SET INIT HIGH, NO IRQS
-       STAA    1,X     PROGRAM A SIDE
-       STAA    HI      START RANDOM GENERATOR
-       CLRA
-       STAA    B2FLG
-       STAA    BG1FLG
-       STAA    BG2FLG
-       STAA    SP1FLG
-       STAA    ORGFLG
-       CLI             CLEAR INTERRUPTS
-       BRA     *       WAIT FOR INTERRUPT
+        ORG    ROM
+        FCB    $FE              ;CHECKSUM BYTE
+SETUP   SEI                     ;SET INTERRUPT MASK
+        LDS    #ENDRAM          ;INITIALIZE STACK POINTER
+        LDX    #SOUND           ;INDEX TO PIA
+        CLR    1,X              ;ACCESS DDRA
+        CLR    3,X              ;ACCESS DDRB
+        LDAA   #$FF             ;PA0-PA7
+        STAA   0,X              ;SET SIDE A AS OUTPUTS
+        CLR    2,X              ;SET B SIDE AS INPUTS
+        LDAA   #$37             ;CB2 LOW, IRQ ALLOWED
+        STAA   3,X              ;PROGRAM B CONTROL REG
+        LDAA   #$3C             ;CA2 SET INIT HIGH, NO IRQS
+        STAA   1,X              ;PROGRAM A SIDE
+        STAA   HI               ;START RANDOM GENERATOR
+        CLRA 
+        STAA   B2FLG
+        STAA   BG1FLG
+        STAA   BG2FLG
+        STAA   SP1FLG
+        STAA   ORGFLG
+        CLI                     ;CLEAR INTERRUPTS
+        BRA    *                ;WAIT FOR INTERRUPT
 *
 *VARI LOADER
 *
-VARILD TAB
-       ASLA            X2
-       ASLA            X4
-       ASLA            X8
-       ABA             X9
-       LDX     #LOCRAM
-       STX     XPTR    SET XSFER
-       LDX     #VVECT
-       JSR     ADDX
-       LDAB    #9      GET COUNT
-VTRAN  JMP     TRANS
+VARILD  TAB  
+        ASLA     X2
+        ASLA     X4
+        ASLA     X8
+        ABA      X9
+        LDX    #LOCRAM
+        STX    XPTR             ;SET XSFER
+        LDX    #VVECT
+        JSR    ADDX
+        LDAB   #9               ;GET COUNT
+VTRAN   JMP    TRANS
 *
 *VARIABLE DUTY CYCLE SQUARE WAVE ROUTINE
 *
-VARI   LDAA    VAMP
-       STAA    SOUND
-VAR0   LDAA    LOPER
-       STAA    LOCNT
-       LDAA    HIPER
-       STAA    HICNT
-V0     LDX     SWPDT
-V0LP   LDAA    LOCNT   LO CYCLE
-       COM     SOUND
-V1     DEX
-       BEQ     VSWEEP
-       DECA
-       BNE     V1
-       COM     SOUND
-       LDAA    HICNT   HI CYCLE
-V2     DEX
-       BEQ     VSWEEP
-       DECA
-       BNE     V2
-       BRA     V0LP    LOOP BACK
-VSWEEP LDAA    SOUND
-       BMI     VS1
-       COMA
-VS1    ADDA    #0
-       STAA    SOUND   OUTPUT
-       LDAA    LOCNT
-       ADDA    LODT
-       STAA    LOCNT
-       LDAA    HICNT
-       ADDA    HIDT
-       STAA    HICNT
-       CMPA    HIEN
-       BNE     V0
-       LDAA    LOMOD
-       BEQ     VARX
-       ADDA    LOPER
-       STAA    LOPER
-       BNE     VAR0
-VARX   RTS
+VARI    LDAA   VAMP
+        STAA   SOUND
+VAR0    LDAA   LOPER
+        STAA   LOCNT
+        LDAA   HIPER
+        STAA   HICNT
+V0      LDX    SWPDT
+V0LP    LDAA   LOCNT            ;LO CYCLE
+        COM    SOUND
+V1      DEX  
+        BEQ    VSWEEP
+        DECA 
+        BNE    V1
+        COM    SOUND
+        LDAA   HICNT            ;HI CYCLE
+V2      DEX  
+        BEQ    VSWEEP
+        DECA 
+        BNE    V2
+        BRA    V0LP             ;LOOP BACK
+VSWEEP  LDAA   SOUND
+        BMI    VS1
+        COMA 
+VS1     ADDA   #0
+        STAA   SOUND            ;OUTPUT
+        LDAA   LOCNT
+        ADDA   LODT
+        STAA   LOCNT
+        LDAA   HICNT
+        ADDA   HIDT
+        STAA   HICNT
+        CMPA   HIEN
+        BNE    V0
+        LDAA   LOMOD
+        BEQ    VARX
+        ADDA   LOPER
+        STAA   LOPER
+        BNE    VAR0
+VARX    RTS  
 *
 *LIGHTNING
 *
-LITE   LDAA    #1
-       STAA    DFREQ
-       LDAB    #3
-       BRA     LITEN
+LITE    LDAA   #1
+        STAA   DFREQ
+        LDAB   #3
+        BRA    LITEN
 *
 *APPEAR
 *
-APPEAR LDAA    #$FE
-       STAA    DFREQ
-       LDAA    #$C0
-       LDAB    #$10
-       BRA     LITEN
+APPEAR  LDAA   #$FE
+        STAA   DFREQ
+        LDAA   #$C0
+        LDAB   #$10
+        BRA    LITEN
 *
 *LIGHTNING+APPEAR NOISE ROUTINE
 *
-LITEN  STAA    LFREQ
-       LDAA    #$FF    HIGHEST AMP
-       STAA    SOUND
-       STAB    CYCNT
-LITE0  LDAB    CYCNT
-LITE1  LDAA    LO      GET RANDOM
-       LSRA
-       LSRA
-       LSRA
-       EORA    LO
-       LSRA
-       ROR     HI
-       ROR     LO
-       BCC     LITE2
-       COM     SOUND
-LITE2  LDAA    LFREQ   COUNT FREQ
-LITE3  DECA
-       BNE     LITE3
-       DECB            COUNT CYCLES
-       BNE     LITE1
-       LDAA    LFREQ
-       ADDA    DFREQ
-       STAA    LFREQ
-       BNE     LITE0
-       RTS
+LITEN   STAA   LFREQ
+        LDAA   #$FF             ;HIGHEST AMP
+        STAA   SOUND
+        STAB   CYCNT
+LITE0   LDAB   CYCNT
+LITE1   LDAA   LO               ;GET RANDOM
+        LSRA 
+        LSRA 
+        LSRA 
+        EORA   LO
+        LSRA 
+        ROR    HI
+        ROR    LO
+        BCC    LITE2
+        COM    SOUND
+LITE2   LDAA   LFREQ            ;COUNT FREQ
+LITE3   DECA 
+        BNE    LITE3
+        DECB                    ;COUNT CYCLES
+        BNE    LITE1
+        LDAA   LFREQ
+        ADDA   DFREQ
+        STAA   LFREQ
+        BNE    LITE0
+        RTS  
 *
 *TURBO
 *
-TURBO  LDAA    #$20
-       STAA    CYCNT
-       STAA    NFFLG
-       LDAA    #$1
-       LDX     #1
-       LDAB    #$FF
-       BRA     NOISE
+TURBO   LDAA   #$20
+        STAA   CYCNT
+        STAA   NFFLG
+        LDAA   #$1
+        LDX    #1
+        LDAB   #$FF
+        BRA    NOISE
 *
 *WHITE NOISE ROUTINE
 *X=INIT PERIOD, ACCB=INIT AMP, ACCA DECAY RATE
 *CYCNT=CYCLE COUNT, NFFLG= FREQ DECAY FLAG
 *
-NOISE  STAA    DECAY
-NOISE0 STX     NFRQ1
-NOIS00 STAB    NAMP
-       LDAB    CYCNT
-NOISE1 LDAA    LO      GET RANDOM BIT
-       LSRA
-       LSRA
-       LSRA
-       EORA    LO
-       LSRA
-       ROR     HI
-       ROR     LO
-       LDAA    #$0
-       BCC     NOISE2
-       LDAA    NAMP
-NOISE2 STAA    SOUND
-       LDX     NFRQ1   INCREASING DELAY
-NOISE3 DEX
-       BNE     NOISE3
-       DECB            FINISH CYCLE COUNT?
-       BNE     NOISE1  NO
-       LDAB    NAMP    DECAY AMP
-       SUBB    DECAY
-       BEQ     NSEND
-       LDX     NFRQ1   INC FREQ
-       INX
-       LDAA    NFFLG   DECAY FREQ?
-       BEQ     NOIS00  NO
-       BRA     NOISE0
-NSEND  RTS             
+NOISE   STAA   DECAY
+NOISE0  STX    NFRQ1
+NOIS00  STAB   NAMP
+        LDAB   CYCNT
+NOISE1  LDAA   LO               ;GET RANDOM BIT
+        LSRA 
+        LSRA 
+        LSRA 
+        EORA   LO
+        LSRA 
+        ROR    HI
+        ROR    LO
+        LDAA   #$0
+        BCC    NOISE2
+        LDAA   NAMP
+NOISE2  STAA   SOUND
+        LDX    NFRQ1            ;INCREASING DELAY
+NOISE3  DEX  
+        BNE    NOISE3
+        DECB                    ;FINISH CYCLE COUNT?
+        BNE    NOISE1           ;NO
+        LDAB   NAMP             ;DECAY AMP
+        SUBB   DECAY
+        BEQ    NSEND
+        LDX    NFRQ1            ;INC FREQ
+        INX  
+        LDAA   NFFLG            ;DECAY FREQ?
+        BEQ    NOIS00           ;NO
+        BRA    NOISE0
+NSEND   RTS  
 *
 *BACKGROUND 1 ROUTINE
 *
-BG1    LDAB    #1
-       STAB    BG1FLG  
-       CLRA
-       STAA    DSFLG
-       BRA     FNOISE
+BG1     LDAB   #1
+        STAB   BG1FLG
+        CLRA 
+        STAA   DSFLG
+        BRA    FNOISE
 *
 *THRUST
 *
-THRUST CLRA    
-       STAA    DSFLG
-       LDAB    #3
-       BRA     FNOISE  
+THRUST  CLRA 
+        STAA   DSFLG
+        LDAB   #3
+        BRA    FNOISE
 *
 *CANNON
 *
-CANNON LDAA    #1      
-       STAA    DSFLG
-       LDX     #1000   
-       LDAA    #1      
-       LDAB    #$FF    
-       BRA     FNOISE 
+CANNON  LDAA   #1
+        STAA   DSFLG
+        LDX    #1000
+        LDAA   #1
+        LDAB   #$FF
+        BRA    FNOISE
 *
 *FILTERED NOISE ROUTINE
 *X=SAMPLE COUNT, ACCB=INITIAL MAX FREQ
 *ACCA=FREQ DECAY FLAG ,DSFLG=DISTORTION FLAG
 *
-FNOISE STAA    FDFLG
-       STAB    FMAX
-       STX     SAMPC
-       CLR     FLO
-FNOIS0 LDX     SAMPC
-       LDAA    SOUND
-FNOIS1 TAB             NEXT RANDOM NUMBER
-       LSRB
-       LSRB
-       LSRB
-       EORB    LO
-       LSRB
-       ROR     HI
-       ROR     LO
-       LDAB    FMAX    SET FREQ
-       TST     DSFLG
-       BEQ     FNOIS2
-       ANDB    HI      DISTORT FREQUENCY
-FNOIS2 STAB    FHI
-       LDAB    FLO
-       CMPA    LO
-       BHI     FNOIS4
-FNOIS3 DEX             SLOPE UP
-       BEQ     FNOIS6
-       STAA    SOUND
-       ADDB    FLO
-       ADCA    FHI
-       BCS     FNOIS5
-       CMPA    LO
-       BLS     FNOIS3
-       BRA     FNOIS5
-FNOIS4 DEX             SLOPE DOWN
-       BEQ     FNOIS6
-       STAA    SOUND
-       SUBB    FLO
-       SBCA    FHI
-       BCS     FNOIS5
-       CMPA    LO
-       BHI     FNOIS4
-FNOIS5 LDAA    LO
-       STAA    SOUND
-       BRA     FNOIS1
-FNOIS6 LDAB    FDFLG
-       BEQ     FNOIS1
-       LDAA    FMAX    DECAY MAX FREQ
-       LDAB    FLO
-       LSRA
-       RORB
-       LSRA
-       RORB
-       LSRA
-       RORB
-       COMA
-       NEGB
-       SBCA    #-1
-       ADDB    FLO
-       ADCA    FMAX
-       STAB    FLO
-       STAA    FMAX
-       BNE     FNOIS0
-       CMPB    #7
-       BNE     FNOIS0
-       RTS
+FNOISE  STAA   FDFLG
+        STAB   FMAX
+        STX    SAMPC
+        CLR    FLO
+FNOIS0  LDX    SAMPC
+        LDAA   SOUND
+FNOIS1  TAB                     ;NEXT RANDOM NUMBER
+        LSRB 
+        LSRB 
+        LSRB 
+        EORB   LO
+        LSRB 
+        ROR    HI
+        ROR    LO
+        LDAB   FMAX             ;SET FREQ
+        TST    DSFLG
+        BEQ    FNOIS2
+        ANDB   HI               ;DISTORT FREQUENCY
+FNOIS2  STAB   FHI
+        LDAB   FLO
+        CMPA   LO
+        BHI    FNOIS4
+FNOIS3  DEX                     ;SLOPE UP
+        BEQ    FNOIS6
+        STAA   SOUND
+        ADDB   FLO
+        ADCA   FHI
+        BCS    FNOIS5
+        CMPA   LO
+        BLS    FNOIS3
+        BRA    FNOIS5
+FNOIS4  DEX                     ;SLOPE DOWN
+        BEQ    FNOIS6
+        STAA   SOUND
+        SUBB   FLO
+        SBCA   FHI
+        BCS    FNOIS5
+        CMPA   LO
+        BHI    FNOIS4
+FNOIS5  LDAA   LO
+        STAA   SOUND
+        BRA    FNOIS1
+FNOIS6  LDAB   FDFLG
+        BEQ    FNOIS1
+        LDAA   FMAX             ;DECAY MAX FREQ
+        LDAB   FLO
+        LSRA 
+        RORB 
+        LSRA 
+        RORB 
+        LSRA 
+        RORB 
+        COMA 
+        NEGB 
+        SBCA   #-1
+        ADDB   FLO
+        ADCA   FMAX
+        STAB   FLO
+        STAA   FMAX
+        BNE    FNOIS0
+        CMPB   #7
+        BNE    FNOIS0
+        RTS  
 *
 *RADIO
 *
-RADIO  LDAA    #RADSND/$100 SOUND TABLE
-       STAA    XPTR
-       LDX     #100    STARTING FREQ
-       STX     TEMPX
-RADIO1 ADDB    TEMPX+1 ADD FREQ TO TIMER
-       LDAA    TEMPA
-       ADCA    TEMPX
-       STAA    TEMPA
-       LDX     TEMPX
-       BCS     RADIO2  
-       BRA     *+2     EQUALIZE TIME
-       BRA     RADIO3
-RADIO2 INX             CARRY?, RAISE FREQ
-       BEQ     RADIO4  DONE?
-RADIO3 STX     TEMPX
-       ANDA    #$F     SET POINTER
-       ADDA    #RADSND!.$FF
-       STAA    XPTR+1
-       LDX     XPTR
-       LDAA    ,X
-       STAA    SOUND   PLAY SOUND
-       BRA     RADIO1
-RADIO4 RTS     
+RADIO   LDAA   #RADSND/$100     ;SOUND TABLE
+        STAA   XPTR
+        LDX    #100             ;STARTING FREQ
+        STX    TEMPX
+RADIO1  ADDB   TEMPX+1          ;ADD FREQ TO TIMER
+        LDAA   TEMPA
+        ADCA   TEMPX
+        STAA   TEMPA
+        LDX    TEMPX
+        BCS    RADIO2
+        BRA    *+2              ;EQUALIZE TIME
+        BRA    RADIO3
+RADIO2  INX                     ;CARRY?,RAISE FREQ
+        BEQ    RADIO4           ;DONE?
+RADIO3  STX    TEMPX
+        ANDA   #$F              ;SET POINTER
+        ADDA   #RADSND!.$FF
+        STAA   XPTR+1
+        LDX    XPTR
+        LDAA   ,X
+        STAA   SOUND            ;PLAY SOUND
+        BRA    RADIO1
+RADIO4  RTS  
 *
 *HYPER
 *
-HYPER  CLRA
-       STAA    SOUND   
-       STAA    TEMPA   ZERO PHASE
-HYPER1 CLRA            ZERO TIME COUNTER
-HYPER2 CMPA    TEMPA
-       BNE     HYPER3
-       COM     SOUND   PHASE EDGE?, COMPLEMENT SOUND
-HYPER3 LDAB    #18     DELAY
-HYPER4 DECB
-       BNE     HYPER4
-       INCA            ADVANCE TIME COUNTER
-       BPL     HYPER2  
-       COM     SOUND   CYCLE DONE?, CYCLE EDGE
-       INC     TEMPA   NEXT PHASE
-       BPL     HYPER1  DONE?
-       RTS
+HYPER   CLRA 
+        STAA   SOUND
+        STAA   TEMPA            ;ZERO PHASE
+HYPER1  CLRA                    ;ZERO TIME COUNTER
+HYPER2  CMPA   TEMPA
+        BNE    HYPER3
+        COM    SOUND            ;PHASE EDGE?, COMPLEMENT SOUND
+HYPER3  LDAB   #18              ;DELAY
+HYPER4  DECB 
+        BNE    HYPER4
+        INCA                    ;ADVANCE TIME COUNTER
+        BPL    HYPER2
+        COM    SOUND            ;CYCLE DONE?, CYCLE EDGE
+        INC    TEMPA            ;NEXT PHASE
+        BPL    HYPER1           ;DONE?
+        RTS  
 *
 *SCREAM
 *
-SCREAM LDX     #STABLE ZERO FREQS AND TIMES
-SCREM1 CLR     ,X
-       INX
-       CPX     #SRMEND
-       BNE     SCREM1
-       LDAA    #$40    START FIRST ECHO
-       STAA    STABLE+FREQ
-SCREM2 LDX     #STABLE INITIALIZE COUNTER
-       LDAA    #$80    INITIALIZE AMPLITUDE
-       STAA    TEMPA
-       CLRB            ZERO OUTPUT BUFFER
-SCREM3 LDAA    TIMER,X ADD FREQ TO TIMER
-       ADDA    FREQ,X
-       STAA    TIMER,X
-       BPL     SCREM4  ADD AMPLITUDE IF MINUS
-       ADDB    TEMPA
-SCREM4 LSR     TEMPA   DECAY AMPLITUDE
-       INX             NEXT ECHO
-       INX
-       CPX     #SRMEND LAST ECHO?
-       BNE     SCREM3  
-       STAB    SOUND   OUTPUT SOUND
-       INC     TEMPB   ADVANCE TIMER
-       BNE     SCREM2  
-       LDX     #STABLE LOWER NON-ZERO FREQUENCIES
-       CLRB            ALL ZERO NOT FLAG
-SCREM5 LDAA    FREQ,X  
-       BEQ     SCREM7  
-       CMPA    #$37    
-       BNE     SCREM6
-       LDAB    #$41    START NEXT ECHO
-       STAB    FREQ+2,X
-SCREM6 DEC     FREQ,X
-       INCB            SET FLAG
-SCREM7 INX 
-       INX
-       CPX     #SRMEND
-       BNE     SCREM5
-       TSTB            DONE?
-       BNE     SCREM2
-       RTS
+SCREAM  LDX    #STABLE          ;ZERO FREQS AND TIMES
+SCREM1  CLR    ,X
+        INX  
+        CPX    #SRMEND
+        BNE    SCREM1
+        LDAA   #$40             ;START FIRST ECHO
+        STAA   STABLE+FREQ
+SCREM2  LDX    #STABLE          ;INITIALIZE COUNTER
+        LDAA   #$80             ;INITIALIZE AMPLITUDE
+        STAA   TEMPA
+        CLRB                    ;ZERO OUTPUT BUFFER
+SCREM3  LDAA   TIMER,X          ;ADD FREQ TO TIMER
+        ADDA   FREQ,X
+        STAA   TIMER,X
+        BPL    SCREM4           ;ADD AMPLITUDE IF MINUS
+        ADDB   TEMPA
+SCREM4  LSR    TEMPA            ;DECAY AMPLITUDE
+        INX                     ;NEXT ECHO
+        INX  
+        CPX    #SRMEND          ;LAST ECHO?
+        BNE    SCREM3
+        STAB   SOUND            ;OUTPUT SOUND
+        INC    TEMPB            ;ADVANCE TIMER
+        BNE    SCREM2
+        LDX    #STABLE          ;LOWER NON-ZERO FREQUENCIES
+        CLRB                    ;ALL ZERO NOT FLAG
+SCREM5  LDAA   FREQ,X
+        BEQ    SCREM7
+        CMPA   #$37
+        BNE    SCREM6
+        LDAB   #$41             ;START NEXT ECHO
+        STAB   FREQ+2,X
+SCREM6  DEC    FREQ,X
+        INCB                    ;SET FLAG
+SCREM7  INX  
+        INX  
+        CPX    #SRMEND
+        BNE    SCREM5
+        TSTB                    ;DONE?
+        BNE    SCREM2
+        RTS  
 *
 *ORGAN TUNE
 *
-ORGANT DEC     ORGFLG  MINUS ORGAN FLAG
-       RTS             
-ORGNT1 CLR     ORGFLG
-       STAA    TEMPA   TUNE NUMBER
-       LDX     #ORGTAB 
-ORGNT2 LDAA    ,X      TUNE TABLE LENGTH
-       BEQ     ORGNT5  INVALID TUNE
-       DEC     TEMPA
-       BEQ     ORGNT3  
-       INCA
-       JSR     ADDX
-       BRA     ORGNT2
-ORGNT3 INX
-       STX     XPTR    NOTE POINTER
-       JSR     ADDX
-       STX     XPLAY   TUNE END
-       LDX     XPTR    
-ORGNT4 LDAA    ,X      TUNE LOOP 
-       STAA    OSCIL
-       LDAA    1,X
-       LDX     2,X
-       STX     DUR     
-       BSR     ORGANL
-       LDX     XPTR
-       INX
-       INX     
-       INX
-       INX
-       STX     XPTR
-       CPX     XPLAY
-       BNE     ORGNT4  
-ORGNT5 JMP     IRQ3
+ORGANT  DEC    ORGFLG           ;MINUS ORGAN FLAG
+        RTS  
+ORGNT1  CLR    ORGFLG
+        STAA   TEMPA            ;TUNE NUMBER
+        LDX    #ORGTAB
+ORGNT2  LDAA   ,X               ;TUNE TABLE LENGTH
+        BEQ    ORGNT5           ;INVALID TUNE
+        DEC    TEMPA
+        BEQ    ORGNT3
+        INCA 
+        JSR    ADDX
+        BRA    ORGNT2
+ORGNT3  INX  
+        STX    XPTR             ;NOTE POINTER
+        JSR    ADDX
+        STX    XPLAY            ;TUNE END
+        LDX    XPTR
+ORGNT4  LDAA   ,X               ;TUNE LOOP
+        STAA   OSCIL
+        LDAA   1,X
+        LDX    2,X
+        STX    DUR
+        BSR    ORGANL
+        LDX    XPTR
+        INX  
+        INX  
+        INX  
+        INX  
+        STX    XPTR
+        CPX    XPLAY
+        BNE    ORGNT4
+ORGNT5  JMP    IRQ3
 *
 *ORGAN NOTE
 *4 BYTES(MODE,OSCILLATOR MASK HI+1,LO+1,NOTE#)
-ORGANN LDAA    #3      SET ORGAN NOTE FLAG
-       STAA    ORGFLG
-       RTS
-ORGNN1 DEC     ORGFLG
-       BEQ     ORGNN2  
-       LDAB    OSCIL   OSCILLATOR MASK
-       ASLB
-       ASLB
-       ASLB    
-       ASLB    
-       ABA
-       STAA    OSCIL
-       CLRA
-       BRA     *       WAIT FOR NEXT CODE
-ORGNN2 DECA            DELAY
-       CMPA    #11     
-       BLS     ORGNN3  
-       CLRA    
-ORGNN3 LDX     #NOTTAB 
-       JSR     ADDX
-       LDAA    ,X
-       LDX     #$FFFF  DURATION
-       STX     DUR
-       BSR     ORGANL
-ORGNN4 BSR     ORGAN   KEEP PLAYING
-       BRA     ORGNN4
+ORGANN LDAA   #3               ;SET ORGAN NOTE FLAG
+        STAA   ORGFLG
+        RTS  
+ORGNN1  DEC    ORGFLG
+        BEQ    ORGNN2
+        LDAB   OSCIL            ;OSCILLATOR MASK
+        ASLB 
+        ASLB 
+        ASLB 
+        ASLB 
+        ABA  
+        STAA   OSCIL
+        CLRA 
+        BRA    *                ;WAIT FOR NEXT CODE
+ORGNN2  DECA     DELAY
+        CMPA   #11
+        BLS    ORGNN3
+        CLRA 
+ORGNN3  LDX    #NOTTAB
+        JSR    ADDX
+        LDAA   ,X
+        LDX    #$FFFF           ;DURATION
+        STX    DUR
+        BSR    ORGANL
+ORGNN4  BSR    ORGAN            ;KEEP PLAYING
+        BRA    ORGNN4
 *
 *ORGAN LOADER
 *OSCIL=OSCILLATOR MASK, ACCA=DELAY, DUR=DURATION
 *
-ORGANL LDX     #RDELAY
-LDLP   CMPA    #0
-       BEQ     LD1
-       CMPA    #3
-       BEQ     LD2
-       LDAB    #1      NOP
-       STAB    ,X
-       INX
-       SUBA    #2
-       BRA     LDLP
-LD2    LDAB    #$91    CMPA 0
-       STAB    ,X
-       CLR     1,X
-       INX
-       INX
-LD1    LDAB    #$7E    JMP START2
-       STAB    ,X
-       LDAB    #ORGAN1!>8 MSB
-       STAB    1,X
-       LDAB    #ORGAN1!.$FF LSB
-       STAB    2,X
+ORGANL  LDX    #RDELAY
+LDLP    CMPA   #0
+        BEQ    LD1
+        CMPA   #3
+        BEQ    LD2
+        LDAB   #1               ;NOP
+        STAB   ,X
+        INX  
+        SUBA   #2
+        BRA    LDLP
+LD2     LDAB   #$91             ;CMPA 0
+        STAB   ,X
+        CLR    1,X
+        INX  
+        INX  
+LD1     LDAB   #$7E             ;JMP START2
+        STAB   ,X
+        LDAB   #ORGAN1!>8       ;MSB
+        STAB   1,X
+        LDAB   #ORGAN1!.$FF     ;LSB
+        STAB   2,X
 *
 *ORGAN ROUTINE
 *DUR=DURATION, OSCILLATOR MASK
 *
-ORGAN  LDX     DUR
-ORGAN1 CLRA            
-       FCB     $F6     LOAD B EXTND TEMPB
-       FDB     TEMPB   
-       INCB            
-       STAB    TEMPB   
-       ANDB    OSCIL   MASK OSCILLATORS
-       LSRB
-       ADCA    #0
-       LSRB
-       ADCA    #0
-       LSRB
-       ADCA    #0
-       LSRB
-       ADCA    #0
-       LSRB
-       ADCA    #0      
-       LSRB
-       ADCA    #0
-       LSRB
-       ADCA    #0      
-       ABA             
-       ASLA
-       ASLA
-       ASLA
-       ASLA            
-       STAA    SOUND   
-       DEX             
-       BEQ     ORGAN2  NOTE OVER?
-       JMP     RDELAY  
-ORGAN2 RTS
+ORGAN   LDX    DUR
+ORGAN1  CLRA 
+        FCB    $F6              ;LOAD B EXTND TEMPB
+        FDB    TEMPB
+        INCB 
+        STAB   TEMPB
+        ANDB   OSCIL            ;MASK OSCILLATORS
+        LSRB 
+        ADCA   #0
+        LSRB 
+        ADCA   #0
+        LSRB 
+        ADCA   #0
+        LSRB 
+        ADCA   #0
+        LSRB 
+        ADCA   #0
+        LSRB 
+        ADCA   #0
+        LSRB 
+        ADCA   #0
+        ABA  
+        ASLA 
+        ASLA 
+        ASLA 
+        ASLA 
+        STAA   SOUND
+        DEX  
+        BEQ    ORGAN2           ;NOTE OVER?
+        JMP    RDELAY
+ORGAN2  RTS  
 *
 *PARAMETER TRANSFER
 *
-TRANS  PSHA
-TRANS1 LDAA    0,X
-       STX     XPLAY
-       LDX     XPTR
-       STAA    0,X
-       INX
-       STX     XPTR
-       LDX     XPLAY
-       INX
-       DECB
-       BNE     TRANS1
-       PULA
-       RTS
+TRANS   PSHA 
+TRANS1  LDAA   0,X
+        STX    XPLAY
+        LDX    XPTR
+        STAA   0,X
+        INX  
+        STX    XPTR
+        LDX    XPLAY
+        INX  
+        DECB 
+        BNE    TRANS1
+        PULA 
+        RTS  
 *
 *BACKGROUND END ROUTINE
 *
-BGEND  CLRA 
-       STAA    BG1FLG  
-       STAA    BG2FLG  
-       RTS
+BGEND   CLRA 
+        STAA   BG1FLG
+        STAA   BG2FLG
+        RTS  
 *
 *BACKGROUND SOUND #2 INCREMENT
 *
-BG2INC CLR     BG1FLG  KILL BG1
-       LDAA    BG2FLG  ACTIVATE BG2
-       ANDA    #$7F    REMOVE OVERRIDE
-       CMPA    #BG2MAX
-       BNE     BG2I0
-       CLRA
-BG2I0  INCA
-       STAA    BG2FLG
-       RTS
+BG2INC  CLR    BG1FLG           ;KILL BG1
+        LDAA   BG2FLG           ;ACTIVATE BG2
+        ANDA   #$7F             ;REMOVE OVERRIDE
+        CMPA   #BG2MAX
+        BNE    BG2I0
+        CLRA 
+BG2I0   INCA 
+        STAA   BG2FLG
+        RTS  
 *
 *BACKGROUND 2 ROUTINE
 *
-BG2    LDAA    #(TRBV-SVTAB)/7 GET SOUND#
-       JSR     GWLD
-       LDAA    BG2FLG
-       ASLA
-       ASLA
-       COMA
-       JSR     GEND60
-BG2LP  INC     GDCNT
-       JSR     GEND61
-       BRA     BG2LP
+BG2     LDAA   #(TRBV-SVTAB)/7  ;GET SOUND#
+        JSR    GWLD
+        LDAA   BG2FLG
+        ASLA 
+        ASLA 
+        COMA 
+        JSR    GEND60
+BG2LP   INC    GDCNT
+        JSR    GEND61
+        BRA    BG2LP
 *
 *SPINNER #1 SOUND
 *
-SP1    LDAA    #(CABSHK-VVECT)/9
-       JSR     VARILD
-       LDAB    SP1FLG
-       CMPB    #SP1MAX-1
-       BNE     SP1A
-       CLRB
-SP1A   INCB
-       STAB    SP1FLG
-       LDAA    #SP1MAX
-       SBA
-       CLRB
-SP11   CMPA    #20
-       BLS     SP12
-       ADDB    #14
-       DECA
-       BRA     SP11
-SP12   ADDB    #5
-       DECA
-       BNE     SP12
-       STAB    LOPER
-SP1LP  JSR     VARI    DO IT
-       BRA     SP1LP
+SP1     LDAA   #(CABSHK-VVECT)/9
+        JSR    VARILD
+        LDAB   SP1FLG
+        CMPB   #SP1MAX-1
+        BNE    SP1A
+        CLRB 
+SP1A    INCB 
+        STAB   SP1FLG
+        LDAA   #SP1MAX
+        SBA  
+        CLRB 
+SP11    CMPA   #20
+        BLS    SP12
+        ADDB   #14
+        DECA 
+        BRA    SP11
+SP12    ADDB   #5
+        DECA 
+        BNE    SP12
+        STAB   LOPER
+SP1LP   JSR    VARI             ;DO IT
+        BRA    SP1LP
 *
 *LASER BALL BONUS #2
 *
-BON2   LDAA    B2FLG
-       BNE     BON21
-       INC     B2FLG
-       LDAA    #(BONV-SVTAB)/7
-       BSR     GWLD
-       BRA     GWAVE
-BON21  JMP     GEND50
+BON2    LDAA   B2FLG
+        BNE    BON21
+        INC    B2FLG
+        LDAA   #(BONV-SVTAB)/7
+        BSR    GWLD
+        BRA    GWAVE
+BON21   JMP    GEND50
 *
 *GWAVE LOADER
 *
-GWLD   TAB             MULKT BY 7
-       ASLB
-       ABA
-       ABA
-       ABA
-       LDX     #SVTAB  SOUND VECTOR TABLE
-       JSR     ADDX
-       LDAA    ,X
-       TAB
-       ANDA    #$F
-       STAA    GCCNT   GET CYCLE COUNT
-       LSRB
-       LSRB
-       LSRB
-       LSRB
-       STAB    GECHO   GET #ECHOS
-       LDAA    1,X
-       TAB
-       LSRB
-       LSRB
-       LSRB
-       LSRB
-       STAB    GECDEC
-       ANDA    #$F     WAVE #
-       STAA    TEMPA   SAVE
-       STX     TEMPX   SAVE INDEX
-       LDX     #GWVTAB CALC WAVEFORM ADDR
-GWLD2  DEC     TEMPA   WAVE FORM #
-       BMI     GWLD3   FINIS
-       LDAA    ,X
-       INCA
-       JSR     ADDX
-       BRA     GWLD2
-GWLD3  STX     GWFRM
-       JSR     WVTRAN  XSFER WAVE TO RAM
-       LDX     TEMPX   RESTORE INDEX
-       LDAA    2,X     GET PREDECAY
-       STAA    PRDECA
-       JSR     WVDECA  DECAY IT
-       LDX     TEMPX
-       LDAA    3,X     GET FREQ INC
-       STAA    GDFINC
-       LDAA    4,X     GET DELTA FREQ COUNT
-       STAA    GDCNT
-       LDAA    5,X     GET PATTERN COUNT
-       TAB             SAVE
-       LDAA    6,X     PATTERN OFFSET
-       LDX     #GFRTAB
-       JSR     ADDX
-       TBA             GET PATTERN LENGTH
-       STX     GWFRQ   FREQ TABLE ADDR
-       CLR     FOFSET
-       JSR     ADDX
-       STX     FRQEND
-       RTS
+GWLD    TAB                     ;MULKT BY 7
+        ASLB 
+        ABA  
+        ABA  
+        ABA  
+        LDX    #SVTAB           ;SOUND VECTOR TABLE
+        JSR    ADDX
+        LDAA   ,X
+        TAB  
+        ANDA   #$F
+        STAA   GCCNT            ;GET CYCLE COUNT
+        LSRB 
+        LSRB 
+        LSRB 
+        LSRB 
+        STAB   GECHO            ;GET #ECHOS
+        LDAA   1,X
+        TAB  
+        LSRB 
+        LSRB 
+        LSRB 
+        LSRB 
+        STAB   GECDEC
+        ANDA   #$F              ;WAVE #
+        STAA   TEMPA            ;SAVE
+        STX    TEMPX            ;SAVE INDEX
+        LDX    #GWVTAB          ;CALC WAVEFORM ADDR
+GWLD2   DEC    TEMPA            ;WAVE FORM #
+        BMI    GWLD3            ;FINIS
+        LDAA   ,X
+        INCA 
+        JSR    ADDX
+        BRA    GWLD2
+GWLD3   STX    GWFRM
+        JSR    WVTRAN           ;XSFER WAVE TO RAM
+        LDX    TEMPX            ;RESTORE INDEX
+        LDAA   2,X              ;GET PREDECAY
+        STAA   PRDECA
+        JSR    WVDECA           ;DECAY IT
+        LDX    TEMPX
+        LDAA   3,X              ;GET FREQ INC
+        STAA   GDFINC
+        LDAA   4,X              ;GET DELTA FREQ COUNT
+        STAA   GDCNT
+        LDAA   5,X              ;GET PATTERN COUNT
+        TAB      SAVE
+        LDAA   6,X              ;PATTERN OFFSET
+        LDX    #GFRTAB
+        JSR    ADDX
+        TBA                     ;GET PATTERN LENGTH
+        STX    GWFRQ            ;FREQ TABLE ADDR
+        CLR    FOFSET
+        JSR    ADDX
+        STX    FRQEND
+        RTS  
 *
 *GWAVE ROUTINE
 *ACCA= FREQ PATTERN LENGTH, X= FREQ PAT ADDR
 *
-GWAVE  LDAA    GECHO
-       STAA    GECNT
-GWT4   LDX     GWFRQ
-       STX     XPLAY
-GPLAY  LDX     XPLAY   GET NEW PERIOD
-       LDAA    ,X
-       ADDA    FOFSET
-       STAA    GPER
-       CPX     FRQEND
-       BEQ     GEND    FINISH ON ZERO
-       LDAB    GCCNT   CYCLE COUNT
-       INX
-       STX     XPLAY
-GOUT   LDX     #GWTAB  SETUP WAVEFORM POINTER
-GOUTLP LDAA    GPER
-GPRLP  DECA            WAIT FOR PERIOD
-       BNE     GPRLP
-       LDAA    ,X      OUTPUT SOUND
-       STAA    SOUND
-GPR1   INX
-       CPX     WVEND   END OF WAVE?
-       BNE     GOUTLP
-       DECB
-       BEQ     GPLAY
-       INX
-       DEX
-       INX
-       DEX
-       INX
-       DEX
-       INX
-       DEX
-       NOP
-       NOP
-       BRA     GOUT    SYNC 36
-GEND   LDAA    GECDEC
-       BSR     WVDECA
-GEND40 DEC     GECNT   ECHO ON?
-       BNE     GWT4    YES
-       LDAA    B2FLG   STOP BONUS
-       BNE     GEND1
-GEND50 LDAA    GDFINC  CONTINUE FOR FREQ MOD SOUNDS
-       BEQ     GEND1   NO
-       DEC     GDCNT   DELTA FREQ OVER?
-       BEQ     GEND1   YES...
-       ADDA    FOFSET  UPDATE FREQ OFFSET
-GEND60 STAA    FOFSET
-GEND61 LDX     GWFRQ   GET INDEX
-       CLRB            START FOUND FLAG INIT CLEAR
-GW0    LDAA    FOFSET  INC OR DEC?
-       TST     GDFINC
-       BMI     GW1     DEC
-       ADDA    ,X      INC
-       BCS     GW2     CARRY=OVERFLOW
-       BRA     GW2A
-GW1    ADDA    ,X      DEC
-       BEQ     GW2     OVERFLOW ON EQ
-       BCS     GW2A    OVERFLOW IF CARRY CLEAR
-GW2    TSTB            FOUND START YET?
-       BEQ     GW2B    NO
-       BRA     GW3     YES, THIS IS THE END
-GW2A   TSTB
-       BNE     GW2B    ALREADY FOUND START
-       STX     GWFRQ   FOUND START
-       INCB
-GW2B   INX
-       CPX     FRQEND
-       BNE     GW0     NOT OVER YET
-       TSTB            FOUND START?
-       BNE     GW3     YES
-       RTS             ALL OVER
-GW3    STX     FRQEND
-       LDAA    GECDEC  RE:XSFER WAVE?
-       BEQ     GEND0   NO
-       BSR     WVTRAN  XSFER WAVE
-       LDAA    PRDECA
-       BSR     WVDECA
-GEND0  JMP     GWAVE
-GEND1  RTS             TERMINATE
+GWAVE   LDAA   GECHO
+        STAA   GECNT
+GWT4    LDX    GWFRQ
+        STX    XPLAY
+GPLAY   LDX    XPLAY            ;GET NEW PERIOD
+        LDAA   ,X
+        ADDA   FOFSET
+        STAA   GPER
+        CPX    FRQEND
+        BEQ    GEND             ;FINISH ON ZERO
+        LDAB   GCCNT            ;CYCLE COUNT
+        INX  
+        STX    XPLAY
+GOUT    LDX    #GWTAB           ;SETUP WAVEFORM POINTER
+GOUTLP  LDAA   GPER
+GPRLP   DECA                    ;WAIT FOR PERIOD
+        BNE    GPRLP
+        LDAA   ,X               ;OUTPUT SOUND
+        STAA   SOUND
+GPR1    INX  
+        CPX    WVEND            ;END OF WAVE?
+        BNE    GOUTLP
+        DECB 
+        BEQ    GPLAY
+        INX  
+        DEX  
+        INX  
+        DEX  
+        INX  
+        DEX  
+        INX  
+        DEX  
+        NOP  
+        NOP  
+        BRA    GOUT             ;SYNC 36
+GEND    LDAA   GECDEC
+        BSR    WVDECA
+GEND40  DEC    GECNT            ;ECHO ON?
+        BNE    GWT4             ;YES
+        LDAA   B2FLG            ;STOP BONUS
+        BNE    GEND1
+GEND50  LDAA   GDFINC           ;CONTINUE FOR FREQ MOD SOUNDS
+        BEQ    GEND1            ;NO
+        DEC    GDCNT            ;DELTA FREQ OVER?
+        BEQ    GEND1            ;YES...
+        ADDA   FOFSET           ;UPDATE FREQ OFFSET
+GEND60  STAA   FOFSET
+GEND61  LDX    GWFRQ            ;GET INDEX
+        CLRB                    ;START FOUND FLAG INIT CLEAR
+GW0     LDAA   FOFSET           ;INC OR DEC?
+        TST    GDFINC
+        BMI    GW1              ;DEC
+        ADDA   ,X               ;INC
+        BCS    GW2              ;CARRY=OVERFLOW
+        BRA    GW2A
+GW1     ADDA   ,X               ;DEC
+        BEQ    GW2              ;OVERFLOW ON EQ
+        BCS    GW2A             ;OVERFLOW IF CARRY CLEAR
+GW2     TSTB     FOUND            ;START YET?
+        BEQ    GW2B             ;NO
+        BRA    GW3              ;YES, THIS IS THE END
+GW2A    TSTB 
+        BNE    GW2B             ;ALREADY FOUND START
+        STX    GWFRQ            ;FOUND START
+        INCB 
+GW2B    INX  
+        CPX    FRQEND
+        BNE    GW0              ;NOT OVER YET
+        TSTB                    ;FOUND START?
+        BNE    GW3              ;YES
+        RTS                     ;ALL OVER
+GW3     STX    FRQEND
+        LDAA   GECDEC           ;RE:XSFER WAVE?
+        BEQ    GEND0            ;NO
+        BSR    WVTRAN           ;XSFER WAVE
+        LDAA   PRDECA
+        BSR    WVDECA
+GEND0   JMP    GWAVE
+GEND1   RTS      TERMINATE
 *
 *WAVE TRANSFER ROUTINE
 *
-WVTRAN LDX     #GWTAB
-       STX     XPTR
-       LDX     GWFRM
-       LDAB    ,X      GET WAVE LENGTH
-       INX
-       JSR     TRANS
-       LDX     XPTR
-       STX     WVEND   GET END ADDR
-       RTS
+WVTRAN  LDX    #GWTAB
+        STX    XPTR
+        LDX    GWFRM
+        LDAB   ,X               ;GET WAVE LENGTH
+        INX  
+        JSR    TRANS
+        LDX    XPTR
+        STX    WVEND            ;GET END ADDR
+        RTS  
 *
 *WAVE DECAY ROUTINE/ DECAY AMOUNT IN ACCA(1/16 PER DECAY)
 *
-WVDECA TSTA
-       BEQ     WVDCX   NO DECAY
-       LDX     GWFRM   ROM WAVE INDEX
-       STX     XPLAY
-       LDX     #GWTAB
-       STAA    TEMPB   DECAY FACTOR
-WVDLP  STX     XPTR
-       LDX     XPLAY
-       LDAB    TEMPB
-       STAB    TEMPA   DECAY FACTOR TEMP
-       LDAB    1,X     OFFSET FOR WAVE LENGTH
-       LSRB
-       LSRB
-       LSRB
-       LSRB            CALC 1/16TH
-       INX
-       STX     XPLAY
-       LDX     XPTR
-       LDAA    ,X
-WVDLP1 SBA             DECAY
-       DEC     TEMPA
-       BNE     WVDLP1
-       STAA    ,X
-       INX
-       CPX     WVEND   END OF WAVE?
-       BNE     WVDLP   NO
-WVDCX  RTS
+WVDECA  TSTA 
+        BEQ    WVDCX            ;NO DECAY
+        LDX    GWFRM            ;ROM WAVE INDEX
+        STX    XPLAY
+        LDX    #GWTAB
+        STAA   TEMPB            ;DECAY FACTOR
+WVDLP   STX    XPTR
+        LDX    XPLAY
+        LDAB   TEMPB
+        STAB   TEMPA            ;DECAY FACTOR TEMP
+        LDAB   1,X              ;OFFSET FOR WAVE LENGTH
+        LSRB 
+        LSRB 
+        LSRB 
+        LSRB                    ;CALC 1/16TH
+        INX  
+        STX    XPLAY
+        LDX    XPTR
+        LDAA   ,X
+WVDLP1  SBA      DECAY
+        DEC    TEMPA
+        BNE    WVDLP1
+        STAA   ,X
+        INX  
+        CPX    WVEND            ;END OF WAVE?
+        BNE    WVDLP            ;NO
+WVDCX   RTS  
 *
 * INTERRUPT PROCESSING
 *
-IRQ    LDS     #ENDRAM RE-INITIALIZE STACK
-       LDAA    SOUND+2 GET INPUT TRIGGER
-       CLI             NOW ALLOW IRQS
-       COMA            INVERT INPUT
-       ANDA    #$1F    MASK GARB
-       LDAB    ORGFLG
-       BEQ     IRQ00
-       BPL     IRQ0
-       JSR     ORGNT1  ORGAN TUNE
-IRQ0   DECA            ORGAN NOTE
-       JSR     ORGNN1  
-IRQ00  CLRB
-       CMPA    #SP1SND
-       BEQ     IRQ00A
-       STAB    SP1FLG
-IRQ00A CMPA    #B2SND  
-       BEQ     IRQ000
-       STAB    B2FLG
+IRQ     LDS    #ENDRAM          ;RE-INITIALIZE STACK
+        LDAA   SOUND+2          ;GET INPUT TRIGGER
+        CLI                     ;NOW ALLOW IRQS
+        COMA                    ;INVERT INPUT
+        ANDA   #$1F             ;MASK GARB
+        LDAB   ORGFLG
+        BEQ    IRQ00
+        BPL    IRQ0
+        JSR    ORGNT1           ;ORGAN TUNE
+IRQ0    DECA                    ;ORGAN NOTE
+        JSR    ORGNN1
+IRQ00   CLRB 
+        CMPA   #SP1SND
+        BEQ    IRQ00A
+        STAB   SP1FLG
+IRQ00A  CMPA   #B2SND
+        BEQ    IRQ000
+        STAB   B2FLG
 *
 * CHECK FOR PRESENCE OF TALKING PROGRAM
 *
-IRQ000 LDAB    TALK    CHECK FOR PROGRAM TO BE THERE
-       CMPB    #$7E    IS IT?
-       BNE     IRQ1    NO, SKIP THE TALKING
-       JSR     TALK    GO PLAY OUT 1 PHRASE
-IRQ1   TSTA
-       BEQ     IRQ3    INVALID INPUT
-       DECA            REMOVE OFFSET
-       CMPA    #$C
-       BHI     IRQ10
-       JSR     GWLD    GWAVE SOUNDS
-       JSR     GWAVE
-       BRA     IRQ3
-IRQ10  CMPA    #$1B    SPECIAL SOUND?
-       BHI     IRQ20   VARI SOUND
-       SUBA    #$D     SUB OFFSET
-       ASLA            DOUBLE FOR ADDRESSING
-       LDX     #JMPTBL INDEX TO JUMP TABLE
-       BSR     ADDX    GET CORRECT INDEX
-       LDX     0,X     GET ADDRESS TO INDEX
-       JSR     0,X     PERFORM IT
-       BRA     IRQ3
-IRQ20  SUBA    #$1C
-       JSR     VARILD
-       JSR     VARI
-IRQ3   LDAA    BG1FLG  BGROUND ACTIVE?
-       ORAA    BG2FLG
-       BEQ     *       NOPE
-       CLRA
-       STAA    B2FLG   KILL BONUSES
-       LDAA    BG1FLG
-       BEQ     IRQXX
-       JMP     BG1
-IRQXX  JMP     BG2
+IRQ000  LDAB   TALK             ;CHECK FOR PROGRAM TO BE THERE
+        CMPB   #$7E             ;IS IT?
+        BNE    IRQ1             ;NO, SKIP THE TALKING
+        JSR    TALK             ;GO PLAY OUT 1 PHRASE
+IRQ1    TSTA 
+        BEQ    IRQ3             ;INVALID INPUT
+        DECA                    ;REMOVE OFFSET
+        CMPA   #$C
+        BHI    IRQ10
+        JSR    GWLD             ;GWAVE SOUNDS
+        JSR    GWAVE
+        BRA    IRQ3
+IRQ10   CMPA   #$1B             ;SPECIAL SOUND?
+        BHI    IRQ20            ;VARI SOUND
+        SUBA   #$D              ;SUB OFFSET
+        ASLA                    ;DOUBLE FOR ADDRESSING
+        LDX    #JMPTBL          ;INDEX TO JUMP TABLE
+        BSR    ADDX             ;GET CORRECT INDEX
+        LDX    0,X              ;GET ADDRESS TO INDEX
+        JSR    0,X              ;PERFORM IT
+        BRA    IRQ3
+IRQ20   SUBA   #$1C
+        JSR    VARILD
+        JSR    VARI
+IRQ3    LDAA   BG1FLG           ;BGROUND ACTIVE?
+        ORAA   BG2FLG
+        BEQ    *                ;NOPE
+        CLRA 
+        STAA   B2FLG            ;KILL BONUSES
+        LDAA   BG1FLG
+        BEQ    IRQXX
+        JMP    BG1
+IRQXX   JMP    BG2
 *
 * ADD A TO INDEX REGISTER
 *
-ADDX   STX     XPLAY
-       ADDA    XPLAY+1
-       STAA    XPLAY+1
-       BCC     ADDX1
-       INC     XPLAY   
-ADDX1  LDX     XPLAY
-       RTS
+ADDX    STX    XPLAY
+        ADDA   XPLAY+1
+        STAA   XPLAY+1
+        BCC    ADDX1
+        INC    XPLAY
+ADDX1   LDX    XPLAY
+        RTS  
 *
 * DIAGNOSTIC PROCESSING HERE
 *
-NMI    SEI
-       LDS     #ENDRAM RESET THE STACK
-       LDX     #$FFFF
-       CLRB
-NMI1   ADCB    0,X
-       DEX
-       CPX     #$F800
-       BNE     NMI1
-       CMPB    0,X
-       BEQ     NMI2
-       WAI
-NMI2   LDAA    #1      
-       JSR     VARILD
-       JSR     VARI
-       LDAB    TALKD   TALKING PRESENT?
-       CMPB    #$7E
-       BNE     NMI
-       JSR     TALKD   
-       BRA     NMI     KEEP LOOPING
+NMI     SEI  
+        LDS    #ENDRAM          ;RESET THE STACK
+        LDX    #$FFFF
+        CLRB 
+NMI1    ADCB   0,X
+        DEX  
+        CPX    #$F800
+        BNE    NMI1
+        CMPB   0,X
+        BEQ    NMI2
+        WAI  
+NMI2    LDAA   #1
+        JSR    VARILD
+        JSR    VARI
+        LDAB   TALKD            ;TALKING PRESENT?
+        CMPB   #$7E
+        BNE    NMI
+        JSR    TALKD
+        BRA    NMI              ;KEEP LOOPING
 *
 *SPECIAL ROUTINE JUMP TABLE
 *
-JMPTBL FDB     SP1,BG1,BG2INC,LITE
-       FDB     BON2,BGEND,TURBO,APPEAR
-       FDB     THRUST,CANNON,RADIO,HYPER
-       FDB     SCREAM,ORGANT,ORGANN
+JMPTBL  FDB    SP1,BG1,BG2INC,LITE
+        FDB    BON2,BGEND,TURBO,APPEAR
+        FDB    THRUST,CANNON,RADIO,HYPER
+        FDB    SCREAM,ORGANT,ORGANN
 *
 *VARI VECTORS
 *
-VVECT  EQU     *
-SAW    FCB     $40,$01,$00,$10,$E1,$00,$80,$FF,$FF
-FOSHIT FCB     $28,$01,$00,$08,$81,$02,$00,$FF,$FF
-QUASAR FCB     $28,$81,$00,$FC,$01,$02,$00,$FC,$FF
-CABSHK FCB     $FF,$01,$00,$18,$41,$04,$80,$00,$FF
+VVECT   EQU    *
+SAW     FCB    $40,$01,$00,$10,$E1,$00,$80,$FF,$FF
+FOSHIT  FCB    $28,$01,$00,$08,$81,$02,$00,$FF,$FF
+QUASAR  FCB    $28,$81,$00,$FC,$01,$02,$00,$FC,$FF
+CABSHK  FCB    $FF,$01,$00,$18,$41,$04,$80,$00,$FF
 *
 *RADIO SOUND WAVEFORM
 *
-RADSND FCB     $8C,$5B,$B6,$40,$BF,$49,$A4,$73
-       FCB     $73,$A4,$49,$BF,$40,$B6,$5B,$8C
+RADSND  FCB    $8C,$5B,$B6,$40,$BF,$49,$A4,$73
+        FCB    $73,$A4,$49,$BF,$40,$B6,$5B,$8C
 *
 *ORGAN TUNE TABLE
 *OSCILLATOR MASK(1),DELAY(1),DURATION(2)
 *
 *PHANTOM
-ORGTAB FCB     3*4     
-       FDB     $7F1D,TD/PHANC/2*1      D2 1/4  NOTE
-       FDB     $7F23,TCS/PHANC/2*1     CS2 1/4 NOTE
-       FDB     $FE08,(TFS/PHANC/1*1)*2 FS1 1   NOTE
+ORGTAB  FCB    3*4
+        FDB    $7F1D,TD/PHANC/2*1  ;D2 1/4  NOTE
+        FDB    $7F23,TCS/PHANC/2*1  ;CS2 1/4 NOTE
+        FDB    $FE08,(TFS/PHANC/1*1)*2  ;FS1 1   NOTE
 *TACCATA
-       FCB     34*4
-       FDB     $3E3F,TA/TACC/8*1       A3 1/16 NOTE
-       FDB     $7C04,TG/TACC/8*1       G2 1/16 NOTE
-       FDB     $3E3F,TA/TACC/2*5       A3 5/4  NOTE
-       FDB     $7C12,TE/TACC/2*1       E2 1/4  NOTE 
-       FDB     $7C0D,TF/TACC/2*1       F2 1/4  NOTE    
-       FDB     $7C23,TCS/TACC/2*1      CS2 1/4 NOTE
-       FDB     $7C1D,TD/TACC/4*7       D2 7/8  NOTE    
-       FDB     $7C3F,TA/TACC/8*1       A2 1/16 NOTE
-       FDB     $F804,TG/TACC/8*1       G1 1/16 NOTE
-       FDB     $7C3F,TA/TACC/2*5       A2 5/4  NOTE
-       FDB     $F812,TE/TACC/2*1       E1 1/4  NOTE 
-       FDB     $F80D,TF/TACC/2*1       F1 1/4  NOTE    
-       FDB     $F823,TCS/TACC/2*1      CS1 1/4 NOTE
-       FDB     $F81D,(TD/TACC/1*1)*2   D1 1    NOTE    
-       FDB     $F823,TCS/TACC/4*1      CS1 1/8 NOTE
-       FDB     $F812,TE/TACC/4*1       E1 1/8  NOTE
-       FDB     $F804,TG/TACC/4*1       G1 1/8  NOTE 
-       FDB     $7C37,TBF/TACC/4*1      BF2 1/8 NOTE 
-       FDB     $7C23,TCS/TACC/4*1      CS2 1/8 NOTE 
-       FDB     $7C12,TE/TACC/4*1       E2 1/8  NOTE 
-       FDB     $3E04,TG/TACC/4*1       G3 1/8  NOTE 
-       FDB     $3E37,TBF/TACC/4*1      BF3 1/8 NOTE 
-       FDB     $3E23,TCS/TACC/4*1      CS3 1/8 NOTE 
-       FDB     $1F12,TE/TACC/4*1       E4 1/8  NOTE 
-       FDB     $1F04,TG/TACC/4*1       G4 1/8  NOTE 
-       FDB     $1F37,TBF/TACC/4*1      BF4 1/8 NOTE 
-       FDB     $1F23,TCS/TACC/1*1      CS4 1/2 NOTE 
-       FDB     $FE1D,TD/TACC/1*1       D1 1/2  NOTE 
-       FDB     $7F37,TBF/TACC/1*1      BF2 1/2 NOTE 
-       FDB     $7F3F,TA/TACC/2*1       A2 1/4  NOTE 
-       FDB     $FE04,TG/TACC/2*1       G1 1/4  NOTE 
-       FDB     $FE0D,TF/TACC/2*1       F1 1/4  NOTE
-       FDB     $FE23,TCS/TACC/2*1      CS1 1/4 NOTE 
-       FDB     $FE1D,(TD/TACC/1*2)*2   D1 2    NOTE 
-       FCB     0        LAST TUNE
+        FCB    34*4
+        FDB    $3E3F,TA/TACC/8*1  ;A3 1/16 NOTE
+        FDB    $7C04,TG/TACC/8*1  ;G2 1/16 NOTE
+        FDB    $3E3F,TA/TACC/2*5  ;A3 5/4  NOTE
+        FDB    $7C12,TE/TACC/2*1  ;E2 1/4  NOTE
+        FDB    $7C0D,TF/TACC/2*1  ;F2 1/4  NOTE
+        FDB    $7C23,TCS/TACC/2*1  ;CS2 1/4  NOTE
+        FDB    $7C1D,TD/TACC/4*7  ;D2 7/8  NOTE
+        FDB    $7C3F,TA/TACC/8*1  ;A2 1/16 NOTE
+        FDB    $F804,TG/TACC/8*1  ;G1 1/16 NOTE
+        FDB    $7C3F,TA/TACC/2*5  ;A2 5/4  NOTE
+        FDB    $F812,TE/TACC/2*1  ;E1 1/4  NOTE
+        FDB    $F80D,TF/TACC/2*1  ;F1 1/4  NOTE
+        FDB    $F823,TCS/TACC/2*1  ;CS1 1/4  NOTE
+        FDB    $F81D,(TD/TACC/1*1)*2  ;D1 1  NOTE
+        FDB    $F823,TCS/TACC/4*1  ;CS1 1/8  NOTE
+        FDB    $F812,TE/TACC/4*1  ;E1 1/8  NOTE
+        FDB    $F804,TG/TACC/4*1  ;G1 1/8  NOTE
+        FDB    $7C37,TBF/TACC/4*1  ;BF2 1/8  NOTE
+        FDB    $7C23,TCS/TACC/4*1  ;CS2 1/8  NOTE
+        FDB    $7C12,TE/TACC/4*1  ;E2 1/8  NOTE
+        FDB    $3E04,TG/TACC/4*1  ;G3 1/8  NOTE
+        FDB    $3E37,TBF/TACC/4*1  ;BF3 1/8  NOTE
+        FDB    $3E23,TCS/TACC/4*1  ;CS3 1/8  NOTE
+        FDB    $1F12,TE/TACC/4*1  ;E4 1/8  NOTE
+        FDB    $1F04,TG/TACC/4*1  ;G4 1/8  NOTE
+        FDB    $1F37,TBF/TACC/4*1  ;BF4 1/8  NOTE
+        FDB    $1F23,TCS/TACC/1*1  ;CS4 1/2  NOTE
+        FDB    $FE1D,TD/TACC/1*1  ;D1 1/2  NOTE
+        FDB    $7F37,TBF/TACC/1*1  ;BF2 1/2  NOTE
+        FDB    $7F3F,TA/TACC/2*1  ;A2 1/4  NOTE
+        FDB    $FE04,TG/TACC/2*1  ;G1 1/4  NOTE
+        FDB    $FE0D,TF/TACC/2*1  ;F1 1/4  NOTE
+        FDB    $FE23,TCS/TACC/2*1  ;CS1 1/4  NOTE
+        FDB    $FE1D,(TD/TACC/1*2)*2  ;D1 2  NOTE
+        FCB    0                ;LAST TUNE
 *
 *ORGAN NOTE TABLE
-*SCALE         AF  A   BF  B   C   CS
-NOTTAB FCB     $47,$3F,$37,$30,$29,$23
-*              D   EF  E   F   FS  G
-       FCB     $1D,$17,$12,$0D,$08,$04 
+*SCALE    AF  A   BF  B   C   CS
+NOTTAB  FCB    $47,$3F,$37,$30,$29,$23
+*    D   EF  E   F   FS  G
+        FCB    $1D,$17,$12,$0D,$08,$04
 *
 *WAVE TABLE
 *1ST BYTE= WAVELENGTH
 *
-GWVTAB EQU     *
-GS2    FCB     8,127,217,255,217,127,36,0,36
-GSSQ2  FCB     8,0,64,128,0,255,0,128,64
-GS1    FCB     16,127,176,217,245,255,245,217,176
-       FCB     127,78,36,9,0,9,36,78
-GS12   FCB     16,127,197,236,231,191,141,109,106
-       FCB     127,148,146,113,64,23,18,57
-GSQ22  FCB     16,$FF,$FF,$FF,$FF,0,0,0,0
-       FCB     $FF,$FF,$FF,$FF,0,0,0,0
-GS72   FCB     72,138,149,160,171,181,191,200,209
-       FCB     218,225,232,238,243,247,251,253,254,255
-       FCB     254,253,251,247,243,238,232,225,218
-       FCB     209,200,191,181,171,160,149,138,127
-       FCB     117,106,95,84,74,64,55,46,37,30,23,17,12
-       FCB     8,4,2,1,0
-       FCB     1,2,4,8,12,17,23,30,37,46,55,64,74,84
-       FCB     95,106,117,127
-GS1.7  FCB     16,89,123,152,172,179,172,152,123
-       FCB     89,55,25,6,0,6,25,55
+GWVTAB  EQU    *
+GS2     FCB    8,127,217,255,217,127,36,0,36
+GSSQ2   FCB    8,0,64,128,0,255,0,128,64
+GS1     FCB    16,127,176,217,245,255,245,217,176
+        FCB    127,78,36,9,0,9,36,78
+GS12    FCB    16,127,197,236,231,191,141,109,106
+        FCB    127,148,146,113,64,23,18,57
+GSQ22   FCB    16,$FF,$FF,$FF,$FF,0,0,0,0
+        FCB    $FF,$FF,$FF,$FF,0,0,0,0
+GS72    FCB    72,138,149,160,171,181,191,200,209
+        FCB    218,225,232,238,243,247,251,253,254,255
+        FCB    254,253,251,247,243,238,232,225,218
+        FCB    209,200,191,181,171,160,149,138,127
+        FCB    117,106,95,84,74,64,55,46,37,30,23,17,12
+        FCB    8,4,2,1,0
+        FCB    1,2,4,8,12,17,23,30,37,46,55,64,74,84
+        FCB    95,106,117,127
+GS1.7   FCB    16,89,123,152,172,179,172,152,123
+        FCB    89,55,25,6,0,6,25,55
 *
 *GWAVE SOUND VECTOR TABLE
 *VECTOR FORMAT
@@ -1098,65 +1098,65 @@ GS1.7   FCB     16,89,123,152,172,179,172,152,123
 *BYTE 5: FREQ PATTERN LENGTH
 *BYTE 6: FREQ PATTERN OFFSET
 *
-SVTAB  EQU     *
-HBDV   FCB     $81,$24,0,0,0,22,HBDSND-GFRTAB 1
-STDV   FCB     $12,$05,$1A,$FF,0,39,STDSND-GFRTAB 2
-DP1V   FCB     $11,$05,$11,1,15,1,SWPAT-GFRTAB 3
-XBV    FCB     $11,$31,0,1,0,13,SPNSND-GFRTAB 4
-BBSV   FCB     $F4,$12,$0,0,0,20,BBSND-GFRTAB 5
-HBEV   FCB     $41,$45,0,0,0,15,HBESND-GFRTAB 6
-PROTV  FCB     $21,$35,$11,$FF,0,13,SPNSND-GFRTAB 7
-SPNRV  FCB     $15,$00,0,$FD,0,1,SPNR-GFRTAB 8
-CLDWNV FCB     $31,$11,0,1,0,3,COOLDN-GFRTAB 9
-SV3    FCB     $01,$15,1,1,1,1,BBSND-GFRTAB 10
-ED10   FCB     $F6,$53,3,0,2,6,ED10FP-GFRTAB 11
-ED12   FCB     $6A,$10,2,0,2,6,ED13FP-GFRTAB 12
-ED17   FCB     $1F,$12,0,$FF,$10,4,SPNR-GFRTAB 13
-BONV   FCB     $31,$11,0,$FF,0,13,BONSND-GFRTAB
-TRBV   FCB     $12,$06,$0,$FF,1,9,TRBPAT-GFRTAB
+SVTAB   EQU    *
+HBDV    FCB    $81,$24,0,0,0,22,HBDSND-GFRTAB ;1
+STDV    FCB    $12,$05,$1A,$FF,0,39,STDSND-GFRTAB ;2
+DP1V    FCB    $11,$05,$11,1,15,1,SWPAT-GFRTAB ;3
+XBV     FCB    $11,$31,0,1,0,13,SPNSND-GFRTAB ;4
+BBSV    FCB    $F4,$12,$0,0,0,20,BBSND-GFRTAB ;5
+HBEV    FCB    $41,$45,0,0,0,15,HBESND-GFRTAB ;6
+PROTV   FCB    $21,$35,$11,$FF,0,13,SPNSND-GFRTAB ;7
+SPNRV   FCB    $15,$00,0,$FD,0,1,SPNR-GFRTAB ;8
+CLDWNV  FCB    $31,$11,0,1,0,3,COOLDN-GFRTAB ;9
+SV3     FCB    $01,$15,1,1,1,1,BBSND-GFRTAB ;10
+ED10    FCB    $F6,$53,3,0,2,6,ED10FP-GFRTAB ;11
+ED12    FCB    $6A,$10,2,0,2,6,ED13FP-GFRTAB ;12
+ED17    FCB    $1F,$12,0,$FF,$10,4,SPNR-GFRTAB ;13
+BONV    FCB    $31,$11,0,$FF,0,13,BONSND-GFRTAB
+TRBV    FCB    $12,$06,$0,$FF,1,9,TRBPAT-GFRTAB
 *
 *GWAVE FREQ PATTERN TABLE
 *
-GFRTAB EQU     *
-*BONUS SOUND
-BONSND FCB     $A0,$98,$90,$88,$80,$78,$70,$68
-       FCB     $60,$58,$50,$44,$40
+GFRTAB  EQU    *
+*BONUS  SOUND
+BONSND  FCB    $A0,$98,$90,$88,$80,$78,$70,$68
+        FCB    $60,$58,$50,$44,$40
 *HUNDRED POINT SOUND
-HBTSND FCB     1,1,2,2,4,4,8,8,$10,$10,$30,$60,$C0,$E0
+HBTSND  FCB    1,1,2,2,4,4,8,8,$10,$10,$30,$60,$C0,$E0
 *SPINNER SOUND
-SPNSND FCB     1,1,2,2,3,4,5,6,7,8,9,$A,$C
+SPNSND  FCB    1,1,2,2,3,4,5,6,7,8,9,$A,$C
 *TURBINE START UP
-TRBPAT FCB     $80,$7C,$78,$74,$70,$74,$78,$7C,$80
+TRBPAT  FCB    $80,$7C,$78,$74,$70,$74,$78,$7C,$80
 *HEARTBEAT DISTORTO
-HBDSND FCB     1,1,2,2,4,4,8,8,$10,$20,$28
-       FCB     $30,$38,$40,$48,$50,$60,$70,$80,$A0,$B0,$C0
+HBDSND  FCB    1,1,2,2,4,4,8,8,$10,$20,$28
+        FCB    $30,$38,$40,$48,$50,$60,$70,$80,$A0,$B0,$C0
 *SWEEP PATTERN
-SWPAT  EQU     *
+SWPAT   EQU    *
 *BIGBEN SOUNDS
-BBSND  FCB     8,64,8,64,8,64,8,64,8,64
-       FCB     8,64,8,64,8,64,8,64,8,64
+BBSND   FCB    8,64,8,64,8,64,8,64,8,64
+        FCB    8,64,8,64,8,64,8,64,8,64
 *HEARTBEAT ECHO
-HBESND FCB     1,2,4,8,9,$A,$B,$C,$E,$F,$10
-       FCB     $12,$14,$16
+HBESND  FCB    1,2,4,8,9,$A,$B,$C,$E,$F,$10
+        FCB    $12,$14,$16
 *SPINNER SOUND "DRIP"
-SPNR   FCB     $40
+SPNR    FCB    $40
 *COOL DOWNER
-COOLDN FCB     $10,8,1
+COOLDN  FCB    $10,8,1
 *START DISTORTO SOUND
-STDSND FCB     1,1,1,1,2,2,3,3,4,4,5,6,8,$A,$C,$10
-       FCB     $14,$18,$20,$30,$40,$50,$40,$30
-       FCB     $20,$10,$C,$A,8,7,6,5,4,3,2,2,1,1,1
+STDSND  FCB    1,1,1,1,2,2,3,3,4,4,5,6,8,$A,$C,$10
+        FCB    $14,$18,$20,$30,$40,$50,$40,$30
+        FCB    $20,$10,$C,$A,8,7,6,5,4,3,2,2,1,1,1
 *ED'S SOUND 10
-ED10FP FCB     7,8,9,$A,$C,8
+ED10FP  FCB    7,8,9,$A,$C,8
 *ED'S SOUND 13
-ED13FP FCB     $17,$18,$19,$1A,$1B,$1C
-       FCB     $0,$0,$0        MATCH THE PROMS 
+ED13FP  FCB    $17,$18,$19,$1A,$1B,$1C
+        FCB    $0,$0,$0         ;MATCH THE PROMS
 *
 * VECTORS HERE
 *
-       ORG     VECTOR
-IRQV   FDB     IRQ
-SWIV   FDB     SETUP
-NMIV   FDB     NMI
-RESETV FDB     SETUP
-       END     CKSUM
+        ORG    VECTOR
+IRQV    FDB    IRQ
+SWIV    FDB    SETUP
+NMIV    FDB    NMI
+RESETV  FDB    SETUP
+        END    CKSUM
diff --git a/vasm-mirror b/vasm-mirror
new file mode 160000 (submodule)
index 0000000..c01fb8e
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit c01fb8e3e2ced56ddd10f72a100b78c5aaa8fdc6