DeskTop Seg 1: relay call documentation

This commit is contained in:
Joshua Bell 2017-10-07 21:26:27 -07:00
parent 8abcbe3b0a
commit dd02732f5c

View File

@ -15,8 +15,13 @@ LD2D0 := $D2D0
.macro A2D_RELAY2_CALL call, addr .macro A2D_RELAY2_CALL call, addr
ldy #call ldy #call
.if .paramcount = 1
lda #0
ldx #0
.else
lda #<addr lda #<addr
ldx #>addr ldx #>addr
.endif
jsr A2D_RELAY2 jsr A2D_RELAY2
.endmacro .endmacro
@ -9210,21 +9215,21 @@ set_fill_mode_params5:
.byte $05,$06,$07 .byte $05,$06,$07
;; DESKTOP command jump table ;; DESKTOP command jump table
L939E: .addr 0 L939E: .addr 0 ; $00
.addr L9419 .addr L9419 ; $01
.addr L9454 .addr L9454 ; $02
.addr L94C0 .addr L94C0 ; $03
.addr L9508 .addr L9508 ; $04
.addr L95A2 .addr L95A2 ; $05
.addr L9692 .addr L9692 ; $06
.addr L96D2 .addr L96D2 ; $07
.addr L975B .addr L975B ; $08
.addr L977D .addr L977D ; $09
.addr L97F7 .addr L97F7 ; $0A
.addr L9EBE .addr L9EBE ; $0B
.addr LA2A6 .addr LA2A6 ; $0C REDRAW_ICONS
.addr L9EFB .addr L9EFB ; $0D
.addr L958F .addr L958F ; $0E
.macro DESKTOP_DIRECT_CALL op, addr, label .macro DESKTOP_DIRECT_CALL op, addr, label
jsr DESKTOP_DIRECT jsr DESKTOP_DIRECT
@ -9304,6 +9309,8 @@ ycoord: .word 0
;;; ================================================== ;;; ==================================================
;;; DESKTOP $01 IMPL
L9419: L9419:
ldy #$00 ldy #$00
lda ($06),y lda ($06),y
@ -9338,6 +9345,10 @@ L943E: ldx L8E95
sta L8F15+1,x sta L8F15+1,x
rts rts
;;; ==================================================
;;; DESKTOP $02 IMPL
L9454: ldx L8E95 L9454: ldx L8E95
beq L9466 beq L9466
dex dex
@ -9397,6 +9408,8 @@ L949D: ldx L9016
;;; ================================================== ;;; ==================================================
;;; DESKTOP $03 IMPL
L94C0: L94C0:
ldx L8E95 ldx L8E95
beq L94D2 beq L94D2
@ -9440,6 +9453,8 @@ L9502: jsr L9F98
;;; ================================================== ;;; ==================================================
;;; DESKTOP $04 IMPL
L9508: L9508:
ldy #$00 ldy #$00
ldx L8E95 ldx L8E95
@ -9506,6 +9521,8 @@ L958C: lda #$00
;;; ================================================== ;;; ==================================================
;;; DESKTOP $0E IMPL
L958F: L958F:
ldy #$00 ldy #$00
lda ($06),y lda ($06),y
@ -9519,6 +9536,8 @@ L958F:
;;; ================================================== ;;; ==================================================
;;; DESKTOP $05 IMPL
L95A2: L95A2:
jmp L9625 jmp L9625
@ -9580,6 +9599,8 @@ L9681: sta L95A5
;;; ================================================== ;;; ==================================================
;;; DESKTOP $06 IMPL
L9692: L9692:
jmp L9697 jmp L9697
@ -9614,6 +9635,8 @@ L96CF: lda #$00
;;; ================================================== ;;; ==================================================
;;; DESKTOP $07 IMPL
L96D2: L96D2:
jmp L96D7 jmp L96D7
@ -9681,6 +9704,8 @@ L9758: jmp L96DD
;;; ================================================== ;;; ==================================================
;;; DESKTOP $08 IMPL
L975B: L975B:
ldx #$00 ldx #$00
txa txa
@ -9705,6 +9730,8 @@ L977A: lda #$00
;;; ================================================== ;;; ==================================================
;;; DESKTOP $09 IMPL
L977D: L977D:
jmp L9789 jmp L9789
@ -9776,6 +9803,10 @@ L97E6: pla
L97F5: .byte 0 L97F5: .byte 0
L97F6: .byte 0 L97F6: .byte 0
;;; ==================================================
;;; DESKTOP $0A IMPL
L97F7: L97F7:
ldy #$00 ldy #$00
lda ($06),y lda ($06),y
@ -10539,6 +10570,8 @@ L9EB4: asl a
;;; ================================================== ;;; ==================================================
;;; DESKTOP $08 IMPL
L9EBE: L9EBE:
jmp L9EC3 jmp L9EC3
@ -10572,6 +10605,8 @@ L9EEA: ldy #$00
;;; ================================================== ;;; ==================================================
;;; DESKTOP $0D IMPL
L9EFB: L9EFB:
jmp L9F07 jmp L9F07
@ -10958,6 +10993,8 @@ LA2A5: .byte 0
;;; ================================================== ;;; ==================================================
DESKTOP_REDRAW_ICONS_IMPL:
LA2A6: LA2A6:
jmp LA2AE jmp LA2AE
@ -12070,7 +12107,7 @@ LAAB8:
.byte $00,$00,$00,$00,$00,$00,$00,$4C .byte $00,$00,$00,$00,$00,$00,$00,$4C
.byte $D7,$B9 .byte $D7,$B9
LB603: alert_bitmap:
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000) .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000)
.byte PX(%0111111),px(%1111100),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000) .byte PX(%0111111),px(%1111100),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000)
.byte PX(%0111111),px(%1111100),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000) .byte PX(%0111111),px(%1111100),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000)
@ -12096,13 +12133,16 @@ LB603:
.byte PX(%0111111),px(%1100000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000) .byte PX(%0111111),px(%1100000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000) .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000)
.byte $14,$00,$08,$00 .proc alert_bitmap_params
.addr LB603 ; addr .word $14 ; left
.word $8 ; top
.addr alert_bitmap ; addr
.word 7 ; stride .word 7 ; stride
.word 0 ; left .word 0 ; left
.word 0 ; top .word 0 ; top
.word $24 ; width .word $24 ; width
.word $17 ; height .word $17 ; height
.endproc
.byte $41,$00,$57,$00,$E5,$01 .byte $41,$00,$57,$00,$E5,$01
.byte $8E,$00,$04,$00,$02,$00,$A0,$01 .byte $8E,$00,$04,$00,$02,$00,$A0,$01
@ -12117,19 +12157,28 @@ LB6DF: .byte $A4
LB6E0: .byte $01 LB6E0: .byte $01
LB6E1: .byte $37,$00 LB6E1: .byte $37,$00
LB6E3: PASCAL_STRING {"OK ",A2D_GLYPH_RETURN} ok_label:
PASCAL_STRING {"OK ",A2D_GLYPH_RETURN}
try_again_rect:
.word $14,$25,$78,$30
try_again_pos:
.word $0019,$002F
cancel_rect:
.word $12C,$25,$190,$30
cancel_pos: .word $0131,$002F
.word $00BE,$0010
LB70F: .word $004B,$001D
.byte $14,$00,$25,$00,$78,$00
.byte $30,$00,$19,$00,$2F,$00,$2C,$01
.byte $25,$00,$90,$01,$30,$00,$31,$01
.byte $2F,$00,$BE,$00,$10,$00,$4B,$00
.byte $1D,$00
LB713: .byte $00 LB713: .byte $00
LB714: .byte $00 LB714: .byte $00
LB715: .byte $00 LB715: .byte $00
LB716: PASCAL_STRING "Try Again A" try_again_label:
LB726: PASCAL_STRING "Cancel Esc" PASCAL_STRING "Try Again A"
cancel_label:
PASCAL_STRING "Cancel Esc"
LB735: PASCAL_STRING "System Error" LB735: PASCAL_STRING "System Error"
LB742: PASCAL_STRING "I/O error" LB742: PASCAL_STRING "I/O error"
@ -12186,7 +12235,7 @@ LBA0B: sta $D239,x
sta $D247 sta $D247
lda #$00 lda #$00
sta $D248 sta $D248
A2D_RELAY2_CALL $04, $D239 A2D_RELAY2_CALL A2D_SET_STATE, $D239
lda LB6D3 lda LB6D3
ldx LB6D4 ldx LB6D4
jsr LBF8B jsr LBF8B
@ -12208,20 +12257,20 @@ LBA0B: sta $D239,x
clc clc
adc LB6E1 adc LB6E1
sta LBFCB sta LBFCB
A2D_RELAY2_CALL $26, $0000 A2D_RELAY2_CALL A2D_HIDE_CURSOR
jsr LBE08 jsr LBE08
A2D_RELAY2_CALL $25, $0000 A2D_RELAY2_CALL A2D_SHOW_CURSOR
A2D_RELAY2_CALL $07, $D200 A2D_RELAY2_CALL A2D_SET_FILL_MODE, $D200
A2D_RELAY2_CALL $11, $B6BB A2D_RELAY2_CALL A2D_FILL_RECT, $B6BB
A2D_RELAY2_CALL $07, $D202 A2D_RELAY2_CALL A2D_SET_FILL_MODE, $D202
A2D_RELAY2_CALL $12, $B6BB A2D_RELAY2_CALL A2D_DRAW_RECT, $B6BB
A2D_RELAY2_CALL $06, $B6D3 A2D_RELAY2_CALL A2D_SET_BOX, $B6D3
A2D_RELAY2_CALL $12, $B6C3 A2D_RELAY2_CALL A2D_DRAW_RECT, $B6C3
A2D_RELAY2_CALL $12, $B6CB A2D_RELAY2_CALL A2D_DRAW_RECT, $B6CB
A2D_RELAY2_CALL $07, $D200 A2D_RELAY2_CALL A2D_SET_FILL_MODE, $D200
A2D_RELAY2_CALL $26, $0000 A2D_RELAY2_CALL A2D_HIDE_CURSOR
A2D_RELAY2_CALL $14, $B6AB A2D_RELAY2_CALL A2D_DRAW_BITMAP, alert_bitmap_params
A2D_RELAY2_CALL $25, $0000 A2D_RELAY2_CALL A2D_SHOW_CURSOR
pla pla
tax tax
pla pla
@ -12246,38 +12295,38 @@ LBAEF: tya
sta LB713 sta LB713
jmp LBB14 jmp LBB14
.macro DRAW_PASCAL_STRING addr
lda #<addr
ldx #>addr
jsr draw_pascal_string
.endmacro
LBB0B: tya LBB0B: tya
lsr a lsr a
tay tay
lda LB9C3,y lda LB9C3,y
sta LB713 sta LB713
LBB14: A2D_RELAY2_CALL $07, $D202 LBB14: A2D_RELAY2_CALL A2D_SET_FILL_MODE, $D202
bit LB713 bit LB713
bpl LBB5C bpl LBB5C
A2D_RELAY2_CALL $12, $B6FF A2D_RELAY2_CALL A2D_DRAW_RECT, cancel_rect
A2D_RELAY2_CALL $0E, $B707 A2D_RELAY2_CALL A2D_SET_POS, cancel_pos
lda #$26 DRAW_PASCAL_STRING cancel_label
ldx #$B7
jsr LBFD0
bit LB713 bit LB713
bvs LBB5C bvs LBB5C
A2D_RELAY2_CALL $12, $B6F3 A2D_RELAY2_CALL A2D_DRAW_RECT, try_again_rect
A2D_RELAY2_CALL $0E, $B6FB A2D_RELAY2_CALL A2D_SET_POS, try_again_pos
lda #$16 DRAW_PASCAL_STRING try_again_label
ldx #$B7
jsr LBFD0
jmp LBB75 jmp LBB75
LBB5C: A2D_RELAY2_CALL $12, $B6F3 LBB5C: A2D_RELAY2_CALL A2D_DRAW_RECT, try_again_rect
A2D_RELAY2_CALL $0E, $B6FB A2D_RELAY2_CALL A2D_SET_POS, try_again_pos
lda #$E3 DRAW_PASCAL_STRING ok_label
ldx #$B6 LBB75: A2D_RELAY2_CALL A2D_SET_POS, $B70F
jsr LBFD0
LBB75: A2D_RELAY2_CALL $0E, $B70F
lda LB714 lda LB714
ldx LB715 ldx LB715
jsr LBFD0 jsr draw_pascal_string
LBB87: A2D_RELAY2_CALL $2A, $D208 LBB87: A2D_RELAY2_CALL A2D_GET_INPUT, $D208
lda $D208 lda $D208
cmp #$01 cmp #$01
bne LBB9A bne LBB9A
@ -12291,8 +12340,8 @@ LBB9A: cmp #$03
bpl LBBEE bpl LBBEE
cmp #$1B cmp #$1B
bne LBBC3 bne LBBC3
A2D_RELAY2_CALL $07, $D202 A2D_RELAY2_CALL A2D_SET_FILL_MODE, $D202
A2D_RELAY2_CALL $11, $B6FF A2D_RELAY2_CALL A2D_FILL_RECT, cancel_rect
lda #$01 lda #$01
jmp LBC55 jmp LBC55
@ -12300,8 +12349,8 @@ LBBC3: bit LB713
bvs LBBEE bvs LBBEE
cmp #$61 cmp #$61
bne LBBE3 bne LBBE3
LBBCC: A2D_RELAY2_CALL $07, $D202 LBBCC: A2D_RELAY2_CALL A2D_SET_FILL_MODE, $D202
A2D_RELAY2_CALL $11, $B6F3 A2D_RELAY2_CALL A2D_FILL_RECT, try_again_rect
lda #$00 lda #$00
jmp LBC55 jmp LBC55
@ -12313,30 +12362,30 @@ LBBE3: cmp #$41
LBBEE: cmp #$0D LBBEE: cmp #$0D
bne LBC09 bne LBC09
A2D_RELAY2_CALL $07, $D202 A2D_RELAY2_CALL A2D_SET_FILL_MODE, $D202
A2D_RELAY2_CALL $11, $B6F3 A2D_RELAY2_CALL A2D_FILL_RECT, try_again_rect
lda #$02 lda #$02
jmp LBC55 jmp LBC55
LBC09: jmp LBB87 LBC09: jmp LBB87
LBC0C: jsr LBDE1 LBC0C: jsr LBDE1
A2D_RELAY2_CALL $0E, $D209 A2D_RELAY2_CALL A2D_SET_POS, $D209
bit LB713 bit LB713
bpl LBC42 bpl LBC42
A2D_RELAY2_CALL $13, $B6FF A2D_RELAY2_CALL A2D_TEST_BOX, cancel_rect
cmp #$80 cmp #$80
bne LBC2D bne LBC2D
jmp LBCE9 jmp LBCE9
LBC2D: bit LB713 LBC2D: bit LB713
bvs LBC42 bvs LBC42
A2D_RELAY2_CALL $13, $B6F3 A2D_RELAY2_CALL A2D_TEST_BOX, try_again_rect
cmp #$80 cmp #$80
bne LBC52 bne LBC52
jmp LBC6D jmp LBC6D
LBC42: A2D_RELAY2_CALL $13, $B6F3 LBC42: A2D_RELAY2_CALL A2D_TEST_BOX, try_again_rect
cmp #$80 cmp #$80
bne LBC52 bne LBC52
jmp LBD65 jmp LBD65
@ -12344,23 +12393,23 @@ LBC42: A2D_RELAY2_CALL $13, $B6F3
LBC52: jmp LBB87 LBC52: jmp LBB87
LBC55: pha LBC55: pha
A2D_RELAY2_CALL $26, $0000 A2D_RELAY2_CALL A2D_HIDE_CURSOR
jsr LBE5D jsr LBE5D
A2D_RELAY2_CALL $25, $0000 A2D_RELAY2_CALL A2D_SHOW_CURSOR
pla pla
rts rts
LBC6D: A2D_RELAY2_CALL $07, $D202 LBC6D: A2D_RELAY2_CALL A2D_SET_FILL_MODE, $D202
A2D_RELAY2_CALL $11, $B6F3 A2D_RELAY2_CALL A2D_FILL_RECT, try_again_rect
lda #$00 lda #$00
sta LBCE8 sta LBCE8
LBC84: A2D_RELAY2_CALL $2A, $D208 LBC84: A2D_RELAY2_CALL A2D_GET_INPUT, $D208
lda $D208 lda $D208
cmp #$02 cmp #$02
beq LBCDB beq LBCDB
jsr LBDE1 jsr LBDE1
A2D_RELAY2_CALL $0E, $D209 A2D_RELAY2_CALL A2D_SET_POS, $D209
A2D_RELAY2_CALL $13, $B6F3 A2D_RELAY2_CALL A2D_TEST_BOX, try_again_rect
cmp #$80 cmp #$80
beq LBCB5 beq LBCB5
lda LBCE8 lda LBCE8
@ -12371,8 +12420,8 @@ LBCB5: lda LBCE8
bne LBCBD bne LBCBD
jmp LBC84 jmp LBC84
LBCBD: A2D_RELAY2_CALL $07, $D202 LBCBD: A2D_RELAY2_CALL A2D_SET_FILL_MODE, $D202
A2D_RELAY2_CALL $11, $B6F3 A2D_RELAY2_CALL A2D_FILL_RECT, try_again_rect
lda LBCE8 lda LBCE8
clc clc
adc #$80 adc #$80
@ -12387,17 +12436,17 @@ LBCE3: lda #$00
jmp LBC55 jmp LBC55
LBCE8: .byte 0 LBCE8: .byte 0
LBCE9: A2D_RELAY2_CALL $07, $D202 LBCE9: A2D_RELAY2_CALL A2D_SET_FILL_MODE, $D202
A2D_RELAY2_CALL $11, $B6FF A2D_RELAY2_CALL A2D_FILL_RECT, cancel_rect
lda #$00 lda #$00
sta LBD64 sta LBD64
LBD00: A2D_RELAY2_CALL $2A, $D208 LBD00: A2D_RELAY2_CALL A2D_GET_INPUT, $D208
lda $D208 lda $D208
cmp #$02 cmp #$02
beq LBD57 beq LBD57
jsr LBDE1 jsr LBDE1
A2D_RELAY2_CALL $0E, $D209 A2D_RELAY2_CALL A2D_SET_POS, $D209
A2D_RELAY2_CALL $13, $B6FF A2D_RELAY2_CALL A2D_TEST_BOX, cancel_rect
cmp #$80 cmp #$80
beq LBD31 beq LBD31
lda LBD64 lda LBD64
@ -12408,8 +12457,8 @@ LBD31: lda LBD64
bne LBD39 bne LBD39
jmp LBD00 jmp LBD00
LBD39: A2D_RELAY2_CALL $07, $D202 LBD39: A2D_RELAY2_CALL A2D_SET_FILL_MODE, $D202
A2D_RELAY2_CALL $11, $B6FF A2D_RELAY2_CALL A2D_FILL_RECT, cancel_rect
lda LBD64 lda LBD64
clc clc
adc #$80 adc #$80
@ -12426,15 +12475,15 @@ LBD5F: lda #$01
LBD64: .byte 0 LBD64: .byte 0
LBD65: lda #$00 LBD65: lda #$00
sta LBDE0 sta LBDE0
A2D_RELAY2_CALL $07, $D202 A2D_RELAY2_CALL A2D_SET_FILL_MODE, $D202
A2D_RELAY2_CALL $11, $B6F3 A2D_RELAY2_CALL A2D_FILL_RECT, try_again_rect
LBD7C: A2D_RELAY2_CALL $2A, $D208 LBD7C: A2D_RELAY2_CALL A2D_GET_INPUT, $D208
lda $D208 lda $D208
cmp #$02 cmp #$02
beq LBDD3 beq LBDD3
jsr LBDE1 jsr LBDE1
A2D_RELAY2_CALL $0E, $D209 A2D_RELAY2_CALL A2D_SET_POS, $D209
A2D_RELAY2_CALL $13, $B6F3 A2D_RELAY2_CALL A2D_TEST_BOX, try_again_rect
cmp #$80 cmp #$80
beq LBDAD beq LBDAD
lda LBDE0 lda LBDE0
@ -12445,8 +12494,8 @@ LBDAD: lda LBDE0
bne LBDB5 bne LBDB5
jmp LBD7C jmp LBD7C
LBDB5: A2D_RELAY2_CALL $07, $D202 LBDB5: A2D_RELAY2_CALL A2D_SET_FILL_MODE, $D202
A2D_RELAY2_CALL $11, $B6F3 A2D_RELAY2_CALL A2D_FILL_RECT, try_again_rect
lda LBDE0 lda LBDE0
clc clc
adc #$80 adc #$80
@ -12707,23 +12756,31 @@ LBFCD: .byte $00
LBFCE: .byte $00 LBFCE: .byte $00
LBFCF: .byte $00 LBFCF: .byte $00
LBFD0: sta $06 ;; Draw pascal string; address in (X,A)
stx $07 .proc draw_pascal_string
ldy #$00 ptr := $06
lda ($06),y
beq LBFEB
sta $08
inc $06
bne LBFE2
inc $07
LBFE2: A2D_RELAY2_CALL $19, $0006
LBFEB: rts
sta ptr
stx ptr+1
ldy #$00
lda (ptr),y ; Check length
beq end
sta ptr+2
inc ptr
bne call
inc ptr+1
call: A2D_RELAY2_CALL A2D_DRAW_TEXT, ptr
end: rts
.endproc
;; A2D call in Y, params addr (X,A)
.proc A2D_RELAY2 .proc A2D_RELAY2
sty call-1 sty call
sta call sta addr
stx call+1 stx addr+1
A2D_CALL 0, 0, call jsr A2D
call: .byte 0
addr: .addr 0
rts rts
.endproc .endproc