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