mirror of
https://github.com/mi57730/a2d.git
synced 2025-02-20 02:29:11 +00:00
ovl1c: sector format
This commit is contained in:
parent
177e988398
commit
5f09da834a
@ -10,7 +10,7 @@
|
|||||||
L0000 := $0000
|
L0000 := $0000
|
||||||
L0080 := $0080
|
L0080 := $0080
|
||||||
L0CAF := $0CAF
|
L0CAF := $0CAF
|
||||||
L0CED := $0CED
|
eject_disk := $0CED
|
||||||
L0D26 := $0D26
|
L0D26 := $0D26
|
||||||
L0D51 := $0D51
|
L0D51 := $0D51
|
||||||
L0D5F := $0D5F
|
L0D5F := $0D5F
|
||||||
@ -995,7 +995,7 @@ LD8A9: lda winfo_dialog::window_id
|
|||||||
tax
|
tax
|
||||||
lda LD3F7,x
|
lda LD3F7,x
|
||||||
pha
|
pha
|
||||||
jsr L0CED
|
jsr eject_disk
|
||||||
pla
|
pla
|
||||||
tay
|
tay
|
||||||
ldx #$80
|
ldx #$80
|
||||||
@ -1026,7 +1026,7 @@ LD8FB: jsr LE4A8
|
|||||||
tax
|
tax
|
||||||
lda LD3F7,x
|
lda LD3F7,x
|
||||||
pha
|
pha
|
||||||
jsr L0CED
|
jsr eject_disk
|
||||||
pla
|
pla
|
||||||
tay
|
tay
|
||||||
ldx #$80
|
ldx #$80
|
||||||
@ -1047,7 +1047,7 @@ LD928: jsr LE491
|
|||||||
tax
|
tax
|
||||||
lda LD3F7,x
|
lda LD3F7,x
|
||||||
pha
|
pha
|
||||||
jsr L0CED
|
jsr eject_disk
|
||||||
pla
|
pla
|
||||||
tay
|
tay
|
||||||
ldx #$80
|
ldx #$80
|
||||||
@ -1060,12 +1060,12 @@ LD955: jsr LE507
|
|||||||
jsr L10FB
|
jsr L10FB
|
||||||
ldx LD417
|
ldx LD417
|
||||||
lda LD3F7,x
|
lda LD3F7,x
|
||||||
jsr L0CED
|
jsr eject_disk
|
||||||
ldx LD418
|
ldx LD418
|
||||||
cpx LD417
|
cpx LD417
|
||||||
beq LD972
|
beq LD972
|
||||||
lda LD3F7,x
|
lda LD3F7,x
|
||||||
jsr L0CED
|
jsr eject_disk
|
||||||
LD972: lda #$09
|
LD972: lda #$09
|
||||||
jsr LEB84
|
jsr LEB84
|
||||||
jmp LD61C
|
jmp LD61C
|
||||||
|
163
desktop/ovl1c.s
163
desktop/ovl1c.s
@ -322,12 +322,12 @@ L09F8: cmp #$0C
|
|||||||
tay
|
tay
|
||||||
L09FD: sec
|
L09FD: sec
|
||||||
jsr L0A1D
|
jsr L0A1D
|
||||||
lda L0B4B,y
|
lda phase_on_table,y
|
||||||
jsr L0B3A
|
jsr L0B3A
|
||||||
lda L0C39
|
lda L0C39
|
||||||
clc
|
clc
|
||||||
jsr motor
|
jsr motor
|
||||||
lda L0B57,y
|
lda phase_off_table,y
|
||||||
jsr L0B3A
|
jsr L0B3A
|
||||||
inc L0C38
|
inc L0C38
|
||||||
bne L09D6
|
bne L09D6
|
||||||
@ -347,21 +347,26 @@ done: rts
|
|||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
L0A2E: jsr L0C0E
|
.proc format_sector
|
||||||
|
jsr rts2
|
||||||
lda TESTWP,x ; Check write protect ???
|
lda TESTWP,x ; Check write protect ???
|
||||||
lda WPRES,x
|
lda WPRES,x
|
||||||
lda #$FF
|
|
||||||
|
lda #$FF ; Self-sync data
|
||||||
sta WRMODE,x ; Turn on write mode
|
sta WRMODE,x ; Turn on write mode
|
||||||
cmp XMIT,x ; Start sending bits to disk
|
cmp XMIT,x ; Start sending bits to disk
|
||||||
pha ; 32 cycles...
|
pha ; 32 cycles...
|
||||||
pla
|
pla
|
||||||
nop
|
nop
|
||||||
ldy #$04
|
ldy #4
|
||||||
L0A44: pha
|
|
||||||
|
sync: pha
|
||||||
pla
|
pla
|
||||||
jsr write2
|
jsr write2
|
||||||
dey
|
dey
|
||||||
bne L0A44
|
bne sync
|
||||||
|
|
||||||
|
;; Address marks
|
||||||
lda #$D5
|
lda #$D5
|
||||||
jsr write
|
jsr write
|
||||||
lda #$AA
|
lda #$AA
|
||||||
@ -372,25 +377,31 @@ L0A44: pha
|
|||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
bne L0A65
|
bne :+
|
||||||
L0A62: jsr L0C0E
|
|
||||||
L0A65: nop
|
;; Data
|
||||||
|
loop: jsr rts2
|
||||||
|
: nop
|
||||||
nop
|
nop
|
||||||
lda #$96
|
lda #$96
|
||||||
sta DATA,x
|
sta DATA,x
|
||||||
cmp XMIT,x
|
cmp XMIT,x
|
||||||
dey
|
dey
|
||||||
bne L0A62
|
bne loop
|
||||||
|
|
||||||
|
;; Checksum
|
||||||
bit $00
|
bit $00
|
||||||
nop
|
nop
|
||||||
L0A75: jsr L0C0E
|
check: jsr rts2
|
||||||
lda #$96
|
lda #$96
|
||||||
sta DATA,x
|
sta DATA,x
|
||||||
cmp XMIT,x
|
cmp XMIT,x
|
||||||
lda #$96
|
lda #$96
|
||||||
nop
|
nop
|
||||||
iny
|
iny
|
||||||
bne L0A75
|
bne check
|
||||||
|
|
||||||
|
;; Slip marks
|
||||||
jsr write
|
jsr write
|
||||||
lda #$DE
|
lda #$DE
|
||||||
jsr write
|
jsr write
|
||||||
@ -404,13 +415,14 @@ L0A75: jsr L0C0E
|
|||||||
lda XMIT,x
|
lda XMIT,x
|
||||||
rts
|
rts
|
||||||
|
|
||||||
;;; Write, with appropriate cycle counts
|
;; Write with appropriate cycle counts
|
||||||
write: nop
|
write: nop
|
||||||
write2: pha
|
write2: pha
|
||||||
pla
|
pla
|
||||||
sta DATA,x
|
sta DATA,x
|
||||||
cmp XMIT,x
|
cmp XMIT,x
|
||||||
rts
|
rts
|
||||||
|
.endproc
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
@ -501,8 +513,9 @@ start: ldx #$11
|
|||||||
rts
|
rts
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
L0B4B: .byte $01, $30, $28, $24, $20, $1E, $1D, $1C, $1C, $1C, $1C, $1C
|
;;; Timing (100-usecs)
|
||||||
L0B57: .byte $70, $2C, $26, $22, $1F, $1E, $1D, $1C, $1C, $1C, $1C, $1C
|
phase_on_table: .byte $01, $30, $28, $24, $20, $1E, $1D, $1C, $1C, $1C, $1C, $1C
|
||||||
|
phase_off_table: .byte $70, $2C, $26, $22, $1F, $1E, $1D, $1C, $1C, $1C, $1C, $1C
|
||||||
|
|
||||||
L0B63: lda L0C21
|
L0B63: lda L0C21
|
||||||
sta $D6
|
sta $D6
|
||||||
@ -515,10 +528,10 @@ L0B71: ldy $D4
|
|||||||
L0B73: ldx L0C23
|
L0B73: ldx L0C23
|
||||||
jsr L0AAE
|
jsr L0AAE
|
||||||
bcc L0B7E
|
bcc L0B7E
|
||||||
jmp L0C0E
|
jmp rts2
|
||||||
|
|
||||||
L0B7E: ldx L0C23
|
L0B7E: ldx L0C23
|
||||||
jsr L0A2E
|
jsr format_sector
|
||||||
inc $D2
|
inc $D2
|
||||||
lda $D2
|
lda $D2
|
||||||
cmp #$10
|
cmp #$10
|
||||||
@ -534,8 +547,8 @@ L0B96: sta L0C26,y
|
|||||||
sec
|
sec
|
||||||
sbc #$05
|
sbc #$05
|
||||||
tay
|
tay
|
||||||
L0BA2: jsr L0C0E
|
L0BA2: jsr rts2
|
||||||
jsr L0C0E
|
jsr rts2
|
||||||
pha
|
pha
|
||||||
pla
|
pla
|
||||||
nop
|
nop
|
||||||
@ -589,11 +602,11 @@ L0BFA: ldx L0C23
|
|||||||
L0C08: dec L0C25
|
L0C08: dec L0C25
|
||||||
bne L0BFA
|
bne L0BFA
|
||||||
sec
|
sec
|
||||||
L0C0E: rts
|
rts2: rts
|
||||||
|
|
||||||
L0C0F: ldx #$D6
|
L0C0F: ldx #$D6
|
||||||
L0C11: jsr L0C0E
|
L0C11: jsr rts2
|
||||||
jsr L0C0E
|
jsr rts2
|
||||||
bit $00
|
bit $00
|
||||||
dex
|
dex
|
||||||
bne L0C11
|
bne L0C11
|
||||||
@ -722,63 +735,84 @@ L0CD3: lda L0CEC
|
|||||||
L0CEC: .byte 0
|
L0CEC: .byte 0
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
;;; Eject Disk via SmartPort
|
||||||
|
|
||||||
|
.proc eject_disk
|
||||||
sta L0D24
|
sta L0D24
|
||||||
jsr L0D26
|
jsr L0D26 ; Point $06 at $Cn00
|
||||||
ldy #$07
|
|
||||||
lda (L0006),y
|
ldy #$07 ; Check firmware bytes
|
||||||
bne L0D19
|
lda (L0006),y ; $Cn07 = $00 ??
|
||||||
|
bne done
|
||||||
|
|
||||||
ldy #$FB
|
ldy #$FB
|
||||||
lda (L0006),y
|
lda (L0006),y ; $CnFB = $7F ??
|
||||||
and #$7F
|
and #$7F
|
||||||
bne L0D19
|
bne done
|
||||||
|
|
||||||
ldy #$FF
|
ldy #$FF
|
||||||
lda (L0006),y
|
lda (L0006),y
|
||||||
clc
|
clc
|
||||||
adc #$03
|
adc #3 ; Locate dispatch routine (offset $CnFF + 3)
|
||||||
sta L0006
|
sta L0006
|
||||||
|
|
||||||
lda L0D24
|
lda L0D24
|
||||||
jsr L0D51
|
jsr L0D51
|
||||||
sta L0D1E
|
sta control_params_unit_number
|
||||||
jsr L0D1A
|
|
||||||
.byte $04
|
|
||||||
.byte $1D
|
|
||||||
.byte $0D
|
|
||||||
L0D19: rts
|
|
||||||
|
|
||||||
L0D1A: jmp (L0006)
|
;; Do SmartPort call
|
||||||
|
jsr smartport_call
|
||||||
|
.byte $04 ; SmartPort: CONTROL
|
||||||
|
.addr $0D1D
|
||||||
|
|
||||||
.byte $03
|
done: rts
|
||||||
L0D1E: .byte 0
|
|
||||||
.byte $22
|
smartport_call:
|
||||||
ora a:$04
|
jmp (L0006)
|
||||||
.byte 0
|
|
||||||
|
.proc control_params
|
||||||
|
param_count: .byte 3
|
||||||
|
unit_number: .byte 0
|
||||||
|
control_list: .addr L0D22
|
||||||
|
control_code: .byte $04 ; Control Code: Eject disk
|
||||||
|
.endproc
|
||||||
|
control_params_unit_number := control_params::unit_number
|
||||||
|
|
||||||
|
L0D22: .byte 0, 0
|
||||||
L0D24: .byte 0
|
L0D24: .byte 0
|
||||||
.byte 0
|
.byte 0
|
||||||
|
|
||||||
|
.endproc
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
L0D26: sta L0D50
|
L0D26: sta L0D50
|
||||||
ldx #$11
|
ldx #$11
|
||||||
lda L0D50
|
lda L0D50
|
||||||
and #$80
|
and #$80
|
||||||
beq L0D34
|
beq L0D34
|
||||||
ldx #$21
|
ldx #$21
|
||||||
L0D34: stx L0D47
|
L0D34: stx load_addr
|
||||||
lda L0D50
|
lda L0D50
|
||||||
and #$70
|
and #$70
|
||||||
lsr a
|
lsr a
|
||||||
lsr a
|
lsr a
|
||||||
lsr a
|
lsr a
|
||||||
clc
|
clc
|
||||||
adc L0D47
|
adc load_addr
|
||||||
sta L0D47
|
sta load_addr
|
||||||
.byte $AD
|
|
||||||
L0D47: .byte 0
|
load_addr := * + 1
|
||||||
.byte $BF
|
lda $BF00 ; self-modified
|
||||||
sta $07
|
sta $07
|
||||||
lda #$00
|
lda #$00
|
||||||
sta L0006
|
sta L0006
|
||||||
rts
|
rts
|
||||||
|
|
||||||
L0D50: .byte 0
|
L0D50: .byte 0
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
L0D51: pha
|
L0D51: pha
|
||||||
rol a
|
rol a
|
||||||
pla
|
pla
|
||||||
@ -792,7 +826,9 @@ L0D51: pha
|
|||||||
adc #$01
|
adc #$01
|
||||||
rts
|
rts
|
||||||
|
|
||||||
ldx $D417
|
;;; ============================================================
|
||||||
|
|
||||||
|
L0D5F: ldx $D417
|
||||||
lda $D3F7,x
|
lda $D3F7,x
|
||||||
sta block_params::unit_num
|
sta block_params::unit_num
|
||||||
lda #$00
|
lda #$00
|
||||||
@ -829,7 +865,9 @@ L0DA4: cmp #$A5
|
|||||||
sta $D44D
|
sta $D44D
|
||||||
rts
|
rts
|
||||||
|
|
||||||
lda #$14
|
;;; ============================================================
|
||||||
|
|
||||||
|
L0DB5: lda #$14
|
||||||
jsr L1133
|
jsr L1133
|
||||||
lda $D417
|
lda $D417
|
||||||
asl a
|
asl a
|
||||||
@ -930,7 +968,11 @@ L0EAD: jmp L0E70
|
|||||||
|
|
||||||
L0EB0: .byte 0
|
L0EB0: .byte 0
|
||||||
L0EB1: .byte 0
|
L0EB1: .byte 0
|
||||||
and #$F0
|
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
|
L0EB2: and #$F0
|
||||||
sta L0ED6
|
sta L0ED6
|
||||||
ldx DEVCNT
|
ldx DEVCNT
|
||||||
L0EBA: lda DEVLST,x
|
L0EBA: lda DEVLST,x
|
||||||
@ -948,7 +990,10 @@ L0ECA: lda DEVLST,x
|
|||||||
return #$80
|
return #$80
|
||||||
|
|
||||||
L0ED6: .byte 0
|
L0ED6: .byte 0
|
||||||
bit $C010
|
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
|
L0ED7: bit $C010
|
||||||
sta L0FE6
|
sta L0FE6
|
||||||
and #$FF
|
and #$FF
|
||||||
bpl L0EFF
|
bpl L0EFF
|
||||||
@ -1209,7 +1254,9 @@ L10ED: sec
|
|||||||
L10F3:
|
L10F3:
|
||||||
.byte $0E, $0C, $0A, $08, $06, $04, $02, $00
|
.byte $0E, $0C, $0A, $08, $06, $04, $02, $00
|
||||||
|
|
||||||
lda #$14
|
;;; ============================================================
|
||||||
|
|
||||||
|
L10FB: lda #$14
|
||||||
sta L0006
|
sta L0006
|
||||||
lda #$00
|
lda #$00
|
||||||
sta L111E
|
sta L111E
|
||||||
@ -1390,7 +1437,9 @@ L126F: jsr L12A5
|
|||||||
bpl L126F
|
bpl L126F
|
||||||
L127D: rts
|
L127D: rts
|
||||||
|
|
||||||
sta ALTZPOFF
|
;;; ============================================================
|
||||||
|
|
||||||
|
L127E: sta ALTZPOFF
|
||||||
sta ROMIN2
|
sta ROMIN2
|
||||||
jsr BELL1
|
jsr BELL1
|
||||||
sta ALTZPON
|
sta ALTZPON
|
||||||
@ -1398,10 +1447,10 @@ L127D: rts
|
|||||||
lda LCBANK1
|
lda LCBANK1
|
||||||
rts
|
rts
|
||||||
|
|
||||||
yax_call MLI_RELAY, ON_LINE, on_line_params2
|
L1291: yax_call MLI_RELAY, ON_LINE, on_line_params2
|
||||||
rts
|
rts
|
||||||
|
|
||||||
yax_call MLI_RELAY, ON_LINE, on_line_params
|
L129B: yax_call MLI_RELAY, ON_LINE, on_line_params
|
||||||
rts
|
rts
|
||||||
|
|
||||||
L12A5: yax_call MLI_RELAY, WRITE_BLOCK, block_params
|
L12A5: yax_call MLI_RELAY, WRITE_BLOCK, block_params
|
||||||
@ -1410,6 +1459,8 @@ L12A5: yax_call MLI_RELAY, WRITE_BLOCK, block_params
|
|||||||
L12AF: yax_call MLI_RELAY, READ_BLOCK, block_params
|
L12AF: yax_call MLI_RELAY, READ_BLOCK, block_params
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
L12B9: .byte 0
|
L12B9: .byte 0
|
||||||
.byte $3C
|
.byte $3C
|
||||||
.byte 0
|
.byte 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user