mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-10 23:54:33 +00:00
credits: text scrolling works!!!!
This commit is contained in:
parent
2db0d40a26
commit
a8246b7ea0
@ -9,7 +9,7 @@ int main(int argc, char **argv) {
|
|||||||
// desired=5196;
|
// desired=5196;
|
||||||
// desired=4547;
|
// desired=4547;
|
||||||
// desired=9685;
|
// desired=9685;
|
||||||
desired=429;
|
desired=4431;
|
||||||
|
|
||||||
|
|
||||||
printf("You want %d cycles\n",desired);
|
printf("You want %d cycles\n",desired);
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
LETTERY = $66
|
LETTERY = $66
|
||||||
LETTERD = $67
|
LETTERD = $67
|
||||||
LETTER = $68
|
LETTER = $68
|
||||||
|
BLARGH = $69
|
||||||
|
|
||||||
;===================
|
;===================
|
||||||
; init screen
|
; init screen
|
||||||
@ -471,19 +472,20 @@ loop6:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
jsr move_letters
|
jsr move_letters ; 6+110
|
||||||
|
|
||||||
; Blanking time: 4550
|
; Blanking time: 4550
|
||||||
|
; move_letters -116
|
||||||
; JMP at end -3
|
; JMP at end -3
|
||||||
;========================4547 cycles
|
;========================4431 cycles
|
||||||
|
|
||||||
; Try X=13 Y=64 cycles=4545 R2
|
; Try X=176 Y=5 cycles=4431
|
||||||
|
|
||||||
lda #0 ; 2
|
|
||||||
; lda #0 ; 2
|
; lda #0 ; 2
|
||||||
ldy #64 ; 2
|
; lda #0 ; 2
|
||||||
|
ldy #5 ; 2
|
||||||
loop7:
|
loop7:
|
||||||
ldx #13 ; 2
|
ldx #176 ; 2
|
||||||
loop8:
|
loop8:
|
||||||
dex ; 2
|
dex ; 2
|
||||||
bne loop8 ; 2nt/3
|
bne loop8 ; 2nt/3
|
||||||
@ -675,22 +677,31 @@ green_loop:
|
|||||||
;===============================================
|
;===============================================
|
||||||
; Move Letters
|
; Move Letters
|
||||||
;===============================================
|
;===============================================
|
||||||
;
|
; Normal =10+25+38+9 = 82 need 28 (28)
|
||||||
|
; End of line =10+25+38+37 = 110
|
||||||
|
; Next line =10+5+12+34 = 61 need 49 (28+21)
|
||||||
|
; done entirely =10+5+9 = 24 need 86 (28+21+37)
|
||||||
|
|
||||||
|
; all forced to be 109
|
||||||
|
|
||||||
move_letters:
|
move_letters:
|
||||||
ldy #0 ; 2
|
ldy #0 ; 2
|
||||||
lda (LETTERL),Y ; 5
|
lda (LETTERL),Y ; 5
|
||||||
sta LETTER ; 3
|
sta LETTER ; 3
|
||||||
|
;==========
|
||||||
|
; 10
|
||||||
bmi letter_special
|
bmi letter_special
|
||||||
; 2
|
; 2
|
||||||
lda LETTERY ; 3
|
lda LETTERY ; 3
|
||||||
asl ; 2
|
asl ; 2
|
||||||
tay ; 2
|
tay ; 2
|
||||||
lda gr_offsets,Y ; lookup low-res memory address ; 5
|
lda gr_offsets,Y ; lookup low-res memory address ; 4
|
||||||
sta BASL ; store out low byte of addy ; 3
|
sta BASL ; store out low byte of addy ; 3
|
||||||
lda gr_offsets+1,Y ; look up high byte ; 5
|
lda gr_offsets+1,Y ; look up high byte ; 4
|
||||||
sta BASH ; 3
|
sta BASH ; 3
|
||||||
|
lda #0 ; cycle-killer ; 2
|
||||||
|
;==========
|
||||||
|
; 25
|
||||||
|
|
||||||
ldy #0 ; erase old char with space ; 2
|
ldy #0 ; erase old char with space ; 2
|
||||||
lda #' '|$80 ; 2
|
lda #' '|$80 ; 2
|
||||||
@ -706,9 +717,17 @@ move_letters:
|
|||||||
|
|
||||||
lda LETTERX ; 3
|
lda LETTERX ; 3
|
||||||
cmp LETTERD ; 3
|
cmp LETTERD ; 3
|
||||||
bne letter_ok
|
;===========
|
||||||
|
; 38
|
||||||
|
beq letter_next
|
||||||
; 2
|
; 2
|
||||||
|
lda #0 ; 2
|
||||||
|
lda #0 ; 2
|
||||||
|
jmp waste_28 ; 3
|
||||||
|
;==========
|
||||||
|
; 9
|
||||||
letter_next:
|
letter_next:
|
||||||
|
; 3
|
||||||
clc ; 2
|
clc ; 2
|
||||||
lda LETTERL ; 3
|
lda LETTERL ; 3
|
||||||
adc #1 ; 2
|
adc #1 ; 2
|
||||||
@ -719,18 +738,23 @@ letter_next:
|
|||||||
inc LETTERD ; 5
|
inc LETTERD ; 5
|
||||||
lda #39 ; 2
|
lda #39 ; 2
|
||||||
sta LETTERX ; 3
|
sta LETTERX ; 3
|
||||||
|
|
||||||
letter_ok:
|
|
||||||
; 3
|
|
||||||
rts ; 6
|
rts ; 6
|
||||||
|
;===========
|
||||||
|
; 37
|
||||||
|
|
||||||
letter_special:
|
letter_special:
|
||||||
; 3
|
; 3
|
||||||
cmp #$ff ; 2
|
cmp #$ff ; 2
|
||||||
|
;==========
|
||||||
|
; 5
|
||||||
|
|
||||||
beq letter_done
|
beq letter_done
|
||||||
; 2
|
; 2
|
||||||
ldy #1 ; 2
|
ldy #1 ; 2
|
||||||
lda (LETTERL),Y ; 5
|
lda (LETTERL),Y ; 5
|
||||||
sta LETTERY ; 3
|
sta LETTERY ; 3
|
||||||
|
;===========
|
||||||
|
; 12
|
||||||
|
|
||||||
iny ; 2
|
iny ; 2
|
||||||
lda (LETTERL),Y ; 5
|
lda (LETTERL),Y ; 5
|
||||||
@ -743,10 +767,40 @@ letter_special:
|
|||||||
lda LETTERH ; 3
|
lda LETTERH ; 3
|
||||||
adc #0 ; 2
|
adc #0 ; 2
|
||||||
sta LETTERH ; 3
|
sta LETTERH ; 3
|
||||||
|
lda LETTERH ; waste ; 3
|
||||||
|
jmp waste_21 ; 3
|
||||||
|
|
||||||
|
;===========
|
||||||
|
; 34
|
||||||
letter_done:
|
letter_done:
|
||||||
;3/0
|
; 3
|
||||||
rts ; 6
|
lda LETTERH ; 3
|
||||||
|
lda LETTERH ; 3
|
||||||
|
|
||||||
|
waste_37:
|
||||||
|
ldx #0 ; 2
|
||||||
|
inc BLARGH ; 5
|
||||||
|
inc BLARGH ; 5
|
||||||
|
inc BLARGH ; 5
|
||||||
|
inc BLARGH ; 5
|
||||||
|
inc BLARGH ; 5
|
||||||
|
inc BLARGH ; 5
|
||||||
|
inc BLARGH ; 5
|
||||||
|
waste_21:
|
||||||
|
ldx #0 ; 2
|
||||||
|
ldx #0 ; 2
|
||||||
|
ldx #0 ; 2
|
||||||
|
inc BLARGH ; 5
|
||||||
|
inc BLARGH ; 5
|
||||||
|
inc BLARGH ; 5
|
||||||
|
|
||||||
|
waste_28:
|
||||||
|
ldx #0 ; 2
|
||||||
|
inc BLARGH ; 5
|
||||||
|
inc BLARGH ; 5
|
||||||
|
inc BLARGH ; 5
|
||||||
|
inc BLARGH ; 5
|
||||||
|
rts ; 6
|
||||||
|
|
||||||
letters:
|
letters:
|
||||||
;.byte 1,15
|
;.byte 1,15
|
||||||
|
Loading…
Reference in New Issue
Block a user