credits: it works!!!!!

This commit is contained in:
Vince Weaver 2018-07-06 15:23:01 -04:00
parent f509179449
commit 6662fc6f4d
3 changed files with 62 additions and 47 deletions

View File

@ -9,7 +9,7 @@ int main(int argc, char **argv) {
// desired=5196;
// desired=4547;
// desired=9685;
desired=4431;
desired=4704;
printf("You want %d cycles\n",desired);

View File

@ -450,24 +450,29 @@ loop4:
;=========================
; play mockingboard
; 11+ 84*5 + 10*4 + 21 = 492
lda MBASE ; 3
sta MB_ADDRH ; 3
lda #0 ; 2
sta MB_ADDRL ; 3
;=============
; 11
lda MBASE
sta MB_ADDRH
lda #0
sta MB_ADDRL
ldx #0
ldy MBOFFSET
lda (MB_ADDRL),Y
sta MB_VALUE
jsr write_ay_both
clc
lda #6
adc MB_ADDRH
sta MB_ADDRH
ldx #0 ; 2
ldy MBOFFSET ; 3
lda (MB_ADDRL),Y ; 5
sta MB_VALUE ; 3
jsr write_ay_both ; 6+65
;===============
; 84
clc ; 2
lda #6 ; 2
adc MB_ADDRH ; 3
sta MB_ADDRH ; 3
;==============
; 10
ldx #2
ldy MBOFFSET
lda (MB_ADDRL),Y
@ -507,30 +512,37 @@ loop4:
sta MB_VALUE
jsr write_ay_both
lda FRAME
and #1
clc
adc MBOFFSET
sta MBOFFSET
;
lda MBASE
adc #0
sta MBASE
lda FRAME ; 3
and #1 ; 2
clc ; 2
adc MBOFFSET ; 3
sta MBOFFSET ; 3
lda MBASE ; 3
adc #0 ; 2
sta MBASE ; 3
;=============
; 21
; want 5200 - 4 = 5196 cycles
; 1+y(6+5x)
; Try X=17 Y=57 cycles=5188, R8
; lores want 5200
; mockingboard -492
; softswitch -4
;===================
; 4704 cycles
; Try X=133 Y=7 cycles=4698 R6
lda #0 ; 2
lda #0 ; 2
lda #0 ; 2
lda #0 ; 2
; lda #0 ; 2
ldy #57 ; 2
ldy #7 ; 2
loop5:
ldx #17 ; 2
ldx #133 ; 2
loop6:
dex ; 2
bne loop6 ; 2nt/3
@ -901,9 +913,9 @@ letters:
line1:.asciiz " * . "
line2:.asciiz " * . T A L B O T . "
line3:.asciiz " * F A N T A S Y "
line4:.asciiz " * S E V E N "
line2:.asciiz " * . . "
line3:.asciiz " * "
line4:.asciiz " * "
line5:.asciiz " . . . "
line6:.asciiz " . "

View File

@ -120,29 +120,32 @@ reset_ay_right:
write_ay_both:
; address
stx MOCK_6522_1_ORA ; put address on PA1 ; 3
stx MOCK_6522_2_ORA ; put address on PA2 ; 3
stx MOCK_6522_1_ORA ; put address on PA1 ; 4
stx MOCK_6522_2_ORA ; put address on PA2 ; 4
lda #MOCK_AY_LATCH_ADDR ; latch_address on PB1 ; 2
sta MOCK_6522_1_ORB ; latch_address on PB1 ; 3
sta MOCK_6522_2_ORB ; latch_address on PB2 ; 3
sta MOCK_6522_1_ORB ; latch_address on PB1 ; 4
sta MOCK_6522_2_ORB ; latch_address on PB2 ; 4
lda #MOCK_AY_INACTIVE ; go inactive ; 2
sta MOCK_6522_1_ORB ; 3
sta MOCK_6522_2_ORB ; 3
sta MOCK_6522_1_ORB ; 4
sta MOCK_6522_2_ORB ; 4
;===========
; 28
; value
lda MB_VALUE ; 3
sta MOCK_6522_1_ORA ; put value on PA1 ; 3
sta MOCK_6522_2_ORA ; put value on PA2 ; 3
sta MOCK_6522_1_ORA ; put value on PA1 ; 4
sta MOCK_6522_2_ORA ; put value on PA2 ; 4
lda #MOCK_AY_WRITE ; ; 2
sta MOCK_6522_1_ORB ; write on PB1 ; 3
sta MOCK_6522_2_ORB ; write on PB2 ; 3
sta MOCK_6522_1_ORB ; write on PB1 ; 4
sta MOCK_6522_2_ORB ; write on PB2 ; 4
lda #MOCK_AY_INACTIVE ; go inactive ; 2
sta MOCK_6522_1_ORB ; 3
sta MOCK_6522_2_ORB ; 3
sta MOCK_6522_1_ORB ; 4
sta MOCK_6522_2_ORB ; 4
;===========
; 31
rts ; 6
;===========
; 53
; 65
;=======================================
; Detect a Mockingboard card in Slot4