mirror of
https://github.com/mi57730/a2d.git
synced 2025-02-18 02:30:50 +00:00
Date: strings
This commit is contained in:
parent
7b98c5e996
commit
a65459124c
@ -352,7 +352,7 @@ A2D_CWS_SCROLL_NORMAL := A2D_CWS_SCROLL_ENABLED | A2D_CWS_SCROLL_THUMB | A2D_CW
|
|||||||
.endif
|
.endif
|
||||||
.endmacro
|
.endmacro
|
||||||
|
|
||||||
.macro A2D_DEFSTRING str ; String definition, for use with A2D_TEXT
|
.macro A2D_DEFSTRING str, label ; String definition, for use with A2D_TEXT
|
||||||
.local data ; Call as A2D_DEFSTRING "abc"
|
.local data ; Call as A2D_DEFSTRING "abc"
|
||||||
.local end ; Can include control chars by using:
|
.local end ; Can include control chars by using:
|
||||||
.addr data ; A2D_DEFSTRING {"abc",$0D,"def"}
|
.addr data ; A2D_DEFSTRING {"abc",$0D,"def"}
|
||||||
|
272
desk.acc/date.s
272
desk.acc/date.s
@ -19,28 +19,30 @@ L4021 := $4021
|
|||||||
|
|
||||||
jmp copy2aux
|
jmp copy2aux
|
||||||
|
|
||||||
L0803: .byte $00,$09,$4D,$44,$2E,$53,$59,$53
|
stash_stack: .byte $00
|
||||||
.byte $54,$45,$4D,$03,$04,$08,$00,$09
|
|
||||||
|
PASCAL_STRING "MD.SYSTEM" ; ??
|
||||||
|
.byte $03,$04,$08,$00,$09
|
||||||
L0813: .byte $00,$02
|
L0813: .byte $00,$02
|
||||||
L0815: .byte $00,$03,$00,$00,$04
|
L0815: .byte $00,$03,$00,$00,$04
|
||||||
L081A: .byte $00,$23,$08,$02,$00,$00,$00,$01
|
L081A: .byte $00,$23,$08,$02,$00,$00,$00,$01
|
||||||
L0822: .byte $00
|
L0822: .byte $00
|
||||||
L0823: .byte $00
|
L0823: .byte $00
|
||||||
|
L0824: .byte $00
|
||||||
|
|
||||||
stash_stack: .byte $00
|
|
||||||
.proc copy2aux
|
.proc copy2aux
|
||||||
|
|
||||||
start := start_da
|
start := start_da
|
||||||
end := last
|
end := last
|
||||||
|
|
||||||
tsx
|
tsx
|
||||||
stx L0803
|
stx stash_stack
|
||||||
sta ALTZPOFF
|
sta ALTZPOFF
|
||||||
lda ROMIN2
|
lda ROMIN2
|
||||||
lda DATELO
|
lda DATELO
|
||||||
sta L090F
|
sta datelo
|
||||||
lda DATEHI
|
lda DATEHI
|
||||||
sta L0910
|
sta datehi
|
||||||
lda #<start
|
lda #<start
|
||||||
sta STARTLO
|
sta STARTLO
|
||||||
lda #>start
|
lda #>start
|
||||||
@ -71,7 +73,7 @@ stash_stack: .byte $00
|
|||||||
|
|
||||||
L086B: sta ALTZPON
|
L086B: sta ALTZPON
|
||||||
sta L0823
|
sta L0823
|
||||||
stx stash_stack
|
stx L0824
|
||||||
lda LCBANK1
|
lda LCBANK1
|
||||||
lda LCBANK1
|
lda LCBANK1
|
||||||
lda L0823
|
lda L0823
|
||||||
@ -98,7 +100,7 @@ L08AA: ldy #$CC
|
|||||||
lda #$21
|
lda #$21
|
||||||
ldx #$08
|
ldx #$08
|
||||||
jsr L4021
|
jsr L4021
|
||||||
L08B3: ldx L0803
|
L08B3: ldx stash_stack
|
||||||
txs
|
txs
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -109,19 +111,21 @@ start_da:
|
|||||||
jmp L0986
|
jmp L0986
|
||||||
|
|
||||||
ok_button_rect:
|
ok_button_rect:
|
||||||
.byte $6A,$00,$2E,$00,$B5,$00,$39,$00
|
.word $6A,$2E,$B5,$39
|
||||||
cancel_button_rect:
|
cancel_button_rect:
|
||||||
.byte $10,$00,$2E,$00,$5A,$00,$39,$00
|
.word $10,$2E,$5A,$39
|
||||||
|
|
||||||
up_arrow_rect:
|
up_arrow_rect:
|
||||||
.word $AA,$0A,$B4,$14
|
.word $AA,$0A,$B4,$14
|
||||||
down_arrow_rect:
|
down_arrow_rect:
|
||||||
.byte $AA,$00,$1E,$00,$B4,$00,$28,$00
|
.word $AA,$1E,$B4,$28
|
||||||
fill_rect_params3:
|
|
||||||
.byte $25,$00,$14,$00,$3B,$00,$1E,$00
|
fill_rect_params3:
|
||||||
fill_rect_params7: .byte $51,$00,$14,$00,$6F,$00,$1E,$00
|
.word $25,$14,$3B,$1E
|
||||||
|
fill_rect_params7:
|
||||||
|
.word $51,$14,$6F,$1E
|
||||||
|
fill_rect_params6:
|
||||||
|
.word $7F,$14,$95,$1E
|
||||||
|
|
||||||
fill_rect_params6: .byte $7F,$00,$14,$00,$95,$00,$1E,$00
|
|
||||||
L08FC: .byte $00,$00,$00,$00,$00,$00,$00,$00
|
L08FC: .byte $00,$00,$00,$00,$00,$00,$00,$00
|
||||||
.byte $FF
|
.byte $FF
|
||||||
|
|
||||||
@ -129,23 +133,34 @@ L08FC: .byte $00,$00,$00,$00,$00,$00,$00,$00
|
|||||||
.byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
|
.byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
|
||||||
.endproc
|
.endproc
|
||||||
.byte $FF
|
.byte $FF
|
||||||
L090E: .byte $00
|
|
||||||
L090F: .byte $00
|
selected_field:
|
||||||
L0910: .byte $00
|
.byte 0
|
||||||
L0911: .byte $1A
|
|
||||||
L0912: .byte $02
|
datelo: .byte $00
|
||||||
L0913: .byte $55
|
datehi: .byte $00
|
||||||
L0914: .byte $17,$09,$04,$20,$20,$20,$20
|
|
||||||
L091B: .byte $2B,$00,$1E,$00
|
day: .byte 26 ; Feb 26, 1985
|
||||||
L091F: .byte $22,$09,$02
|
month: .byte 2 ; The date this was written?
|
||||||
L0922: .byte $20
|
year: .byte 85
|
||||||
L0923: .byte $20
|
|
||||||
L0924: .byte $57,$00,$1E,$00
|
spaces_string:
|
||||||
L0928: .byte $2B,$09,$03,$20,$20,$20
|
A2D_DEFSTRING " "
|
||||||
L092E: .byte $85,$00,$1E,$00
|
|
||||||
L0932: .byte $35,$09,$02
|
day_pos:
|
||||||
L0935: .byte $20
|
.word $2B,$1E
|
||||||
L0936: .byte $20
|
day_string:
|
||||||
|
A2D_DEFSTRING " "
|
||||||
|
|
||||||
|
month_pos:
|
||||||
|
.word $57,$1E
|
||||||
|
month_string:
|
||||||
|
A2D_DEFSTRING " "
|
||||||
|
|
||||||
|
year_pos:
|
||||||
|
.word $85,$1E
|
||||||
|
year_string:
|
||||||
|
A2D_DEFSTRING " "
|
||||||
|
|
||||||
.proc get_input_params
|
.proc get_input_params
|
||||||
L0937: .byte $00
|
L0937: .byte $00
|
||||||
@ -202,24 +217,24 @@ height: .word $40
|
|||||||
.byte $00,$7F,$00,$88,$00,$00
|
.byte $00,$7F,$00,$88,$00,$00
|
||||||
|
|
||||||
L0986: jsr L0E00
|
L0986: jsr L0E00
|
||||||
lda L0910
|
lda datehi
|
||||||
lsr a
|
lsr a
|
||||||
sta L0913
|
sta year
|
||||||
lda L090F
|
lda datelo
|
||||||
and #$1F
|
and #$1F
|
||||||
sta L0911
|
sta day
|
||||||
lda L0910
|
lda datehi
|
||||||
ror a
|
ror a
|
||||||
lda L090F
|
lda datelo
|
||||||
ror a
|
ror a
|
||||||
lsr a
|
lsr a
|
||||||
lsr a
|
lsr a
|
||||||
lsr a
|
lsr a
|
||||||
lsr a
|
lsr a
|
||||||
sta L0912
|
sta month
|
||||||
A2D_CALL A2D_CREATE_WINDOW, create_window_params
|
A2D_CALL A2D_CREATE_WINDOW, create_window_params
|
||||||
lda #$00
|
lda #0
|
||||||
sta L090E
|
sta selected_field
|
||||||
jsr L0CF0
|
jsr L0CF0
|
||||||
A2D_CALL $2B
|
A2D_CALL $2B
|
||||||
L09BB: A2D_CALL A2D_GET_INPUT, get_input_params
|
L09BB: A2D_CALL A2D_GET_INPUT, get_input_params
|
||||||
@ -265,18 +280,18 @@ L0A0F: A2D_CALL A2D_FILL_RECT, down_arrow_rect
|
|||||||
jmp L09BB
|
jmp L09BB
|
||||||
|
|
||||||
L0A26: sec
|
L0A26: sec
|
||||||
lda L090E
|
lda selected_field
|
||||||
sbc #$01
|
sbc #1
|
||||||
bne L0A3F
|
bne L0A3F
|
||||||
lda #$03
|
lda #3
|
||||||
jmp L0A3F
|
jmp L0A3F
|
||||||
|
|
||||||
L0A33: clc
|
L0A33: clc
|
||||||
lda L090E
|
lda selected_field
|
||||||
adc #$01
|
adc #1
|
||||||
cmp #$04
|
cmp #4
|
||||||
bne L0A3F
|
bne L0A3F
|
||||||
lda #$01
|
lda #1
|
||||||
L0A3F: jsr L0DB4
|
L0A3F: jsr L0DB4
|
||||||
jmp L09BB
|
jmp L09BB
|
||||||
|
|
||||||
@ -313,15 +328,15 @@ L0A85: .byte $0A,$BB,$0A,$C9,$0A,$D7,$0A,$E5
|
|||||||
.byte $0A,$E5,$0A,$E5,$0A
|
.byte $0A,$E5,$0A,$E5,$0A
|
||||||
L0A92: A2D_CALL A2D_FILL_RECT, ok_button_rect
|
L0A92: A2D_CALL A2D_FILL_RECT, ok_button_rect
|
||||||
sta RAMWRTOFF
|
sta RAMWRTOFF
|
||||||
lda L0912
|
lda month
|
||||||
asl a
|
asl a
|
||||||
asl a
|
asl a
|
||||||
asl a
|
asl a
|
||||||
asl a
|
asl a
|
||||||
asl a
|
asl a
|
||||||
ora L0911
|
ora day
|
||||||
sta DATELO
|
sta DATELO
|
||||||
lda L0913
|
lda year
|
||||||
rol a
|
rol a
|
||||||
sta DATEHI
|
sta DATEHI
|
||||||
sta RAMWRTON
|
sta RAMWRTON
|
||||||
@ -386,7 +401,7 @@ L0B2C: lda #$51
|
|||||||
sta $07
|
sta $07
|
||||||
lda #$0B
|
lda #$0B
|
||||||
sta $08
|
sta $08
|
||||||
L0B34: lda L090E
|
L0B34: lda selected_field
|
||||||
asl a
|
asl a
|
||||||
tay
|
tay
|
||||||
lda ($07),y
|
lda ($07),y
|
||||||
@ -404,80 +419,93 @@ L0B50: .byte $00,$00,$00,$61,$0B,$73,$0B,$85
|
|||||||
.byte $0B,$00,$00,$97,$0B,$A4,$0B,$B1
|
.byte $0B,$00,$00,$97,$0B,$A4,$0B,$B1
|
||||||
.byte $0B
|
.byte $0B
|
||||||
clc
|
clc
|
||||||
lda L0911
|
lda day
|
||||||
adc #$01
|
adc #$01
|
||||||
cmp #$20
|
cmp #$20
|
||||||
bne L0B6D
|
bne L0B6D
|
||||||
lda #$01
|
lda #$01
|
||||||
L0B6D: sta L0911
|
L0B6D: sta day
|
||||||
jmp L0BBE
|
jmp prepare_day_string
|
||||||
|
|
||||||
clc
|
clc
|
||||||
lda L0912
|
lda month
|
||||||
adc #$01
|
adc #$01
|
||||||
cmp #$0D
|
cmp #$0D
|
||||||
bne L0B7F
|
bne L0B7F
|
||||||
lda #$01
|
lda #$01
|
||||||
L0B7F: sta L0912
|
L0B7F: sta month
|
||||||
jmp L0BCB
|
jmp prepare_month_string
|
||||||
|
|
||||||
clc
|
clc
|
||||||
lda L0913
|
lda year
|
||||||
adc #$01
|
adc #$01
|
||||||
cmp #$64
|
cmp #$64
|
||||||
bne L0B91
|
bne L0B91
|
||||||
lda #$00
|
lda #$00
|
||||||
L0B91: sta L0913
|
L0B91: sta year
|
||||||
jmp L0C0D
|
jmp prepare_year_string
|
||||||
|
|
||||||
dec L0911
|
dec day
|
||||||
bne L0BA1
|
bne L0BA1
|
||||||
lda #$1F
|
lda #$1F
|
||||||
sta L0911
|
sta day
|
||||||
L0BA1: jmp L0BBE
|
L0BA1: jmp prepare_day_string
|
||||||
|
|
||||||
dec L0912
|
dec month
|
||||||
bne L0BAE
|
bne L0BAE
|
||||||
lda #$0C
|
lda #$0C
|
||||||
sta L0912
|
sta month
|
||||||
L0BAE: jmp L0BCB
|
L0BAE: jmp prepare_month_string
|
||||||
|
|
||||||
dec L0913
|
dec year
|
||||||
bpl L0BBB
|
bpl L0BBB
|
||||||
lda #$63
|
lda #$63
|
||||||
sta L0913
|
sta year
|
||||||
L0BBB: jmp L0C0D
|
L0BBB: jmp prepare_year_string
|
||||||
|
|
||||||
L0BBE: lda L0911
|
.proc prepare_day_string
|
||||||
|
lda day
|
||||||
jsr div_by_10_then_ascii
|
jsr div_by_10_then_ascii
|
||||||
sta L0922
|
sta day_string+3 ; first char
|
||||||
stx L0923
|
stx day_string+4 ; second char
|
||||||
rts
|
rts
|
||||||
|
.endproc
|
||||||
|
|
||||||
L0BCB: lda L0912
|
.proc prepare_month_string
|
||||||
|
lda month ; month * 3 - 1
|
||||||
asl a
|
asl a
|
||||||
clc
|
clc
|
||||||
adc L0912
|
adc month
|
||||||
tax
|
tax
|
||||||
dex
|
dex
|
||||||
lda #$2B
|
|
||||||
sta $07
|
ptr := $07
|
||||||
lda #$09
|
str := month_string + 3
|
||||||
sta $08
|
|
||||||
ldy #$02
|
lda #<str
|
||||||
L0BDF: lda L0BE9,x
|
sta ptr
|
||||||
sta ($07),y
|
lda #>str
|
||||||
|
sta ptr+1
|
||||||
|
|
||||||
|
ldy #2
|
||||||
|
loop: lda month_name_table,x
|
||||||
|
sta (ptr),y
|
||||||
dex
|
dex
|
||||||
dey
|
dey
|
||||||
bpl L0BDF
|
bpl loop
|
||||||
rts
|
|
||||||
|
|
||||||
L0BE9: .byte "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug"
|
rts
|
||||||
.byte "Sep","Oct","Nov","Dec"
|
.endproc
|
||||||
L0C0D: lda L0913
|
|
||||||
|
month_name_table:
|
||||||
|
.byte "Jan","Feb","Mar","Apr","May","Jun"
|
||||||
|
.byte "Jul","Aug","Sep","Oct","Nov","Dec"
|
||||||
|
|
||||||
|
prepare_year_string:
|
||||||
|
lda year
|
||||||
jsr div_by_10_then_ascii
|
jsr div_by_10_then_ascii
|
||||||
sta L0935
|
sta year_string+3
|
||||||
stx L0936
|
stx year_string+4
|
||||||
rts
|
rts
|
||||||
|
|
||||||
L0C1A: brk
|
L0C1A: brk
|
||||||
@ -492,15 +520,15 @@ L0C29: lda L0C4B,x
|
|||||||
bpl L0C29
|
bpl L0C29
|
||||||
lda L0C1A
|
lda L0C1A
|
||||||
beq L0C48
|
beq L0C48
|
||||||
lda L0912
|
lda month
|
||||||
asl a
|
asl a
|
||||||
asl a
|
asl a
|
||||||
asl a
|
asl a
|
||||||
asl a
|
asl a
|
||||||
asl a
|
asl a
|
||||||
ora L0911
|
ora day
|
||||||
tay
|
tay
|
||||||
lda L0913
|
lda year
|
||||||
rol a
|
rol a
|
||||||
tax
|
tax
|
||||||
tya
|
tya
|
||||||
@ -593,57 +621,61 @@ L0CF0: A2D_CALL A2D_SET_BOX1, create_window_params::box
|
|||||||
A2D_CALL A2D_DRAW_TEXT, label_downarrow
|
A2D_CALL A2D_DRAW_TEXT, label_downarrow
|
||||||
A2D_CALL A2D_DRAW_RECT, down_arrow_rect
|
A2D_CALL A2D_DRAW_RECT, down_arrow_rect
|
||||||
|
|
||||||
jsr L0BBE
|
jsr prepare_day_string
|
||||||
jsr L0BCB
|
jsr prepare_month_string
|
||||||
jsr L0C0D
|
jsr prepare_year_string
|
||||||
jsr L0D81
|
|
||||||
jsr L0D8E
|
jsr draw_day
|
||||||
jsr L0DA7
|
jsr draw_month
|
||||||
|
jsr draw_year
|
||||||
A2D_CALL A2D_SET_FILL_MODE, fill_mode_params
|
A2D_CALL A2D_SET_FILL_MODE, fill_mode_params
|
||||||
A2D_CALL A2D_SET_PATTERN, white_pattern
|
A2D_CALL A2D_SET_PATTERN, white_pattern
|
||||||
lda #$01
|
lda #1
|
||||||
jmp L0DB4
|
jmp L0DB4
|
||||||
|
|
||||||
L0D73: lda L090E
|
L0D73: lda selected_field
|
||||||
cmp #$01
|
cmp #1
|
||||||
beq L0D81
|
beq draw_day
|
||||||
cmp #$02
|
cmp #2
|
||||||
beq L0D8E
|
beq draw_month
|
||||||
jmp L0DA7
|
jmp draw_year
|
||||||
|
|
||||||
L0D81: A2D_CALL A2D_SET_POS, L091B
|
draw_day:
|
||||||
A2D_CALL A2D_DRAW_TEXT, L091F
|
A2D_CALL A2D_SET_POS, day_pos
|
||||||
|
A2D_CALL A2D_DRAW_TEXT, day_string
|
||||||
rts
|
rts
|
||||||
|
|
||||||
L0D8E: A2D_CALL A2D_SET_POS, L0924
|
draw_month:
|
||||||
A2D_CALL A2D_DRAW_TEXT, L0914
|
A2D_CALL A2D_SET_POS, month_pos
|
||||||
A2D_CALL A2D_SET_POS, L0924
|
A2D_CALL A2D_DRAW_TEXT, spaces_string ; variable width, so clear first
|
||||||
A2D_CALL A2D_DRAW_TEXT, L0928
|
A2D_CALL A2D_SET_POS, month_pos
|
||||||
|
A2D_CALL A2D_DRAW_TEXT, month_string
|
||||||
rts
|
rts
|
||||||
|
|
||||||
L0DA7: A2D_CALL A2D_SET_POS, L092E
|
draw_year:
|
||||||
A2D_CALL A2D_DRAW_TEXT, L0932
|
A2D_CALL A2D_SET_POS, year_pos
|
||||||
|
A2D_CALL A2D_DRAW_TEXT, year_string
|
||||||
rts
|
rts
|
||||||
|
|
||||||
L0DB4: pha
|
L0DB4: pha
|
||||||
lda L090E
|
lda selected_field
|
||||||
beq L0DD1
|
beq L0DD1
|
||||||
cmp #$01
|
cmp #1
|
||||||
bne L0DC4
|
bne L0DC4
|
||||||
jsr L0DE4
|
jsr L0DE4
|
||||||
jmp L0DD1
|
jmp L0DD1
|
||||||
|
|
||||||
L0DC4: cmp #$02
|
L0DC4: cmp #2
|
||||||
bne L0DCE
|
bne L0DCE
|
||||||
jsr L0DEB
|
jsr L0DEB
|
||||||
jmp L0DD1
|
jmp L0DD1
|
||||||
|
|
||||||
L0DCE: jsr L0DDD
|
L0DCE: jsr L0DDD
|
||||||
L0DD1: pla
|
L0DD1: pla
|
||||||
sta L090E
|
sta selected_field
|
||||||
cmp #$01
|
cmp #1
|
||||||
beq L0DE4
|
beq L0DE4
|
||||||
cmp #$02
|
cmp #2
|
||||||
beq L0DEB
|
beq L0DEB
|
||||||
L0DDD: A2D_CALL A2D_FILL_RECT, fill_rect_params6
|
L0DDD: A2D_CALL A2D_FILL_RECT, fill_rect_params6
|
||||||
rts
|
rts
|
||||||
|
Loading…
x
Reference in New Issue
Block a user