66 lines
1.0 KiB
ArmAsm
66 lines
1.0 KiB
ArmAsm
|
|
;
|
|
; Initializes DOS. For detailed description see 'm65dos_bridge.s' file
|
|
;
|
|
|
|
|
|
!set CONFIG_UNIT_FLOPPY = 0 ; XXX floppy not supported yet
|
|
!set CONFIG_UNIT_RAMDISK = 0 ; XXX RAM disk not supported yet
|
|
|
|
|
|
dos_INIT:
|
|
|
|
jsr dos_ENTER
|
|
|
|
; Set the magic string 'CBDOS'
|
|
|
|
ldx #$04
|
|
@1:
|
|
lda dos_magicstr, x
|
|
sta MAGICSTR, x
|
|
dex
|
|
bpl @1
|
|
|
|
; Set default device numbers
|
|
|
|
lda #CONFIG_UNIT_SDCARD
|
|
sta UNIT_SDCARD
|
|
lda #CONFIG_UNIT_FLOPPY
|
|
sta UNIT_FLOPPY
|
|
lda #CONFIG_UNIT_RAMDISK
|
|
sta UNIT_RAMDISK
|
|
|
|
; Clear listener / talker
|
|
|
|
lda #$FF
|
|
sta IDX1_LISTENER
|
|
sta IDX2_LISTENER
|
|
sta IDX1_TALKER
|
|
sta IDX2_TALKER
|
|
|
|
; Initialize device handlers
|
|
|
|
jsr dev_sd_init
|
|
jsr dev_fd_init
|
|
jsr dev_rd_init
|
|
|
|
; Initialize helper code in RAM
|
|
|
|
lda #$AD ; LDA opcode, absolute
|
|
sta code_LDA_01
|
|
sta code_LDA_02
|
|
sta code_LDA_03
|
|
|
|
lda #$B9 ; LDA nnnn, y opcode
|
|
sta code_LDA_nnnn_Y
|
|
|
|
lda #$60 ; RTS opcode
|
|
sta code_RTS_01
|
|
sta code_RTS_02
|
|
sta code_RTS_03
|
|
sta code_RTS_04
|
|
|
|
; Exit DOS context
|
|
|
|
jmp dos_EXIT
|