mirror of
https://github.com/mi57730/a2d.git
synced 2025-02-20 02:29:11 +00:00
MGTK: more 16-bit macro use
This commit is contained in:
parent
98c16a3d55
commit
5ec14668c6
300
desktop/mgtk.s
300
desktop/mgtk.s
@ -1375,16 +1375,10 @@ set_width: ; Set width for destination.
|
|||||||
sta left_masks_table
|
sta left_masks_table
|
||||||
sta right_masks_table
|
sta right_masks_table
|
||||||
|
|
||||||
lda fill_mode_table_onechar,x
|
copy16 fill_mode_table_onechar,x, fillmode_jmp+1
|
||||||
sta fillmode_jmp+1
|
|
||||||
lda fill_mode_table_onechar+1,x
|
|
||||||
sta fillmode_jmp+2
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
: lda fill_mode_table,x
|
: copy16 fill_mode_table,x, fillmode_jmp+1
|
||||||
sta fillmode_jmp+1
|
|
||||||
lda fill_mode_table+1,x
|
|
||||||
sta fillmode_jmp+2
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
ll_ge256: ; Divmod for left limit >= 256
|
ll_ge256: ; Divmod for left limit >= 256
|
||||||
@ -1460,10 +1454,7 @@ rl_ge256: ; Divmod for right limit >= 256
|
|||||||
bit current_mapwidth
|
bit current_mapwidth
|
||||||
bmi on_screen ; negative for on-screen destination
|
bmi on_screen ; negative for on-screen destination
|
||||||
|
|
||||||
lda #<bitmap_buffer
|
copy16 #bitmap_buffer, bits_addr
|
||||||
sta bits_addr
|
|
||||||
lda #>bitmap_buffer
|
|
||||||
sta bits_addr+1
|
|
||||||
|
|
||||||
jsr ndbm_fix_width
|
jsr ndbm_fix_width
|
||||||
txa
|
txa
|
||||||
@ -1471,10 +1462,7 @@ rl_ge256: ; Divmod for right limit >= 256
|
|||||||
stx src_width_char
|
stx src_width_char
|
||||||
jsr set_up_fill_mode::set_width
|
jsr set_up_fill_mode::set_width
|
||||||
|
|
||||||
lda shift_line_jmp_addr
|
copy16 shift_line_jmp_addr, dhgr_get_srcbits::shift_bits_jmp_addr
|
||||||
sta dhgr_get_srcbits::shift_bits_jmp_addr
|
|
||||||
lda shift_line_jmp_addr+1
|
|
||||||
sta dhgr_get_srcbits::shift_bits_jmp_addr+1
|
|
||||||
lda #2*DEST_NDBM
|
lda #2*DEST_NDBM
|
||||||
ldx #2*DEST_NDBM
|
ldx #2*DEST_NDBM
|
||||||
ldy #2*DEST_NDBM
|
ldy #2*DEST_NDBM
|
||||||
@ -1487,14 +1475,8 @@ on_screen:
|
|||||||
sta dhgr_start_fill::next_line_jmp_addr+1
|
sta dhgr_start_fill::next_line_jmp_addr+1
|
||||||
pla
|
pla
|
||||||
tax
|
tax
|
||||||
lda start_fill_table,x
|
copy16 start_fill_table,x, start_fill_jmp+1
|
||||||
sta start_fill_jmp+1
|
copy16 shift_line_table,y, dhgr_shift_bits::shift_line_jmp_addr
|
||||||
lda start_fill_table+1,x
|
|
||||||
sta start_fill_jmp+2
|
|
||||||
lda shift_line_table,y
|
|
||||||
sta dhgr_shift_bits::shift_line_jmp_addr
|
|
||||||
lda shift_line_table+1,y
|
|
||||||
sta dhgr_shift_bits::shift_line_jmp_addr+1
|
|
||||||
rts
|
rts
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
@ -1557,10 +1539,7 @@ shift_line_table:
|
|||||||
bmi :+
|
bmi :+
|
||||||
|
|
||||||
ldx #2*SRC_NDBM
|
ldx #2*SRC_NDBM
|
||||||
: lda get_srcbits_table,x
|
: copy16 get_srcbits_table,x, fill_next_line::get_srcbits_jmp_addr
|
||||||
sta fill_next_line::get_srcbits_jmp_addr
|
|
||||||
lda get_srcbits_table+1,x
|
|
||||||
sta fill_next_line::get_srcbits_jmp_addr+1
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
;; SRC_NDBM SRC_DHGR
|
;; SRC_NDBM SRC_DHGR
|
||||||
@ -1822,10 +1801,7 @@ L50E3: ldy #$00
|
|||||||
bpl L50FE
|
bpl L50FE
|
||||||
stx $9B
|
stx $9B
|
||||||
sta $9C
|
sta $9C
|
||||||
lda current_maprect_x1
|
copy16 current_maprect_x1, $92
|
||||||
sta $92
|
|
||||||
lda current_maprect_x1+1
|
|
||||||
sta $92+1
|
|
||||||
iny
|
iny
|
||||||
L50FE: lda current_maprect_x2
|
L50FE: lda current_maprect_x2
|
||||||
sec
|
sec
|
||||||
@ -1834,10 +1810,7 @@ L50FE: lda current_maprect_x2
|
|||||||
lda current_maprect_x2+1
|
lda current_maprect_x2+1
|
||||||
sbc $96+1
|
sbc $96+1
|
||||||
bpl L5116
|
bpl L5116
|
||||||
lda current_maprect_x2
|
copy16 current_maprect_x2, $96
|
||||||
sta $96
|
|
||||||
lda current_maprect_x2+1
|
|
||||||
sta $96+1
|
|
||||||
tya
|
tya
|
||||||
ora #$04
|
ora #$04
|
||||||
tay
|
tay
|
||||||
@ -1850,10 +1823,7 @@ L5116: lda $94
|
|||||||
bpl L5130
|
bpl L5130
|
||||||
stx $9D
|
stx $9D
|
||||||
sta $9E
|
sta $9E
|
||||||
lda current_maprect_y1
|
copy16 current_maprect_y1, $94
|
||||||
sta $94
|
|
||||||
lda current_maprect_y1+1
|
|
||||||
sta $94+1
|
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
L5130: lda current_maprect_y2
|
L5130: lda current_maprect_y2
|
||||||
@ -1863,10 +1833,7 @@ L5130: lda current_maprect_y2
|
|||||||
lda current_maprect_y2+1
|
lda current_maprect_y2+1
|
||||||
sbc $98+1
|
sbc $98+1
|
||||||
bpl L5148
|
bpl L5148
|
||||||
lda current_maprect_y2
|
copy16 current_maprect_y2, $98
|
||||||
sta $98
|
|
||||||
lda current_maprect_y2+1
|
|
||||||
sta $98+1
|
|
||||||
tya
|
tya
|
||||||
ora #$08
|
ora #$08
|
||||||
tay
|
tay
|
||||||
@ -2035,25 +2002,16 @@ L5249: tay
|
|||||||
L5250: tya
|
L5250: tya
|
||||||
asl a
|
asl a
|
||||||
tay
|
tay
|
||||||
lda shift_table_main,y
|
copy16 shift_table_main,y, dhgr_shift_bits::shift_main_addr
|
||||||
sta dhgr_shift_bits::shift_main_addr
|
|
||||||
lda shift_table_main+1,y
|
|
||||||
sta dhgr_shift_bits::shift_main_addr+1
|
|
||||||
|
|
||||||
lda shift_table_aux,y
|
copy16 shift_table_aux,y, dhgr_shift_bits::shift_aux_addr
|
||||||
sta dhgr_shift_bits::shift_aux_addr
|
|
||||||
lda shift_table_aux+1,y
|
|
||||||
sta dhgr_shift_bits::shift_aux_addr+1
|
|
||||||
|
|
||||||
ldy $81
|
ldy $81
|
||||||
sty dhgr_shift_bits::offset2_addr
|
sty dhgr_shift_bits::offset2_addr
|
||||||
dey
|
dey
|
||||||
sty dhgr_shift_bits::offset1_addr
|
sty dhgr_shift_bits::offset1_addr
|
||||||
ldx #2
|
ldx #2
|
||||||
L5276: lda L5285,x
|
L5276: copy16 L5285,x, dhgr_get_srcbits::shift_bits_jmp_addr
|
||||||
sta dhgr_get_srcbits::shift_bits_jmp_addr
|
|
||||||
lda L5285+1,x
|
|
||||||
sta dhgr_get_srcbits::shift_bits_jmp_addr+1
|
|
||||||
jmp bit_blit
|
jmp bit_blit
|
||||||
|
|
||||||
L5285: .addr shift_line_jmp, dhgr_shift_bits
|
L5285: .addr shift_line_jmp, dhgr_shift_bits
|
||||||
@ -2079,10 +2037,7 @@ L52A1: stx $B0
|
|||||||
dey
|
dey
|
||||||
bpl :-
|
bpl :-
|
||||||
|
|
||||||
lda $94 ; y coord
|
copy16 $94, $A7 ; y coord
|
||||||
sta $A7
|
|
||||||
lda $94+1
|
|
||||||
sta $A7+1
|
|
||||||
ldy #0
|
ldy #0
|
||||||
stx $AE
|
stx $AE
|
||||||
L52C0: stx $82
|
L52C0: stx $82
|
||||||
@ -2501,6 +2456,7 @@ L5606: ldy $04A8,x
|
|||||||
sta low_zp_stash_buffer,x
|
sta low_zp_stash_buffer,x
|
||||||
sbc $AA
|
sbc $AA
|
||||||
sta $A4
|
sta $A4
|
||||||
|
|
||||||
lda $0700,y
|
lda $0700,y
|
||||||
sec
|
sec
|
||||||
sbc L5E31,x
|
sbc L5E31,x
|
||||||
@ -2508,6 +2464,7 @@ L5606: ldy $04A8,x
|
|||||||
lda $073C,y
|
lda $073C,y
|
||||||
sbc L5E41,x
|
sbc L5E41,x
|
||||||
sta $A2
|
sta $A2
|
||||||
|
|
||||||
php
|
php
|
||||||
bpl L563F
|
bpl L563F
|
||||||
sub16 #0, $A1, $A1
|
sub16 #0, $A1, $A1
|
||||||
@ -2516,7 +2473,8 @@ L563F: stx $84
|
|||||||
ldx $84
|
ldx $84
|
||||||
plp
|
plp
|
||||||
bpl L5662
|
bpl L5662
|
||||||
lda #$00
|
|
||||||
|
lda #0 ; 32-bit negation of $9F..$A2
|
||||||
sec
|
sec
|
||||||
sbc $9F
|
sbc $9F
|
||||||
sta $9F
|
sta $9F
|
||||||
@ -2529,6 +2487,7 @@ L563F: stx $84
|
|||||||
lda #0
|
lda #0
|
||||||
sbc $A2
|
sbc $A2
|
||||||
sta $A2
|
sta $A2
|
||||||
|
|
||||||
L5662: lda $A2
|
L5662: lda $A2
|
||||||
sta $05A8,x
|
sta $05A8,x
|
||||||
cmp #$80
|
cmp #$80
|
||||||
@ -2603,10 +2562,7 @@ L56D5: rts
|
|||||||
ptr := $B7
|
ptr := $B7
|
||||||
draw_line_params := $92
|
draw_line_params := $92
|
||||||
|
|
||||||
L56DD: lda params_addr
|
L56DD: copy16 params_addr, ptr
|
||||||
sta ptr
|
|
||||||
lda params_addr+1
|
|
||||||
sta ptr+1
|
|
||||||
lda $B4 ; ORAd param bytes
|
lda $B4 ; ORAd param bytes
|
||||||
sta $B6
|
sta $B6
|
||||||
ldx #0
|
ldx #0
|
||||||
@ -2850,10 +2806,7 @@ L581F: lda $83,x
|
|||||||
ldy $82
|
ldy $82
|
||||||
dey
|
dey
|
||||||
bpl L57EB
|
bpl L57EB
|
||||||
lda L583C
|
copy16 L583C, params_addr
|
||||||
sta params_addr
|
|
||||||
lda L583C+1
|
|
||||||
sta params_addr+1
|
|
||||||
jmp PaintPolyImpl
|
jmp PaintPolyImpl
|
||||||
|
|
||||||
L583C: .addr L5850
|
L583C: .addr L5850
|
||||||
@ -2862,7 +2815,7 @@ L583E: .byte $03,$03,$07,$07,$07,$03
|
|||||||
L5844: .byte $00,$00,$00,$01,$01,$01
|
L5844: .byte $00,$00,$00,$01,$01,$01
|
||||||
L584A: .byte $00,$01,$01,$01,$00,$00
|
L584A: .byte $00,$01,$01,$01,$00,$00
|
||||||
|
|
||||||
;; params for a $15 call
|
;; params for a PaintPoly call
|
||||||
L5850: .byte $06,$00
|
L5850: .byte $06,$00
|
||||||
L5852: .byte $00,$00,$00,$00,$00,$00,$00,$00
|
L5852: .byte $00,$00,$00,$00,$00,$00,$00,$00
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
||||||
@ -2874,10 +2827,7 @@ L5852: .byte $00,$00,$00,$00,$00,$00,$00,$00
|
|||||||
;;; SetFont
|
;;; SetFont
|
||||||
|
|
||||||
.proc SetFontImpl
|
.proc SetFontImpl
|
||||||
lda params_addr ; set font to passed address
|
copy16 params_addr, current_textfont ; set font to passed address
|
||||||
sta current_textfont
|
|
||||||
lda params_addr+1
|
|
||||||
sta current_textfont+1
|
|
||||||
|
|
||||||
;; Compute addresses of each row of the glyphs.
|
;; Compute addresses of each row of the glyphs.
|
||||||
prepare_font:
|
prepare_font:
|
||||||
@ -3013,10 +2963,14 @@ L5933: stax $94
|
|||||||
|
|
||||||
;;; 3 bytes of params, copied to $A1
|
;;; 3 bytes of params, copied to $A1
|
||||||
|
|
||||||
DrawTextImpl:
|
.proc DrawTextImpl
|
||||||
|
text_addr := $A1 ; param
|
||||||
|
text_len := $A3 ; param
|
||||||
|
text_width := $A4 ; computed
|
||||||
|
|
||||||
jsr maybe_unstash_low_zp
|
jsr maybe_unstash_low_zp
|
||||||
jsr measure_text
|
jsr measure_text
|
||||||
stax $A4
|
stax text_width
|
||||||
ldy #0
|
ldy #0
|
||||||
sty $9F
|
sty $9F
|
||||||
sty $A0
|
sty $A0
|
||||||
@ -3031,7 +2985,7 @@ DrawTextImpl:
|
|||||||
ldy #0
|
ldy #0
|
||||||
ldx $9C
|
ldx $9C
|
||||||
L595C: sty $9F
|
L595C: sty $9F
|
||||||
lda ($A1),y
|
lda (text_addr),y
|
||||||
tay
|
tay
|
||||||
lda (glyph_widths),y
|
lda (glyph_widths),y
|
||||||
clc
|
clc
|
||||||
@ -3081,7 +3035,7 @@ L59A8: lda #0
|
|||||||
jsr L59C3
|
jsr L59C3
|
||||||
sta LOWSCR
|
sta LOWSCR
|
||||||
L59B9: jsr maybe_stash_low_zp
|
L59B9: jsr maybe_stash_low_zp
|
||||||
ldax $A4
|
ldax text_width
|
||||||
jmp adjust_xpos
|
jmp adjust_xpos
|
||||||
|
|
||||||
L59C3: lda $98
|
L59C3: lda $98
|
||||||
@ -3089,22 +3043,10 @@ L59C3: lda $98
|
|||||||
sbc $94
|
sbc $94
|
||||||
asl a
|
asl a
|
||||||
tax
|
tax
|
||||||
lda L5D81,x
|
copy16 L5D81,x, L5B02
|
||||||
sta L5B02
|
copy16 L5DA1,x, L5A95
|
||||||
lda L5D81+1,x
|
copy16 L5DC1,x, L5C22
|
||||||
sta L5B03
|
copy16 L5DE1,x, L5CBE
|
||||||
lda L5DA1,x
|
|
||||||
sta L5A95
|
|
||||||
lda L5DA1+1,x
|
|
||||||
sta L5A96
|
|
||||||
lda L5DC1,x
|
|
||||||
sta L5C22
|
|
||||||
lda L5DC1+1,x
|
|
||||||
sta L5C23
|
|
||||||
lda L5DE1,x
|
|
||||||
sta L5CBE
|
|
||||||
lda L5DE1+1,x
|
|
||||||
sta L5CBF
|
|
||||||
txa
|
txa
|
||||||
lsr a
|
lsr a
|
||||||
tax
|
tax
|
||||||
@ -3177,7 +3119,7 @@ L5A72: sta $0000,x
|
|||||||
lda #$80
|
lda #$80
|
||||||
sta $42
|
sta $42
|
||||||
ldy $9F
|
ldy $9F
|
||||||
L5A81: lda ($A1),y
|
L5A81: lda (text_addr),y
|
||||||
tay
|
tay
|
||||||
bit $81
|
bit $81
|
||||||
bpl L5A8B
|
bpl L5A8B
|
||||||
@ -3189,7 +3131,6 @@ L5A8B: tax
|
|||||||
ldy $87
|
ldy $87
|
||||||
bne L5AEA
|
bne L5AEA
|
||||||
L5A95 := * + 1
|
L5A95 := * + 1
|
||||||
L5A96 := * + 2
|
|
||||||
jmp L5A97
|
jmp L5A97
|
||||||
|
|
||||||
L5A97: lda $FFFF,x
|
L5A97: lda $FFFF,x
|
||||||
@ -3229,16 +3170,9 @@ L5AE7: jmp L5BD4
|
|||||||
L5AEA: tya
|
L5AEA: tya
|
||||||
asl a
|
asl a
|
||||||
tay
|
tay
|
||||||
lda shift_table_aux,y
|
copy16 shift_table_aux,y, $40
|
||||||
sta $40
|
copy16 shift_table_main,y, $42
|
||||||
lda shift_table_aux+1,y
|
|
||||||
sta $40+1
|
|
||||||
lda shift_table_main,y
|
|
||||||
sta $42
|
|
||||||
lda shift_table_main+1,y
|
|
||||||
sta $42+1
|
|
||||||
L5B02 := * + 1
|
L5B02 := * + 1
|
||||||
L5B03 := * + 2
|
|
||||||
jmp L5B04
|
jmp L5B04
|
||||||
|
|
||||||
L5B04: ldy $FFFF,x ; All of these $FFFFs are modified
|
L5B04: ldy $FFFF,x ; All of these $FFFFs are modified
|
||||||
@ -3361,7 +3295,7 @@ L5BF6: clc
|
|||||||
bcs L5C0D
|
bcs L5C0D
|
||||||
sta $87
|
sta $87
|
||||||
L5BFF: ldy $9F
|
L5BFF: ldy $9F
|
||||||
cpy $A3
|
cpy text_len
|
||||||
beq L5C08
|
beq L5C08
|
||||||
jmp L5A81
|
jmp L5A81
|
||||||
|
|
||||||
@ -3380,8 +3314,7 @@ L5C18: bmi L5C84
|
|||||||
jmp L5CB5
|
jmp L5CB5
|
||||||
|
|
||||||
L5C21:
|
L5C21:
|
||||||
L5C22 := * + 1
|
L5C22 := * + 1
|
||||||
L5C23 := * + 2
|
|
||||||
jmp L5C24
|
jmp L5C24
|
||||||
|
|
||||||
|
|
||||||
@ -3467,7 +3400,6 @@ L5CB5: ldx $9C
|
|||||||
L5CB9: ora #$80
|
L5CB9: ora #$80
|
||||||
sta $80
|
sta $80
|
||||||
L5CBE := * + 1
|
L5CBE := * + 1
|
||||||
L5CBF := * + 2
|
|
||||||
jmp L5CC0
|
jmp L5CC0
|
||||||
|
|
||||||
;;; Per JB: "looks like the quickdraw slow-path draw clipped pattern slab"
|
;;; Per JB: "looks like the quickdraw slow-path draw clipped pattern slab"
|
||||||
@ -3574,6 +3506,9 @@ L5D81: .addr L5BC7,L5BBA,L5BAD,L5BA0,L5B93,L5B86,L5B79,L5B6C,L5B5F,L5B52,L5B4
|
|||||||
L5DA1: .addr L5AE2,L5ADD,L5AD8,L5AD3,L5ACE,L5AC9,L5AC4,L5ABF,L5ABA,L5AB5,L5AB0,L5AAB,L5AA6,L5AA1,L5A9C,L5A97
|
L5DA1: .addr L5AE2,L5ADD,L5AD8,L5AD3,L5ACE,L5AC9,L5AC4,L5ABF,L5ABA,L5AB5,L5AB0,L5AAB,L5AA6,L5AA1,L5A9C,L5A97
|
||||||
L5DC1: .addr L5C7E,L5C78,L5C72,L5C6C,L5C66,L5C60,L5C5A,L5C54,L5C4E,L5C48,L5C42,L5C3C,L5C36,L5C30,L5C2A,L5C24
|
L5DC1: .addr L5C7E,L5C78,L5C72,L5C6C,L5C66,L5C60,L5C5A,L5C54,L5C4E,L5C48,L5C42,L5C3C,L5C36,L5C30,L5C2A,L5C24
|
||||||
L5DE1: .addr L5D74,L5D68,L5D5C,L5D50,L5D44,L5D38,L5D2C,L5D20,L5D14,L5D08,L5CFC,L5CF0,L5CE4,L5CD8,L5CCC,L5CC0
|
L5DE1: .addr L5D74,L5D68,L5D5C,L5D50,L5D44,L5D38,L5D2C,L5D20,L5D14,L5D08,L5CFC,L5CF0,L5CE4,L5CD8,L5CCC,L5CC0
|
||||||
|
.endproc
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
low_zp_stash_buffer:
|
low_zp_stash_buffer:
|
||||||
.byte $00
|
.byte $00
|
||||||
@ -3891,23 +3826,20 @@ L600B: .byte $00,$00,$00,$00,$00,$00,$00,$00
|
|||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
||||||
.byte $00,$00,$00,$00
|
.byte $00,$00,$00,$00
|
||||||
L602F: .byte $00,$00,$00,$00,$00,$00,$02,$00
|
L602F: .byte $00,$00,$00,$00
|
||||||
|
L6033: .byte $00,$00,$02,$00
|
||||||
.byte $06,$00,$0E,$00,$1E,$00,$3E,$00
|
.byte $06,$00,$0E,$00,$1E,$00,$3E,$00
|
||||||
.byte $7E,$00,$1A,$00,$30,$00,$30,$00
|
.byte $7E,$00,$1A,$00,$30,$00,$30,$00
|
||||||
.byte $60,$00,$00,$00,$03,$00,$07,$00
|
.byte $60,$00,$00,$00,$03,$00,$07,$00
|
||||||
.byte $0F,$00,$1F,$00,$3F,$00,$7F,$00
|
.byte $0F,$00,$1F,$00,$3F,$00,$7F,$00
|
||||||
.byte $7F,$01,$7F,$00,$78,$00,$78,$00
|
.byte $7F,$01,$7F,$00,$78,$00,$78,$00
|
||||||
.byte $70,$01,$70,$01,$01,$01
|
.byte $70,$01,$70,$01,$01,$01
|
||||||
L6065: .byte $33
|
L6065: .addr L6033
|
||||||
L6066: .byte $60
|
|
||||||
L6067: lda #$FF
|
L6067: lda #$FF
|
||||||
sta cursor_count
|
sta cursor_count
|
||||||
lda #0
|
lda #0
|
||||||
sta cursor_flag
|
sta cursor_flag
|
||||||
lda L6065
|
copy16 L6065, params_addr
|
||||||
sta params_addr
|
|
||||||
lda L6066
|
|
||||||
sta params_addr+1
|
|
||||||
;; fall through
|
;; fall through
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
@ -3985,14 +3917,8 @@ L60EE: tay
|
|||||||
tya
|
tya
|
||||||
asl a
|
asl a
|
||||||
tay
|
tay
|
||||||
lda shift_table_main,y
|
copy16 shift_table_main,y, L6164
|
||||||
sta L6164
|
copy16 L5285+2,y, L616A
|
||||||
lda shift_table_main+1,y
|
|
||||||
sta L6165
|
|
||||||
lda L5285+2,y
|
|
||||||
sta L616A
|
|
||||||
lda L5285+3,y
|
|
||||||
sta L616B
|
|
||||||
ldx #$03
|
ldx #$03
|
||||||
L6116: lda $82,x
|
L6116: lda $82,x
|
||||||
sta L602F,x
|
sta L602F,x
|
||||||
@ -4033,11 +3959,9 @@ active_cursor_mask := * + 1
|
|||||||
ldy #$05
|
ldy #$05
|
||||||
L6160: ldx L6004,y
|
L6160: ldx L6004,y
|
||||||
L6164 := * + 1
|
L6164 := * + 1
|
||||||
L6165 := * + 2
|
|
||||||
ora $FF80,x
|
ora $FF80,x
|
||||||
sta L6005,y
|
sta L6005,y
|
||||||
L616A := * + 1
|
L616A := * + 1
|
||||||
L616B := * + 2
|
|
||||||
lda $FF00,x
|
lda $FF00,x
|
||||||
dey
|
dey
|
||||||
bne L6160
|
bne L6160
|
||||||
@ -4331,10 +4255,7 @@ L6348: lda $82,x
|
|||||||
bpl L6348
|
bpl L6348
|
||||||
lda #$7F
|
lda #$7F
|
||||||
sta standard_port::textback
|
sta standard_port::textback
|
||||||
lda $87
|
copy16 $87, standard_port::textfont
|
||||||
sta standard_port::textfont
|
|
||||||
lda $88
|
|
||||||
sta standard_port::textfont+1
|
|
||||||
copy16 $89, L6835
|
copy16 $89, L6835
|
||||||
copy16 $8B, L633B
|
copy16 $8B, L633B
|
||||||
jsr L646F
|
jsr L646F
|
||||||
@ -4557,15 +4478,11 @@ L6534: jmp (L6537)
|
|||||||
|
|
||||||
L6537: .byte $00
|
L6537: .byte $00
|
||||||
L6538: .byte $00
|
L6538: .byte $00
|
||||||
L6539: .byte $00
|
L6539: .word 0
|
||||||
L653A: .byte $00
|
|
||||||
L653B: .byte $00
|
L653B: .byte $00
|
||||||
|
|
||||||
L653C: jsr HideCursorImpl
|
L653C: jsr HideCursorImpl
|
||||||
L653F: lda params_addr
|
L653F: copy16 params_addr, L6539
|
||||||
sta L6539
|
|
||||||
lda params_addr+1
|
|
||||||
sta L653A
|
|
||||||
lda stack_ptr_stash
|
lda stack_ptr_stash
|
||||||
sta L653B
|
sta L653B
|
||||||
lsr preserve_zp_flag
|
lsr preserve_zp_flag
|
||||||
@ -4573,10 +4490,7 @@ L653F: lda params_addr
|
|||||||
|
|
||||||
L6553: jsr ShowCursorImpl
|
L6553: jsr ShowCursorImpl
|
||||||
L6556: asl preserve_zp_flag
|
L6556: asl preserve_zp_flag
|
||||||
lda L6539
|
copy16 L6539, params_addr
|
||||||
sta params_addr
|
|
||||||
lda L653A
|
|
||||||
sta params_addr+1
|
|
||||||
ldax active_port
|
ldax active_port
|
||||||
L6567: stax $82
|
L6567: stax $82
|
||||||
lda L653B
|
lda L653B
|
||||||
@ -4594,7 +4508,7 @@ L657E: lda L6586
|
|||||||
L6586:
|
L6586:
|
||||||
L6587 := * + 1
|
L6587 := * + 1
|
||||||
L6588 := * + 2
|
L6588 := * + 2
|
||||||
asl $205F,x
|
asl $205F,x ; this looks like incorrect disassembly ???
|
||||||
ror $2065,x
|
ror $2065,x
|
||||||
.byte 0
|
.byte 0
|
||||||
rti
|
rti
|
||||||
@ -4638,10 +4552,7 @@ checkerboard_pattern:
|
|||||||
bit desktop_initialized_flag
|
bit desktop_initialized_flag
|
||||||
bmi fail
|
bmi fail
|
||||||
|
|
||||||
lda params
|
copy16 params, mouse_hook
|
||||||
sta mouse_hook
|
|
||||||
lda params+1
|
|
||||||
sta mouse_hook+1
|
|
||||||
|
|
||||||
ldax mouse_state_addr
|
ldax mouse_state_addr
|
||||||
ldy #2
|
ldy #2
|
||||||
@ -5008,8 +4919,7 @@ height: .word 11
|
|||||||
.endproc
|
.endproc
|
||||||
fill_rect_params2_height := fill_rect_params2::height
|
fill_rect_params2_height := fill_rect_params2::height
|
||||||
|
|
||||||
L6835: .byte $00
|
L6835: .word 0
|
||||||
L6836: .byte $00
|
|
||||||
|
|
||||||
.proc test_rect_params2
|
.proc test_rect_params2
|
||||||
left: .word 0
|
left: .word 0
|
||||||
@ -5045,10 +4955,7 @@ L6863: .addr $685D
|
|||||||
L6865: .addr $685A
|
L6865: .addr $685A
|
||||||
|
|
||||||
get_menu_count:
|
get_menu_count:
|
||||||
lda active_menu
|
copy16 active_menu, $82
|
||||||
sta $82
|
|
||||||
lda active_menu+1
|
|
||||||
sta $83
|
|
||||||
ldy #0
|
ldy #0
|
||||||
lda ($82),y
|
lda ($82),y
|
||||||
sta $A8
|
sta $A8
|
||||||
@ -5164,10 +5071,7 @@ SetMenuImpl:
|
|||||||
lda #$00
|
lda #$00
|
||||||
sta L633D
|
sta L633D
|
||||||
sta L633E
|
sta L633E
|
||||||
lda params_addr
|
copy16 params_addr, active_menu
|
||||||
sta active_menu
|
|
||||||
lda params_addr+1
|
|
||||||
sta active_menu+1
|
|
||||||
|
|
||||||
jsr get_menu_count ; into $A8
|
jsr get_menu_count ; into $A8
|
||||||
jsr L653C
|
jsr L653C
|
||||||
@ -5862,10 +5766,7 @@ loop: lda params,x
|
|||||||
dex
|
dex
|
||||||
bpl loop
|
bpl loop
|
||||||
|
|
||||||
lda standard_port::textfont
|
copy16 standard_port::textfont, params
|
||||||
sta params
|
|
||||||
lda standard_port::textfont+1
|
|
||||||
sta params+1
|
|
||||||
ldy #0
|
ldy #0
|
||||||
lda ($82),y
|
lda ($82),y
|
||||||
bmi :+
|
bmi :+
|
||||||
@ -6033,10 +5934,7 @@ L7011: .addr $6FD3
|
|||||||
|
|
||||||
;; Start window enumeration at top ???
|
;; Start window enumeration at top ???
|
||||||
.proc top_window
|
.proc top_window
|
||||||
lda L7011
|
copy16 L7011, $A7
|
||||||
sta $A7
|
|
||||||
lda L7011+1
|
|
||||||
sta $A7+1
|
|
||||||
ldax L700B
|
ldax L700B
|
||||||
bne next_window_L7038
|
bne next_window_L7038
|
||||||
end: rts
|
end: rts
|
||||||
@ -6045,10 +5943,7 @@ end: rts
|
|||||||
;; Look up next window in chain. $A9/$AA will point at
|
;; Look up next window in chain. $A9/$AA will point at
|
||||||
;; winfo (also returned in X,A).
|
;; winfo (also returned in X,A).
|
||||||
.proc next_window
|
.proc next_window
|
||||||
lda $A9
|
copy16 $A9, $A7
|
||||||
sta $A7
|
|
||||||
lda $A9+1
|
|
||||||
sta $A7+1
|
|
||||||
ldy #MGTK::winfo_offset_nextwinfo+1
|
ldy #MGTK::winfo_offset_nextwinfo+1
|
||||||
lda ($A9),y
|
lda ($A9),y
|
||||||
beq top_window::end ; if high byte is 0, end of chain
|
beq top_window::end ; if high byte is 0, end of chain
|
||||||
@ -6569,10 +6464,7 @@ L7476: lda #$02
|
|||||||
|
|
||||||
L747A: .byte 0
|
L747A: .byte 0
|
||||||
OpenWindowImpl:
|
OpenWindowImpl:
|
||||||
lda params_addr
|
copy16 params_addr, $A9
|
||||||
sta $A9
|
|
||||||
lda params_addr+1
|
|
||||||
sta $AA
|
|
||||||
ldy #$00
|
ldy #$00
|
||||||
lda ($A9),y
|
lda ($A9),y
|
||||||
bne L748E
|
bne L748E
|
||||||
@ -6583,10 +6475,7 @@ L748E: sta $82
|
|||||||
beq L749A
|
beq L749A
|
||||||
exit_call $9D
|
exit_call $9D
|
||||||
|
|
||||||
L749A: lda params_addr
|
L749A: copy16 params_addr, $A9
|
||||||
sta $A9
|
|
||||||
lda params_addr+1
|
|
||||||
sta $AA
|
|
||||||
ldy #$0A
|
ldy #$0A
|
||||||
lda ($A9),y
|
lda ($A9),y
|
||||||
ora #$80
|
ora #$80
|
||||||
@ -6678,10 +6567,7 @@ L750C: .res 38,0
|
|||||||
bne :+
|
bne :+
|
||||||
MGTK_CALL MGTK::SetPortBits, set_port_params
|
MGTK_CALL MGTK::SetPortBits, set_port_params
|
||||||
: jsr next_window::L703E
|
: jsr next_window::L703E
|
||||||
lda active_port
|
copy16 active_port, L750C
|
||||||
sta L750C
|
|
||||||
lda active_port+1
|
|
||||||
sta L750C+1
|
|
||||||
jsr L75C6
|
jsr L75C6
|
||||||
php
|
php
|
||||||
ldax L758A
|
ldax L758A
|
||||||
@ -6751,31 +6637,12 @@ L75DE: lda ($A9),y
|
|||||||
cpy #$38
|
cpy #$38
|
||||||
bne L75DE
|
bne L75DE
|
||||||
ldx #$02
|
ldx #$02
|
||||||
L75EA: lda $92,x
|
L75EA: copy16 $92,x, $D0,x
|
||||||
sta $D0,x
|
|
||||||
lda $93,x
|
sub16 $96,x, $92,x, $82,x
|
||||||
sta $D1,x
|
sub16 $D8,x, $9B,x, $D8,x
|
||||||
lda $96,x
|
add16 $D8,x, $82,x, $DC,x
|
||||||
sec
|
|
||||||
sbc $92,x
|
|
||||||
sta $82,x
|
|
||||||
lda $97,x
|
|
||||||
sbc $93,x
|
|
||||||
sta $83,x
|
|
||||||
lda $D8,x
|
|
||||||
sec
|
|
||||||
sbc $9B,x
|
|
||||||
sta $D8,x
|
|
||||||
lda $D9,x
|
|
||||||
sbc $9C,x
|
|
||||||
sta $D9,x
|
|
||||||
lda $D8,x
|
|
||||||
clc
|
|
||||||
adc $82,x
|
|
||||||
sta $DC,x
|
|
||||||
lda $D9,x
|
|
||||||
adc $83,x
|
|
||||||
sta $DD,x
|
|
||||||
dex
|
dex
|
||||||
dex
|
dex
|
||||||
bpl L75EA
|
bpl L75EA
|
||||||
@ -7948,10 +7815,7 @@ L7E98: jsr L7E8C
|
|||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
L7EAD: jsr stash_addr
|
L7EAD: jsr stash_addr
|
||||||
lda L7F2E
|
copy16 L7F2E, params_addr
|
||||||
sta params_addr
|
|
||||||
lda L7F2F
|
|
||||||
sta params_addr+1
|
|
||||||
jsr SetCursorImpl
|
jsr SetCursorImpl
|
||||||
jsr restore_addr
|
jsr restore_addr
|
||||||
lda #$00
|
lda #$00
|
||||||
@ -8002,14 +7866,8 @@ L7EFB: cmp #$04
|
|||||||
L7F0C: jmp L825F
|
L7F0C: jmp L825F
|
||||||
|
|
||||||
L7F0F: jsr stash_addr
|
L7F0F: jsr stash_addr
|
||||||
lda active_cursor
|
copy16 active_cursor, L7F2E
|
||||||
sta L7F2E
|
copy16 L6065, params_addr
|
||||||
lda active_cursor+1
|
|
||||||
sta L7F2F
|
|
||||||
lda L6065
|
|
||||||
sta params_addr
|
|
||||||
lda L6066
|
|
||||||
sta params_addr+1
|
|
||||||
jsr SetCursorImpl
|
jsr SetCursorImpl
|
||||||
jmp restore_addr
|
jmp restore_addr
|
||||||
|
|
||||||
@ -8017,17 +7875,11 @@ L7F2E: .byte 0
|
|||||||
L7F2F: .byte 0
|
L7F2F: .byte 0
|
||||||
|
|
||||||
stash_addr:
|
stash_addr:
|
||||||
lda params_addr
|
copy16 params_addr, stashed_addr
|
||||||
sta stashed_addr
|
|
||||||
lda params_addr+1
|
|
||||||
sta stashed_addr+1
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
restore_addr:
|
restore_addr:
|
||||||
lda stashed_addr
|
copy16 stashed_addr, params_addr
|
||||||
sta params_addr
|
|
||||||
lda stashed_addr+1
|
|
||||||
sta params_addr+1
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
stashed_addr: .addr 0
|
stashed_addr: .addr 0
|
||||||
|
38
macros.inc
38
macros.inc
@ -125,15 +125,10 @@
|
|||||||
;;; add16 $1111, $2222, $3333 ; absolute, absolute, absolute
|
;;; add16 $1111, $2222, $3333 ; absolute, absolute, absolute
|
||||||
;;; add16 $1111, #$2222, $3333 ; absolute, immediate, absolute
|
;;; add16 $1111, #$2222, $3333 ; absolute, immediate, absolute
|
||||||
;;; add16 $1111,x, $2222, $3333 ; indexed, absolute, absolute
|
;;; add16 $1111,x, $2222, $3333 ; indexed, absolute, absolute
|
||||||
;;; add16 $1111,y, $2222, $3333 ; indexed, absolute, absolute
|
|
||||||
;;; add16 $1111, $2222,x, $3333 ; absolute, indexed, absolute
|
;;; add16 $1111, $2222,x, $3333 ; absolute, indexed, absolute
|
||||||
;;; add16 $1111, $2222,y, $3333 ; absolute, indexed, absolute
|
|
||||||
;;; add16 $1111, $2222, $3333,x ; absolute, absolute, indexed
|
;;; add16 $1111, $2222, $3333,x ; absolute, absolute, indexed
|
||||||
;;; add16 $1111, $2222, $3333,y ; absolute, absolute, indexed
|
|
||||||
;;; add16 $1111,x, $2222, $3333,x ; indexed, absolute, indexed
|
;;; add16 $1111,x, $2222, $3333,x ; indexed, absolute, indexed
|
||||||
;;; add16 $1111,y, $2222, $3333,y ; indexed, absolute, indexed
|
|
||||||
;;; add16 $1111,x, $2222,x, $3333,x ; indexed, indexed, indexed
|
;;; add16 $1111,x, $2222,x, $3333,x ; indexed, indexed, indexed
|
||||||
;;; add16 $1111,y, $2222,y, $3333,y ; indexed, indexed, indexed
|
|
||||||
.macro add16 arg1, arg2, arg3, arg4, arg5, arg6
|
.macro add16 arg1, arg2, arg3, arg4, arg5, arg6
|
||||||
.if _is_register {arg2} && _is_register {arg4} && _is_register {arg6}
|
.if _is_register {arg2} && _is_register {arg4} && _is_register {arg6}
|
||||||
lda arg1,arg2
|
lda arg1,arg2
|
||||||
@ -218,15 +213,20 @@
|
|||||||
;;; sub16 $1111, #$2222, $3333 ; absolute, immediate, absolute
|
;;; sub16 $1111, #$2222, $3333 ; absolute, immediate, absolute
|
||||||
;;; sub16 $1111, $2222, $3333 ; absolute, absolute, absolute
|
;;; sub16 $1111, $2222, $3333 ; absolute, absolute, absolute
|
||||||
;;; sub16 $1111, $2222,x, $3333 ; absolute, indexed, absolute
|
;;; sub16 $1111, $2222,x, $3333 ; absolute, indexed, absolute
|
||||||
;;; sub16 $1111, $2222,y, $3333 ; absolute, indexed, absolute
|
|
||||||
;;; sub16 $1111, $2222, $3333,x ; absolute, absolute, indexed
|
;;; sub16 $1111, $2222, $3333,x ; absolute, absolute, indexed
|
||||||
;;; sub16 $1111, $2222, $3333,y ; absolute, absolute, indexed
|
|
||||||
;;; sub16 $1111,x, $2222,x, $3333 ; indexed, indexed, absolute
|
;;; sub16 $1111,x, $2222,x, $3333 ; indexed, indexed, absolute
|
||||||
;;; sub16 $1111,y, $2222,y, $3333 ; indexed, indexed, absolute
|
|
||||||
;;; sub16 $1111,x, $2222, $3333,x ; indexed, absolute, indexed
|
;;; sub16 $1111,x, $2222, $3333,x ; indexed, absolute, indexed
|
||||||
;;; sub16 $1111,y, $2222, $3333,y ; indexed, absolute, indexed
|
;;; sub16 $1111,x, $2222,x $3333,x ; indexed, indexed, indexed
|
||||||
.macro sub16 arg1, arg2, arg3, arg4, arg5
|
.macro sub16 arg1, arg2, arg3, arg4, arg5, arg6
|
||||||
.if _is_register {arg2} && _is_register {arg4}
|
.if _is_register {arg2} && _is_register {arg4} && _is_register {arg6}
|
||||||
|
lda arg1,arg2
|
||||||
|
sec
|
||||||
|
sbc arg3,arg4
|
||||||
|
sta arg5,arg6
|
||||||
|
lda arg1+1,arg2
|
||||||
|
sbc arg3+1,arg4
|
||||||
|
sta arg5+1,arg6
|
||||||
|
.elseif _is_register {arg2} && _is_register {arg4}
|
||||||
lda arg1,arg2
|
lda arg1,arg2
|
||||||
sec
|
sec
|
||||||
sbc arg3,arg4
|
sbc arg3,arg4
|
||||||
@ -288,13 +288,17 @@
|
|||||||
;;; copy16 #$1111, $2222 ; immediate, absolute
|
;;; copy16 #$1111, $2222 ; immediate, absolute
|
||||||
;;; copy16 $1111, $2222 ; absolute, absolute
|
;;; copy16 $1111, $2222 ; absolute, absolute
|
||||||
;;; copy16 $1111,x, $2222 ; indirect load, absolute store
|
;;; copy16 $1111,x, $2222 ; indirect load, absolute store
|
||||||
;;; copy16 $1111,y, $2222 ; indirect load, absolute store
|
|
||||||
;;; copy16 $1111, $2222,x ; absolute load, indirect store
|
;;; copy16 $1111, $2222,x ; absolute load, indirect store
|
||||||
;;; copy16 $1111, $2222,y ; absolute load, indirect store
|
;;; copy16 $1111,x $2222,x ; indirect load, indirect store
|
||||||
;;; copy16 #$1111, $2222,x ; immediate load, indirect store
|
;;; copy16 #$1111, $2222,x ; immediate load, indirect store
|
||||||
;;; copy16 #$1111, $2222,y ; immediate load, indirect store
|
.macro copy16 arg1, arg2, arg3, arg4
|
||||||
.macro copy16 arg1, arg2, arg3
|
.if _is_register {arg2} && _is_register {arg4}
|
||||||
.if _is_register {arg2}
|
;; indexed load/indexed store
|
||||||
|
lda arg1,arg2
|
||||||
|
sta arg3,arg4
|
||||||
|
lda arg1+1,arg2
|
||||||
|
sta arg3+1,arg4
|
||||||
|
.elseif _is_register {arg2}
|
||||||
;; indexed load variant (arg2 is x or y)
|
;; indexed load variant (arg2 is x or y)
|
||||||
lda arg1,arg2
|
lda arg1,arg2
|
||||||
sta arg3
|
sta arg3
|
||||||
@ -320,9 +324,7 @@
|
|||||||
;;; cmp16 $1111, #$2222 ; absolute, immediate
|
;;; cmp16 $1111, #$2222 ; absolute, immediate
|
||||||
;;; cmp16 $1111, $2222 ; absolute, absolute
|
;;; cmp16 $1111, $2222 ; absolute, absolute
|
||||||
;;; cmp16 $1111,x, $2222 ; indirect, absolute
|
;;; cmp16 $1111,x, $2222 ; indirect, absolute
|
||||||
;;; cmp16 $1111,y, $2222 ; indirect, absolute
|
|
||||||
;;; cmp16 $1111, $2222,x ; absolute, indirect
|
;;; cmp16 $1111, $2222,x ; absolute, indirect
|
||||||
;;; cmp16 $1111, $2222,y ; absolute indirect
|
|
||||||
.macro cmp16 arg1, arg2, arg3
|
.macro cmp16 arg1, arg2, arg3
|
||||||
.if _is_register {arg2}
|
.if _is_register {arg2}
|
||||||
;; indexed variant (arg2 is x or y)
|
;; indexed variant (arg2 is x or y)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user