// // LOAD routine hook for fast loading via UltiDOS // u64_load: // First check whether the command interface is enabled lda U64_IDENTIFICATION cmp #U64_MAGIC_ID beq !+ u64_load_skip: rts !: // XXX find out which device number softIEC is mapped to lda current_device_number cmp #$20 // for now use device number 32 bne u64_load_skip // Takeover the flow completely pla pla // Display SEARCHING FOR + filename jsr lvs_display_searching_for // Whatever the interface was doing - ask to abort it jsr u64_load_abort // Send a command to open the file lda #U64_DOS_CMD_OPEN_FILE jsr u64_load_send_cmd lda #U64_FA_READ jsr u64_load_send_cmd jsr u64_load_send_filename jsr u64_load_finalize_cmd // Check status jsr u64_load_check_status bcs lvs_file_not_found_error // Load first two bytes to determine start address // XXX jsr printf .text "DBG: NOT IMPLEMENTED" .byte $0D,0 jmp lvs_wrap_around_error rts u64_load_abort: lda #U64_CTRL_BIT_ABORT sta U64_CONTROL !: lda U64_STATUS bne !- rts u64_load_send_cmd: ldx #U64_TARGET_DOS2 stx U64_COMMAND_DATA // target sta U64_COMMAND_DATA // command code rts u64_load_send_filename: ldy #0 u64_load_send_filename_loop: cpy FNLEN bne !+ rts !: ldx #