------+-------------------+-------------+----+---------+------+-----------------------+------------------------------------------------------------------- Line | # File Line | Line Type | MX | Reloc | Size | Address Object Code | Source Code ------+-------------------+-------------+----+---------+------+-----------------------+------------------------------------------------------------------- 1 | 1 balls.s 1 | Comment | 11 | | 0 | 00/8000 | **************************************** 2 | 1 balls.s 2 | Comment | 11 | | 0 | 00/8000 | * 3 | 1 balls.s 3 | Comment | 11 | | 0 | 00/8000 | * Bouncing Balls in Hires 4 | 1 balls.s 4 | Comment | 11 | | 0 | 00/8000 | * 6502 Assembly for the Apple II 5 | 1 balls.s 5 | Comment | 11 | | 0 | 00/8000 | * 6 | 1 balls.s 6 | Comment | 11 | | 0 | 00/8000 | * Stephen A. Edwards 7 | 1 balls.s 7 | Comment | 11 | | 0 | 00/8000 | * 8 | 1 balls.s 8 | Comment | 11 | | 0 | 00/8000 | **************************************** 9 | 1 balls.s 9 | Empty | 11 | | 0 | 00/8000 | 10 | 1 balls.s 10 | Directive | 11 | | 0 | 00/8000 | org $8000 11 | 1 balls.s 11 | Empty | 11 | | 0 | 00/8000 | 12 | 1 balls.s 12 | Comment | 11 | | 0 | 00/8000 | ; Numeric constants 13 | 1 balls.s 13 | Empty | 11 | | 0 | 00/8000 | 14 | 1 balls.s 14 | Equivalence | 11 | | 0 | 00/8000 | NBALLS equ 40 ; Number of balls to bounce 15 | 1 balls.s 15 | Empty | 11 | | 0 | 00/8000 | 16 | 1 balls.s 16 | Equivalence | 11 | | 0 | 00/8000 | COLUMNS equ 37 ; Number of columns we consider (pixels 0-255) 17 | 1 balls.s 17 | Empty | 11 | | 0 | 00/8000 | 18 | 1 balls.s 18 | Equivalence | 11 | | 0 | 00/8000 | WHITE equ $7F ; White hires byte 19 | 1 balls.s 19 | Empty | 11 | | 0 | 00/8000 | 20 | 1 balls.s 20 | Equivalence | 11 | | 0 | 00/8000 | RWALL equ $f700 21 | 1 balls.s 21 | Equivalence | 11 | | 0 | 00/8000 | LWALL equ $0400 22 | 1 balls.s 22 | Equivalence | 11 | | 0 | 00/8000 | BOTTOM equ $B700 23 | 1 balls.s 23 | Equivalence | 11 | | 0 | 00/8000 | BOTTOM2 equ $6E00 ; Bottom * 2, for bouncing 24 | 1 balls.s 24 | Empty | 11 | | 0 | 00/8000 | 25 | 1 balls.s 25 | Equivalence | 11 | | 0 | 00/8000 | GRAVITY equ $100 26 | 1 balls.s 26 | Empty | 11 | | 0 | 00/8000 | 27 | 1 balls.s 27 | Comment | 11 | | 0 | 00/8000 | ; Addresses 28 | 1 balls.s 28 | Empty | 11 | | 0 | 00/8000 | 29 | 1 balls.s 29 | Equivalence | 11 | | 0 | 00/8000 | COUNT equ $6 30 | 1 balls.s 30 | Equivalence | 11 | | 0 | 00/8000 | GBASL equ $26 ; Graphics base address 31 | 1 balls.s 31 | Equivalence | 11 | | 0 | 00/8000 | GBASH equ $27 32 | 1 balls.s 32 | Equivalence | 11 | | 0 | 00/8000 | HSHAPE equ $1a 33 | 1 balls.s 33 | Equivalence | 11 | | 0 | 00/8000 | HCOLOR1 equ $1c ; Color value 34 | 1 balls.s 34 | Equivalence | 11 | | 0 | 00/8000 | HCOUNT equ $1d 35 | 1 balls.s 35 | Equivalence | 11 | | 0 | 00/8000 | HGRX equ $e0 ; two-byte value 36 | 1 balls.s 36 | Equivalence | 11 | | 0 | 00/8000 | HGRY equ $e2 37 | 1 balls.s 37 | Empty | 11 | | 0 | 00/8000 | 38 | 1 balls.s 38 | Equivalence | 11 | | 0 | 00/8000 | HGR1SCRN equ $2000 ; Start of first hires page 39 | 1 balls.s 39 | Empty | 11 | | 0 | 00/8000 | 40 | 1 balls.s 40 | Equivalence | 11 | | 0 | 00/8000 | KBD equ $c000 ; key code when MSB set 41 | 1 balls.s 41 | Equivalence | 11 | | 0 | 00/8000 | KBDSTRB equ $c010 ; clear keyboard buffer 42 | 1 balls.s 42 | Equivalence | 11 | | 0 | 00/8000 | TXTCLR equ $c050 ; graphics mode 43 | 1 balls.s 43 | Equivalence | 11 | | 0 | 00/8000 | TXTSET equ $c051 ; text mode 44 | 1 balls.s 44 | Equivalence | 11 | | 0 | 00/8000 | LOWSCR equ $c054 ; page 1 45 | 1 balls.s 45 | Equivalence | 11 | | 0 | 00/8000 | HIRES equ $c057 ; hires mode 46 | 1 balls.s 46 | Empty | 11 | | 0 | 00/8000 | 47 | 1 balls.s 47 | Code | 11 | | 3 | 00/8000 : 20 3F 81 | main jsr hclear 48 | 1 balls.s 48 | Empty | 11 | | 0 | 00/8003 | 49 | 1 balls.s 49 | Comment | 11 | | 0 | 00/8003 | ; Draw the boundary 50 | 1 balls.s 50 | Empty | 11 | | 0 | 00/8003 | 51 | 1 balls.s 51 | Code | 11 | | 2 | 00/8003 : A9 7F | lda #{$7F} 52 | 1 balls.s 52 | Code | 11 | | 2 | 00/8005 : A0 00 | ldy #0 53 | 1 balls.s 53 | Code | 11 | | 3 | 00/8007 : 20 15 81 | jsr hline ; White line on the top row 54 | 1 balls.s 54 | Code | 11 | | 2 | 00/800A : A0 BF | ldy #191 55 | 1 balls.s 55 | Code | 11 | | 3 | 00/800C : 20 15 81 | jsr hline ; White line on the bottom row 56 | 1 balls.s 56 | Code | 11 | | 2 | 00/800F : A9 03 | lda #%00000011 57 | 1 balls.s 57 | Code | 11 | | 2 | 00/8011 : A0 00 | ldy #0 58 | 1 balls.s 58 | Code | 11 | | 3 | 00/8013 : 20 29 81 | jsr vline ; White line on the left column 59 | 1 balls.s 59 | Code | 11 | | 2 | 00/8016 : A9 60 | lda #%01100000 60 | 1 balls.s 60 | Code | 11 | | 2 | 00/8018 : A0 24 | ldy #{37}-1 61 | 1 balls.s 61 | Code | 11 | | 3 | 00/801A : 20 29 81 | jsr vline ; White line on the right column 62 | 1 balls.s 62 | Empty | 11 | | 0 | 00/801D | 63 | 1 balls.s 63 | Comment | 11 | | 0 | 00/801D | ; Initialize the ball positions and speeds 64 | 1 balls.s 64 | Empty | 11 | | 0 | 00/801D | 65 | 1 balls.s 65 | Code | 11 | | 2 | 00/801D : A2 27 | ldx #{40}-1 66 | 1 balls.s 66 | Code | 11 | | 2 | 00/801F : A0 04 | ldy #4 67 | 1 balls.s 67 | Code | 11 | | 1 | 00/8021 : 98 | initl tya 68 | 1 balls.s 68 | Code | 11 | | 3 | 00/8022 : 9D AB 83 | sta BALLXH,x 69 | 1 balls.s 69 | Code | 11 | | 2 | 00/8025 : 69 05 | adc #5 70 | 1 balls.s 70 | Code | 11 | | 1 | 00/8027 : A8 | tay 71 | 1 balls.s 71 | Code | 11 | | 2 | 00/8028 : 29 3F | and #$3F 72 | 1 balls.s 72 | Code | 11 | | 2 | 00/802A : 69 14 | adc #20 73 | 1 balls.s 73 | Code | 11 | | 3 | 00/802C : 9D AB 84 | sta BALLYH,x 74 | 1 balls.s 74 | Code | 11 | | 2 | 00/802F : A9 00 | lda #0 75 | 1 balls.s 75 | Code | 11 | | 3 | 00/8031 : 9D 83 83 | sta BALLXL,x 76 | 1 balls.s 76 | Code | 11 | | 3 | 00/8034 : 9D 6B 84 | sta BALLYL,x 77 | 1 balls.s 77 | Code | 11 | | 3 | 00/8037 : 9D EB 84 | sta BALLDYL,x 78 | 1 balls.s 78 | Code | 11 | | 3 | 00/803A : 9D 2B 85 | sta BALLDYH,x 79 | 1 balls.s 79 | Code | 11 | | 3 | 00/803D : 9D EB 83 | sta BALLDXL,x 80 | 1 balls.s 80 | Code | 11 | | 1 | 00/8040 : 8A | txa 81 | 1 balls.s 81 | Code | 11 | | 2 | 00/8041 : 29 C3 | and #$C3 82 | 1 balls.s 82 | Code | 11 | | 3 | 00/8043 : 9D EB 83 | sta BALLDXL,x 83 | 1 balls.s 83 | Code | 11 | | 3 | 00/8046 : 9D 2B 84 | sta BALLDXH,x 84 | 1 balls.s 84 | Code | 11 | | 1 | 00/8049 : CA | dex 85 | 1 balls.s 85 | Code | 11 | | 2 | 00/804A : 10 D5 | bpl initl 86 | 1 balls.s 86 | Empty | 11 | | 0 | 00/804C | 87 | 1 balls.s 87 | Comment | 11 | | 0 | 00/804C | ; Draw each ball 88 | 1 balls.s 88 | Empty | 11 | | 0 | 00/804C | 89 | 1 balls.s 89 | Code | 11 | | 2 | 00/804C : A0 27 | drawall ldy #{40}-1 90 | 1 balls.s 90 | Code | 11 | | 3 | 00/804E : BE AB 83 | da1 ldx BALLXH,y 91 | 1 balls.s 91 | Code | 11 | | 3 | 00/8051 : B9 AB 84 | lda BALLYH,y 92 | 1 balls.s 92 | Code | 11 | | 2 | 00/8054 : 84 06 | sty {$6} 93 | 1 balls.s 93 | Code | 11 | | 3 | 00/8056 : 20 59 81 | jsr xorsprite 94 | 1 balls.s 94 | Code | 11 | | 2 | 00/8059 : A4 06 | ldy {$6} 95 | 1 balls.s 95 | Code | 11 | | 1 | 00/805B : 88 | dey 96 | 1 balls.s 96 | Code | 11 | | 2 | 00/805C : 10 F0 | bpl da1 97 | 1 balls.s 97 | Empty | 11 | | 0 | 00/805E | 98 | 1 balls.s 98 | Code | 11 | | 2 | 00/805E : A0 27 | update ldy #{40}-1 99 | 1 balls.s 99 | Empty | 11 | | 0 | 00/8060 | 100 | 1 balls.s 100 | Code | 11 | | 3 | 00/8060 : BE AB 83 | up1 ldx BALLXH,y ; erase the ball where it was 101 | 1 balls.s 101 | Code | 11 | | 3 | 00/8063 : B9 AB 84 | lda BALLYH,y 102 | 1 balls.s 102 | Code | 11 | | 2 | 00/8066 : 84 06 | sty {$6} 103 | 1 balls.s 103 | Code | 11 | | 3 | 00/8068 : 20 59 81 | jsr xorsprite 104 | 1 balls.s 104 | Code | 11 | | 2 | 00/806B : A4 06 | ldy {$6} 105 | 1 balls.s 105 | Empty | 11 | | 0 | 00/806D | 106 | 1 balls.s 106 | Comment | 11 | | 0 | 00/806D | ; Update the ball's horizontal position 107 | 1 balls.s 107 | Empty | 11 | | 0 | 00/806D | 108 | 1 balls.s 108 | Comment | 11 | | 0 | 00/806D | ; Bounce off the left or right wall 109 | 1 balls.s 109 | Code | 11 | | 3 | 00/806D : B9 AB 83 | lda BALLXH,y ; Hit the right wall? 110 | 1 balls.s 110 | Code | 11 | | 2 | 00/8070 : C9 F7 | cmp #>{$f700} 111 | 1 balls.s 111 | Code | 11 | | 2 | 00/8072 : B0 04 | bcs xbounce 112 | 1 balls.s 112 | Code | 11 | | 2 | 00/8074 : C9 04 | cmp #>{$0400} ; Hit the left wall? 113 | 1 balls.s 113 | Code | 11 | | 2 | 00/8076 : B0 11 | bcs noxbounce 114 | 1 balls.s 114 | Empty | 11 | | 0 | 00/8078 | xbounce 115 | 1 balls.s 115 | Code | 11 | | 1 | 00/8078 : 38 | sec 116 | 1 balls.s 116 | Code | 11 | | 2 | 00/8079 : A9 00 | lda #0 117 | 1 balls.s 117 | Code | 11 | | 3 | 00/807B : F9 EB 83 | sbc BALLDXL,y 118 | 1 balls.s 118 | Code | 11 | | 3 | 00/807E : 99 EB 83 | sta BALLDXL,y 119 | 1 balls.s 119 | Code | 11 | | 2 | 00/8081 : A9 00 | lda #0 120 | 1 balls.s 120 | Code | 11 | | 3 | 00/8083 : F9 2B 84 | sbc BALLDXH,y 121 | 1 balls.s 121 | Code | 11 | | 3 | 00/8086 : 99 2B 84 | sta BALLDXH,y 122 | 1 balls.s 122 | Empty | 11 | | 0 | 00/8089 | noxbounce 123 | 1 balls.s 123 | Empty | 11 | | 0 | 00/8089 | 124 | 1 balls.s 124 | Code | 11 | | 1 | 00/8089 : 18 | clc 125 | 1 balls.s 125 | Code | 11 | | 3 | 00/808A : B9 83 83 | lda BALLXL,y 126 | 1 balls.s 126 | Code | 11 | | 3 | 00/808D : 79 EB 83 | adc BALLDXL,y 127 | 1 balls.s 127 | Code | 11 | | 3 | 00/8090 : 99 83 83 | sta BALLXL,y 128 | 1 balls.s 128 | Code | 11 | | 3 | 00/8093 : B9 AB 83 | lda BALLXH,y 129 | 1 balls.s 129 | Code | 11 | | 3 | 00/8096 : 79 2B 84 | adc BALLDXH,y 130 | 1 balls.s 130 | Code | 11 | | 3 | 00/8099 : 99 AB 83 | sta BALLXH,y 131 | 1 balls.s 131 | Empty | 11 | | 0 | 00/809C | 132 | 1 balls.s 132 | Comment | 11 | | 0 | 00/809C | ; Update the ball's vertical position 133 | 1 balls.s 133 | Empty | 11 | | 0 | 00/809C | 134 | 1 balls.s 134 | Comment | 11 | | 0 | 00/809C | ; Apply gravity 135 | 1 balls.s 135 | Empty | 11 | | 0 | 00/809C | 136 | 1 balls.s 136 | Code | 11 | | 1 | 00/809C : 18 | clc 137 | 1 balls.s 137 | Code | 11 | | 3 | 00/809D : B9 EB 84 | lda BALLDYL,y 138 | 1 balls.s 138 | Code | 11 | | 2 | 00/80A0 : 69 00 | adc #<{$100} 139 | 1 balls.s 139 | Code | 11 | | 3 | 00/80A2 : 99 EB 84 | sta BALLDYL,y 140 | 1 balls.s 140 | Code | 11 | | 3 | 00/80A5 : B9 2B 85 | lda BALLDYH,y 141 | 1 balls.s 141 | Code | 11 | | 2 | 00/80A8 : 69 01 | adc #>{$100} 142 | 1 balls.s 142 | Code | 11 | | 3 | 00/80AA : 99 2B 85 | sta BALLDYH,y 143 | 1 balls.s 143 | Empty | 11 | | 0 | 00/80AD | 144 | 1 balls.s 144 | Comment | 11 | | 0 | 00/80AD | ; Update position 145 | 1 balls.s 145 | Empty | 11 | | 0 | 00/80AD | 146 | 1 balls.s 146 | Code | 11 | | 1 | 00/80AD : 18 | clc 147 | 1 balls.s 147 | Code | 11 | | 3 | 00/80AE : B9 6B 84 | lda BALLYL,y 148 | 1 balls.s 148 | Code | 11 | | 3 | 00/80B1 : 79 EB 84 | adc BALLDYL,y 149 | 1 balls.s 149 | Code | 11 | | 3 | 00/80B4 : 99 6B 84 | sta BALLYL,y 150 | 1 balls.s 150 | Code | 11 | | 3 | 00/80B7 : B9 AB 84 | lda BALLYH,y 151 | 1 balls.s 151 | Code | 11 | | 3 | 00/80BA : 79 2B 85 | adc BALLDYH,y 152 | 1 balls.s 152 | Code | 11 | | 3 | 00/80BD : 99 AB 84 | sta BALLYH,y 153 | 1 balls.s 153 | Empty | 11 | | 0 | 00/80C0 | 154 | 1 balls.s 154 | Code | 11 | | 2 | 00/80C0 : C9 B7 | cmp #>{$B700} 155 | 1 balls.s 155 | Code | 11 | | 2 | 00/80C2 : 90 22 | bcc nobounce 156 | 1 balls.s 156 | Empty | 11 | | 0 | 00/80C4 | 157 | 1 balls.s 157 | Empty | 11 | | 0 | 00/80C4 | 158 | 1 balls.s 158 | Comment | 11 | | 0 | 00/80C4 | ; ---- bottom - (BALLY - bottom) = 2 * bottom - BALLY 159 | 1 balls.s 159 | Comment | 11 | | 0 | 00/80C4 | ; 160 | 1 balls.s 160 | Comment | 11 | | 0 | 00/80C4 | ; ---- bottom 161 | 1 balls.s 161 | Comment | 11 | | 0 | 00/80C4 | ; 162 | 1 balls.s 162 | Comment | 11 | | 0 | 00/80C4 | ; ---- BALLY ( > bottom) 163 | 1 balls.s 163 | Comment | 11 | | 0 | 00/80C4 | ; 164 | 1 balls.s 164 | Empty | 11 | | 0 | 00/80C4 | 165 | 1 balls.s 165 | Code | 11 | | 1 | 00/80C4 : 38 | sec 166 | 1 balls.s 166 | Code | 11 | | 2 | 00/80C5 : A9 00 | lda #<{$6E00} 167 | 1 balls.s 167 | Code | 11 | | 3 | 00/80C7 : F9 6B 84 | sbc BALLYL,y 168 | 1 balls.s 168 | Code | 11 | | 3 | 00/80CA : 99 6B 84 | sta BALLYL,y 169 | 1 balls.s 169 | Code | 11 | | 2 | 00/80CD : A9 6E | lda #>{$6E00} 170 | 1 balls.s 170 | Code | 11 | | 3 | 00/80CF : F9 AB 84 | sbc BALLYH,y 171 | 1 balls.s 171 | Code | 11 | | 3 | 00/80D2 : 99 AB 84 | sta BALLYH,y 172 | 1 balls.s 172 | Empty | 11 | | 0 | 00/80D5 | 173 | 1 balls.s 173 | Code | 11 | | 1 | 00/80D5 : 38 | sec 174 | 1 balls.s 174 | Code | 11 | | 2 | 00/80D6 : A9 00 | lda #0 175 | 1 balls.s 175 | Code | 11 | | 3 | 00/80D8 : F9 EB 84 | sbc BALLDYL,y 176 | 1 balls.s 176 | Code | 11 | | 3 | 00/80DB : 99 EB 84 | sta BALLDYL,y 177 | 1 balls.s 177 | Code | 11 | | 2 | 00/80DE : A9 00 | lda #0 178 | 1 balls.s 178 | Code | 11 | | 3 | 00/80E0 : F9 2B 85 | sbc BALLDYH,y 179 | 1 balls.s 179 | Code | 11 | | 3 | 00/80E3 : 99 2B 85 | sta BALLDYH,y 180 | 1 balls.s 180 | Empty | 11 | | 0 | 00/80E6 | 181 | 1 balls.s 181 | Empty | 11 | | 0 | 00/80E6 | nobounce 182 | 1 balls.s 182 | Empty | 11 | | 0 | 00/80E6 | 183 | 1 balls.s 183 | Code | 11 | | 3 | 00/80E6 : BE AB 83 | ldx BALLXH,y ; draw the new ball 184 | 1 balls.s 184 | Code | 11 | | 3 | 00/80E9 : B9 AB 84 | lda BALLYH,y 185 | 1 balls.s 185 | Code | 11 | | 2 | 00/80EC : 84 06 | sty {$6} 186 | 1 balls.s 186 | Code | 11 | | 3 | 00/80EE : 20 59 81 | jsr xorsprite 187 | 1 balls.s 187 | Code | 11 | | 2 | 00/80F1 : A4 06 | ldy {$6} 188 | 1 balls.s 188 | Empty | 11 | | 0 | 00/80F3 | 189 | 1 balls.s 189 | Code | 11 | | 1 | 00/80F3 : 88 | dey 190 | 1 balls.s 190 | Code | 11 | | 2 | 00/80F4 : 30 03 | bmi loopdone 191 | 1 balls.s 191 | Code | 11 | | 3 | 00/80F6 : 4C 60 80 | jmp up1 192 | 1 balls.s 192 | Empty | 11 | | 0 | 00/80F9 | 193 | 1 balls.s 193 | Empty | 11 | | 0 | 00/80F9 | loopdone 194 | 1 balls.s 194 | Code | 11 | | 3 | 00/80F9 : 2C 00 C0 | bit {$c000} ; Key pressed? 195 | 1 balls.s 195 | Code | 11 | | 2 | 00/80FC : 30 03 | bmi pressed ; No, update everything 196 | 1 balls.s 196 | Code | 11 | | 3 | 00/80FE : 4C 5E 80 | jmp update 197 | 1 balls.s 197 | Empty | 11 | | 0 | 00/8101 | 198 | 1 balls.s 198 | Code | 11 | | 3 | 00/8101 : AD 00 C0 | pressed lda {$c000} 199 | 1 balls.s 199 | Code | 11 | | 2 | 00/8104 : C9 D2 | cmp #$D2 ; R? 200 | 1 balls.s 200 | Code | 11 | | 2 | 00/8106 : D0 06 | bne norestart 201 | 1 balls.s 201 | Code | 11 | | 3 | 00/8108 : 2C 10 C0 | bit {$c010} 202 | 1 balls.s 202 | Code | 11 | | 3 | 00/810B : 4C 00 80 | jmp main 203 | 1 balls.s 203 | Empty | 11 | | 0 | 00/810E | 204 | 1 balls.s 204 | Empty | 11 | | 0 | 00/810E | norestart 205 | 1 balls.s 205 | Code | 11 | | 3 | 00/810E : 2C 10 C0 | bit {$c010} ; Clear the key 206 | 1 balls.s 206 | Code | 11 | | 3 | 00/8111 : 2C 51 C0 | bit {$c051} ; Switch to text mode 207 | 1 balls.s 207 | Code | 11 | | 1 | 00/8114 : 60 | rts 208 | 1 balls.s 208 | Empty | 11 | | 0 | 00/8115 | 209 | 1 balls.s 209 | Comment | 11 | | 0 | 00/8115 | ; Draw a horizontal line 210 | 1 balls.s 210 | Comment | 11 | | 0 | 00/8115 | ; A = color byte to repeat, e.g., $7F 211 | 1 balls.s 211 | Comment | 11 | | 0 | 00/8115 | ; Y = row (0-191) ($FF on exit) 212 | 1 balls.s 212 | Comment | 11 | | 0 | 00/8115 | ; 213 | 1 balls.s 213 | Comment | 11 | | 0 | 00/8115 | ; Uses GBASL, GBASH 214 | 1 balls.s 214 | Empty | 11 | | 0 | 00/8115 | 215 | 1 balls.s 215 | Code | 11 | | 1 | 00/8115 : 48 | hline pha 216 | 1 balls.s 216 | Code | 11 | | 3 | 00/8116 : B9 53 82 | lda LKLO,y 217 | 1 balls.s 217 | Code | 11 | | 2 | 00/8119 : 85 26 | sta {$26} 218 | 1 balls.s 218 | Code | 11 | | 3 | 00/811B : B9 93 81 | lda LKHI,y 219 | 1 balls.s 219 | Code | 11 | | 2 | 00/811E : 85 27 | sta {$27} 220 | 1 balls.s 220 | Code | 11 | | 2 | 00/8120 : A0 24 | ldy #{37}-1 ; Width of screen in bytes 221 | 1 balls.s 221 | Code | 11 | | 1 | 00/8122 : 68 | pla 222 | 1 balls.s 222 | Code | 11 | | 2 | 00/8123 : 91 26 | hl1 sta ({$26}),y 223 | 1 balls.s 223 | Code | 11 | | 1 | 00/8125 : 88 | dey 224 | 1 balls.s 224 | Code | 11 | | 2 | 00/8126 : 10 FB | bpl hl1 225 | 1 balls.s 225 | Code | 11 | | 1 | 00/8128 : 60 | rts 226 | 1 balls.s 226 | Empty | 11 | | 0 | 00/8129 | 227 | 1 balls.s 227 | Comment | 11 | | 0 | 00/8129 | ; Draw a vertical line on all but the topmost and bottommost rows 228 | 1 balls.s 228 | Comment | 11 | | 0 | 00/8129 | ; A = byte to write in each position 229 | 1 balls.s 229 | Comment | 11 | | 0 | 00/8129 | ; Y = column 230 | 1 balls.s 230 | Comment | 11 | | 0 | 00/8129 | ; 231 | 1 balls.s 231 | Comment | 11 | | 0 | 00/8129 | ; Uses GBASL, GBASH, HCOLOR1 232 | 1 balls.s 232 | Empty | 11 | | 0 | 00/8129 | 233 | 1 balls.s 233 | Code | 11 | | 2 | 00/8129 : 85 1C | vline sta {$1c} 234 | 1 balls.s 234 | Code | 11 | | 2 | 00/812B : A2 BE | ldx #190 ; Start at second-to-last row 235 | 1 balls.s 235 | Code | 11 | | 3 | 00/812D : BD 53 82 | vl1 lda LKLO,x ; Get the row address 236 | 1 balls.s 236 | Code | 11 | | 2 | 00/8130 : 85 26 | sta {$26} 237 | 1 balls.s 237 | Code | 11 | | 3 | 00/8132 : BD 93 81 | lda LKHI,x 238 | 1 balls.s 238 | Code | 11 | | 2 | 00/8135 : 85 27 | sta {$27} 239 | 1 balls.s 239 | Code | 11 | | 2 | 00/8137 : A5 1C | lda {$1c} 240 | 1 balls.s 240 | Code | 11 | | 2 | 00/8139 : 91 26 | sta ({$26}),y ; Write the color byte 241 | 1 balls.s 241 | Code | 11 | | 1 | 00/813B : CA | dex ; Previous row 242 | 1 balls.s 242 | Code | 11 | | 2 | 00/813C : D0 EF | bne vl1 243 | 1 balls.s 243 | Code | 11 | | 1 | 00/813E : 60 | rts 244 | 1 balls.s 244 | Empty | 11 | | 0 | 00/813F | 245 | 1 balls.s 245 | Comment | 11 | | 0 | 00/813F | ; Clear and switch to hires page 1 246 | 1 balls.s 246 | Comment | 11 | | 0 | 00/813F | ; Uses GBASL and GBASH 247 | 1 balls.s 247 | Empty | 11 | | 0 | 00/813F | 248 | 1 balls.s 248 | Code | 11 | | 2 | 00/813F : A2 20 | hclear ldx #>{$2000} ; $20, also the number of pages to clear 249 | 1 balls.s 249 | Code | 11 | | 2 | 00/8141 : 86 27 | stx {$27} 250 | 1 balls.s 250 | Code | 11 | | 2 | 00/8143 : A9 00 | lda #0 ; Clear to black 251 | 1 balls.s 251 | Code | 11 | | 2 | 00/8145 : 85 26 | sta {$26} 252 | 1 balls.s 252 | Code | 11 | | 1 | 00/8147 : A8 | tay 253 | 1 balls.s 253 | Code | 11 | | 2 | 00/8148 : 91 26 | hclr1 sta ({$26}),y 254 | 1 balls.s 254 | Code | 11 | | 1 | 00/814A : C8 | iny 255 | 1 balls.s 255 | Code | 11 | | 2 | 00/814B : D0 FB | bne hclr1 ; Done with the page? 256 | 1 balls.s 256 | Code | 11 | | 2 | 00/814D : E6 27 | inc {$27} 257 | 1 balls.s 257 | Code | 11 | | 1 | 00/814F : CA | dex 258 | 1 balls.s 258 | Code | 11 | | 2 | 00/8150 : D0 F6 | bne hclr1 ; Done with all pages? 259 | 1 balls.s 259 | Empty | 11 | | 0 | 00/8152 | 260 | 1 balls.s 260 | Code | 11 | | 3 | 00/8152 : 2C 57 C0 | bit {$c057} ; Switch to hires mode 261 | 1 balls.s 261 | Code | 11 | | 3 | 00/8155 : 2C 50 C0 | bit {$c050} 262 | 1 balls.s 262 | Code | 11 | | 1 | 00/8158 : 60 | rts 263 | 1 balls.s 263 | Empty | 11 | | 0 | 00/8159 | 264 | 1 balls.s 264 | Comment | 11 | | 0 | 00/8159 | ; Draw or erase a ball 265 | 1 balls.s 265 | Comment | 11 | | 0 | 00/8159 | ; X = left column 0 - 255 266 | 1 balls.s 266 | Comment | 11 | | 0 | 00/8159 | ; A = top row 0-191 267 | 1 balls.s 267 | Comment | 11 | | 0 | 00/8159 | ; 268 | 1 balls.s 268 | Comment | 11 | | 0 | 00/8159 | ; Uses GBASL, GBASH, HGRY, HGRX 269 | 1 balls.s 269 | Empty | 11 | | 0 | 00/8159 | xorsprite 270 | 1 balls.s 270 | Code | 11 | | 2 | 00/8159 : 85 E2 | sta {$e2} 271 | 1 balls.s 271 | Code | 11 | | 1 | 00/815B : 8A | txa ; Divide X by 7 to get byte, pixel 272 | 1 balls.s 272 | Code | 11 | | 2 | 00/815C : A0 FF | ldy #$ff 273 | 1 balls.s 273 | Code | 11 | | 1 | 00/815E : 38 | sec 274 | 1 balls.s 274 | Code | 11 | | 1 | 00/815F : C8 | xsdiv7 iny 275 | 1 balls.s 275 | Code | 11 | | 2 | 00/8160 : E9 07 | sbc #7 276 | 1 balls.s 276 | Code | 11 | | 2 | 00/8162 : B0 FB | bcs xsdiv7 277 | 1 balls.s 277 | Code | 11 | | 2 | 00/8164 : 84 E0 | sty {$e0} ; byte offset for row 278 | 1 balls.s 278 | Code | 11 | | 2 | 00/8166 : 69 07 | adc #7 ; correct for wraparound 279 | 1 balls.s 279 | Code | 11 | | 1 | 00/8168 : 0A | asl 280 | 1 balls.s 280 | Code | 11 | | 1 | 00/8169 : 0A | asl 281 | 1 balls.s 281 | Code | 11 | | 1 | 00/816A : 0A | asl ; * 8 282 | 1 balls.s 282 | Code | 11 | | 1 | 00/816B : AA | tax ; X is now offset into sprite table 283 | 1 balls.s 283 | Empty | 11 | | 0 | 00/816C | 284 | 1 balls.s 284 | Code | 11 | | 2 | 00/816C : A4 E2 | xsplot ldy {$e2} ; Get the row address 285 | 1 balls.s 285 | Code | 11 | | 3 | 00/816E : B9 53 82 | lda LKLO,y 286 | 1 balls.s 286 | Code | 11 | | 2 | 00/8171 : 85 26 | sta {$26} 287 | 1 balls.s 287 | Code | 11 | | 3 | 00/8173 : B9 93 81 | lda LKHI,y 288 | 1 balls.s 288 | Code | 11 | | 2 | 00/8176 : 85 27 | sta {$27} 289 | 1 balls.s 289 | Code | 11 | | 1 | 00/8178 : C8 | iny 290 | 1 balls.s 290 | Code | 11 | | 2 | 00/8179 : 84 E2 | sty {$e2} 291 | 1 balls.s 291 | Empty | 11 | | 0 | 00/817B | 292 | 1 balls.s 292 | Code | 11 | | 2 | 00/817B : A4 E0 | ldy {$e0} ; XOR the two bytes onto the screen 293 | 1 balls.s 293 | Code | 11 | | 2 | 00/817D : B1 26 | lda ({$26}),y 294 | 1 balls.s 294 | Code | 11 | | 3 | 00/817F : 5D 13 83 | eor BALL0,x 295 | 1 balls.s 295 | Code | 11 | | 2 | 00/8182 : 91 26 | sta ({$26}),y 296 | 1 balls.s 296 | Code | 11 | | 1 | 00/8184 : C8 | iny 297 | 1 balls.s 297 | Code | 11 | | 2 | 00/8185 : B1 26 | lda ({$26}),y 298 | 1 balls.s 298 | Code | 11 | | 3 | 00/8187 : 5D 4B 83 | eor BALL1,x 299 | 1 balls.s 299 | Code | 11 | | 2 | 00/818A : 91 26 | sta ({$26}),y 300 | 1 balls.s 300 | Code | 11 | | 1 | 00/818C : E8 | inx 301 | 1 balls.s 301 | Empty | 11 | | 0 | 00/818D | 302 | 1 balls.s 302 | Code | 11 | | 1 | 00/818D : 8A | txa 303 | 1 balls.s 303 | Code | 11 | | 2 | 00/818E : 29 07 | and #7 304 | 1 balls.s 304 | Code | 11 | | 2 | 00/8190 : D0 DA | bne xsplot ; Stop at a multiple of 8 bytes 305 | 1 balls.s 305 | Code | 11 | | 1 | 00/8192 : 60 | rts 306 | 1 balls.s 306 | Empty | 11 | | 0 | 00/8193 | 307 | 1 balls.s 307 | Empty | 11 | | 0 | 00/8193 | 308 | 1 balls.s 308 | Comment | 11 | | 0 | 00/8193 | ; Hires row address lookup tables, after Pelczarski, Graphically Speaking 309 | 1 balls.s 309 | Empty | 11 | | 0 | 00/8193 | 310 | 1 balls.s 310 | Data | 11 | | 16 | 00/8193 : 20 24 28 2C | LKHI hex 2024282c3034383c2024282c3034383c | | | | | | 30 34 38 3C | | | | | | | 20 24 28 2C | | | | | | | 30 34 38 3C | 311 | 1 balls.s 311 | Data | 11 | | 16 | 00/81A3 : 21 25 29 2D | hex 2125292d3135393d2125292d3135393d | | | | | | 31 35 39 3D | | | | | | | 21 25 29 2D | | | | | | | 31 35 39 3D | 312 | 1 balls.s 312 | Data | 11 | | 16 | 00/81B3 : 22 26 2A 2E | hex 22262a2e32363a3e22262a2e32363a3e | | | | | | 32 36 3A 3E | | | | | | | 22 26 2A 2E | | | | | | | 32 36 3A 3E | 313 | 1 balls.s 313 | Data | 11 | | 16 | 00/81C3 : 23 27 2B 2F | hex 23272b2f33373b3f23272b2f33373b3f | | | | | | 33 37 3B 3F | | | | | | | 23 27 2B 2F | | | | | | | 33 37 3B 3F | 314 | 1 balls.s 314 | Data | 11 | | 16 | 00/81D3 : 20 24 28 2C | hex 2024282c3034383c2024282c3034383c | | | | | | 30 34 38 3C | | | | | | | 20 24 28 2C | | | | | | | 30 34 38 3C | 315 | 1 balls.s 315 | Data | 11 | | 16 | 00/81E3 : 21 25 29 2D | hex 2125292d3135393d2125292d3135393d | | | | | | 31 35 39 3D | | | | | | | 21 25 29 2D | | | | | | | 31 35 39 3D | 316 | 1 balls.s 316 | Data | 11 | | 16 | 00/81F3 : 22 26 2A 2E | hex 22262a2e32363a3e22262a2e32363a3e | | | | | | 32 36 3A 3E | | | | | | | 22 26 2A 2E | | | | | | | 32 36 3A 3E | 317 | 1 balls.s 317 | Data | 11 | | 16 | 00/8203 : 23 27 2B 2F | hex 23272b2f33373b3f23272b2f33373b3f | | | | | | 33 37 3B 3F | | | | | | | 23 27 2B 2F | | | | | | | 33 37 3B 3F | 318 | 1 balls.s 318 | Data | 11 | | 16 | 00/8213 : 20 24 28 2C | hex 2024282c3034383c2024282c3034383c | | | | | | 30 34 38 3C | | | | | | | 20 24 28 2C | | | | | | | 30 34 38 3C | 319 | 1 balls.s 319 | Data | 11 | | 16 | 00/8223 : 21 25 29 2D | hex 2125292d3135393d2125292d3135393d | | | | | | 31 35 39 3D | | | | | | | 21 25 29 2D | | | | | | | 31 35 39 3D | 320 | 1 balls.s 320 | Data | 11 | | 16 | 00/8233 : 22 26 2A 2E | hex 22262a2e32363a3e22262a2e32363a3e | | | | | | 32 36 3A 3E | | | | | | | 22 26 2A 2E | | | | | | | 32 36 3A 3E | 321 | 1 balls.s 321 | Data | 11 | | 16 | 00/8243 : 23 27 2B 2F | hex 23272b2f33373b3f23272b2f33373b3f | | | | | | 33 37 3B 3F | | | | | | | 23 27 2B 2F | | | | | | | 33 37 3B 3F | 322 | 1 balls.s 322 | Empty | 11 | | 0 | 00/8253 | 323 | 1 balls.s 323 | Data | 11 | | 16 | 00/8253 : 00 00 00 00 | LKLO hex 00000000000000008080808080808080 | | | | | | 00 00 00 00 | | | | | | | 80 80 80 80 | | | | | | | 80 80 80 80 | 324 | 1 balls.s 324 | Data | 11 | | 16 | 00/8263 : 00 00 00 00 | hex 00000000000000008080808080808080 | | | | | | 00 00 00 00 | | | | | | | 80 80 80 80 | | | | | | | 80 80 80 80 | 325 | 1 balls.s 325 | Data | 11 | | 16 | 00/8273 : 00 00 00 00 | hex 00000000000000008080808080808080 | | | | | | 00 00 00 00 | | | | | | | 80 80 80 80 | | | | | | | 80 80 80 80 | 326 | 1 balls.s 326 | Data | 11 | | 16 | 00/8283 : 00 00 00 00 | hex 00000000000000008080808080808080 | | | | | | 00 00 00 00 | | | | | | | 80 80 80 80 | | | | | | | 80 80 80 80 | 327 | 1 balls.s 327 | Data | 11 | | 16 | 00/8293 : 28 28 28 28 | hex 2828282828282828a8a8a8a8a8a8a8a8 | | | | | | 28 28 28 28 | | | | | | | A8 A8 A8 A8 | | | | | | | A8 A8 A8 A8 | 328 | 1 balls.s 328 | Data | 11 | | 16 | 00/82A3 : 28 28 28 28 | hex 2828282828282828a8a8a8a8a8a8a8a8 | | | | | | 28 28 28 28 | | | | | | | A8 A8 A8 A8 | | | | | | | A8 A8 A8 A8 | 329 | 1 balls.s 329 | Data | 11 | | 16 | 00/82B3 : 28 28 28 28 | hex 2828282828282828a8a8a8a8a8a8a8a8 | | | | | | 28 28 28 28 | | | | | | | A8 A8 A8 A8 | | | | | | | A8 A8 A8 A8 | 330 | 1 balls.s 330 | Data | 11 | | 16 | 00/82C3 : 28 28 28 28 | hex 2828282828282828a8a8a8a8a8a8a8a8 | | | | | | 28 28 28 28 | | | | | | | A8 A8 A8 A8 | | | | | | | A8 A8 A8 A8 | 331 | 1 balls.s 331 | Data | 11 | | 16 | 00/82D3 : 50 50 50 50 | hex 5050505050505050d0d0d0d0d0d0d0d0 | | | | | | 50 50 50 50 | | | | | | | D0 D0 D0 D0 | | | | | | | D0 D0 D0 D0 | 332 | 1 balls.s 332 | Data | 11 | | 16 | 00/82E3 : 50 50 50 50 | hex 5050505050505050d0d0d0d0d0d0d0d0 | | | | | | 50 50 50 50 | | | | | | | D0 D0 D0 D0 | | | | | | | D0 D0 D0 D0 | 333 | 1 balls.s 333 | Data | 11 | | 16 | 00/82F3 : 50 50 50 50 | hex 5050505050505050d0d0d0d0d0d0d0d0 | | | | | | 50 50 50 50 | | | | | | | D0 D0 D0 D0 | | | | | | | D0 D0 D0 D0 | 334 | 1 balls.s 334 | Data | 11 | | 16 | 00/8303 : 50 50 50 50 | hex 5050505050505050d0d0d0d0d0d0d0d0 | | | | | | 50 50 50 50 | | | | | | | D0 D0 D0 D0 | | | | | | | D0 D0 D0 D0 | 335 | 1 balls.s 335 | Empty | 11 | | 0 | 00/8313 | 336 | 1 balls.s 336 | Comment | 11 | | 0 | 00/8313 | ; Eight bytes per sprite, first bytes 337 | 1 balls.s 337 | Empty | 11 | | 0 | 00/8313 | 338 | 1 balls.s 338 | Data | 11 | | 1 | 00/8313 : 3C | BALL0 db %00111100 339 | 1 balls.s 339 | Data | 11 | | 1 | 00/8314 : 7F | db %01111111 340 | 1 balls.s 340 | Data | 11 | | 1 | 00/8315 : 7F | db %01111111 341 | 1 balls.s 341 | Data | 11 | | 1 | 00/8316 : 7F | db %01111111 342 | 1 balls.s 342 | Data | 11 | | 1 | 00/8317 : 7F | db %01111111 343 | 1 balls.s 343 | Data | 11 | | 1 | 00/8318 : 7F | db %01111111 344 | 1 balls.s 344 | Data | 11 | | 1 | 00/8319 : 7F | db %01111111 345 | 1 balls.s 345 | Data | 11 | | 1 | 00/831A : 3C | db %00111100 346 | 1 balls.s 346 | Empty | 11 | | 0 | 00/831B | 347 | 1 balls.s 347 | Data | 11 | | 1 | 00/831B : 78 | db %01111000 348 | 1 balls.s 348 | Data | 11 | | 1 | 00/831C : 7E | db %01111110 349 | 1 balls.s 349 | Data | 11 | | 1 | 00/831D : 7E | db %01111110 350 | 1 balls.s 350 | Data | 11 | | 1 | 00/831E : 7E | db %01111110 351 | 1 balls.s 351 | Data | 11 | | 1 | 00/831F : 7E | db %01111110 352 | 1 balls.s 352 | Data | 11 | | 1 | 00/8320 : 7E | db %01111110 353 | 1 balls.s 353 | Data | 11 | | 1 | 00/8321 : 7E | db %01111110 354 | 1 balls.s 354 | Data | 11 | | 1 | 00/8322 : 78 | db %01111000 355 | 1 balls.s 355 | Empty | 11 | | 0 | 00/8323 | 356 | 1 balls.s 356 | Data | 11 | | 1 | 00/8323 : 70 | db %01110000 357 | 1 balls.s 357 | Data | 11 | | 1 | 00/8324 : 7C | db %01111100 358 | 1 balls.s 358 | Data | 11 | | 1 | 00/8325 : 7C | db %01111100 359 | 1 balls.s 359 | Data | 11 | | 1 | 00/8326 : 7C | db %01111100 360 | 1 balls.s 360 | Data | 11 | | 1 | 00/8327 : 7C | db %01111100 361 | 1 balls.s 361 | Data | 11 | | 1 | 00/8328 : 7C | db %01111100 362 | 1 balls.s 362 | Data | 11 | | 1 | 00/8329 : 7C | db %01111100 363 | 1 balls.s 363 | Data | 11 | | 1 | 00/832A : 70 | db %01110000 364 | 1 balls.s 364 | Empty | 11 | | 0 | 00/832B | 365 | 1 balls.s 365 | Data | 11 | | 1 | 00/832B : 60 | db %01100000 366 | 1 balls.s 366 | Data | 11 | | 1 | 00/832C : 78 | db %01111000 367 | 1 balls.s 367 | Data | 11 | | 1 | 00/832D : 78 | db %01111000 368 | 1 balls.s 368 | Data | 11 | | 1 | 00/832E : 78 | db %01111000 369 | 1 balls.s 369 | Data | 11 | | 1 | 00/832F : 78 | db %01111000 370 | 1 balls.s 370 | Data | 11 | | 1 | 00/8330 : 78 | db %01111000 371 | 1 balls.s 371 | Data | 11 | | 1 | 00/8331 : 78 | db %01111000 372 | 1 balls.s 372 | Data | 11 | | 1 | 00/8332 : 60 | db %01100000 373 | 1 balls.s 373 | Empty | 11 | | 0 | 00/8333 | 374 | 1 balls.s 374 | Data | 11 | | 1 | 00/8333 : 40 | db %01000000 375 | 1 balls.s 375 | Data | 11 | | 1 | 00/8334 : 70 | db %01110000 376 | 1 balls.s 376 | Data | 11 | | 1 | 00/8335 : 70 | db %01110000 377 | 1 balls.s 377 | Data | 11 | | 1 | 00/8336 : 70 | db %01110000 378 | 1 balls.s 378 | Data | 11 | | 1 | 00/8337 : 70 | db %01110000 379 | 1 balls.s 379 | Data | 11 | | 1 | 00/8338 : 70 | db %01110000 380 | 1 balls.s 380 | Data | 11 | | 1 | 00/8339 : 70 | db %01110000 381 | 1 balls.s 381 | Data | 11 | | 1 | 00/833A : 40 | db %01000000 382 | 1 balls.s 382 | Empty | 11 | | 0 | 00/833B | 383 | 1 balls.s 383 | Data | 11 | | 1 | 00/833B : 00 | db %00000000 384 | 1 balls.s 384 | Data | 11 | | 1 | 00/833C : 60 | db %01100000 385 | 1 balls.s 385 | Data | 11 | | 1 | 00/833D : 60 | db %01100000 386 | 1 balls.s 386 | Data | 11 | | 1 | 00/833E : 60 | db %01100000 387 | 1 balls.s 387 | Data | 11 | | 1 | 00/833F : 60 | db %01100000 388 | 1 balls.s 388 | Data | 11 | | 1 | 00/8340 : 60 | db %01100000 389 | 1 balls.s 389 | Data | 11 | | 1 | 00/8341 : 60 | db %01100000 390 | 1 balls.s 390 | Data | 11 | | 1 | 00/8342 : 00 | db %00000000 391 | 1 balls.s 391 | Empty | 11 | | 0 | 00/8343 | 392 | 1 balls.s 392 | Data | 11 | | 1 | 00/8343 : 00 | db %00000000 393 | 1 balls.s 393 | Data | 11 | | 1 | 00/8344 : 40 | db %01000000 394 | 1 balls.s 394 | Data | 11 | | 1 | 00/8345 : 40 | db %01000000 395 | 1 balls.s 395 | Data | 11 | | 1 | 00/8346 : 40 | db %01000000 396 | 1 balls.s 396 | Data | 11 | | 1 | 00/8347 : 40 | db %01000000 397 | 1 balls.s 397 | Data | 11 | | 1 | 00/8348 : 40 | db %01000000 398 | 1 balls.s 398 | Data | 11 | | 1 | 00/8349 : 40 | db %01000000 399 | 1 balls.s 399 | Data | 11 | | 1 | 00/834A : 00 | db %00000000 400 | 1 balls.s 400 | Empty | 11 | | 0 | 00/834B | 401 | 1 balls.s 401 | Comment | 11 | | 0 | 00/834B | ; Second byte 402 | 1 balls.s 402 | Empty | 11 | | 0 | 00/834B | 403 | 1 balls.s 403 | Data | 11 | | 1 | 00/834B : 00 | BALL1 db %00000000 404 | 1 balls.s 404 | Data | 11 | | 1 | 00/834C : 01 | db %00000001 405 | 1 balls.s 405 | Data | 11 | | 1 | 00/834D : 01 | db %00000001 406 | 1 balls.s 406 | Data | 11 | | 1 | 00/834E : 01 | db %00000001 407 | 1 balls.s 407 | Data | 11 | | 1 | 00/834F : 01 | db %00000001 408 | 1 balls.s 408 | Data | 11 | | 1 | 00/8350 : 01 | db %00000001 409 | 1 balls.s 409 | Data | 11 | | 1 | 00/8351 : 01 | db %00000001 410 | 1 balls.s 410 | Data | 11 | | 1 | 00/8352 : 00 | db %00000000 411 | 1 balls.s 411 | Empty | 11 | | 0 | 00/8353 | 412 | 1 balls.s 412 | Data | 11 | | 1 | 00/8353 : 00 | db %00000000 413 | 1 balls.s 413 | Data | 11 | | 1 | 00/8354 : 03 | db %00000011 414 | 1 balls.s 414 | Data | 11 | | 1 | 00/8355 : 03 | db %00000011 415 | 1 balls.s 415 | Data | 11 | | 1 | 00/8356 : 03 | db %00000011 416 | 1 balls.s 416 | Data | 11 | | 1 | 00/8357 : 03 | db %00000011 417 | 1 balls.s 417 | Data | 11 | | 1 | 00/8358 : 03 | db %00000011 418 | 1 balls.s 418 | Data | 11 | | 1 | 00/8359 : 03 | db %00000011 419 | 1 balls.s 419 | Data | 11 | | 1 | 00/835A : 00 | db %00000000 420 | 1 balls.s 420 | Empty | 11 | | 0 | 00/835B | 421 | 1 balls.s 421 | Data | 11 | | 1 | 00/835B : 01 | db %00000001 422 | 1 balls.s 422 | Data | 11 | | 1 | 00/835C : 07 | db %00000111 423 | 1 balls.s 423 | Data | 11 | | 1 | 00/835D : 07 | db %00000111 424 | 1 balls.s 424 | Data | 11 | | 1 | 00/835E : 07 | db %00000111 425 | 1 balls.s 425 | Data | 11 | | 1 | 00/835F : 07 | db %00000111 426 | 1 balls.s 426 | Data | 11 | | 1 | 00/8360 : 07 | db %00000111 427 | 1 balls.s 427 | Data | 11 | | 1 | 00/8361 : 07 | db %00000111 428 | 1 balls.s 428 | Data | 11 | | 1 | 00/8362 : 01 | db %00000001 429 | 1 balls.s 429 | Empty | 11 | | 0 | 00/8363 | 430 | 1 balls.s 430 | Data | 11 | | 1 | 00/8363 : 03 | db %00000011 431 | 1 balls.s 431 | Data | 11 | | 1 | 00/8364 : 0F | db %00001111 432 | 1 balls.s 432 | Data | 11 | | 1 | 00/8365 : 0F | db %00001111 433 | 1 balls.s 433 | Data | 11 | | 1 | 00/8366 : 0F | db %00001111 434 | 1 balls.s 434 | Data | 11 | | 1 | 00/8367 : 0F | db %00001111 435 | 1 balls.s 435 | Data | 11 | | 1 | 00/8368 : 0F | db %00001111 436 | 1 balls.s 436 | Data | 11 | | 1 | 00/8369 : 0F | db %00001111 437 | 1 balls.s 437 | Data | 11 | | 1 | 00/836A : 03 | db %00000011 438 | 1 balls.s 438 | Empty | 11 | | 0 | 00/836B | 439 | 1 balls.s 439 | Data | 11 | | 1 | 00/836B : 07 | db %00000111 440 | 1 balls.s 440 | Data | 11 | | 1 | 00/836C : 1F | db %00011111 441 | 1 balls.s 441 | Data | 11 | | 1 | 00/836D : 1F | db %00011111 442 | 1 balls.s 442 | Data | 11 | | 1 | 00/836E : 1F | db %00011111 443 | 1 balls.s 443 | Data | 11 | | 1 | 00/836F : 1F | db %00011111 444 | 1 balls.s 444 | Data | 11 | | 1 | 00/8370 : 1F | db %00011111 445 | 1 balls.s 445 | Data | 11 | | 1 | 00/8371 : 1F | db %00011111 446 | 1 balls.s 446 | Data | 11 | | 1 | 00/8372 : 07 | db %00000111 447 | 1 balls.s 447 | Empty | 11 | | 0 | 00/8373 | 448 | 1 balls.s 448 | Data | 11 | | 1 | 00/8373 : 0F | db %00001111 449 | 1 balls.s 449 | Data | 11 | | 1 | 00/8374 : 3F | db %00111111 450 | 1 balls.s 450 | Data | 11 | | 1 | 00/8375 : 3F | db %00111111 451 | 1 balls.s 451 | Data | 11 | | 1 | 00/8376 : 3F | db %00111111 452 | 1 balls.s 452 | Data | 11 | | 1 | 00/8377 : 3F | db %00111111 453 | 1 balls.s 453 | Data | 11 | | 1 | 00/8378 : 3F | db %00111111 454 | 1 balls.s 454 | Data | 11 | | 1 | 00/8379 : 3F | db %00111111 455 | 1 balls.s 455 | Data | 11 | | 1 | 00/837A : 0F | db %00001111 456 | 1 balls.s 456 | Empty | 11 | | 0 | 00/837B | 457 | 1 balls.s 457 | Data | 11 | | 1 | 00/837B : 1E | db %00011110 458 | 1 balls.s 458 | Data | 11 | | 1 | 00/837C : 7F | db %01111111 459 | 1 balls.s 459 | Data | 11 | | 1 | 00/837D : 7F | db %01111111 460 | 1 balls.s 460 | Data | 11 | | 1 | 00/837E : 7F | db %01111111 461 | 1 balls.s 461 | Data | 11 | | 1 | 00/837F : 7F | db %01111111 462 | 1 balls.s 462 | Data | 11 | | 1 | 00/8380 : 7F | db %01111111 463 | 1 balls.s 463 | Data | 11 | | 1 | 00/8381 : 7F | db %01111111 464 | 1 balls.s 464 | Data | 11 | | 1 | 00/8382 : 1E | db %00011110 465 | 1 balls.s 465 | Empty | 11 | | 0 | 00/8383 | 466 | 1 balls.s 466 | Comment | 11 | | 0 | 00/8383 | ; Position and velocity information for each ball 467 | 1 balls.s 467 | Empty | 11 | | 0 | 00/8383 | 468 | 1 balls.s 468 | Data | 11 | | 40 | 00/8383 : 00 00 00 00 | BALLXL ds {40} | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | 469 | 1 balls.s 469 | Data | 11 | | 64 | 00/83AB : 00 00 00 00 | BALLXH ds 64 | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | 470 | 1 balls.s 470 | Data | 11 | | 64 | 00/83EB : 00 00 00 00 | BALLDXL ds 64 | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | 471 | 1 balls.s 471 | Data | 11 | | 64 | 00/842B : 00 00 00 00 | BALLDXH ds 64 | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | 472 | 1 balls.s 472 | Empty | 11 | | 0 | 00/846B | 473 | 1 balls.s 473 | Data | 11 | | 64 | 00/846B : 00 00 00 00 | BALLYL ds 64 | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | 474 | 1 balls.s 474 | Data | 11 | | 64 | 00/84AB : 00 00 00 00 | BALLYH ds 64 | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | 475 | 1 balls.s 475 | Data | 11 | | 64 | 00/84EB : 00 00 00 00 | BALLDYL ds 64 | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | 476 | 1 balls.s 476 | Data | 11 | | 64 | 00/852B : 00 00 00 00 | BALLDYH ds 64 | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | | | | | | | 00 00 00 00 | ------+-------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------