; ============= LABELS
LABEL os_byteword_save_A__EF $00EF
LABEL os_byteword_save_X__F0 $00F0
LABEL os_byteword_save_Y__F1 $00F1
LABEL os_textptr_L__F2 $00F2
LABEL os_textptr_H__F3 $00F3
LABEL os_selected_paged_ROM__F4 $00F4
LABEL os_escape_flag__FF $00FF
LABEL osvector_user $0200
LABEL osvector_brk $0202
LABEL osvector_brk_H $0203
LABEL osvector_irq1 $0204
LABEL osvector_irq2 $0206
LABEL osvector_cli $0208
LABEL osvector_byte $020A
LABEL osvector_word $020C
LABEL osvector_wrch $020E
LABEL osvector_rdch $0210
LABEL osvector_file $0212
LABEL osvector_args $0214
LABEL osvector_bget $0216
LABEL osvector_bput $0218
LABEL osvector_gbpb $021A
LABEL osvector_find $021C
LABEL osvector_fsc $021E
LABEL osvector_event $0220
LABEL osvector_event_H $0221
LABEL osvector_upt $0222
LABEL osvector_net $0224
LABEL osvector_vdu $0226
LABEL osvector_key $0228
LABEL osvector_ins $022A
LABEL osvector_rem $022C
LABEL osvector_cnp $022E
LABEL osvector_ind1 $0230
LABEL osvector_ind2 $0232
LABEL osvector_ind3 $0234
LABEL os_bootoptions $028F
LABEL os_file_control_block__02EE $02EE
LABEL os_cassette_block__03B2 $03B2
LABEL os_tube_filing_system_IO__0406 $0406
LABEL os_paged_ROM_private_workspace_H__0DF0 $0DF0
;LABEL rom_language_entry $8000
;LABEL rom_service_entry $8003
;LABEL rom_type $8006
;LABEL rom_copyright_offset $8007
;LABEL rom_binary_version_no $8008
;LABEL rom_title $8009
;LABEL rom_copyright $8011
;LABEL go_FSCV $8015
;LABEL errDISK $8018
;LABEL errBAD $8022
;LABEL errFILE $802B
;LABEL Brk100_errno__terminator_0_causes_BRK $8033
;LABEL pull_addr_and_store_at_AE $8036
;LABEL Brk100_noerrno__terminator_0_causes_BRK $805B
;LABEL prt_str__if_terminator_0_do_BRK_100 $8065
;LABEL prt_str_loop $8074
;LABEL prt_str_return $8083
;LABEL prt_str_BRK $808A
;LABEL prt_fullstop $809A
;LABEL prt_chr_or_store_at_100_X $809C
;LABEL prt_chr_at_100_plus_index_10DE $80B8
;LABEL prt_hex_A $80C2
;LABEL prt_hex_lower_4bits_of_A $80CA
;LABEL copyvars_indirect_B0_Y_to_BC_X__and__indirect_B0_Y_plus_2_to_1072_X $80DA
;LABEL copybyte_indirect_B0_Y_to_1072_X $80E2
;LABEL copyword_indirect_B0_Y_to_BC_X $80EA
;LABEL copybyte_indirect_B0_Y_to_BC_X $80ED
;LABEL clear_afsp $80F4
;LABEL clear_afsp_loop $80F8
;LABEL clear_afsp_exit $80FD
;LABEL read_afsp_at_TextPointer $80FE
;LABEL read_afsp_at_indirect_BC $8106
;LABEL clear_afsp_and_restoreTextPtr $8109
;LABEL read_afsp_cont $8119
;LABEL read_afsp_next $811B
;LABEL read_afsp_not_fullstop $812A
;LABEL read_afsp_baddrive $8148
;LABEL read_afsp_colon_X_fullstop $814B
;LABEL read_afsp_not_colon $814F
;LABEL read_afsp_numbersign $8160
;LABEL read_afsp_endofstr $8162
;LABEL read_afsp__numbersign_loop $8164
;LABEL read_afsp_not_star_1 $8166
;LABEL read_afsp_not_star_2 $816C
;LABEL read_afsp_cont3 $8177
;LABEL read_afsp_nextchr $817C
;LABEL read_afsp_not_fullstop2 $8185
;LABEL errBAD_FILENAME $818E
;LABEL read_afsp_not_star_3 $819B
;LABEL read_afsp_exit $81A0
;LABEL check_for_Disk_change $81A1
;LABEL errDISK_CHANGED $81AF
;LABEL prt_filename__Y_offset $81C0
;LABEL prt_filename_prt_chr $81D0
;LABEL prt_filename_no_dir $81D6
;LABEL prt_filename_loop $81D8
;LABEL prt_filename_not_locked $81EE
;LABEL prt_Y_spaces $81F4
;LABEL lsr_A_6_times_and_3 $81FB
;LABEL lsr_A_5_times_and_3 $81FC
;LABEL lsr_A_4_times_and_3 $81FD
;LABEL lsr_A_3_times_and_3 $81FE
;LABEL lsr_A_2_times_and_3 $81FF
;LABEL lsr_A_and_3 $8200
;LABEL lsr_A_5_times $8204
;LABEL lsr_A_4_times $8205
;LABEL lsr_A_3_times $8206
;LABEL lsr_A_2_times $8207
;LABEL asl_A_5_times $820A
;LABEL asl_A_4_times $820B
;LABEL asl_A_3_times $820C
;LABEL asl_A_2_times $820D
;LABEL increment_Y_by_8 $8210
;LABEL increment_Y_by_7 $8211
;LABEL increment_Y_by_6 $8212
;LABEL increment_Y_by_5 $8213
;LABEL increment_Y_by_4 $8214
;LABEL increment_Y_by_2 $8215
;LABEL decrement_Y_by_8 $8219
;LABEL decrement_Y_by_7 $821A
;LABEL decrement_Y_by_6 $821B
;LABEL decrement_Y_by_5 $821C
;LABEL decrement_Y_by_4 $821D
;LABEL decrement_Y_by_3 $821E
;LABEL decrement_Y_by_2 $821F
;LABEL BLOCK_Y__init_NMI_vars $8222
;LABEL calsctrksec $8248
;LABEL calctrksec_loop2 $824F
;LABEL calctrksec_loop $8250
;LABEL get_cat_exit_entryfound $825D
;LABEL parameter_afsp $825E
;LABEL parameter_fsp $8262
;LABEL cmd_info_afsp_cmdl $8268
;LABEL get_cat_entry_afsp_at_indirect_BC $826E
;LABEL get_cat_entry $8271
;LABEL err_FILE_NOT_FOUND $8276
;LABEL CMD_INFO $8284
;LABEL cmd_info_loop $828D
;LABEL get_cat_firstentry $8296
;LABEL get_cat_nextentry $829D
;LABEL get_cat_nextentry2 $82A0
;LABEL get_cat_loop $82AD
;LABEL get_cat_notalpha $82BE
;LABEL get_cat_nextchr $82C2
;LABEL get_cat_nomatch_loop $82CB
;LABEL DeleteCatEntry__Y_is_file_offset $82D1
;LABEL get_cat_exit_noentryfound $82EC
;LABEL prt_infoline_exit $82ED
;LABEL alphachr_if_C_0 $82EE
;LABEL alphachr_below_A $82F9
;LABEL alphachr_below_leftbracket $82FA
;LABEL prt_infoline_if_mem10C7_negative $82FC
;LABEL prt_infoline__Y_file_offset $8301
;LABEL prt_hex3byte $8335
;LABEL prt_hex3byte_loop $8337
;LABEL Load_CurDrvCat__preserve_AXY $8347
;LABEL set_CE_CF_driveno $834D
;LABEL set_driveno_to_mem10CB $8352
;LABEL get_driveno_with_init $8358
;LABEL errBAD_DRIVE $8374
;LABEL read_fileattribs__Y_is_offset_of_file $837E
;LABEL read_fileattribs_clear_loop $8388
;LABEL read_fileattribs_copy_loop $8391
;LABEL read_fileattribs_not_locked $83A7
;LABEL read_fileattribs_addrHiBytes $83BB
;LABEL read_fileattribs_exits $83CD
;LABEL read_fileattribs_copy2bytes $83CF
;LABEL read_fileattribs_copy1byte $83D2
;LABEL inc_word_AE $83DA
;LABEL rememberAXY $83E1
;LABEL rAXY_loop_init $83EC
;LABEL rAXY_loop $83EE
;LABEL rAXY_loop2 $83F8
;LABEL rAXY_restore $8404
;LABEL rAXY2_dont_pull_on_return $8411
;LABEL fscv5_star_CAT $841E
;LABEL prt_catalogue2 $8424
;LABEL cat_title_loop $842B
;LABEL cat_print_option_name_loop $847A
;LABEL pcl3 $84C8
;LABEL pcl5 $84DF
;LABEL pcl2 $84E4
;LABEL pcl1 $84F3
;LABEL pcl6 $84F6
;LABEL exit_prt_cat $8500
;LABEL pcl4 $8501
;LABEL disk_options_table $856F
;LABEL get_next_block $857F
;LABEL get_first_block $859E
;LABEL gbpbv0_do_nothing $85B7
;LABEL cmdlist $85B8
;LABEL cmdlist_1 $85B9
;LABEL cmdlist_9 $85C1
;LABEL cmdlist_12 $85CA
;LABEL cmdlist_1C $85D4
;LABEL cmdlist_23 $85DB
;LABEL cmdlist_2C $85E4
;LABEL cmdlist_36 $85EE
;LABEL cmdlist_3C $85F4
;LABEL cmdlist_44 $85FC
;LABEL cmdlist_4D $8605
;LABEL cmdlist_54 $860C
;LABEL cmdlist_5A $8612
;LABEL cmdlist_63 $861B
;LABEL cmdlist_6B $8623
;LABEL cmdlist_72 $862A
;LABEL cmdlist_75 $862D
;LABEL cmdlist_7D $8635
;LABEL discvec $8639
;LABEL cmdlist_84 $863C
;LABEL cmdlist_8B $8643
;LABEL cmdlist_92 $864A
;LABEL cmdlist_99 $8651
;LABEL diskvec $8655
;LABEL cmdlist_A0 $8658
;LABEL cmdlist_A3 $865B
;LABEL cmdlist_A9 $8661
;LABEL cmdutils_vec $8666
;LABEL cmdlist_B1 $8669
;LABEL fscv3_unrec_command $866C
;LABEL unrec_command_at_TextPointer $8671
;LABEL unrec_loop $8678
;LABEL unrec_loop2 $868A
;LABEL unrec_loop3 $8698
;LABEL end_of_cmd_oncmdline $86A7
;LABEL go_cmdcode $86AE
;LABEL set_TextPointer_to_Y_times_100_plus_X $86B8
;LABEL Go_GSINIT__terminator_is_spc_cr_doublequote $86BF
;LABEL CMD_WIPE $86C3
;LABEL CMD_DELETE $86FE
;LABEL CMD_DESTROY $8710
;LABEL msgDELETED $8767
;LABEL CMD_DRIVE $8775
;LABEL Syntax_err_if_no_params $8778
;LABEL set_CurrentDrive $877E
;LABEL osfile0_save_memblock $8786
;LABEL save_memblock $878F
;LABEL osfileFF_load_file_to_addr $8794
;LABEL load_file $879D
;LABEL load_at_LoadAddr $87AB
;LABEL load_copyfileinfo_loop $87B3
;LABEL load_memblock $87C6
;LABEL BLOCK_D_.doREADWRITE $87C9
;LABEL fscv2_and_4_stardiv_or_star_RUN $87D4
;LABEL cmdnotintable1 $87D7
;LABEL errBAD_COMMAND $87FE
;LABEL run_file_found $880A
;LABEL jump_indirect_C0 $883E
;LABEL word_BC_is_TextPointer_and_set_memC0_FF $8841
;LABEL CMD_DIR $884E
;LABEL CMD_LIB $8852
;LABEL code_8860 $8860
;LABEL errBAD_DIRECTORY $888B
;LABEL CMD_TITLE $88A3
;LABEL CMD_ACCESS $88D2
;LABEL errBAD_ATTRIBUTE $890E
;LABEL fscv0__star_OPT $891C
;LABEL errBAD_OPTION $8928
;LABEL set_BootOption__Y_is_option $893E
;LABEL errDISK_FULL $8958
;LABEL createfile_fsp_at_indirect_BC $8961
;LABEL createfile_nodel $896C
;LABEL createfile_2 $899D
;LABEL createfile_loop $89B4
;LABEL createfile_cont2 $89BC
;LABEL createfile_insert_file_loop $89C4
;LABEL createfile_end_of_disk $89D7
;LABEL errCATALOGUE_FULL $8A04
;LABEL code_8a17 $8A17
;LABEL CMD_ENABLE $8A39
;LABEL LoadAddrHi2 $8A3F
;LABEL not_Host $8A52
;LABEL exec_AddrHi2 $8A56
;LABEL CMD_RENAME $8A6D
;LABEL cmd_rename_syntax $8A75
;LABEL cmd_rename_params $8A78
;LABEL cmd_rename_filefound $8A85
;LABEL errFILE_EXISTS $8A99
;LABEL cmd_rename_newnameOK $8AA4
;LABEL cmd_rename_change_loop $8AAB
;LABEL SaveCatToDisk $8AB4
;LABEL BLOCK_X $8AC2
;LABEL savecat_attempts_loop $8AC5
;LABEL check_CurDrvCatalog2 $8AD8
;LABEL check_CurDrvCatalog $8ADE
;LABEL Reset_FDC_seek_OK $8AEA
;LABEL Load_CurDrvCatalog $8AEB
;LABEL RW_CurDrvCat $8AF4
;LABEL Reset_FDC_NMI $8B04
;LABEL FDC_ERROR__A_returns_FDC_result $8B21
;LABEL err_DISK_READ_ONLY $8B28
;LABEL disk_not_write_protected $8B36
;LABEL errDISK_FAULT $8B41
;LABEL errFAULT_DESC $8B4C
;LABEL errDRIVE_FAULT $8B74
;LABEL FDCcmd_from_table_with_Y_index $8B88
;LABEL FDCcmd_from_table_loop $8B8E
;LABEL FDCcmd_from_table_exit_loop $8B9C
;LABEL FDC_drive_ready_reset $8B9E
;LABEL FDC_drive_not_ready $8BB4
;LABEL FDC_drive_ready__Z_1_if_ready $8BBD
;LABEL FDC_readdrvstatus_drv0 $8BCA
;LABEL drv_ctl_outport_table $8BCD
;LABEL set_1074_1075_to_FFFF__AXY_preserved $8BD1
;LABEL Tube_routine__C_0_if_executed $8BDC
;LABEL Tube_routine_init $8BE6
;LABEL Tube_routine_initialised $8C02
;LABEL not_Tube_transfer $8C0F
;LABEL Load_NMI1_read_at_0E00_Tube_init $8C11
;LABEL Load_NMI1_read_at_0E00 $8C16
;LABEL Load_NMI0_write_at_0E00_Tube_init $8C1F
;LABEL Load_NMI0_write_at_0E00 $8C24
;LABEL init_NMI_vars $8C2B
;LABEL FDC_int_request $8C3A
;LABEL FDC_int_request_resultnotzero $8C5F
;LABEL retry_FDC_operation $8C66
;LABEL restore_NMI_vars_loop $8C68
;LABEL FDC_Setup_RW $8C78
;LABEL save_NMI_vars $8C7C
;LABEL save_NMI_vars_loop $8C7E
;LABEL secs_a5_not_1 $8CAB
;LABEL read_less_than_secs_on_track $8CAE
;LABEL FDC_writeparam__A_is_Param $8CB0
;LABEL FDC_writeparam_wait $8CB1
;LABEL FDC_writeparam_exit $8CBC
;LABEL FDC_write_Cmd__A_is_Cmd__returns_C_is_drive $8CBD
;LABEL FDC_write_Cmd__A_is_Cmd__no_drv_select $8CC6
;LABEL FDC_read_result $8CCF
;LABEL FDC_wait_if_busy $8CD6
;LABEL FDC_wait_if_busy_loop $8CD7
;LABEL FDC_cmd_table0 $8CE2
;LABEL FDC_cmd_table6 $8CE8
;LABEL FDC_cmd_tableC $8CEE
;LABEL FDC_cmd_table12 $8CF4
;LABEL FDC_cmd_table18 $8CFA
;LABEL FDC_cmd_table1E $8D00
;LABEL FDC_cmd_table24 $8D06
;LABEL FDC_cmd_table28 $8D0A
;LABEL FDC_cmd_table2B $8D0D
;LABEL NMI0_WRITE $8D12
;LABEL NMI0_WRITE_from_Tube $8D29
;LABEL NMI1_READ $8D32
;LABEL inc_A6_dec_A3__0D38_0D18 $8D4A
;LABEL dec_A3__0D3E_0D1E $8D50
;LABEL NMI_ret_from_int $8D5A
;LABEL NMI2_exit_interrupt $8D5D
;LABEL NMI1_read_to_Tube $8D5E
;LABEL NMI0_1_not_NonDMA_request $8D64
;LABEL FDC_Interrupt_Request $8D71
;LABEL NMI6_READ_to_Mem $8D87
;LABEL NMI4_WRITE_from_Mem $8DA2
;LABEL NMI5_READ_to_Tube $8DBD
;LABEL NMI3_WRITE_from_Tube $8DCD
;LABEL fscv7_hndl_range $8DDD
;LABEL code_8de1_rts $8DE1
;LABEL fscv6_shutdown_filesys $8DE2
;LABEL close_SPOOL_and_EXECfiles $8DE5
;LABEL close_lp1 $8DEA
;LABEL close_lp2 $8DEF
;LABEL findv0_close_file_Y_hndl $8DFA
;LABEL update_cat_and_filetomedia_Y_inthndl $8E05
;LABEL hndl_not_in_use $8E50
;LABEL setup_savetomedia2_Y_intch_set_drv $8E55
;LABEL setup_savetomedia_Y_intch $8E58
;LABEL set_osfilevars_loop $8E5A
;LABEL set_filedrive_Y_is_hndl $8E83
;LABEL setupsavetomedia_diskchanged $8E90
;LABEL FINDV_ENTRY $8E93
;LABEL findv_not_0_openfile $8E9D
;LABEL open_file_for_output $8EB7
;LABEL findv_file_found $8ECB
;LABEL findv_open_for_read $8ED2
;LABEL errTOO_MANY_FILES_OPEN $8EEA
;LABEL errFILE_OPEN $8F02
;LABEL code_8f0b_Y_int_chnl $8F0B
;LABEL code_8f99 $8F99
;LABEL code_8f9e $8F9E
;LABEL code_8fab_loop $8FAB
;LABEL code_8fdd $8FDD
;LABEL argsv_allfiles_to_media2 $8FF2
;LABEL argsv_thisfile_to_media $8FFB
;LABEL ARGSV_ENTRY_X_is_zp_ctl_blk $9007
;LABEL argsv_Y_is_0 $901C
;LABEL argsv_exit $902D
;LABEL argsv_rdseqptr_or_filelen $902E
;LABEL is_hndl_in_use__Y_intch__C_0_if_yes $9051
;LABEL hndl_in_use_exitC_is_1 $9070
;LABEL hndl_in_use_exitC_is_0 $9073
;LABEL conv_X_hndl_intch $9076
;LABEL conv_Y_hndl_intch $907B
;LABEL conv_hndl_X_entry $907D
;LABEL conv_hndl_less_than_10h $9085
;LABEL conv_hndl_less_than_18h $9087
;LABEL fscv1_is_EOF $908D
;LABEL code_909f $909F
;LABEL code_90a1 $90A1
;LABEL check_channel_ok_exit $90A4
;LABEL check_channel__Y_is_hndl__exit_Y_is_intch $90A5
;LABEL errCHANNEL $90AD
;LABEL errEOF $90B9
;LABEL BGETV_ENTRY $90C1
;LABEL code_90e0__Y_is_intch $90E0
;LABEL code_9121_Y_is_intchnl $9121
;LABEL code_913a_Y_is_intchnl $913A
;LABEL code_9143_Y_is_intchnl $9143
;LABEL file_to_media_Y $914B
;LABEL file_C_1_from_C_0_to_media_Y $9153
;LABEL write_to_media $916F
;LABEL read_from_media $9186
;LABEL code_918c $918C
;LABEL file_to_from_media_exit $918F
;LABEL errchannel_2 $9190
;LABEL errfilelocked_2 $9193
;LABEL errFILE_READ_ONLY $9196
;LABEL bput_Y_is_intchan $91A4
;LABEL BPUTV_ENTRY $91AA
;LABEL errCANT_EXTEND $9211
;LABEL code_9222 $9222
;LABEL code_9223 $9223
;LABEL code_923D $923D
;LABEL code_9299_loop $9299
;LABEL code_92A6_RTS $92A6
;LABEL argsv_write_SeqPointer $92A7
;LABEL wsp_loop $92B6
;LABEL code_92c3__Y_intchnl $92C3
;LABEL code_92f8__Y_intch $92F8
;LABEL code_92f8_exit $930F
;LABEL cmp_new_PTR_with_EXT $9310
;LABEL AUTOBOOT $9320
;LABEL inf_ACORNDFS $9328
;LABEL CMD_DISK $9338
;LABEL init_DFS $933B
;LABEL vect_loop $9348
;LABEL extended_vec_loop $935C
;LABEL copy_PWStoSWS_loop $938E
;LABEL code_93a1_loop $93A1
;LABEL absinited $93B0
;LABEL setup_abs $93B2
;LABEL BLOCK_Z $93ED
;LABEL init_loop $93FE
;LABEL init_cont $9404
;LABEL errFILE_NOT_FOUND $9427
;LABEL bootopt0_do_nothing $943B
;LABEL bootfile_found $943C
;LABEL boot_opt3_exec $9442
;LABEL boot_opt2_run $9448
;LABEL boot_opt1_load $944E
;LABEL boot_oscli $9452
;LABEL SERVICE_claim_abs_workspace $9455
;LABEL SERVICE_claim_priv_workspace $9460
;LABEL dont_Start_DFS $947D
;LABEL SERVICE_autoboot $947E
;LABEL SERVICE_unrec_command $949B
;LABEL SERVICE_help $94A7
;LABEL SERVICE_claim_statworkspace $94BD
;LABEL stat_loop1 $94CF
;LABEL stat_Y_lessthan_C0 $94D8
;LABEL stat_Y_greaterequal_C0 $94DB
;LABEL exit_ServiceCalls $94E9
;LABEL SERVICE_unrec_osword $94EA
;LABEL new_Calls $9503
;LABEL osword7F_dont_reset $950B
;LABEL osword7F_param_loop $9538
;LABEL osword7F_result $9541
;LABEL not_osword7F $954B
;LABEL osword7E $9562
;LABEL not_DFS_osword $957A
;LABEL FILEV_ENTRY $957B
;LABEL filev_copyparams_loop $9593
;LABEL filev_unknown_op $95A9
;LABEL FSCV_ENTRY $95AA
;LABEL argsv_restcmdlineaddr $95BD
;LABEL gbpbv_unrec_op $95CF
;LABEL GBPBV_ENTRY $95D0
;LABEL gbpb_cblk_loop $95FF
;LABEL gbpb_not_Tube $9617
;LABEL gbpb_not_Tube2 $9626
;LABEL gpbp_JMP_indirect_10d8 $962A
;LABEL gbpb_A_is_1_to_4 $962D
;LABEL gbpb_copy_seqptr $962F
;LABEL gbpb_skip_set_ptr $9644
;LABEL gpbp_copy_back_seq_ptr $9649
;LABEL gpbp_loop $9656
;LABEL gpbp_loop_entry $9663
;LABEL gpbp_exit_err $966B
;LABEL gpbp_copy_back_ctl_blk $9679
;LABEL gbpb8_rd_files_curdir $9683
;LABEL gbpb5_get_media_title $96CF
;LABEL gbpb6_rd_curdir_and_device $9700
;LABEL gbpb7_rd_curlib_and_device $9714
;LABEL wB8_is_w1061_X_is_0 $9728
;LABEL inc_1061 $9737
;LABEL inc_1060_X $973C
;LABEL code_973e_loop $973E
;LABEL code_9747_exit $9747
;LABEL invert_1065_to_1068 $9748
;LABEL invert_1065_to_1068_loop $974A
;LABEL copy_107D_107E_to_B4_B5 $9756
;LABEL gbpb_gb_err $9760
;LABEL gbpb_get_bytes $9765
;LABEL gbpb_gb_SAVEBYTE $976A
;LABEL gBpb_gb_fromhost $9775
;LABEL gbpb_put_bytes $977D
;LABEL gpbp_pb_LOADBYTE $9785
;LABEL gbp_pb_from_host $9790
;LABEL fscv_os_about_to_proc_cmd $9798
;LABEL osfile5_rdcatinfo $97A1
;LABEL osfile6_delfile $97AA
;LABEL osfile1_updatecat $97B5
;LABEL osfile2_wrloadaddr $97C0
;LABEL osfile3_wrexecaddr $97C8
;LABEL osfile4_wrattribs $97D0
;LABEL check_file_NotLocked $983C
;LABEL errFILE_LOCKED $9841
;LABEL check_file_NotOpen $984C
;LABEL code_985a $985A
;LABEL code_9864 $9864
;LABEL code_986e $986E
;LABEL checkexit $9878
;LABEL claim_StaticWorkspace $988F
;LABEL set_PrivateWorkspacePointer_indirect_B0 $989E
;LABEL BLOCK_A__claim_NMI__A_is_code_no_from_0_to_6 $98AC
;LABEL already_own_NMI $98C3
;LABEL claim_NMI_exit $98E6
;LABEL release_NMI_Wait_FDC_busy $98E7
;LABEL release_NMI $98EA
;LABEL release_NMI_clr10c9 $9900
;LABEL osbyteC7_rw_spool_hndl_Y $9911
;LABEL osbyte03_output_stream_A $9917
;LABEL osbyte03_output_stream_X $9918
;LABEL osbyteEC_chr_destination_status_AND_Y_EOR_X $991C
;LABEL osbyteC7_spool_hdl $9920
;LABEL osbyteEA_is_Tube $9924
;LABEL osbyteA8_rom_pointer_table $9928
;LABEL osbyte8F_issue_service_request $992C
;LABEL osbyteFF_startupopts $9930
;LABEL do_osbyte_X_0__Y_FF $9932
;LABEL do_osbyte_Y_FF $9934
;LABEL do_osbyte $9936
;LABEL boot_table $9939
;LABEL vectors_table $9949
;LABEL extendedvectors_table $9957
;LABEL fscv_table1 $996C
;LABEL fscv_table2 $9975
;LABEL args_y_0_tableLo $997E
;LABEL args_y_0_tableHi $9981
;LABEL finv_tablelo $9984
;LABEL finv_tablehi $998C
;LABEL NMI_table1 $9994
;LABEL NMI_table2 $999B
;LABEL NMI_table3 $99A2
;LABEL NMI_table4 $99A9
;LABEL gbpbv_table1 $99AB
;LABEL gbpbv_table2 $99B4
;LABEL gbpbv_table3 $99BD
;LABEL CMD_DFS $99C6
;LABEL prt_help $99CB
;LABEL help_dfs_loop $99DB
;LABEL morehelp $99E9
;LABEL CMD_UTILS $99EE
;LABEL CMD_NOTHELPTBL $99F5
;LABEL cmd_not_help_tlb_loop $99FA
;LABEL init_param $9A01
;LABEL syntax_err $9A06
;LABEL prt_cmd_at_memB8_plus_1 $9A19
;LABEL prt_cmd_loop $9A1B
;LABEL prt_param $9A34
;LABEL prt_param.2 $9A43
;LABEL prt_param.3 $9A48
;LABEL prt_param.4 $9A4B
;LABEL prt_param_loop4 $9A4E
;LABEL prt_param_exit $9A5A
;LABEL parameter_table $9A5B
;LABEL CMD_COMPACT $9AC0
;LABEL msgCOMPACTING_DRIVE $9AC3
;LABEL compact_loop $9AFB
;LABEL msgDISK_COMPACTED $9B04
;LABEL msgFREE_SECTORS $9B2C
;LABEL argsv_return_curfilesystem $9B3D
;LABEL compact_move_file $9B40
;LABEL code_9b97 $9B97
;LABEL code_9bb2 $9BB2
;LABEL code_9bb5 $9BB5
;LABEL ENABLED_CMD $9BBD
;LABEL errNOT_ENABLED $9BC2
;LABEL get_Drives_to_10D2_10D3_and_CalcRam_and_GiveMsg $9BD2
;LABEL msgCOPYING_FROM_DRIVE $9C02
;LABEL msgTO_DRIVE $9C1E
;LABEL insertdisk_2 $9C38
;LABEL insertdisk_checkopt2 $9C43
;LABEL insertdisk_dontprompt $9C4A
;LABEL insertdisk_checkopt $9C4B
;LABEL insertdisk_checkoptwith_A $9C4D
;LABEL insertdisk_A_is_opt $9C51
;LABEL msgINSERT $9C53
;LABEL msgSOURCE $9C62
;LABEL msgDESTINATION $9C6D
;LABEL msgDISK_AND_HIT_A_KEY $9C7C
;LABEL confirm_YN__Z_is_1_if_Yes $9C9E
;LABEL confirm_YN_yes $9CAF
;LABEL confirm_YN_error $9CB4
;LABEL errDiskFull2 $9CB8
;LABEL CMD_BACKUP $9CBB
;LABEL code_9d09 $9D09
;LABEL CMD_COPY $9D27
;LABEL code_9d50_loop $9D50
;LABEL createcatfile_on_target $9DB7
;LABEL set_vars $9DF5
;LABEL set_vars_loop $9DF7
;LABEL movefile_from_disk1to2 $9E06
;LABEL movefile_loop $9E0F
;LABEL movefile_skip_createcatentry $9E4B
;LABEL CMD_TYPE $9E87
;LABEL CMD_LIST $9E8E
;LABEL jmp_FILE_NOT_FOUND $9EA1
;LABEL CMD_DUMP $9ED0
;LABEL cmd_dump_prt_chr $9F2E
;LABEL CMD_BUILD $9F48
;LABEL code_9f92 $9F92
;LABEL prt_NewLine $9F9A
;LABEL code_9fa2 $9FA2
;LABEL code_9fb7 $9FB7
;LABEL code_9fc1 $9FC1
;LABEL code_9fc6 $9FC6
;LABEL prt_2spc_or_put_at_100 $9FCB
;LABEL prt_spc_or_put_at_100 $9FCE
;LABEL ltrim_at_TextPointer_Y $9FD7
;LABEL ltrim_loop $9FDE
;LABEL ltrimnoerror $9FEC
LABEL sheila_FE30_romsel $FE30
LABEL sheila_FE80_fdc0 $FE80
LABEL sheila_FE81 $FE81
LABEL sheila_FE82 $FE82
LABEL sheila_FE84_fdc4 $FE84
LABEL sheila_FEA0_econet0 $FEA0
LABEL sheila_FEA1_econet1 $FEA1
LABEL sheila_FEE0_tube0 $FEE0
LABEL sheila_FEE1_tube1 $FEE1
LABEL sheila_FEE5_tube5 $FEE5
LABEL os_gsinit $FFC2
LABEL os_gsread $FFC5
LABEL os_find $FFCE
LABEL os_gbpb $FFD1
LABEL os_bput $FFD4
LABEL os_bget $FFD7
LABEL os_args $FFDA
LABEL os_file $FFDD
LABEL os_rdch $FFE0
LABEL os_asci $FFE3
LABEL os_newl $FFE7
LABEL os_wrch $FFEE
LABEL os_word $FFF1
LABEL os_byte $FFF4
LABEL os_cli $FFF7

; ============= CODE
LABEL code_00A9 $00A9
LABEL code_0100 $0100
LABEL code_0D1E $0D1E
LABEL code_0D38 $0D38
LABEL code_0D3E $0D3E
LABEL code_203A $203A
LABEL code_7461 $7461
;LABEL code_80D3 $80D3
;LABEL code_8264 $8264
;LABEL code_82D4 $82D4
;LABEL code_835D $835D
;LABEL code_83E0 $83E0
;LABEL code_8435 $8435
;LABEL code_8505 $8505
;LABEL code_8513 $8513
;LABEL code_851B $851B
;LABEL code_8537 $8537
;LABEL code_8551 $8551
;LABEL code_8558 $8558
;LABEL code_8561 $8561
;LABEL code_86CC $86CC
;LABEL code_86E0 $86E0
;LABEL code_86E3 $86E3
;LABEL code_86E9 $86E9
;LABEL code_871C $871C
;LABEL code_8727 $8727
;LABEL code_8748 $8748
;LABEL code_874E $874E
;LABEL code_875F $875F
;LABEL code_8854 $8854
;LABEL code_8870 $8870
;LABEL code_8876 $8876
;LABEL code_8899 $8899
;LABEL code_88A0 $88A0
;LABEL code_88B0 $88B0
;LABEL code_88B6 $88B6
;LABEL code_88C3 $88C3
;LABEL code_88C6 $88C6
;LABEL code_88CE $88CE
;LABEL code_88E2 $88E2
;LABEL code_88EC $88EC
;LABEL code_8903 $8903
;LABEL code_8905 $8905
;LABEL code_8933 $8933
;LABEL code_893A $893A
;LABEL code_89DC $89DC
;LABEL code_89E7 $89E7
;LABEL code_8A69 $8A69
;LABEL code_8C35 $8C35
;LABEL code_8D9E $8D9E
;LABEL code_8DB9 $8DB9
;LABEL code_8DCB $8DCB
;LABEL code_8DDB $8DDB
;LABEL code_8DED $8DED
;LABEL code_8E4D $8E4D
;LABEL code_8EBC $8EBC
;LABEL code_8ED7 $8ED7
;LABEL code_8EE5 $8EE5
;LABEL code_8F10 $8F10
;LABEL code_8F28 $8F28
;LABEL code_8F6E $8F6E
;LABEL code_8F83 $8F83
;LABEL code_8F92 $8F92
;LABEL code_8FC3 $8FC3
;LABEL code_8FD7 $8FD7
;LABEL code_8FE7 $8FE7
;LABEL code_8FF1 $8FF1
;LABEL code_9002 $9002
;LABEL code_9064 $9064
;LABEL code_90EF $90EF
;LABEL code_911E $911E
;LABEL code_913C $913C
;LABEL code_9141 $9141
;LABEL code_9146 $9146
;LABEL code_91B0 $91B0
;LABEL code_920C $920C
;LABEL code_9255 $9255
;LABEL code_9259 $9259
;LABEL code_928C $928C
;LABEL code_9399 $9399
;LABEL code_939C $939C
;LABEL code_945F $945F
;LABEL code_9498 $9498
;LABEL code_94A4 $94A4
;LABEL code_9651 $9651
;LABEL code_9698 $9698
;LABEL code_96A9 $96A9
;LABEL code_96B2 $96B2
;LABEL code_96B9 $96B9
;LABEL code_96C5 $96C5
;LABEL code_96DC $96DC
;LABEL code_96E7 $96E7
;LABEL code_9761 $9761
;LABEL code_97A0 $97A0
;LABEL code_97D6 $97D6
;LABEL code_97D9 $97D9
;LABEL code_97DF $97DF
;LABEL code_97FB $97FB
;LABEL code_9816 $9816
;LABEL code_981E $981E
;LABEL code_982B $982B
;LABEL code_9837 $9837
;LABEL code_984F $984F
;LABEL code_985F $985F
;LABEL code_9863 $9863
;LABEL code_9879 $9879
;LABEL code_98D2 $98D2
;LABEL code_9906 $9906
;LABEL code_990D $990D
;LABEL code_9A27 $9A27
;LABEL code_9BD7 $9BD7
;LABEL code_9BDA $9BDA
;LABEL code_9BFF $9BFF
;LABEL code_9C37 $9C37
;LABEL code_9D35 $9D35
;LABEL code_9D49 $9D49
;LABEL code_9DA4 $9DA4
;LABEL code_9DD0 $9DD0
;LABEL code_9E1E $9E1E
;LABEL code_9E6C $9E6C
;LABEL code_9E77 $9E77
;LABEL code_9E82 $9E82
;LABEL code_9E93 $9E93
;LABEL code_9EA4 $9EA4
;LABEL code_9EB8 $9EB8
;LABEL code_9EBF $9EBF
;LABEL code_9EC7 $9EC7
;LABEL code_9EC8 $9EC8
;LABEL code_9ECB $9ECB
;LABEL code_9EE4 $9EE4
;LABEL code_9EFB $9EFB
;LABEL code_9F0D $9F0D
;LABEL code_9F10 $9F10
;LABEL code_9F1E $9F1E
;LABEL code_9F22 $9F22
;LABEL code_9F2C $9F2C
;LABEL code_9F43 $9F43
;LABEL code_9F52 $9F52
;LABEL code_9F7A $9F7A
;LABEL code_9F81 $9F81
LABEL code_BAA5 $BAA5

; ============= DATA
LABEL data_0000 $0000 ; ( accesses: 6 )
LABEL data_0001 $0001 ; ( accesses: 4 )
LABEL data_0002 $0002 ; ( accesses: 4 )
LABEL data_0003 $0003 ; ( accesses: 2 )
LABEL data_00A0 $00A0 ; ( accesses: 2 )
LABEL data_00A1 $00A1 ; ( accesses: 2 )
LABEL data_00A2 $00A2 ; ( accesses: 3 )
LABEL data_00A3 $00A3 ; ( accesses: 5 )
LABEL data_00A4 $00A4 ; ( accesses: 5 )
LABEL data_00A5 $00A5 ; ( accesses: 8 )
LABEL data_00A6 $00A6 ; ( accesses: 10 )
LABEL data_00A7 $00A7 ; ( accesses: 6 )
LABEL data_00A8 $00A8 ; ( accesses: 15 )
LABEL data_00A9 $00A9 ; ( accesses: 10 )
LABEL data_00AA $00AA ; ( accesses: 12 )
LABEL data_00AB $00AB ; ( accesses: 9 )
LABEL data_00AC $00AC ; ( accesses: 12 )
LABEL data_00AD $00AD ; ( accesses: 3 )
LABEL data_00AE $00AE ; ( accesses: 7 )
LABEL data_00AF $00AF ; ( accesses: 4 )
LABEL data_00B0 $00B0 ; ( accesses: 53 )
LABEL data_00B1 $00B1 ; ( accesses: 7 )
LABEL data_00B2 $00B2 ; ( accesses: 2 )
LABEL data_00B3 $00B3 ; ( accesses: 12 )
LABEL data_00B4 $00B4 ; ( accesses: 10 )
LABEL data_00B5 $00B5 ; ( accesses: 7 )
LABEL data_00B6 $00B6 ; ( accesses: 4 )
LABEL data_00B8 $00B8 ; ( accesses: 9 )
LABEL data_00B9 $00B9 ; ( accesses: 2 )
LABEL data_00BA $00BA ; ( accesses: 5 )
LABEL data_00BB $00BB ; ( accesses: 5 )
LABEL data_00BC $00BC ; ( accesses: 15 )
LABEL data_00BD $00BD ; ( accesses: 7 )
LABEL data_00BE $00BE ; ( accesses: 9 )
LABEL data_00BF $00BF ; ( accesses: 7 )
LABEL data_00C0 $00C0 ; ( accesses: 4 )
LABEL data_00C1 $00C1 ; ( accesses: 2 )
LABEL data_00C2 $00C2 ; ( accesses: 9 )
LABEL data_00C3 $00C3 ; ( accesses: 11 )
LABEL data_00C4 $00C4 ; ( accesses: 20 )
LABEL data_00C5 $00C5 ; ( accesses: 13 )
LABEL data_00C6 $00C6 ; ( accesses: 14 )
LABEL data_00C7 $00C7 ; ( accesses: 19 )
LABEL data_00C8 $00C8 ; ( accesses: 7 )
LABEL data_00C9 $00C9 ; ( accesses: 5 )
LABEL data_00CA $00CA ; ( accesses: 10 )
LABEL data_00CB $00CB ; ( accesses: 10 )
LABEL data_00CC $00CC ; ( accesses: 5 )
LABEL data_00CE $00CE ; ( accesses: 10 )
LABEL data_00CF $00CF ; ( accesses: 16 )
LABEL data_0100 $0100 ; ( accesses: 4 )
LABEL data_0101 $0101 ; ( accesses: 1 )
LABEL data_0103 $0103 ; ( accesses: 1 )
LABEL data_0105 $0105 ; ( accesses: 1 )
LABEL data_0106 $0106 ; ( accesses: 1 )
LABEL data_0107 $0107 ; ( accesses: 2 )
LABEL data_0109 $0109 ; ( accesses: 1 )
LABEL data_010B $010B ; ( accesses: 1 )
LABEL data_0D00 $0D00 ; ( accesses: 2 )
LABEL data_0E00 $0E00 ; ( accesses: 3 )
LABEL data_0E07 $0E07 ; ( accesses: 3 )
LABEL data_0E08 $0E08 ; ( accesses: 11 )
LABEL data_0E0E $0E0E ; ( accesses: 1 )
LABEL data_0E0F $0E0F ; ( accesses: 17 )
LABEL data_0E10 $0E10 ; ( accesses: 1 )
LABEL data_0EF8 $0EF8 ; ( accesses: 3 )
LABEL data_0F04 $0F04 ; ( accesses: 7 )
LABEL data_0F05 $0F05 ; ( accesses: 11 )
LABEL data_0F06 $0F06 ; ( accesses: 15 )
LABEL data_0F07 $0F07 ; ( accesses: 9 )
LABEL data_0F08 $0F08 ; ( accesses: 7 )
LABEL data_0F09 $0F09 ; ( accesses: 1 )
LABEL data_0F0A $0F0A ; ( accesses: 1 )
LABEL data_0F0B $0F0B ; ( accesses: 1 )
LABEL data_0F0C $0F0C ; ( accesses: 5 )
LABEL data_0F0D $0F0D ; ( accesses: 5 )
LABEL data_0F0E $0F0E ; ( accesses: 22 )
LABEL data_0F0F $0F0F ; ( accesses: 7 )
LABEL data_0F10 $0F10 ; ( accesses: 1 )
LABEL data_1000 $1000 ; ( accesses: 2 )
LABEL data_1040 $1040 ; ( accesses: 2 )
LABEL data_1045 $1045 ; ( accesses: 2 )
LABEL data_1047 $1047 ; ( accesses: 1 )
LABEL data_104D $104D ; ( accesses: 1 )
LABEL data_104E $104E ; ( accesses: 1 )
LABEL data_1050 $1050 ; ( accesses: 1 )
LABEL data_1058 $1058 ; ( accesses: 2 )
LABEL data_1060 $1060 ; ( accesses: 8 )
LABEL data_1061 $1061 ; ( accesses: 1 )
LABEL data_1062 $1062 ; ( accesses: 2 )
LABEL data_1063 $1063 ; ( accesses: 1 )
LABEL data_1064 $1064 ; ( accesses: 1 )
LABEL data_1065 $1065 ; ( accesses: 2 )
LABEL data_1067 $1067 ; ( accesses: 2 )
LABEL data_1069 $1069 ; ( accesses: 4 )
LABEL data_1072 $1072 ; ( accesses: 2 )
LABEL data_1073 $1073 ; ( accesses: 3 )
LABEL data_1074 $1074 ; ( accesses: 9 )
LABEL data_1075 $1075 ; ( accesses: 7 )
LABEL data_1076 $1076 ; ( accesses: 3 )
LABEL data_1077 $1077 ; ( accesses: 3 )
LABEL data_1078 $1078 ; ( accesses: 2 )
LABEL data_1079 $1079 ; ( accesses: 1 )
LABEL data_107A $107A ; ( accesses: 1 )
LABEL data_107C $107C ; ( accesses: 4 )
LABEL data_107D $107D ; ( accesses: 2 )
LABEL data_107E $107E ; ( accesses: 2 )
LABEL data_107F $107F ; ( accesses: 2 )
LABEL data_1080 $1080 ; ( accesses: 2 )
LABEL data_1081 $1081 ; ( accesses: 3 )
LABEL data_1082 $1082 ; ( accesses: 4 )
LABEL data_10C0 $10C0 ; ( accesses: 10 )
LABEL data_10C1 $10C1 ; ( accesses: 2 )
LABEL data_10C2 $10C2 ; ( accesses: 17 )
LABEL data_10C3 $10C3 ; ( accesses: 3 )
LABEL data_10C4 $10C4 ; ( accesses: 3 )
LABEL data_10C5 $10C5 ; ( accesses: 4 )
LABEL data_10C6 $10C6 ; ( accesses: 3 )
LABEL data_10C7 $10C7 ; ( accesses: 3 )
LABEL data_10C8 $10C8 ; ( accesses: 5 )
LABEL data_10C9 $10C9 ; ( accesses: 5 )
LABEL data_10CA $10CA ; ( accesses: 6 )
LABEL data_10CB $10CB ; ( accesses: 7 )
LABEL data_10CC $10CC ; ( accesses: 4 )
LABEL data_10CD $10CD ; ( accesses: 4 )
LABEL data_10CE $10CE ; ( accesses: 7 )
LABEL data_10CF $10CF ; ( accesses: 2 )
LABEL data_10D0 $10D0 ; ( accesses: 4 )
LABEL data_10D1 $10D1 ; ( accesses: 3 )
LABEL data_10D2 $10D2 ; ( accesses: 8 )
LABEL data_10D3 $10D3 ; ( accesses: 7 )
LABEL data_10D4 $10D4 ; ( accesses: 1 )
LABEL data_10D6 $10D6 ; ( accesses: 5 )
LABEL data_10D7 $10D7 ; ( accesses: 4 )
LABEL data_10D8 $10D8 ; ( accesses: 5 )
LABEL data_10D9 $10D9 ; ( accesses: 2 )
LABEL data_10DA $10DA ; ( accesses: 4 )
LABEL data_10DB $10DB ; ( accesses: 4 )
LABEL data_10DC $10DC ; ( accesses: 2 )
LABEL data_10DD $10DD ; ( accesses: 2 )
LABEL data_10DE $10DE ; ( accesses: 10 )
LABEL data_1100 $1100 ; ( accesses: 6 )
LABEL data_1109 $1109 ; ( accesses: 2 )
LABEL data_110B $110B ; ( accesses: 2 )
LABEL data_110C $110C ; ( accesses: 5 )
LABEL data_110D $110D ; ( accesses: 5 )
LABEL data_110E $110E ; ( accesses: 2 )
LABEL data_110F $110F ; ( accesses: 3 )
LABEL data_1110 $1110 ; ( accesses: 8 )
LABEL data_1111 $1111 ; ( accesses: 9 )
LABEL data_1112 $1112 ; ( accesses: 9 )
LABEL data_1113 $1113 ; ( accesses: 4 )
LABEL data_1114 $1114 ; ( accesses: 6 )
LABEL data_1115 $1115 ; ( accesses: 4 )
LABEL data_1116 $1116 ; ( accesses: 4 )
LABEL data_1117 $1117 ; ( accesses: 14 )
LABEL data_1119 $1119 ; ( accesses: 3 )
LABEL data_111A $111A ; ( accesses: 3 )
LABEL data_111B $111B ; ( accesses: 2 )
LABEL data_111C $111C ; ( accesses: 3 )
LABEL data_111D $111D ; ( accesses: 4 )
LABEL data_7264 $7264 ; ( accesses: 1 )
;LABEL data_993C $993C ; ( accesses: 2 )

8000                .rom_language_entry  ; ( No direct access )
8000  00 00 00                 ...

8003                .rom_service_entry  ; ( No direct access )
8003  4C 55 94  LU.  	JMP SERVICE_claim_abs_workspace

8006                .rom_type  ; ( No direct access )
8006  82                       .

8007                .rom_copyright_offset  ; ( No direct access )
8007  11                       .

8008                .rom_binary_version_no  ; ( No direct access )
8008  5A                       Z

8009                .rom_title  ; ( No direct access )
8009  44 46 53 00 30 2E 39 30  DFS.0.90
8011  

8011                .rom_copyright  ; ( No direct access )
8011  00 28 43 29              .(C)

8015                .go_FSCV  ; ( ABSOLUTE=1 )
8015  6C 1E 02  l..  	JMP (osvector_fsc)

8018                .errDISK  ; ( ABSOLUTE=3 )
8018  20 5B 80   [.  	JSR Brk100_noerrno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"
801B  44 69 73 6B 20           Disk 
8020  90 11     ..   	BCC Brk100_errno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"

8022                .errBAD  ; ( ABSOLUTE=6 )
8022  20 5B 80   [.  	JSR Brk100_noerrno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"
8025  42 61 64 20              Bad 
8029  90 08     ..   	BCC Brk100_errno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"

802B                .errFILE  ; ( ABSOLUTE=5 )
802B  20 5B 80   [.  	JSR Brk100_noerrno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"
802E  46 69 6C 65 20           File 

8033                .Brk100_errno__terminator_0_causes_BRK  ; ( ABSOLUTE=9 RELATIVE=2 ) ; "(terminator=0 causes BRK)"
8033  85 B3     ..   	STA data_B3                     ; "save A"
8035  68        h    	PLA

8036                .pull_addr_and_store_at_AE  ; ( No direct access )
8036  85 AE     ..   	STA data_AE                     ; "first byte=addr+1"
8038  68        h    	PLA
8039  85 AF     ..   	STA data_AF
803B  A5 B3     ..   	LDA data_B3                     ; "restore A"
803D  48        H    	PHA                             ; "save A & Y"
803E  98        .    	TYA
803F  48        H    	PHA
8040  A0 00     ..   	LDY #$00
8042  20 DA 83   ..  	JSR inc_word_AE
8045  B1 AE     ..   	LDA (data_AE),Y                 ; "first byte"
8047  8D 01 01  ...  	STA data_0101                    ; "error number"
804A  2C DE 10  ,..  	BIT data_10DE                    ; "is counter already set??"
804D  10 25     .%   	BPL prt_str_loop                ; "if ?10DE<&80"
804F  A9 02     ..   	LDA #$02                        ; "set counter"
8051  8D DE 10  ...  	STA data_10DE
8054  A9 00     ..   	LDA #$00                        ; "?&100 = BRK"
8056  8D 00 01  ...  	STA data_0100
8059  F0 19     ..   	BEQ prt_str_loop                ; "always go 8074"

805B                .Brk100_noerrno__terminator_0_causes_BRK  ; ( ABSOLUTE=3 ) ; "(terminator=0 causes BRK)"
805B  A9 02     ..   	LDA #$02
805D  8D DE 10  ...  	STA data_10DE                    ; "add100 counter"
8060  A9 00     ..   	LDA #$00
8062  8D 00 01  ...  	STA data_0100                    ; "?&100=BRK"

8065                .prt_str__if_terminator_0_do_BRK_100  ; ( ABSOLUTE=23 ) ; "(if terminator=0, BRK 100, no return)"
8065  85 B3     ..   	STA data_B3                     ; "save A"
8067  68        h    	PLA                             ; "pull "return address""
8068  85 AE     ..   	STA data_AE                     ; "store at AE"
806A  68        h    	PLA
806B  85 AF     ..   	STA data_AF
806D  A5 B3     ..   	LDA data_B3
806F  48        H    	PHA                             ; "save A & Y"
8070  98        .    	TYA
8071  48        H    	PHA
8072  A0 00     ..   	LDY #$00

8074                .prt_str_loop  ; ( ABSOLUTE=1 RELATIVE=2 )
8074  20 DA 83   ..  	JSR inc_word_AE              ; "1st:return addr + 1 = start"
8077  B1 AE     ..   	LDA (data_AE),Y
8079  30 08     0.   	BMI prt_str_return              ; "if >=&80"
807B  F0 0D     ..   	BEQ prt_str_BRK                 ; "if =0"
807D  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"
8080  4C 74 80  Lt.  	JMP prt_str_loop             ; "loop"
8083                .prt_str_return  ; ( RELATIVE=1 )
8083  68        h    	PLA                             ; "return to code after string"
8084  A8        .    	TAY
8085  68        h    	PLA
8086  18        .    	CLC                             ; "C=0"
8087  6C AE 00  l..  	JMP (data_00AE)                 ; "A,X & Y as on entry to prtstr"

808A                .prt_str_BRK  ; ( ABSOLUTE=2 RELATIVE=1 )
808A  A9 00     ..   	LDA #$00                        ; "terminate string with 0"
808C  AE DE 10  ...  	LDX data_10DE
808F  9D 00 01  ...  	STA data_0100,X
8092  A9 FF     ..   	LDA #$FF                        ; "reset 10DE pointer"
8094  8D DE 10  ...  	STA data_10DE
8097  4C 00 01  L..  	JMP code_0100

809A                .prt_fullstop  ; ( ABSOLUTE=3 )
809A  A9 2E     ..   	LDA #$2E                        ; "Full stop!"

809C                .prt_chr_or_store_at_100_X  ; ( ABSOLUTE=16 ) ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"
809C  20 E1 83   ..  	JSR rememberAXY              ; "if ?&10DE<&80 then add100"
809F  2C DE 10  ,..  	BIT data_10DE
80A2  10 14     ..   	BPL prt_chr_at_100_plus_index_10DE
80A4  48        H    	PHA                             ; "save A"
80A5  20 1C 99   ..  	JSR osbyteEC_chr_destination_status_AND_Y_EOR_X
80A8  8A        .    	TXA                             ; "X=old value chr dest"
80A9  48        H    	PHA                             ; "save X"
80AA  09 10     ..   	ORA #$10                        ; "disable spooled output"
80AC  20 17 99   ..  	JSR osbyte03_output_stream_A
80AF  68        h    	PLA                             ; "restore X(oldchrdest) & A"
80B0  AA        .    	TAX
80B1  68        h    	PLA
80B2  20 E3 FF   ..  	JSR os_asci                  ; "print 'A' 0D=new line"
80B5  4C 18 99  L..  	JMP osbyte03_output_stream_X
80B8                .prt_chr_at_100_plus_index_10DE  ; ( RELATIVE=1 )
80B8  AE DE 10  ...  	LDX data_10DE                    ; "add chr at 100+?&10DE"
80BB  9D 00 01  ...  	STA data_0100,X
80BE  EE DE 10  ...  	INC data_10DE                    ; "inc ?&10DE"
80C1  60        `    	RTS                             ; "end"

80C2                .prt_hex_A  ; ( ABSOLUTE=10 ) ; "A preserved"
80C2  48        H    	PHA
80C3  20 05 82   ..  	JSR lsr_A_4_times
80C6  20 CA 80   ..  	JSR prt_hex_lower_4bits_of_A
80C9  68        h    	PLA

80CA                .prt_hex_lower_4bits_of_A  ; ( ABSOLUTE=11 )
80CA  48        H    	PHA                             ; "preserved"
80CB  29 0F     ).   	AND #$0F
80CD  C9 0A     ..   	CMP #$0A                        ; "A>=&A"
80CF  90 02     ..   	BCC code_80D3
80D1  69 06     i.   	ADC #$06                        ; "yes A=A+6"
80D3                .code_80D3  ;( RELATIVE=1 )
80D3  69 30     i0   	ADC #$30                        ; "A=A+30"
80D5  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"
80D8  68        h    	PLA
80D9  60        `    	RTS

80DA                .copyvars_indirect_B0_Y_to_BC_X__and__indirect_B0_Y_plus_2_to_1072_X  ; ( ABSOLUTE=2 )
80DA  20 EA 80   ..  	JSR copyword_indirect_B0_Y_to_BC_X    ; "private+Y -> BC+X"
80DD  CA        .    	DEX                             ; "private+Y+2->1072+X"
80DE  CA        .    	DEX
80DF  20 E2 80   ..  	JSR copybyte_indirect_B0_Y_to_1072_X

80E2                .copybyte_indirect_B0_Y_to_1072_X  ; ( ABSOLUTE=1 )
80E2  B1 B0     ..   	LDA (data_B0),Y
80E4  9D 72 10  .r.  	STA data_1072,X                 ; "??10"
80E7  E8        .    	INX
80E8  C8        .    	INY
80E9  60        `    	RTS

80EA                .copyword_indirect_B0_Y_to_BC_X  ; ( ABSOLUTE=2 )
80EA  20 ED 80   ..  	JSR copybyte_indirect_B0_Y_to_BC_X

80ED                .copybyte_indirect_B0_Y_to_BC_X  ; ( ABSOLUTE=1 )
80ED  B1 B0     ..   	LDA (data_B0),Y
80EF  95 BC     ..   	STA data_BC,X
80F1  E8        .    	INX
80F2  C8        .    	INY
80F3  60        `    	RTS

80F4                .clear_afsp  ; ( ABSOLUTE=2 )
80F4  A9 20     .    	LDA #$20
80F6  A2 06     ..   	LDX #$06
80F8                .clear_afsp_loop  ; ( RELATIVE=1 )
80F8  95 C7     ..   	STA data_C7,X
80FA  CA        .    	DEX
80FB  10 FB     ..   	BPL clear_afsp_loop
80FD                .clear_afsp_exit  ; ( RELATIVE=1 )
80FD  60        `    	RTS                             ; "N set on exit"

80FE                .read_afsp_at_TextPointer  ; ( ABSOLUTE=6 )
80FE  20 4D 83   M.  	JSR set_CE_CF_driveno        ; "(ret.Y=Tpoffset nonblank)"
8101  20 F4 80   ..  	JSR clear_afsp
8104  30 13     0.   	BMI read_afsp_cont              ; "always"

8106                .read_afsp_at_indirect_BC  ; ( ABSOLUTE=5 ) ; "(return Y=Tpoffsetnonblank)"
8106  20 4D 83   M.  	JSR set_CE_CF_driveno

8109                .clear_afsp_and_restoreTextPtr  ; ( ABSOLUTE=1 )
8109  20 F4 80   ..  	JSR clear_afsp
810C  A5 BC     ..   	LDA data_BC
810E  85 F2     ..   	STA os_textptr_L__F2
8110  A5 BD     ..   	LDA data_BD
8112  85 F3     ..   	STA os_textptr_H__F3
8114  A0 00     ..   	LDY #$00
8116  20 BF 86   ..  	JSR Go_GSINIT__terminator_is_spc_cr_doublequote
8119                .read_afsp_cont  ; ( RELATIVE=1 )
8119  A2 01     ..   	LDX #$01

811B                .read_afsp_next  ; ( ABSOLUTE=1 )
811B  20 C5 FF   ..  	JSR os_gsread                ; "get C"
811E  B0 DD     ..   	BCS clear_afsp_exit             ; "end of string"
8120  85 C7     ..   	STA data_C7                     ; "first chr"
8122  C9 2E     ..   	CMP #$2E                        ; "ignore leading ...'s"
8124  D0 04     ..   	BNE read_afsp_not_fullstop ; "not ."      ; "C=".""
8126  A9 20     .    	LDA #$20
8128  D0 4D     .M   	BNE read_afsp_cont3             ; "always"
812A                .read_afsp_not_fullstop  ; ( RELATIVE=1 ) ; "not ."
812A  C9 3A     .:   	CMP #$3A                        ; "C=":""
812C  D0 21     .!   	BNE read_afsp_not_colon ; "not :"         ; "no, else read drive no"
812E  20 C5 FF   ..  	JSR os_gsread                ; "get next C"
8131  B0 15     ..   	BCS read_afsp_baddrive          ; "end of string = Bad drive"
8133  38        8    	SEC                             ; "read drive no"
8134  E9 30     .0   	SBC #$30                        ; "N=val(C)"
8136  90 10     ..   	BCC read_afsp_baddrive          ; "C<"0""
8138  C9 04     ..   	CMP #$04
813A  B0 0C     ..   	BCS read_afsp_baddrive          ; "C>="4""
813C  20 7E 87   ~.  	JSR set_CurrentDrive
813F  20 C5 FF   ..  	JSR os_gsread                ; "get next C"
8142  B0 5C     .\   	BCS read_afsp_exit              ; "end of string - exit routine"
8144  C9 2E     ..   	CMP #$2E                        ; "C=".", err if not"
8146  F0 03     ..   	BEQ read_afsp_colon_X_fullstop ; ":X."
8148                .read_afsp_baddrive  ; ( RELATIVE=3 )
8148  4C 74 83  Lt.  	JMP errBAD_DRIVE             ; "Bad Drive error"
814B                .read_afsp_colon_X_fullstop  ; ( RELATIVE=1 ) ; ":X."
814B  A9 24     .$   	LDA #$24
814D  D0 28     .(   	BNE read_afsp_cont3             ; "always"
814F                .read_afsp_not_colon  ; ( RELATIVE=1 ) ; "not :"
814F  C9 2A     .*   	CMP #$2A                        ; "C="*""
8151  D0 19     ..   	BNE read_afsp_not_star_2
8153  20 C5 FF   ..  	JSR os_gsread                ; "get next C"
8156  B0 08     ..   	BCS read_afsp_numbersign ; "#"        ; "end of string"
8158  C9 2E     ..   	CMP #$2E                        ; "C=".""
815A  D0 32     .2   	BNE errBAD_FILENAME
815C  A9 23     .#   	LDA #$23
815E  D0 17     ..   	BNE read_afsp_cont3
8160                .read_afsp_numbersign  ; ( RELATIVE=1 ) ; "#"
8160  A2 00     ..   	LDX #$00                        ; "C7-CD="#""
8162                .read_afsp_endofstr  ; ( RELATIVE=1 )
8162  A9 23     .#   	LDA #$23                        ; ""#""
8164                .read_afsp__numbersign_loop  ; ( RELATIVE=1 )
8164  95 C7     ..   	STA data_C7,X                   ; "if *.* then C7-CD="#######""

8166                .read_afsp_not_star_1  ; ( No direct access )
8166  E8        .    	INX
8167  E0 07     ..   	CPX #$07
8169  D0 F9     ..   	BNE read_afsp__numbersign_loop
816B  60        `    	RTS
816C                .read_afsp_not_star_2  ; ( RELATIVE=1 )
816C  20 C5 FF   ..  	JSR os_gsread
816F  B0 2F     ./   	BCS read_afsp_exit              ; "end of string"
8171  C9 2E     ..   	CMP #$2E                        ; "C=".""
8173  D0 10     ..   	BNE read_afsp_not_fullstop2
8175  A5 C7     ..   	LDA data_C7
8177                .read_afsp_cont3  ; ( RELATIVE=3 )
8177  85 CE     ..   	STA data_CE
8179  4C 1B 81  L..  	JMP read_afsp_next
817C                .read_afsp_nextchr  ; ( RELATIVE=1 )
817C  20 C5 FF   ..  	JSR os_gsread
817F  B0 1F     ..   	BCS read_afsp_exit
8181  E0 07     ..   	CPX #$07
8183  F0 09     ..   	BEQ errBAD_FILENAME
8185                .read_afsp_not_fullstop2  ; ( RELATIVE=1 )
8185  C9 2A     .*   	CMP #$2A                        ; "C="*""
8187  D0 12     ..   	BNE read_afsp_not_star_3
8189  20 C5 FF   ..  	JSR os_gsread
818C  B0 D4     ..   	BCS read_afsp_endofstr          ; "end of string"
818E                .errBAD_FILENAME  ; ( RELATIVE=2 )
818E  20 22 80   ".  	JSR errBAD                   ; ""Bad Filename" error"
8191  CC 66 69 6C 65 6E 61 6D  .filenam
8199  65 00                    e.
819B                .read_afsp_not_star_3  ; ( RELATIVE=1 )
819B  95 C7     ..   	STA data_C7,X
819D  E8        .    	INX
819E  D0 DC     ..   	BNE read_afsp_nextchr
81A0                .read_afsp_exit  ; ( RELATIVE=4 )
81A0  60        `    	RTS

81A1                .check_for_Disk_change  ; ( ABSOLUTE=2 )
81A1  20 E1 83   ..  	JSR rememberAXY
81A4  AD 04 0F  ...  	LDA data_0F04                    ; "Cycle No"
81A7  20 47 83   G.  	JSR Load_CurDrvCat__preserve_AXY
81AA  CD 04 0F  ...  	CMP data_0F04
81AD  F0 F1     ..   	BEQ read_afsp_exit

81AF                .errDISK_CHANGED  ; ( ABSOLUTE=1 )
81AF  20 33 80   3.  	JSR Brk100_errno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"
81B2  C8 44 69 73 6B 20 63 68  .Disk ch
81BA  61 6E 67 65 64 00        anged.

81C0                .prt_filename__Y_offset  ; ( ABSOLUTE=4 )
81C0  20 E1 83   ..  	JSR rememberAXY
81C3  B9 0F 0E  ...  	LDA data_0E0F,Y
81C6  08        .    	PHP
81C7  29 7F     ).   	AND #$7F                        ; "directory"
81C9  D0 05     ..   	BNE prt_filename_prt_chr
81CB  20 CB 9F   ..  	JSR prt_2spc_or_put_at_100    ; "if no dir. print " ""
81CE  F0 06     ..   	BEQ prt_filename_no_dir         ; "always?"
81D0                .prt_filename_prt_chr  ; ( RELATIVE=1 )
81D0  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"    ; "print dir"
81D3  20 9A 80   ..  	JSR prt_fullstop             ; "print ".""
81D6                .prt_filename_no_dir  ; ( RELATIVE=1 )
81D6  A2 06     ..   	LDX #$06                        ; "print filename"
81D8                .prt_filename_loop  ; ( RELATIVE=1 )
81D8  B9 08 0E  ...  	LDA data_0E08,Y
81DB  29 7F     ).   	AND #$7F
81DD  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"
81E0  C8        .    	INY
81E1  CA        .    	DEX
81E2  10 F4     ..   	BPL prt_filename_loop
81E4  20 CB 9F   ..  	JSR prt_2spc_or_put_at_100    ; "print " ""
81E7  A9 20     .    	LDA #$20                        ; "" ""
81E9  28        (    	PLP
81EA  10 02     ..   	BPL prt_filename_not_locked     ; "N=Locked!"
81EC  A9 4C     .L   	LDA #$4C                        ; ""L""
81EE                .prt_filename_not_locked  ; ( RELATIVE=1 )
81EE  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"    ; "print "L" or " ""
81F1  4C CE 9F  L..  	JMP prt_spc_or_put_at_100    ; "print " ""

81F4                .prt_Y_spaces  ; ( ABSOLUTE=3 RELATIVE=1 )
81F4  20 CE 9F   ..  	JSR prt_spc_or_put_at_100
81F7  88        .    	DEY
81F8  D0 FA     ..   	BNE prt_Y_spaces
81FA  60        `    	RTS

81FB                .lsr_A_6_times_and_3  ; ( ABSOLUTE=1 )
81FB  4A        J    	LSR A

81FC                .lsr_A_5_times_and_3  ; ( No direct access )
81FC  4A        J    	LSR A

81FD                .lsr_A_4_times_and_3  ; ( ABSOLUTE=7 )
81FD  4A        J    	LSR A

81FE                .lsr_A_3_times_and_3  ; ( No direct access )
81FE  4A        J    	LSR A

81FF                .lsr_A_2_times_and_3  ; ( ABSOLUTE=1 )
81FF  4A        J    	LSR A

8200                .lsr_A_and_3  ; ( No direct access )
8200  4A        J    	LSR A
8201  29 03     ).   	AND #$03
8203  60        `    	RTS

8204                .lsr_A_5_times  ; ( ABSOLUTE=3 )
8204  4A        J    	LSR A

8205                .lsr_A_4_times  ; ( ABSOLUTE=8 )
8205  4A        J    	LSR A

8206                .lsr_A_3_times  ; ( No direct access )
8206  4A        J    	LSR A

8207                .lsr_A_2_times  ; ( No direct access )
8207  4A        J    	LSR A
8208  4A        J    	LSR A
8209  60        `    	RTS

820A                .asl_A_5_times  ; ( ABSOLUTE=1 )
820A  0A        .    	ASL A

820B                .asl_A_4_times  ; ( ABSOLUTE=2 )
820B  0A        .    	ASL A

820C                .asl_A_3_times  ; ( No direct access )
820C  0A        .    	ASL A

820D                .asl_A_2_times  ; ( No direct access )
820D  0A        .    	ASL A
820E  0A        .    	ASL A
820F  60        `    	RTS

8210                .increment_Y_by_8  ; ( ABSOLUTE=8 )
8210  C8        .    	INY

8211                .increment_Y_by_7  ; ( ABSOLUTE=2 )
8211  C8        .    	INY

8212                .increment_Y_by_6  ; ( No direct access )
8212  C8        .    	INY

8213                .increment_Y_by_5  ; ( No direct access )
8213  C8        .    	INY

8214                .increment_Y_by_4  ; ( ABSOLUTE=1 )
8214  C8        .    	INY

8215                .increment_Y_by_2  ; ( No direct access )
8215  C8        .    	INY
8216  C8        .    	INY
8217  C8        .    	INY
8218  60        `    	RTS

8219                .decrement_Y_by_8  ; ( ABSOLUTE=4 )
8219  88        .    	DEY

821A                .decrement_Y_by_7  ; ( No direct access )
821A  88        .    	DEY

821B                .decrement_Y_by_6  ; ( No direct access )
821B  88        .    	DEY

821C                .decrement_Y_by_5  ; ( No direct access )
821C  88        .    	DEY

821D                .decrement_Y_by_4  ; ( No direct access )
821D  88        .    	DEY

821E                .decrement_Y_by_3  ; ( No direct access )
821E  88        .    	DEY

821F                .decrement_Y_by_2  ; ( No direct access )
821F  88        .    	DEY
8220  88        .    	DEY
8221  60        `    	RTS

8222                .BLOCK_Y__init_NMI_vars  ; ( ABSOLUTE=1 ) ; "init_NMI_vars"
8222  A5 BE     ..   	LDA data_BE                     ; "Load Address"
8224  85 A6     ..   	STA data_A6
8226  A5 BF     ..   	LDA data_BF
8228  85 A7     ..   	STA data_A7
822A  A9 FF     ..   	LDA #$FF                        ; "Calc.counter/trk/sec"
822C  85 BA     ..   	STA data_BA
822E  A6 C3     ..   	LDX data_C3                     ; "Len b8-b15"
8230  E8        .    	INX
8231  86 A4     ..   	STX data_A4
8233  A5 C4     ..   	LDA data_C4                     ; ""mixed byte""
8235  20 FD 81   ..  	JSR lsr_A_4_times_and_3
8238  85 A5     ..   	STA data_A5                     ; "Len b16-17"
823A  E6 A5     ..   	INC data_A5
823C  A5 C2     ..   	LDA data_C2                     ; "Len b0-b7"
823E  85 A3     ..   	STA data_A3                     ; "' bytes last sector 0=&100"
8240  D0 06     ..   	BNE calsctrksec
8242  C6 A4     ..   	DEC data_A4                     ; "' Sectors"
8244  D0 02     ..   	BNE calsctrksec
8246  C6 A5     ..   	DEC data_A5                     ; "' 1=Host"
8248                .calsctrksec  ; ( RELATIVE=2 )
8248  A5 C4     ..   	LDA data_C4                     ; "Strt Sec b8-b9"
824A  29 03     ).   	AND #$03
824C  AA        .    	TAX                             ; "X=b8-b9"
824D  A5 C5     ..   	LDA data_C5                     ; "Strt Sec b0-b7"
824F                .calctrksec_loop2  ; ( RELATIVE=1 )
824F  38        8    	SEC                             ; "Calc first trk/sec"
8250                .calctrksec_loop  ; ( RELATIVE=1 )
8250  E6 BA     ..   	INC data_BA                     ; "first loop trk=FF+1=0"
8252  E9 0A     ..   	SBC #$0A
8254  B0 FA     ..   	BCS calctrksec_loop             ; "sec>=10"
8256  CA        .    	DEX
8257  10 F6     ..   	BPL calctrksec_loop2
8259  69 0A     i.   	ADC #$0A
825B  85 BB     ..   	STA data_BB
825D                .get_cat_exit_entryfound  ; ( RELATIVE=1 )
825D  60        `    	RTS

825E                .parameter_afsp  ; ( ABSOLUTE=5 )
825E  A9 23     .#   	LDA #$23
8260  D0 02     ..   	BNE code_8264

8262                .parameter_fsp  ; ( ABSOLUTE=3 )
8262  A9 FF     ..   	LDA #$FF
8264                .code_8264  ;( RELATIVE=1 )
8264  8D CF 10  ...  	STA data_10CF
8267  60        `    	RTS

8268                .cmd_info_afsp_cmdl  ; ( ABSOLUTE=4 )
8268  20 FE 80   ..  	JSR read_afsp_at_TextPointer
826B  4C 71 82  Lq.  	JMP get_cat_entry ; "(return: C=1=found, Y=offset)"

826E                .get_cat_entry_afsp_at_indirect_BC  ; ( ABSOLUTE=1 ) ; "(return: C=1=found, Y=offset)"
826E  20 06 81   ..  	JSR read_afsp_at_indirect_BC ; "(return Y=Tpoffsetnonblank)"

8271                .get_cat_entry  ; ( ABSOLUTE=1 ) ; "(return: C=1=found, Y=offset)"
8271  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"
8274  B0 E7     ..   	BCS get_cat_exit_entryfound

8276                .err_FILE_NOT_FOUND  ; ( ABSOLUTE=4 )
8276  20 2B 80   +.  	JSR errFILE
8279  D6 6E 6F 74 20 66 6F 75  .not fou
8281  6E 64 00                 nd.

8284                .CMD_INFO  ; ( No direct access )
8284  20 5E 82   ^.  	JSR parameter_afsp
8287  20 01 9A   ..  	JSR init_param ; "(syntax error if none)"
828A  20 68 82   h.  	JSR cmd_info_afsp_cmdl
828D                .cmd_info_loop  ; ( RELATIVE=1 )
828D  20 01 83   ..  	JSR prt_infoline__Y_file_offset
8290  20 9D 82   ..  	JSR get_cat_nextentry ; "(return: C=1=found, Y=offset)"
8293  B0 F8     ..   	BCS cmd_info_loop
8295  60        `    	RTS

8296                .get_cat_firstentry  ; ( ABSOLUTE=14 ) ; "(return: C=1=found, Y=offset)"
8296  20 DE 8A   ..  	JSR check_CurDrvCatalog      ; "filtered catalogue"
8299  A0 F8     ..   	LDY #$F8
829B  D0 03     ..   	BNE get_cat_nextentry2          ; "always"

829D                .get_cat_nextentry  ; ( ABSOLUTE=6 ) ; "(return: C=1=found, Y=offset)"
829D  AC CE 10  ...  	LDY data_10CE                    ; "load counter"
82A0                .get_cat_nextentry2  ; ( RELATIVE=2 )
82A0  20 10 82   ..  	JSR increment_Y_by_8
82A3  CC 05 0F  ...  	CPY data_0F05                    ; "Files on disk * 8"
82A6  B0 44     .D   	BCS get_cat_exit_noentryfound    ; "Y>=?&F05"
82A8  20 10 82   ..  	JSR increment_Y_by_8
82AB  A2 07     ..   	LDX #$07                        ; "compare with (a)fsp"
82AD                .get_cat_loop  ; ( RELATIVE=1 )
82AD  B5 C7     ..   	LDA data_C7,X                   ; "get (a)fsp chr"
82AF  CD CF 10  ...  	CMP data_10CF                    ; "param.type"
82B2  F0 0E     ..   	BEQ get_cat_nextchr             ; "ignore chr get next"
82B4  20 EE 82   ..  	JSR alphachr_if_C_0 ; "returns C=0 if A is alpha; A preserved"
82B7  59 07 0E  Y..  	EOR data_0E07,Y
82BA  B0 02     ..   	BCS get_cat_notalpha            ; "not alphachr"
82BC  29 DF     ).   	AND #$DF                        ; "ignore case"
82BE                .get_cat_notalpha  ; ( RELATIVE=1 )
82BE  29 7F     ).   	AND #$7F                        ; "clear bit 7"
82C0  D0 09     ..   	BNE get_cat_nomatch_loop        ; "no match"
82C2                .get_cat_nextchr  ; ( RELATIVE=1 )
82C2  88        .    	DEY
82C3  CA        .    	DEX
82C4  10 E7     ..   	BPL get_cat_loop
82C6  8C CE 10  ...  	STY data_10CE                    ; "save counter"
82C9  38        8    	SEC
82CA  60        `    	RTS                             ; "C=1 entry found"
82CB                .get_cat_nomatch_loop  ; ( RELATIVE=2 )
82CB  88        .    	DEY
82CC  CA        .    	DEX
82CD  10 FC     ..   	BPL get_cat_nomatch_loop
82CF  30 CF     0.   	BMI get_cat_nextentry2          ; "don't return, try next file"

82D1                .DeleteCatEntry__Y_is_file_offset  ; ( ABSOLUTE=6 ) ; "(Y=file_offset)"
82D1  20 4C 98   L.  	JSR check_file_NotOpen
82D4                .code_82D4  ;( RELATIVE=1 )
82D4  B9 10 0E  ...  	LDA data_0E10,Y
82D7  99 08 0E  ...  	STA data_0E08,Y
82DA  B9 10 0F  ...  	LDA data_0F10,Y
82DD  99 08 0F  ...  	STA data_0F08,Y
82E0  C8        .    	INY
82E1  CC 05 0F  ...  	CPY data_0F05
82E4  90 EE     ..   	BCC code_82D4
82E6  98        .    	TYA
82E7  E9 08     ..   	SBC #$08
82E9  8D 05 0F  ...  	STA data_0F05
82EC                .get_cat_exit_noentryfound  ; ( RELATIVE=1 )
82EC  18        .    	CLC
82ED                .prt_infoline_exit  ; ( RELATIVE=1 )
82ED  60        `    	RTS                             ; "C=0 = no error"

82EE                .alphachr_if_C_0  ; ( ABSOLUTE=3 ) ; "returns C=0 if A is alpha; A preserved"
82EE  48        H    	PHA                             ; "is A >="A" and <="Z""
82EF  29 DF     ).   	AND #$DF                        ; "ignore case bit"
82F1  C9 41     .A   	CMP #$41                        ; "<"A"?"
82F3  90 04     ..   	BCC alphachr_below_A
82F5  C9 5B     .[   	CMP #$5B                        ; "<"["?"
82F7  90 01     ..   	BCC alphachr_below_leftbracket
82F9                .alphachr_below_A  ; ( RELATIVE=1 )
82F9  38        8    	SEC
82FA                .alphachr_below_leftbracket  ; ( RELATIVE=1 )
82FA  68        h    	PLA                             ; "C clear if true"
82FB  60        `    	RTS                             ; "end"

82FC                .prt_infoline_if_mem10C7_negative  ; ( ABSOLUTE=5 )
82FC  2C C7 10  ,..  	BIT data_10C7
82FF  30 EC     0.   	BMI prt_infoline_exit

8301                .prt_infoline__Y_file_offset  ; ( ABSOLUTE=3 )
8301  20 E1 83   ..  	JSR rememberAXY
8304  20 C0 81   ..  	JSR prt_filename__Y_offset
8307  98        .    	TYA
8308  48        H    	PHA
8309  A9 60     .`   	LDA #$60                        ; "word &B0=1060"
830B  85 B0     ..   	STA data_B0
830D  A9 10     ..   	LDA #$10
830F  85 B1     ..   	STA data_B1
8311  20 7E 83   ~.  	JSR read_fileattribs__Y_is_offset_of_file    ; "create no. str"
8314  A0 02     ..   	LDY #$02
8316  20 CE 9F   ..  	JSR prt_spc_or_put_at_100    ; "print " ""
8319  20 35 83   5.  	JSR prt_hex3byte ; "(return: Y=Y+3)"             ; "Load address"
831C  20 35 83   5.  	JSR prt_hex3byte ; "(return: Y=Y+3)"             ; "Exec address"
831F  20 35 83   5.  	JSR prt_hex3byte ; "(return: Y=Y+3)"             ; "Length"
8322  68        h    	PLA
8323  A8        .    	TAY
8324  B9 0E 0F  ...  	LDA data_0F0E,Y                 ; "First sector high bits"
8327  29 03     ).   	AND #$03
8329  20 CA 80   ..  	JSR prt_hex_lower_4bits_of_A
832C  B9 0F 0F  ...  	LDA data_0F0F,Y                 ; "First sector low byte"
832F  20 C2 80   ..  	JSR prt_hex_A ; "A preserved"
8332  4C 9A 9F  L..  	JMP prt_NewLine ; "(A preserved)"              ; "end"

8335                .prt_hex3byte  ; ( ABSOLUTE=3 ) ; "(return: Y=Y+3)"
8335  A2 03     ..   	LDX #$03                        ; "eg print "123456 ""
8337                .prt_hex3byte_loop  ; ( RELATIVE=1 )
8337  B9 62 10  .b.  	LDA data_1062,Y                 ; "??10ok"
833A  20 C2 80   ..  	JSR prt_hex_A ; "A preserved"
833D  88        .    	DEY
833E  CA        .    	DEX
833F  D0 F6     ..   	BNE prt_hex3byte_loop
8341  20 11 82   ..  	JSR increment_Y_by_7
8344  4C CE 9F  L..  	JMP prt_spc_or_put_at_100

8347                .Load_CurDrvCat__preserve_AXY  ; ( ABSOLUTE=6 )
8347  20 E1 83   ..  	JSR rememberAXY
834A  4C EB 8A  L..  	JMP Load_CurDrvCatalog

834D                .set_CE_CF_driveno  ; ( ABSOLUTE=8 )
834D  AD CA 10  ...  	LDA data_10CA
8350  85 CE     ..   	STA data_CE
8352                .set_driveno_to_mem10CB  ; ( RELATIVE=1 )
8352  AD CB 10  ...  	LDA data_10CB                    ; "set drive no"
8355  4C 7E 87  L~.  	JMP set_CurrentDrive

8358                .get_driveno_with_init  ; ( ABSOLUTE=2 )
8358  20 BF 86   ..  	JSR Go_GSINIT__terminator_is_spc_cr_doublequote
835B  F0 F5     ..   	BEQ set_driveno_to_mem10CB      ; "null string
; "rd chr (C)"

835D                .code_835D  ;( ABSOLUTE=4 RELATIVE=1 )
835D  20 C5 FF   ..  	JSR os_gsread
8360  B0 12     ..   	BCS errBAD_DRIVE                ; "end of str"
8362  C9 3A     .:   	CMP #$3A                        ; "C=":""
8364  F0 F7     ..   	BEQ code_835D                   ; "ignore get next chr"
8366  38        8    	SEC
8367  E9 30     .0   	SBC #$30                        ; "N=C-"0""
8369  90 09     ..   	BCC errBAD_DRIVE                ; "C<"0""
836B  C9 04     ..   	CMP #$04
836D  B0 05     ..   	BCS errBAD_DRIVE                ; "C>="4""
836F  20 7E 87   ~.  	JSR set_CurrentDrive         ; "on entry A=drive no (0-3)"
8372  18        .    	CLC
8373  60        `    	RTS

8374                .errBAD_DRIVE  ; ( ABSOLUTE=1 RELATIVE=3 )
8374  20 22 80   ".  	JSR errBAD                   ; "Bad Drive (err#CD)"
8377  CD 64 72  .dr  	CMP data_7264
837A  69 76     iv   	ADC #$76
837C  65 00     e.   	ADC data_00

837E                .read_fileattribs__Y_is_offset_of_file  ; ( ABSOLUTE=5 )
837E  20 E1 83   ..  	JSR rememberAXY              ; "decode file attribs"
8381  98        .    	TYA                             ; "and store in pwsp"
8382  48        H    	PHA                             ; "bytes 2-11"
8383  AA        .    	TAX
8384  A0 02     ..   	LDY #$02
8386  A9 00     ..   	LDA #$00                        ; "set to 0"
8388                .read_fileattribs_clear_loop  ; ( RELATIVE=1 )
8388  91 B0     ..   	STA (data_B0),Y
838A  C8        .    	INY
838B  C0 12     ..   	CPY #$12
838D  D0 F9     ..   	BNE read_fileattribs_clear_loop
838F  A0 02     ..   	LDY #$02                        ; "copy low bytes of"
8391                .read_fileattribs_copy_loop  ; ( RELATIVE=1 )
8391  20 CF 83   ..  	JSR read_fileattribs_copy2bytes    ; "load/exec/length"
8394  C8        .    	INY
8395  C8        .    	INY
8396  C0 0E     ..   	CPY #$0E
8398  D0 F7     ..   	BNE read_fileattribs_copy_loop
839A  68        h    	PLA
839B  AA        .    	TAX
839C  BD 0F 0E  ...  	LDA data_0E0F,X                 ; "locked?"
839F  10 06     ..   	BPL read_fileattribs_not_locked
83A1  A9 0A     ..   	LDA #$0A
83A3  A0 0E     ..   	LDY #$0E
83A5  91 B0     ..   	STA (data_B0),Y                 ; "pwsp+&E=&A"
83A7                .read_fileattribs_not_locked  ; ( RELATIVE=1 )
83A7  BD 0E 0F  ...  	LDA data_0F0E,X                 ; "mixed byte"
83AA  A0 04     ..   	LDY #$04                        ; "load high bytes?"
83AC  20 BB 83   ..  	JSR read_fileattribs_addrHiBytes
83AF  A0 0C     ..   	LDY #$0C                        ; "length high bytes"
83B1  4A        J    	LSR A
83B2  4A        J    	LSR A
83B3  48        H    	PHA
83B4  29 03     ).   	AND #$03
83B6  91 B0     ..   	STA (data_B0),Y
83B8  68        h    	PLA
83B9  A0 08     ..   	LDY #$08                        ; "exec high bytes"

83BB                .read_fileattribs_addrHiBytes  ; ( ABSOLUTE=1 )
83BB  4A        J    	LSR A
83BC  4A        J    	LSR A                           ; "/4"
83BD  48        H    	PHA
83BE  29 03     ).   	AND #$03
83C0  91 B0     ..   	STA (data_B0),Y
83C2  C9 03     ..   	CMP #$03
83C4  D0 07     ..   	BNE read_fileattribs_exits
83C6  A9 FF     ..   	LDA #$FF
83C8  91 B0     ..   	STA (data_B0),Y
83CA  C8        .    	INY
83CB  91 B0     ..   	STA (data_B0),Y
83CD                .read_fileattribs_exits  ; ( RELATIVE=1 )
83CD  68        h    	PLA
83CE  60        `    	RTS

83CF                .read_fileattribs_copy2bytes  ; ( ABSOLUTE=1 )
83CF  20 D2 83   ..  	JSR read_fileattribs_copy1byte

83D2                .read_fileattribs_copy1byte  ; ( ABSOLUTE=1 )
83D2  BD 08 0F  ...  	LDA data_0F08,X
83D5  91 B0     ..   	STA (data_B0),Y
83D7  E8        .    	INX
83D8  C8        .    	INY
83D9  60        `    	RTS

83DA                .inc_word_AE  ; ( ABSOLUTE=2 )
83DA  E6 AE     ..   	INC data_AE
83DC  D0 02     ..   	BNE code_83E0
83DE  E6 AF     ..   	INC data_AF
83E0                .code_83E0  ;( RELATIVE=1 )
83E0  60        `    	RTS

83E1                .rememberAXY  ; ( ABSOLUTE=31 )
83E1  48        H    	PHA                             ; "manipulates stack"
83E2  8A        .    	TXA                             ; "pushes address 8403"
83E3  48        H    	PHA                             ; "(returns to 8404!)"
83E4  98        .    	TYA
83E5  48        H    	PHA
83E6  A9 84     ..   	LDA #$84
83E8  48        H    	PHA
83E9  A9 03     ..   	LDA #$03
83EB  48        H    	PHA
83EC                .rAXY_loop_init  ; ( RELATIVE=1 )
83EC  A0 05     ..   	LDY #$05                        ; "for y=5 to 1"
83EE                .rAXY_loop  ; ( RELATIVE=1 )
83EE  BA        .    	TSX
83EF  BD 07 01  ...  	LDA data_0107,X
83F2  48        H    	PHA
83F3  88        .    	DEY
83F4  D0 F8     ..   	BNE rAXY_loop                   ; "next"
83F6  A0 0A     ..   	LDY #$0A                        ; "for y=A to 1"
83F8                .rAXY_loop2  ; ( RELATIVE=1 )
83F8  BD 09 01  ...  	LDA data_0109,X
83FB  9D 0B 01  ...  	STA data_010B,X
83FE  CA        .    	DEX
83FF  88        .    	DEY
8400  D0 F6     ..   	BNE rAXY_loop2                  ; "next"
8402  68        h    	PLA                             ; "discard (Y)"
8403  68        h    	PLA                             ; "discard (X)"

8404                .rAXY_restore  ; ( ABSOLUTE=1 )
8404  68        h    	PLA
8405  A8        .    	TAY
8406  68        h    	PLA
8407  AA        .    	TAX
8408  68        h    	PLA
8409  60        `    	RTS                             ; "end"

; Warning, no apparant access to code following JMP/RTS/RTI
840A  BA        .    	TSX
840B  9D 03 01  ...  	STA data_0103,X
840E  4C 04 84  L..  	JMP rAXY_restore

8411                .rAXY2_dont_pull_on_return  ; ( ABSOLUTE=5 )
8411  48        H    	PHA
8412  8A        .    	TXA
8413  48        H    	PHA
8414  98        .    	TYA
8415  48        H    	PHA
8416  A9 84     ..   	LDA #$84
8418  48        H    	PHA
8419  A9 09     ..   	LDA #$09
841B  48        H    	PHA
841C  D0 CE     ..   	BNE rAXY_loop_init              ; "always"

841E                .fscv5_star_CAT  ; ( No direct access )
841E  20 B8 86   ..  	JSR set_TextPointer_to_Y_times_100_plus_X
8421  20 D8 8A   ..  	JSR check_CurDrvCatalog2

8424                .prt_catalogue2  ; ( No direct access )
8424  A0 FF     ..   	LDY #$FF
8426  84 A8     ..   	STY data_A8
8428  C8        .    	INY
8429  84 AA     ..   	STY data_AA
842B                .cat_title_loop  ; ( RELATIVE=1 )
842B  B9 00 0E  ...  	LDA data_0E00,Y                 ; "print disk title"
842E  C0 08     ..   	CPY #$08
8430  90 03     ..   	BCC code_8435
8432  B9 F8 0E  ...  	LDA data_0EF8,Y
8435                .code_8435  ;( RELATIVE=1 )
8435  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"
8438  C8        .    	INY
8439  C0 0C     ..   	CPY #$0C
843B  D0 EE     ..   	BNE cat_title_loop
843D  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
8440  20 28                     (
8442  AD 04 0F  ...  	LDA data_0F04                    ; "print no.?"
8445  20 C2 80   ..  	JSR prt_hex_A ; "A preserved"
8448  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"    ; "print ")" "Drive""
844B  29 0D 44 72 69 76 65 20  ).Drive 
8453  A5 CF     ..   	LDA data_CF
8455  20 CA 80   ..  	JSR prt_hex_lower_4bits_of_A    ; "print drv.no."
8458  A0 0D     ..   	LDY #$0D
845A  20 F4 81   ..  	JSR prt_Y_spaces             ; "print 13 spaces"
845D  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
8460  4F 70 74 69 6F 6E 20     Option 
8467  AD 06 0F  ...  	LDA data_0F06
846A  20 05 82   ..  	JSR lsr_A_4_times
846D  20 CA 80   ..  	JSR prt_hex_lower_4bits_of_A    ; "print option.no"
8470  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"    ; "print " (""
8473  20 28                     (
8475  A0 03     ..   	LDY #$03                        ; "print option.name"
8477  0A        .    	ASL A
8478  0A        .    	ASL A
8479  AA        .    	TAX
847A                .cat_print_option_name_loop  ; ( RELATIVE=1 )
847A  BD 6F 85  .o.  	LDA disk_options_table,X
847D  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"
8480  E8        .    	INX
8481  88        .    	DEY
8482  10 F6     ..   	BPL cat_print_option_name_loop
8484  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"    ; "print ") Directory :""
8487  29 0D 44 69 72 65 63 74  ).Direct
848F  6F 72 79 20 3A           ory :
8494  AD CB 10  ...  	LDA data_10CB
8497  20 CA 80   ..  	JSR prt_hex_lower_4bits_of_A    ; "print driveno"
849A  20 9A 80   ..  	JSR prt_fullstop             ; "print ".""
849D  AD CA 10  ...  	LDA data_10CA                    ; "print dir"
84A0  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"
84A3  A0 06     ..   	LDY #$06
84A5  20 F4 81   ..  	JSR prt_Y_spaces             ; "print 6 spaces"
84A8  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"    ; "print "Library ""
84AB  4C 69 62 72 61 72 79 20  Library 
84B3  3A                       :
84B4  AD CD 10  ...  	LDA data_10CD
84B7  20 CA 80   ..  	JSR prt_hex_lower_4bits_of_A    ; "print library.drv"
84BA  20 9A 80   ..  	JSR prt_fullstop             ; "print ".""
84BD  AD CC 10  ...  	LDA data_10CC
84C0  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"    ; "print library.dir"
84C3  20 9A 9F   ..  	JSR prt_NewLine ; "(A preserved)"              ; "print"
84C6  A0 00     ..   	LDY #$00
84C8                .pcl3  ; ( RELATIVE=1 )
84C8  CC 05 0F  ...  	CPY data_0F05                    ; "no.of.files?"
84CB  B0 17     ..   	BCS pcl2                        ; "Y>=no.of.files"
84CD  B9 0F 0E  ...  	LDA data_0E0F,Y
84D0  4D CA 10  M..  	EOR data_10CA
84D3  29 7F     ).   	AND #$7F
84D5  D0 08     ..   	BNE pcl5                        ; "not current dir"
84D7  B9 0F 0E  ...  	LDA data_0E0F,Y
84DA  29 80     ).   	AND #$80
84DC  99 0F 0E  ...  	STA data_0E0F,Y
84DF                .pcl5  ; ( RELATIVE=1 )
84DF  20 10 82   ..  	JSR increment_Y_by_8
84E2  90 E4     ..   	BCC pcl3

84E4                .pcl2  ; ( ABSOLUTE=1 RELATIVE=1 )
84E4  A0 00     ..   	LDY #$00
84E6  20 F6 84   ..  	JSR pcl6
84E9  90 16     ..   	BCC pcl4
84EB  A9 FF     ..   	LDA #$FF                        ; "finished"
84ED  8D 82 10  ...  	STA data_1082
84F0  4C 9A 9F  L..  	JMP prt_NewLine ; "(A preserved)"
84F3                .pcl1  ; ( RELATIVE=1 )
84F3  20 10 82   ..  	JSR increment_Y_by_8         ; "ignore deleted files?"

84F6                .pcl6  ; ( ABSOLUTE=2 )
84F6  CC 05 0F  ...  	CPY data_0F05
84F9  B0 05     ..   	BCS exit_prt_cat
84FB  B9 08 0E  ...  	LDA data_0E08,Y
84FE  30 F3     0.   	BMI pcl1
8500                .exit_prt_cat  ; ( RELATIVE=1 )
8500  60        `    	RTS
8501                .pcl4  ; ( RELATIVE=2 )
8501  84 AB     ..   	STY data_AB
8503  A2 00     ..   	LDX #$00
8505                .code_8505  ;( RELATIVE=1 )
8505  B9 08 0E  ...  	LDA data_0E08,Y
8508  29 7F     ).   	AND #$7F
850A  9D 60 10  .`.  	STA data_1060,X                 ; "??10ok"
850D  C8        .    	INY
850E  E8        .    	INX
850F  E0 08     ..   	CPX #$08
8511  D0 F2     ..   	BNE code_8505
8513                .code_8513  ;( RELATIVE=1 )
8513  20 F6 84   ..  	JSR pcl6
8516  B0 1F     ..   	BCS code_8537
8518  38        8    	SEC
8519  A2 06     ..   	LDX #$06
851B                .code_851B  ;( RELATIVE=1 )
851B  B9 0E 0E  ...  	LDA data_0E0E,Y
851E  FD 60 10  .`.  	SBC data_1060,X                 ; "??10ok"
8521  88        .    	DEY
8522  CA        .    	DEX
8523  10 F6     ..   	BPL code_851B
8525  20 11 82   ..  	JSR increment_Y_by_7
8528  B9 0F 0E  ...  	LDA data_0E0F,Y
852B  29 7F     ).   	AND #$7F
852D  ED 67 10  .g.  	SBC data_1067
8530  90 CF     ..   	BCC pcl4
8532  20 10 82   ..  	JSR increment_Y_by_8
8535  B0 DC     ..   	BCS code_8513
8537                .code_8537  ;( RELATIVE=1 )
8537  A4 AB     ..   	LDY data_AB
8539  B9 08 0E  ...  	LDA data_0E08,Y
853C  09 80     ..   	ORA #$80
853E  99 08 0E  ...  	STA data_0E08,Y
8541  AD 67 10  .g.  	LDA data_1067
8544  C5 AA     ..   	CMP data_AA
8546  F0 10     ..   	BEQ code_8558
8548  A6 AA     ..   	LDX data_AA
854A  85 AA     ..   	STA data_AA
854C  D0 0A     ..   	BNE code_8558
854E  20 9A 9F   ..  	JSR prt_NewLine ; "(A preserved)"
8551                .code_8551  ;( RELATIVE=1 )
8551  20 9A 9F   ..  	JSR prt_NewLine ; "(A preserved)"
8554  A0 FF     ..   	LDY #$FF
8556  D0 09     ..   	BNE code_8561
8558                .code_8558  ;( RELATIVE=2 )
8558  A4 A8     ..   	LDY data_A8
855A  D0 F5     ..   	BNE code_8551
855C  A0 05     ..   	LDY #$05
855E  20 F4 81   ..  	JSR prt_Y_spaces
8561                .code_8561  ;( RELATIVE=1 )
8561  C8        .    	INY
8562  84 A8     ..   	STY data_A8
8564  A4 AB     ..   	LDY data_AB
8566  20 CB 9F   ..  	JSR prt_2spc_or_put_at_100
8569  20 C0 81   ..  	JSR prt_filename__Y_offset
856C  4C E4 84  L..  	JMP pcl2
856F                .disk_options_table  ; ( DATA=1 )
856F  6F 66 66 00 4C 4F 41 44  off.LOAD
8577  52 55 4E 00 45 58 45 43  RUN.EXEC

857F                .get_next_block  ; ( ABSOLUTE=1 )
857F  B9 0E 0F  ...  	LDA data_0F0E,Y
8582  20 FD 81   ..  	JSR lsr_A_4_times_and_3
8585  85 C4     ..   	STA data_C4                     ; "len byte 3"
8587  18        .    	CLC
8588  A9 FF     ..   	LDA #$FF                        ; "-1"
858A  79 0C 0F  y..  	ADC data_0F0C,Y                 ; "+ len byte 1"
858D  B9 0F 0F  ...  	LDA data_0F0F,Y                 ; "+ start sec byte 1"
8590  79 0D 0F  y..  	ADC data_0F0D,Y                 ; "+ len byte 2"
8593  85 C5     ..   	STA data_C5
8595  B9 0E 0F  ...  	LDA data_0F0E,Y                 ; "start sec byte 2"
8598  29 03     ).   	AND #$03
859A  65 C4     e.   	ADC data_C4                     ; "calc. next "free" sector"
859C  85 C4     ..   	STA data_C4                     ; "c4/c5=start sec + len - 1"

859E                .get_first_block  ; ( ABSOLUTE=1 )
859E  38        8    	SEC
859F  B9 07 0F  ...  	LDA data_0F07,Y                 ; "secs on disk"
85A2  E5 C5     ..   	SBC data_C5                     ; "or start sec of prev."
85A4  48        H    	PHA                             ; "file"
85A5  B9 06 0F  ...  	LDA data_0F06,Y                 ; "- end of prev. file"
85A8  29 03     ).   	AND #$03
85AA  E5 C4     ..   	SBC data_C4
85AC  AA        .    	TAX
85AD  A9 00     ..   	LDA #$00
85AF  C5 C2     ..   	CMP data_C2
85B1  68        h    	PLA                             ; "ax=secs on disk-next blk"
85B2  E5 C3     ..   	SBC data_C3
85B4  8A        .    	TXA                             ; "req'd=c2/c3/c6"
85B5  E5 C6     ..   	SBC data_C6                     ; "big enough?"

85B7                .gbpbv0_do_nothing  ; ( No direct access )
85B7  60        `    	RTS
85B8                .cmdlist  ; ( DATA=6 )
85B8  41                       A
85B9                .cmdlist_1  ; ( DATA=1 )
85B9  43 43 45 53 53 88 D1 32  CCESS..2
85C1  

85C1                .cmdlist_9  ; ( No direct access )
85C1  42 41 43 4B 55 50 9C BA  BACKUP..
85C9  54                       T

85CA                .cmdlist_12  ; ( No direct access )
85CA  43 4F 4D 50 41 43 54 9A  COMPACT.
85D2  BF 0A                    ..

85D4                .cmdlist_1C  ; ( No direct access )
85D4  43 4F 50 59 9D 26 64     COPY.&d

85DB                .cmdlist_23  ; ( No direct access )
85DB  44 45 4C 45 54 45 86 FD  DELETE..
85E3  01                       .

85E4                .cmdlist_2C  ; ( No direct access )
85E4  44 45 53 54 52 4F 59 87  DESTROY.
85EC  0F 02                    ..

85EE                .cmdlist_36  ; ( No direct access )
85EE  44 49 52 88 4D 09        DIR.M.

85F4                .cmdlist_3C  ; ( No direct access )
85F4  44 52 49 56 45 87 74 0A  DRIVE.t.
85FC  

85FC                .cmdlist_44  ; ( No direct access )
85FC  45 4E 41 42 4C 45 8A 38  ENABLE.8
8604  00                       .

8605                .cmdlist_4D  ; ( No direct access )
8605  49 4E 46 4F 82 83 02     INFO...

860C                .cmdlist_54  ; ( No direct access )
860C  4C 49 42 88 51 09        LIB.Q.

8612                .cmdlist_5A  ; ( No direct access )
8612  52 45 4E 41 4D 45 8A 6C  RENAME.l
861A  87                       .

861B                .cmdlist_63  ; ( No direct access )
861B  54 49 54 4C 45 88 A2 0B  TITLE...
8623  

8623                .cmdlist_6B  ; ( No direct access )
8623  57 49 50 45 86 C2 02     WIPE...

862A                .cmdlist_72  ; ( No direct access )
862A  87 D6 00                 ...

862D                .cmdlist_75  ; ( No direct access )
862D  42 55 49 4C 44 9F 47 01  BUILD.G.
8635  

8635                .cmdlist_7D  ; ( No direct access )
8635  44 49 53 43              DISC

8639                .discvec  ; ( No direct access )
8639  93 37 00                 .7.

863C                .cmdlist_84  ; ( No direct access )
863C  44 55 4D 50 9E CF 01     DUMP...

8643                .cmdlist_8B  ; ( No direct access )
8643  4C 49 53 54 9E 8D 01     LIST...

864A                .cmdlist_92  ; ( No direct access )
864A  54 59 50 45 9E 86 01     TYPE...

8651                .cmdlist_99  ; ( No direct access )
8651  44 49 53 4B              DISK

8655                .diskvec  ; ( No direct access )
8655  93 37 00                 .7.

8658                .cmdlist_A0  ; ( No direct access )
8658  85 B6 00                 ...

865B                .cmdlist_A3  ; ( No direct access )
865B  44 46 53 99 C5 00        DFS...

8661                .cmdlist_A9  ; ( No direct access )
8661  55 54 49 4C 53           UTILS

8666                .cmdutils_vec  ; ( No direct access )
8666  99 ED 00                 ...

8669                .cmdlist_B1  ; ( No direct access )
8669  99 F4 00                 ...

866C                .fscv3_unrec_command  ; ( No direct access )
866C  20 B8 86   ..  	JSR set_TextPointer_to_Y_times_100_plus_X
866F  A2 FD     ..   	LDX #$FD                        ; "X=FD+3=0 ie all commands"

8671                .unrec_command_at_TextPointer  ; ( ABSOLUTE=2 )
8671  8A        .    	TXA                             ; "X=start command,"
8672  BA        .    	TSX                             ; "textpointer+Y = cmd line"
8673  86 B6     ..   	STX data_B6                     ; "&B6=STACKP"
8675  AA        .    	TAX
8676  98        .    	TYA                             ; "save Y"
8677  48        H    	PHA
8678                .unrec_loop  ; ( RELATIVE=2 )
8678  E8        .    	INX                             ; "next 3 bytes ignored"
8679  E8        .    	INX                             ; "contain addr/code of prev."
867A  68        h    	PLA                             ; "entry in table"
867B  48        H    	PHA                             ; "read Y"
867C  A8        .    	TAY                             ; "Y=offset of word textpointer"
867D  20 BF 86   ..  	JSR Go_GSINIT__terminator_is_spc_cr_doublequote    ; "assume X preserved"
8680  E8        .    	INX
8681  BD B8 85  ...  	LDA cmdlist,X
8684  30 28     0(   	BMI go_cmdcode                  ; "end of table?"
8686  CA        .    	DEX                             ; "init next loop"
8687  88        .    	DEY
8688  86 B8     ..   	STX data_B8                     ; "?B8=start of next string-1"
868A                .unrec_loop2  ; ( RELATIVE=1 )
868A  E8        .    	INX                             ; "compare strings"
868B  C8        .    	INY
868C  BD B8 85  ...  	LDA cmdlist,X
868F  30 16     0.   	BMI end_of_cmd_oncmdline ; "?"        ; "end of table "cmd" - matched!"
8691  51 F2     Q.   	EOR (os_textptr_L__F2),Y
8693  29 5F     )_   	AND #$5F                        ; "ignore case"
8695  F0 F3     ..   	BEQ unrec_loop2                 ; "while chrs eq go loop2"
8697  CA        .    	DEX                             ; "init next loop"
8698                .unrec_loop3  ; ( RELATIVE=1 )
8698  E8        .    	INX
8699  BD B8 85  ...  	LDA cmdlist,X
869C  10 FA     ..   	BPL unrec_loop3                 ; "find end of table "cmd""
869E  B1 F2     ..   	LDA (os_textptr_L__F2),Y        ; "does cmd line end with"
86A0  C9 2E     ..   	CMP #$2E                        ; "full stop?"
86A2  D0 D4     ..   	BNE unrec_loop                  ; "no, so no match"
86A4  C8        .    	INY
86A5  B0 07     ..   	BCS go_cmdcode                  ; ">=".""
86A7                .end_of_cmd_oncmdline  ; ( RELATIVE=1 ) ; "?"
86A7  B1 F2     ..   	LDA (os_textptr_L__F2),Y        ; "strings matched so far"
86A9  20 EE 82   ..  	JSR alphachr_if_C_0 ; "returns C=0 if A is alpha; A preserved"          ; "is end of command on"
86AC  90 CA     ..   	BCC unrec_loop                  ; "cmd line, c=0=no, go next cmd"
86AE                .go_cmdcode  ; ( RELATIVE=2 )
86AE  68        h    	PLA                             ; "cmd matched, go code"
86AF  BD B8 85  ...  	LDA cmdlist,X                   ; "return to address in table+1"
86B2  48        H    	PHA
86B3  BD B9 85  ...  	LDA cmdlist_1,X
86B6  48        H    	PHA
86B7  60        `    	RTS

86B8                .set_TextPointer_to_Y_times_100_plus_X  ; ( ABSOLUTE=4 )
86B8  86 F2     ..   	STX os_textptr_L__F2
86BA  84 F3     ..   	STY os_textptr_H__F3
86BC  A0 00     ..   	LDY #$00
86BE  60        `    	RTS

86BF                .Go_GSINIT__terminator_is_spc_cr_doublequote  ; ( ABSOLUTE=12 )
86BF  18        .    	CLC                             ; "C=0 first spc,Cr or 2nd" terminates"
86C0  4C C2 FF  L..  	JMP os_gsinit

86C3                .CMD_WIPE  ; ( No direct access )
86C3  20 5E 82   ^.  	JSR parameter_afsp
86C6  20 01 9A   ..  	JSR init_param ; "(syntax error if none)"
86C9  20 68 82   h.  	JSR cmd_info_afsp_cmdl       ; "load cat & return offset"
86CC                .code_86CC  ;( RELATIVE=1 )
86CC  B9 0F 0E  ...  	LDA data_0E0F,Y
86CF  30 12     0.   	BMI code_86E3
86D1  20 C0 81   ..  	JSR prt_filename__Y_offset    ; "Prompt confirm?"
86D4  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"    ; "print " : ""
86D7  20 3A 20   :   	JSR code_203A
86DA  EA        .    	NOP
86DB  20 9E 9C   ..  	JSR confirm_YN__Z_is_1_if_Yes
86DE  F0 09     ..   	BEQ code_86E9

86E0                .code_86E0  ;( ABSOLUTE=1 )
86E0  20 9A 9F   ..  	JSR prt_NewLine ; "(A preserved)"
86E3                .code_86E3  ;( RELATIVE=1 )
86E3  20 9D 82   ..  	JSR get_cat_nextentry ; "(return: C=1=found, Y=offset)"
86E6  B0 E4     ..   	BCS code_86CC
86E8  60        `    	RTS
86E9                .code_86E9  ;( RELATIVE=1 )
86E9  20 A1 81   ..  	JSR check_for_Disk_change
86EC  20 D1 82   ..  	JSR DeleteCatEntry__Y_is_file_offset ; "(Y=file_offset)"
86EF  20 B4 8A   ..  	JSR SaveCatToDisk            ; "save cat"
86F2  AC CE 10  ...  	LDY data_10CE
86F5  20 19 82   ..  	JSR decrement_Y_by_8
86F8  8C CE 10  ...  	STY data_10CE
86FB  4C E0 86  L..  	JMP code_86E0

86FE                .CMD_DELETE  ; ( No direct access )
86FE  20 62 82   b.  	JSR parameter_fsp
8701  20 01 9A   ..  	JSR init_param ; "(syntax error if none)"
8704  20 68 82   h.  	JSR cmd_info_afsp_cmdl       ; "load cat & return offset"
8707  20 FC 82   ..  	JSR prt_infoline_if_mem10C7_negative
870A  20 D1 82   ..  	JSR DeleteCatEntry__Y_is_file_offset ; "(Y=file_offset)"
870D  4C B4 8A  L..  	JMP SaveCatToDisk            ; "save cat"

8710                .CMD_DESTROY  ; ( No direct access )
8710  20 BD 9B   ..  	JSR ENABLED_CMD
8713  20 5E 82   ^.  	JSR parameter_afsp
8716  20 01 9A   ..  	JSR init_param ; "(syntax error if none)"
8719  20 68 82   h.  	JSR cmd_info_afsp_cmdl       ; "load cat & return offset"
871C                .code_871C  ;( RELATIVE=1 )
871C  B9 0F 0E  ...  	LDA data_0E0F,Y
871F  30 06     0.   	BMI code_8727
8721  20 C0 81   ..  	JSR prt_filename__Y_offset
8724  20 9A 9F   ..  	JSR prt_NewLine ; "(A preserved)"
8727                .code_8727  ;( RELATIVE=1 )
8727  20 9D 82   ..  	JSR get_cat_nextentry ; "(return: C=1=found, Y=offset)"
872A  B0 F0     ..   	BCS code_871C
872C  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
872F  0D 44 65 6C 65 74 65 20  .Delete 
8737  28 59 2F 4E 29 20 3F 20  (Y/N) ? 
873F  EA        .    	NOP
8740  20 9E 9C   ..  	JSR confirm_YN__Z_is_1_if_Yes
8743  F0 03     ..   	BEQ code_8748
8745  4C 9A 9F  L..  	JMP prt_NewLine ; "(A preserved)"
8748                .code_8748  ;( RELATIVE=1 )
8748  20 A1 81   ..  	JSR check_for_Disk_change
874B  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"
874E                .code_874E  ;( RELATIVE=1 )
874E  B9 0F 0E  ...  	LDA data_0E0F,Y
8751  30 0C     0.   	BMI code_875F
8753  20 D1 82   ..  	JSR DeleteCatEntry__Y_is_file_offset ; "(Y=file_offset)"
8756  AC CE 10  ...  	LDY data_10CE
8759  20 19 82   ..  	JSR decrement_Y_by_8
875C  8C CE 10  ...  	STY data_10CE
875F                .code_875F  ;( RELATIVE=1 )
875F  20 9D 82   ..  	JSR get_cat_nextentry ; "(return: C=1=found, Y=offset)"
8762  B0 EA     ..   	BCS code_874E
8764  20 B4 8A   ..  	JSR SaveCatToDisk            ; "save cat"

8767                .msgDELETED  ; ( No direct access )
8767  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
876A  0D 44 65 6C 65 74 65 64  .Deleted
8772  0D                       .
8773  EA        .    	NOP
8774  60        `    	RTS

8775                .CMD_DRIVE  ; ( No direct access )
8775  20 01 9A   ..  	JSR init_param ; "(syntax error if none)"

8778                .Syntax_err_if_no_params  ; ( No direct access )
8778  20 5D 83   ].  	JSR code_835D
877B  8D CB 10  ...  	STA data_10CB

877E                .set_CurrentDrive  ; ( ABSOLUTE=10 )
877E  20 D6 8C   ..  	JSR FDC_wait_if_busy ; "(AXY preserved)"         ; "wait til drive not busy"
8781  29 03     ).   	AND #$03
8783  85 CF     ..   	STA data_CF
8785  60        `    	RTS                             ; "end"

8786                .osfile0_save_memblock  ; ( No direct access )
8786  20 61 89   a.  	JSR createfile_fsp_at_indirect_BC
8789  20 6E 98   n.  	JSR code_986e ; "pwsptr=?10DC/DD"
878C  20 7E 83   ~.  	JSR read_fileattribs__Y_is_offset_of_file

878F                .save_memblock  ; ( ABSOLUTE=2 )
878F  20 1F 8C   ..  	JSR Load_NMI0_write_at_0E00_Tube_init ; "(exit Z=0)"
8792  D0 35     .5   	BNE BLOCK_D_.doREADWRITE        ; "always"

8794                .osfileFF_load_file_to_addr  ; ( No direct access )
8794  20 6E 82   n.  	JSR get_cat_entry_afsp_at_indirect_BC ; "(return: C=1=found, Y=offset)"    ; "Get Load Addr etc."
8797  20 6E 98   n.  	JSR code_986e ; "pwsptr=?10DC/DD"                ; "from catalogue"
879A  20 7E 83   ~.  	JSR read_fileattribs__Y_is_offset_of_file    ; "(Just for info?)"

879D                .load_file  ; ( ABSOLUTE=1 )
879D  84 BC     ..   	STY data_BC                     ; "Y=fileoffset"
879F  A2 00     ..   	LDX #$00
87A1  A5 C0     ..   	LDA data_C0                     ; "if ?C0=0 don't"
87A3  D0 06     ..   	BNE load_at_LoadAddr            ; "do Load Addr"
87A5  C8        .    	INY                             ; "else use existing"
87A6  C8        .    	INY
87A7  A2 02     ..   	LDX #$02
87A9  D0 08     ..   	BNE load_copyfileinfo_loop      ; "always"
87AB                .load_at_LoadAddr  ; ( RELATIVE=1 )
87AB  B9 0E 0F  ...  	LDA data_0F0E,Y                 ; ""mixed byte""
87AE  85 C4     ..   	STA data_C4
87B0  20 3F 8A   ?.  	JSR LoadAddrHi2 ; "(?C4=mixed byte : if Host=FFFF)"
87B3                .load_copyfileinfo_loop  ; ( RELATIVE=2 )
87B3  B9 08 0F  ...  	LDA data_0F08,Y
87B6  95 BE     ..   	STA data_BE,X                   ; "BE-C5 / C0-C5"
87B8  C8        .    	INY                             ; "=file attributes"
87B9  E8        .    	INX
87BA  E0 08     ..   	CPX #$08
87BC  D0 F5     ..   	BNE load_copyfileinfo_loop
87BE  20 56 8A   V.  	JSR exec_AddrHi2 ; "(?C4=mixed byte)"
87C1  A4 BC     ..   	LDY data_BC
87C3  20 FC 82   ..  	JSR prt_infoline_if_mem10C7_negative    ; "opt. print file info"

87C6                .load_memblock  ; ( ABSOLUTE=2 )
87C6  20 11 8C   ..  	JSR Load_NMI1_read_at_0E00_Tube_init ; "(exit Z=0)"
87C9                .BLOCK_D_.doREADWRITE  ; ( RELATIVE=1 )
87C9  20 22 82   ".  	JSR BLOCK_Y__init_NMI_vars ; "init_NMI_vars"
87CC  20 78 8C   x.  	JSR FDC_Setup_RW ; "?A1=cmd ?BA=trk ?BB=sec A4/A5secsleft"
87CF  A9 01     ..   	LDA #$01
87D1  4C E7 98  L..  	JMP release_NMI_Wait_FDC_busy ; "(A=bitmask)(AXY preserved)"    ; "END LOAD/SAVE"

87D4                .fscv2_and_4_stardiv_or_star_RUN  ; ( No direct access )
87D4  20 B8 86   ..  	JSR set_TextPointer_to_Y_times_100_plus_X

87D7                .cmdnotintable1  ; ( No direct access )
87D7  20 41 88   A.  	JSR word_BC_is_TextPointer_and_set_memC0_FF
87DA  8C DB 10  ...  	STY data_10DB
87DD  20 06 81   ..  	JSR read_afsp_at_indirect_BC ; "(return Y=Tpoffsetnonblank)"
87E0  8C DA 10  ...  	STY data_10DA                    ; "SAVE Y"
87E3  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"
87E6  B0 22     ."   	BCS run_file_found
87E8  AC DB 10  ...  	LDY data_10DB
87EB  AD CC 10  ...  	LDA data_10CC
87EE  85 CE     ..   	STA data_CE
87F0  AD CD 10  ...  	LDA data_10CD
87F3  20 7E 87   ~.  	JSR set_CurrentDrive
87F6  20 09 81   ..  	JSR clear_afsp_and_restoreTextPtr
87F9  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"
87FC  B0 0C     ..   	BCS run_file_found

87FE                .errBAD_COMMAND  ; ( No direct access )
87FE  20 22 80   ".  	JSR errBAD
8801  FE 63 6F 6D 6D 61 6E 64  .command
8809  00                       .
880A                .run_file_found  ; ( RELATIVE=2 )
880A  20 9D 87   ..  	JSR load_file
880D  18        .    	CLC
880E  AD DA 10  ...  	LDA data_10DA                    ; "RETRIVE Y"
8811  A8        .    	TAY                             ; "ADD TO TEXTPTR"
8812  65 F2     e.   	ADC os_textptr_L__F2
8814  8D DA 10  ...  	STA data_10DA
8817  A5 F3     ..   	LDA os_textptr_H__F3
8819  69 00     i.   	ADC #$00
881B  8D DB 10  ...  	STA data_10DB                    ; "w10DA=parameter ptr"
881E  AD 76 10  .v.  	LDA data_1076                    ; "execution address"
8821  2D 77 10  -w.  	AND data_1077                    ; "high bytes!"
8824  0D D7 10  ...  	ORA data_10D7
8827  C9 FF     ..   	CMP #$FF
8829  F0 13     ..   	BEQ jump_indirect_C0            ; "Branch if no TUBE??"
882B  A5 C0     ..   	LDA data_C0
882D  8D 74 10  .t.  	STA data_1074
8830  A5 C1     ..   	LDA data_C1
8832  8D 75 10  .u.  	STA data_1075
8835  A2 74     .t   	LDX #$74
8837  A0 10     ..   	LDY #$10
8839  A9 04     ..   	LDA #$04
883B  4C 06 04  L..  	JMP os_tube_filing_system_IO__0406    ; "TUBE execute AUG 345"
883E                .jump_indirect_C0  ; ( RELATIVE=1 )
883E  6C C0 00  l..  	JMP (data_00C0)

8841                .word_BC_is_TextPointer_and_set_memC0_FF  ; ( ABSOLUTE=1 )
8841  A9 FF     ..   	LDA #$FF
8843  85 C0     ..   	STA data_C0
8845  A5 F2     ..   	LDA os_textptr_L__F2
8847  85 BC     ..   	STA data_BC
8849  A5 F3     ..   	LDA os_textptr_H__F3
884B  85 BD     ..   	STA data_BD
884D  60        `    	RTS

884E                .CMD_DIR  ; ( No direct access )
884E  A2 00     ..   	LDX #$00
8850  F0 02     ..   	BEQ code_8854

8852                .CMD_LIB  ; ( No direct access )
8852  A2 02     ..   	LDX #$02
8854                .code_8854  ;( RELATIVE=1 )
8854  20 60 88   `.  	JSR code_8860
8857  9D CB 10  ...  	STA data_10CB,X                 ; "??10ok"
885A  A5 CE     ..   	LDA data_CE
885C  9D CA 10  ...  	STA data_10CA,X                 ; "??10ok"
885F  60        `    	RTS

8860                .code_8860  ; ( ABSOLUTE=1 )
8860  A9 24     .$   	LDA #$24
8862  85 CE     ..   	STA data_CE
8864  20 BF 86   ..  	JSR Go_GSINIT__terminator_is_spc_cr_doublequote
8867  D0 07     ..   	BNE code_8870
8869  A9 00     ..   	LDA #$00
886B  20 7E 87   ~.  	JSR set_CurrentDrive
886E  F0 30     .0   	BEQ code_88A0
8870                .code_8870  ;( RELATIVE=1 )
8870  AD CB 10  ...  	LDA data_10CB
8873  20 7E 87   ~.  	JSR set_CurrentDrive
8876                .code_8876  ;( RELATIVE=1 )
8876  20 C5 FF   ..  	JSR os_gsread
8879  B0 10     ..   	BCS errBAD_DIRECTORY
887B  C9 3A     .:   	CMP #$3A
887D  D0 1A     ..   	BNE code_8899
887F  20 5D 83   ].  	JSR code_835D
8882  20 C5 FF   ..  	JSR os_gsread
8885  B0 19     ..   	BCS code_88A0
8887  C9 2E     ..   	CMP #$2E
8889  F0 EB     ..   	BEQ code_8876
888B                .errBAD_DIRECTORY  ; ( RELATIVE=2 )
888B  20 22 80   ".  	JSR errBAD
888E  CE 64 69 72 65 63 74 6F  .directo
8896  72 79 00                 ry.
8899                .code_8899  ;( RELATIVE=1 )
8899  85 CE     ..   	STA data_CE
889B  20 C5 FF   ..  	JSR os_gsread
889E  90 EB     ..   	BCC errBAD_DIRECTORY
88A0                .code_88A0  ;( RELATIVE=2 )
88A0  A5 CF     ..   	LDA data_CF
88A2  60        `    	RTS

88A3                .CMD_TITLE  ; ( No direct access )
88A3  20 01 9A   ..  	JSR init_param ; "(syntax error if none)"
88A6  20 4D 83   M.  	JSR set_CE_CF_driveno
88A9  20 47 83   G.  	JSR Load_CurDrvCat__preserve_AXY    ; "load cat"
88AC  A2 0B     ..   	LDX #$0B
88AE  A9 00     ..   	LDA #$00
88B0                .code_88B0  ;( RELATIVE=1 )
88B0  20 C6 88   ..  	JSR code_88C6
88B3  CA        .    	DEX
88B4  10 FA     ..   	BPL code_88B0
88B6                .code_88B6  ;( RELATIVE=1 )
88B6  E8        .    	INX
88B7  20 C5 FF   ..  	JSR os_gsread
88BA  B0 07     ..   	BCS code_88C3
88BC  20 C6 88   ..  	JSR code_88C6
88BF  E0 0B     ..   	CPX #$0B
88C1  90 F3     ..   	BCC code_88B6

88C3                .code_88C3  ;( ABSOLUTE=1 RELATIVE=2 )
88C3  4C B4 8A  L..  	JMP SaveCatToDisk            ; "save cat (not used)"

88C6                .code_88C6  ;( ABSOLUTE=2 )
88C6  E0 08     ..   	CPX #$08
88C8  90 04     ..   	BCC code_88CE
88CA  9D F8 0E  ...  	STA data_0EF8,X
88CD  60        `    	RTS
88CE                .code_88CE  ;( RELATIVE=1 )
88CE  9D 00 0E  ...  	STA data_0E00,X
88D1  60        `    	RTS

88D2                .CMD_ACCESS  ; ( No direct access )
88D2  20 5E 82   ^.  	JSR parameter_afsp
88D5  20 01 9A   ..  	JSR init_param ; "(syntax error if none)"
88D8  20 FE 80   ..  	JSR read_afsp_at_TextPointer
88DB  A2 00     ..   	LDX #$00
88DD  20 BF 86   ..  	JSR Go_GSINIT__terminator_is_spc_cr_doublequote
88E0  D0 23     .#   	BNE code_8905
88E2                .code_88E2  ;( RELATIVE=1 )
88E2  86 AA     ..   	STX data_AA
88E4  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"
88E7  B0 03     ..   	BCS code_88EC
88E9  4C 76 82  Lv.  	JMP err_FILE_NOT_FOUND
88EC                .code_88EC  ;( RELATIVE=2 )
88EC  20 4F 98   O.  	JSR code_984F
88EF  B9 0F 0E  ...  	LDA data_0E0F,Y
88F2  29 7F     ).   	AND #$7F
88F4  05 AA     ..   	ORA data_AA
88F6  99 0F 0E  ...  	STA data_0E0F,Y
88F9  20 FC 82   ..  	JSR prt_infoline_if_mem10C7_negative
88FC  20 9D 82   ..  	JSR get_cat_nextentry ; "(return: C=1=found, Y=offset)"
88FF  B0 EB     ..   	BCS code_88EC
8901  90 C0     ..   	BCC code_88C3
8903                .code_8903  ;( RELATIVE=1 )
8903  A2 80     ..   	LDX #$80
8905                .code_8905  ;( RELATIVE=1 )
8905  20 C5 FF   ..  	JSR os_gsread
8908  B0 D8     ..   	BCS code_88E2
890A  C9 4C     .L   	CMP #$4C                        ; ""L""
890C  F0 F5     ..   	BEQ code_8903

890E                .errBAD_ATTRIBUTE  ; ( No direct access )
890E  20 22 80   ".  	JSR errBAD
8911  CF 61 74 74 72 69 62 75  .attribu
8919  74 65 00                 te.

891C                .fscv0__star_OPT  ; ( No direct access )
891C  20 E1 83   ..  	JSR rememberAXY
891F  8A        .    	TXA
8920  C9 04     ..   	CMP #$04
8922  F0 1A     ..   	BEQ set_BootOption__Y_is_option
8924  C9 02     ..   	CMP #$02
8926  90 0B     ..   	BCC code_8933

8928                .errBAD_OPTION  ; ( No direct access )
8928  20 22 80   ".  	JSR errBAD
892B  CB 6F 70 74 69 6F 6E 00  .option.
8933                .code_8933  ;( RELATIVE=1 )
8933  A2 FF     ..   	LDX #$FF                        ; "*OPT 1,X"
8935  98        .    	TYA
8936  F0 02     ..   	BEQ code_893A
8938  A2 00     ..   	LDX #$00
893A                .code_893A  ;( RELATIVE=1 )
893A  8E C7 10  ...  	STX data_10C7
893D  60        `    	RTS
893E                .set_BootOption__Y_is_option  ; ( RELATIVE=1 )
893E  98        .    	TYA
893F  48        H    	PHA
8940  20 4D 83   M.  	JSR set_CE_CF_driveno
8943  20 EB 8A   ..  	JSR Load_CurDrvCatalog       ; "load cat"
8946  68        h    	PLA
8947  20 0B 82   ..  	JSR asl_A_4_times
894A  4D 06 0F  M..  	EOR data_0F06
894D  29 30     )0   	AND #$30
894F  4D 06 0F  M..  	EOR data_0F06
8952  8D 06 0F  ...  	STA data_0F06
8955  4C B4 8A  L..  	JMP SaveCatToDisk            ; "save cat"

8958                .errDISK_FULL  ; ( ABSOLUTE=1 RELATIVE=1 )
8958  20 18 80   ..  	JSR errDISK
895B  C6 66 75 6C 6C 00        .full.

8961                .createfile_fsp_at_indirect_BC  ; ( ABSOLUTE=2 )
8961  20 06 81   ..  	JSR read_afsp_at_indirect_BC ; "(return Y=Tpoffsetnonblank)"    ; "loads cat"
8964  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"       ; "does file exist"
8967  90 03     ..   	BCC createfile_nodel
8969  20 D1 82   ..  	JSR DeleteCatEntry__Y_is_file_offset ; "(Y=file_offset)"    ; "delete previous file"
896C                .createfile_nodel  ; ( RELATIVE=1 )
896C  A5 C2     ..   	LDA data_C2                     ; "save wC2"
896E  48        H    	PHA
896F  A5 C3     ..   	LDA data_C3
8971  48        H    	PHA
8972  38        8    	SEC
8973  A5 C4     ..   	LDA data_C4                     ; "wC2=wC4-wC2"
8975  E5 C2     ..   	SBC data_C2
8977  85 C2     ..   	STA data_C2
8979  A5 C5     ..   	LDA data_C5
897B  E5 C3     ..   	SBC data_C3
897D  85 C3     ..   	STA data_C3
897F  AD 7A 10  .z.  	LDA data_107A
8982  ED 78 10  .x.  	SBC data_1078
8985  85 C6     ..   	STA data_C6
8987  20 9D 89   ..  	JSR createfile_2
898A  AD 79 10  .y.  	LDA data_1079
898D  8D 75 10  .u.  	STA data_1075
8990  AD 78 10  .x.  	LDA data_1078
8993  8D 74 10  .t.  	STA data_1074
8996  68        h    	PLA
8997  85 BF     ..   	STA data_BF
8999  68        h    	PLA
899A  85 BE     ..   	STA data_BE
899C  60        `    	RTS

899D                .createfile_2  ; ( ABSOLUTE=2 )
899D  A9 00     ..   	LDA #$00                        ; "NB Cat stored in"
899F  85 C4     ..   	STA data_C4                     ; "desc start sec order"
89A1  A9 02     ..   	LDA #$02                        ; "(file at 002 last)"
89A3  85 C5     ..   	STA data_C5                     ; "c4/c5=&200"
89A5  AC 05 0F  ...  	LDY data_0F05                    ; "find free block"
89A8  F0 2D     .-   	BEQ createfile_end_of_disk      ; "big enough"
89AA  C0 F8     ..   	CPY #$F8                        ; "for new file"
89AC  B0 56     .V   	BCS errCATALOGUE_FULL
89AE  20 9E 85   ..  	JSR get_first_block
89B1  4C BC 89  L..  	JMP createfile_cont2
89B4                .createfile_loop  ; ( RELATIVE=1 )
89B4  F0 A2     ..   	BEQ errDISK_FULL
89B6  20 19 82   ..  	JSR decrement_Y_by_8
89B9  20 7F 85   ..  	JSR get_next_block

89BC                .createfile_cont2  ; ( ABSOLUTE=1 )
89BC  98        .    	TYA
89BD  90 F5     ..   	BCC createfile_loop
89BF  84 B0     ..   	STY data_B0                     ; "block found"
89C1  AC 05 0F  ...  	LDY data_0F05
89C4                .createfile_insert_file_loop  ; ( RELATIVE=1 )
89C4  C4 B0     ..   	CPY data_B0
89C6  F0 0F     ..   	BEQ createfile_end_of_disk
89C8  B9 07 0E  ...  	LDA data_0E07,Y
89CB  99 0F 0E  ...  	STA data_0E0F,Y
89CE  B9 07 0F  ...  	LDA data_0F07,Y
89D1  99 0F 0F  ...  	STA data_0F0F,Y
89D4  88        .    	DEY
89D5  B0 ED     ..   	BCS createfile_insert_file_loop
89D7                .createfile_end_of_disk  ; ( RELATIVE=2 )
89D7  A2 00     ..   	LDX #$00
89D9  20 17 8A   ..  	JSR code_8a17
89DC                .code_89DC  ;( RELATIVE=1 )
89DC  B5 C7     ..   	LDA data_C7,X
89DE  99 08 0E  ...  	STA data_0E08,Y
89E1  C8        .    	INY
89E2  E8        .    	INX
89E3  E0 08     ..   	CPX #$08
89E5  D0 F5     ..   	BNE code_89DC
89E7                .code_89E7  ;( RELATIVE=1 )
89E7  B5 BD     ..   	LDA data_BD,X
89E9  88        .    	DEY
89EA  99 08 0F  ...  	STA data_0F08,Y
89ED  CA        .    	DEX
89EE  D0 F7     ..   	BNE code_89E7
89F0  20 FC 82   ..  	JSR prt_infoline_if_mem10C7_negative
89F3  98        .    	TYA
89F4  48        H    	PHA
89F5  AC 05 0F  ...  	LDY data_0F05
89F8  20 10 82   ..  	JSR increment_Y_by_8
89FB  8C 05 0F  ...  	STY data_0F05
89FE  20 B4 8A   ..  	JSR SaveCatToDisk            ; "save cat"
8A01  68        h    	PLA
8A02  A8        .    	TAY
8A03  60        `    	RTS
8A04                .errCATALOGUE_FULL  ; ( RELATIVE=1 )
8A04  20 33 80   3.  	JSR Brk100_errno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"
8A07  BE 43 61 74 61 6C 6F 67  .Catalog
8A0F  75 65 20 66 75 6C 6C 00  ue full.

8A17                .code_8a17  ; ( ABSOLUTE=1 )
8A17  AD 76 10  .v.  	LDA data_1076
8A1A  29 03     ).   	AND #$03
8A1C  0A        .    	ASL A
8A1D  0A        .    	ASL A
8A1E  45 C6     E.   	EOR data_C6
8A20  29 FC     ).   	AND #$FC
8A22  45 C6     E.   	EOR data_C6
8A24  0A        .    	ASL A
8A25  0A        .    	ASL A
8A26  4D 74 10  Mt.  	EOR data_1074
8A29  29 FC     ).   	AND #$FC
8A2B  4D 74 10  Mt.  	EOR data_1074
8A2E  0A        .    	ASL A
8A2F  0A        .    	ASL A
8A30  45 C4     E.   	EOR data_C4
8A32  29 FC     ).   	AND #$FC
8A34  45 C4     E.   	EOR data_C4
8A36  85 C4     ..   	STA data_C4
8A38  60        `    	RTS

8A39                .CMD_ENABLE  ; ( No direct access )
8A39  A9 01     ..   	LDA #$01
8A3B  8D C8 10  ...  	STA data_10C8
8A3E  60        `    	RTS

8A3F                .LoadAddrHi2  ; ( ABSOLUTE=2 ) ; "(?C4=mixed byte : if Host=FFFF)"
8A3F  A9 00     ..   	LDA #$00
8A41  8D 75 10  .u.  	STA data_1075
8A44  A5 C4     ..   	LDA data_C4                     ; ""mixed byte""
8A46  20 FF 81   ..  	JSR lsr_A_2_times_and_3      ; "load addr"
8A49  C9 03     ..   	CMP #$03
8A4B  D0 05     ..   	BNE not_Host
8A4D  A9 FF     ..   	LDA #$FF                        ; "host addr"
8A4F  8D 75 10  .u.  	STA data_1075
8A52                .not_Host  ; ( RELATIVE=1 )
8A52  8D 74 10  .t.  	STA data_1074
8A55  60        `    	RTS

8A56                .exec_AddrHi2  ; ( ABSOLUTE=2 ) ; "(?C4=mixed byte)"
8A56  A9 00     ..   	LDA #$00
8A58  8D 77 10  .w.  	STA data_1077
8A5B  A5 C4     ..   	LDA data_C4
8A5D  20 FB 81   ..  	JSR lsr_A_6_times_and_3
8A60  C9 03     ..   	CMP #$03
8A62  D0 05     ..   	BNE code_8A69
8A64  A9 FF     ..   	LDA #$FF
8A66  8D 77 10  .w.  	STA data_1077
8A69                .code_8A69  ;( RELATIVE=1 )
8A69  8D 76 10  .v.  	STA data_1076
8A6C  60        `    	RTS

8A6D                .CMD_RENAME  ; ( No direct access )
8A6D  20 62 82   b.  	JSR parameter_fsp
8A70  20 BF 86   ..  	JSR Go_GSINIT__terminator_is_spc_cr_doublequote
8A73  D0 03     ..   	BNE cmd_rename_params           ; "null string"
8A75                .cmd_rename_syntax  ; ( RELATIVE=1 )
8A75  4C 06 9A  L..  	JMP syntax_err
8A78                .cmd_rename_params  ; ( RELATIVE=1 )
8A78  20 FE 80   ..  	JSR read_afsp_at_TextPointer
8A7B  98        .    	TYA
8A7C  48        H    	PHA
8A7D  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"
8A80  B0 03     ..   	BCS cmd_rename_filefound
8A82  4C 76 82  Lv.  	JMP err_FILE_NOT_FOUND
8A85                .cmd_rename_filefound  ; ( RELATIVE=1 )
8A85  20 4C 98   L.  	JSR check_file_NotOpen
8A88  84 B3     ..   	STY data_B3
8A8A  68        h    	PLA
8A8B  A8        .    	TAY
8A8C  20 BF 86   ..  	JSR Go_GSINIT__terminator_is_spc_cr_doublequote    ; "read new name"
8A8F  F0 E4     ..   	BEQ cmd_rename_syntax           ; "null string"
8A91  20 FE 80   ..  	JSR read_afsp_at_TextPointer
8A94  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"       ; "check doesn't exist"
8A97  90 0B     ..   	BCC cmd_rename_newnameOK

8A99                .errFILE_EXISTS  ; ( No direct access )
8A99  20 2B 80   +.  	JSR errFILE
8A9C  C4 65 78 69 73 74 73 00  .exists.
8AA4                .cmd_rename_newnameOK  ; ( RELATIVE=1 )
8AA4  A4 B3     ..   	LDY data_B3
8AA6  20 10 82   ..  	JSR increment_Y_by_8
8AA9  A2 07     ..   	LDX #$07
8AAB                .cmd_rename_change_loop  ; ( RELATIVE=1 )
8AAB  B5 C7     ..   	LDA data_C7,X
8AAD  99 07 0E  ...  	STA data_0E07,Y
8AB0  88        .    	DEY
8AB1  CA        .    	DEX
8AB2  10 F7     ..   	BPL cmd_rename_change_loop

8AB4                .SaveCatToDisk  ; ( ABSOLUTE=10 )
8AB4  18        .    	CLC                             ; "Increment Cycle No"
8AB5  F8        .    	SED
8AB6  AD 04 0F  ...  	LDA data_0F04
8AB9  69 01     i.   	ADC #$01
8ABB  D8        .    	CLD
8ABC  8D 04 0F  ...  	STA data_0F04
8ABF  20 04 8B   ..  	JSR Reset_FDC_NMI

8AC2                .BLOCK_X  ; ( No direct access )
8AC2  20 35 8C   5.  	JSR code_8C35
8AC5                .savecat_attempts_loop  ; ( RELATIVE=1 )
8AC5  A0 2B     .+   	LDY #$2B
8AC7  C6 A2     ..   	DEC data_A2
8AC9  30 56     0V   	BMI FDC_ERROR__A_returns_FDC_result
8ACB  20 88 8B   ..  	JSR FDCcmd_from_table_with_Y_index ; "(exit Y=nextindex)"    ; "verify track 0/secs 8 & 9"
8ACE  20 CF 8C   ..  	JSR FDC_read_result ; "(return: A=RESULT,C preserved)"
8AD1  D0 F2     ..   	BNE savecat_attempts_loop
8AD3  20 24 8C   $.  	JSR Load_NMI0_write_at_0E00
8AD6  D0 1C     ..   	BNE RW_CurDrvCat                ; "always"

8AD8                .check_CurDrvCatalog2  ; ( ABSOLUTE=1 )
8AD8  20 4D 83   M.  	JSR set_CE_CF_driveno
8ADB  20 58 83   X.  	JSR get_driveno_with_init

8ADE                .check_CurDrvCatalog  ; ( ABSOLUTE=3 )
8ADE  20 BD 8B   ..  	JSR FDC_drive_ready__Z_1_if_ready ; "Returns Z=1 if ready"
8AE1  F0 08     ..   	BEQ Load_CurDrvCatalog
8AE3  AD 82 10  ...  	LDA data_1082
8AE6  C5 CF     ..   	CMP data_CF
8AE8  D0 01     ..   	BNE Load_CurDrvCatalog
8AEA                .Reset_FDC_seek_OK  ; ( RELATIVE=1 )
8AEA  60        `    	RTS                             ; "Ok, no need to read?"

8AEB                .Load_CurDrvCatalog  ; ( ABSOLUTE=6 RELATIVE=2 )
8AEB  20 9E 8B   ..  	JSR FDC_drive_ready_reset
8AEE  20 04 8B   ..  	JSR Reset_FDC_NMI
8AF1  20 16 8C   ..  	JSR Load_NMI1_read_at_0E00
8AF4                .RW_CurDrvCat  ; ( RELATIVE=1 )
8AF4  A9 00     ..   	LDA #$00                        ; "Host only!"
8AF6  8D D6 10  ...  	STA data_10D6
8AF9  20 78 8C   x.  	JSR FDC_Setup_RW ; "?A1=cmd ?BA=trk ?BB=sec A4/A5secsleft"
8AFC  A5 CF     ..   	LDA data_CF
8AFE  8D 82 10  ...  	STA data_1082
8B01  4C E7 98  L..  	JMP release_NMI_Wait_FDC_busy ; "(A=bitmask)(AXY preserved)"

8B04                .Reset_FDC_NMI  ; ( ABSOLUTE=2 )
8B04  A9 02     ..   	LDA #$02                        ; "Reset vars/NMI routine and seek trk 0"
8B06  20 AC 98   ..  	JSR BLOCK_A__claim_NMI__A_is_code_no_from_0_to_6 ; "Claim_NMI A=CODE No (0 to 6)"    ; "D00=RTI!"
8B09  A0 00     ..   	LDY #$00
8B0B  84 BA     ..   	STY data_BA                     ; "?BA=0"
8B0D  84 BB     ..   	STY data_BB                     ; "?BB=0"
8B0F  84 A3     ..   	STY data_A3                     ; "?A3=0"
8B11  C8        .    	INY
8B12  84 A5     ..   	STY data_A5                     ; "?A5=1"
8B14  C8        .    	INY
8B15  84 A4     ..   	STY data_A4                     ; "?A4=2"
8B17  A0 28     .(   	LDY #$28
8B19  20 88 8B   ..  	JSR FDCcmd_from_table_with_Y_index ; "(exit Y=nextindex)"    ; "Seek trk 0"
8B1C  20 CF 8C   ..  	JSR FDC_read_result ; "(return: A=RESULT,C preserved)"
8B1F  F0 C9     ..   	BEQ Reset_FDC_seek_OK           ; "Seek OK exit"

8B21                .FDC_ERROR__A_returns_FDC_result  ; ( ABSOLUTE=1 RELATIVE=1 )
8B21  20 EA 98   ..  	JSR release_NMI ; "(AXY preserved)"
8B24  C9 12     ..   	CMP #$12                        ; "Disk Write Protected?"
8B26  D0 0E     ..   	BNE disk_not_write_protected    ; "z=0=no"

8B28                .err_DISK_READ_ONLY  ; ( No direct access )
8B28  20 18 80   ..  	JSR errDISK
8B2B  C9 72 65 61 64 20 6F 6E  .read on
8B33  6C 79 00                 ly.
8B36                .disk_not_write_protected  ; ( RELATIVE=1 )
8B36  48        H    	PHA
8B37  C9 0A     ..   	CMP #$0A                        ; "Late DMA"
8B39  F0 39     .9   	BEQ errDRIVE_FAULT
8B3B  29 0F     ).   	AND #$0F
8B3D  C9 08     ..   	CMP #$08
8B3F  90 33     .3   	BCC errDRIVE_FAULT              ; "<8 (Comp.Type bit0 not set)"

8B41                .errDISK_FAULT  ; ( No direct access )
8B41  20 18 80   ..  	JSR errDISK
8B44  C7 66 61 75 6C 74 20     .fault 
8B4B  EA        .    	NOP

8B4C                .errFAULT_DESC  ; ( ABSOLUTE=1 )
8B4C  68        h    	PLA
8B4D  20 C2 80   ..  	JSR prt_hex_A ; "A preserved"                ; "fault no (FDC result)"
8B50  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
8B53  20 61 74   at  	JSR code_7461
8B56  20 A5 BA   ..  	JSR code_BAA5
8B59  20 C2 80   ..  	JSR prt_hex_A ; "A preserved"
8B5C  A9 2F     ./   	LDA #$2F                        ; "print "/""
8B5E  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"
8B61  A9 7D     .}   	LDA #$7D                        ; "rd spec.reg"
8B63  20 BD 8C   ..  	JSR FDC_write_Cmd__A_is_Cmd__returns_C_is_drive ; "(return C=drv, i.e. C=0 if drive 0, C=1 if drive 1)"
8B66  A9 06     ..   	LDA #$06                        ; "sector no."
8B68  20 B0 8C   ..  	JSR FDC_writeparam__A_is_Param
8B6B  20 CF 8C   ..  	JSR FDC_read_result ; "(return: A=RESULT,C preserved)"
8B6E  20 C2 80   ..  	JSR prt_hex_A ; "A preserved"                ; "print sector"
8B71  4C 8A 80  L..  	JMP prt_str_BRK              ; "force error"
8B74                .errDRIVE_FAULT  ; ( RELATIVE=2 )
8B74  20 33 80   3.  	JSR Brk100_errno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"
8B77  C5 44 72 69 76 65 20 66  .Drive f
8B7F  61 75 6C 74 20           ault 
8B84  EA        .    	NOP
8B85  4C 4C 8B  LL.  	JMP errFAULT_DESC

8B88                .FDCcmd_from_table_with_Y_index  ; ( ABSOLUTE=4 ) ; "(exit Y=nextindex)"
8B88  B9 E2 8C  ...  	LDA FDC_cmd_table0,Y            ; "write cmd"
8B8B  20 BD 8C   ..  	JSR FDC_write_Cmd__A_is_Cmd__returns_C_is_drive ; "(return C=drv, i.e. C=0 if drive 0, C=1 if drive 1)"

8B8E                .FDCcmd_from_table_loop  ; ( ABSOLUTE=1 )
8B8E  C8        .    	INY                             ; "write parameters"
8B8F  B9 E2 8C  ...  	LDA FDC_cmd_table0,Y            ; "end with EA"
8B92  C9 EA     ..   	CMP #$EA
8B94  F0 06     ..   	BEQ FDCcmd_from_table_exit_loop
8B96  20 B0 8C   ..  	JSR FDC_writeparam__A_is_Param
8B99  4C 8E 8B  L..  	JMP FDCcmd_from_table_loop
8B9C                .FDCcmd_from_table_exit_loop  ; ( RELATIVE=1 )
8B9C  C8        .    	INY
8B9D  60        `    	RTS

8B9E                .FDC_drive_ready_reset  ; ( ABSOLUTE=5 )
8B9E  48        H    	PHA                             ; "reset for current drv"
8B9F  98        .    	TYA                             ; "and check drv ready"
8BA0  48        H    	PHA
8BA1  A5 CF     ..   	LDA data_CF
8BA3  A8        .    	TAY
8BA4  A9 3A     .:   	LDA #$3A                        ; "FDC Write Special Register"
8BA6  20 C6 8C   ..  	JSR FDC_write_Cmd__A_is_Cmd__no_drv_select ; "(no drv select)"
8BA9  A9 23     .#   	LDA #$23                        ; "Drive Control Output Port"
8BAB  20 B0 8C   ..  	JSR FDC_writeparam__A_is_Param
8BAE  B9 CD 8B  ...  	LDA drv_ctl_outport_table,Y     ; "Y=Drive, get entry for drive"
8BB1  20 B0 8C   ..  	JSR FDC_writeparam__A_is_Param
8BB4                .FDC_drive_not_ready  ; ( RELATIVE=1 )
8BB4  20 BD 8B   ..  	JSR FDC_drive_ready__Z_1_if_ready ; "Returns Z=1 if ready"    ; "try again!"
8BB7  F0 FB     ..   	BEQ FDC_drive_not_ready         ; "wait til ready"
8BB9  68        h    	PLA
8BBA  A8        .    	TAY
8BBB  68        h    	PLA
8BBC  60        `    	RTS

8BBD                .FDC_drive_ready__Z_1_if_ready  ; ( ABSOLUTE=2 ) ; "Returns Z=1 if ready"
8BBD  A9 6C     .l   	LDA #$6C                        ; "READ DRIVE STATUS"
8BBF  20 BD 8C   ..  	JSR FDC_write_Cmd__A_is_Cmd__returns_C_is_drive ; "(return C=drv, i.e. C=0 if drive 0, C=1 if drive 1)"
8BC2  20 CF 8C   ..  	JSR FDC_read_result ; "(return: A=RESULT,C preserved)"
8BC5  90 03     ..   	BCC FDC_readdrvstatus_drv0      ; "if drive 0"
8BC7  20 05 82   ..  	JSR lsr_A_4_times
8BCA                .FDC_readdrvstatus_drv0  ; ( RELATIVE=1 )
8BCA  29 04     ).   	AND #$04                        ; "Bit2=Drive Ready"
8BCC  60        `    	RTS
8BCD                .drv_ctl_outport_table  ; ( DATA=1 )
8BCD  48        H    	PHA                             ; "Drive 0"
8BCE  88        .    	DEY
8BCF  68        h    	PLA
8BD0  A8        .    	TAY

8BD1                .set_1074_1075_to_FFFF__AXY_preserved  ; ( ABSOLUTE=2 )
8BD1  48        H    	PHA
8BD2  A9 FF     ..   	LDA #$FF
8BD4  8D 74 10  .t.  	STA data_1074
8BD7  8D 75 10  .u.  	STA data_1075
8BDA  68        h    	PLA
8BDB  60        `    	RTS

8BDC                .Tube_routine__C_0_if_executed  ; ( ABSOLUTE=1 )
8BDC  AD 80 10  ...  	LDA data_1080                    ; "get op"
8BDF  48        H    	PHA                             ; "see AUG pg.345"
8BE0  AD D6 10  ...  	LDA data_10D6
8BE3  4C 02 8C  L..  	JMP Tube_routine_initialised

8BE6                .Tube_routine_init  ; ( ABSOLUTE=3 ) ; "(A=op) C=0 if rw Tube else Host"
8BE6  48        H    	PHA
8BE7  8D 80 10  ...  	STA data_1080                    ; "save op"
8BEA  A5 BE     ..   	LDA data_BE
8BEC  8D 72 10  .r.  	STA data_1072
8BEF  A5 BF     ..   	LDA data_BF
8BF1  8D 73 10  .s.  	STA data_1073
8BF4  AD 74 10  .t.  	LDA data_1074
8BF7  2D 75 10  -u.  	AND data_1075                    ; "=FF if load to Host"
8BFA  0D D7 10  ...  	ORA data_10D7
8BFD  49 FF     I.   	EOR #$FF                        ; "-> =0 if load to host"
8BFF  8D D6 10  ...  	STA data_10D6

8C02                .Tube_routine_initialised  ; ( ABSOLUTE=1 )
8C02  38        8    	SEC
8C03  F0 0A     ..   	BEQ not_Tube_transfer           ; "?10d6<>0"
8C05  A2 72     .r   	LDX #$72
8C07  A0 10     ..   	LDY #$10                        ; "TubeAddr=&1072"
8C09  68        h    	PLA
8C0A  48        H    	PHA
8C0B  20 06 04   ..  	JSR os_tube_filing_system_IO__0406
8C0E  18        .    	CLC
8C0F                .not_Tube_transfer  ; ( RELATIVE=1 )
8C0F  68        h    	PLA
8C10  60        `    	RTS                             ; "EXIT C=1 if ?10d6=0"

8C11                .Load_NMI1_read_at_0E00_Tube_init  ; ( ABSOLUTE=1 ) ; "(exit Z=0)"
8C11  A9 01     ..   	LDA #$01
8C13  20 E6 8B   ..  	JSR Tube_routine_init ; "(A=op) C=0 if rw Tube else Host"        ; "init write to Tube"

8C16                .Load_NMI1_read_at_0E00  ; ( ABSOLUTE=1 )
8C16  A9 01     ..   	LDA #$01
8C18  20 AC 98   ..  	JSR BLOCK_A__claim_NMI__A_is_code_no_from_0_to_6 ; "Claim_NMI A=CODE No (0 to 6)"
8C1B  A9 53     .S   	LDA #$53                        ; "FDC cmd=READ DATA"
8C1D  D0 0C     ..   	BNE init_NMI_vars ; "(FDC cmd=A,DataPointer=&E00, Attempts=&A)"               ; "always"

8C1F                .Load_NMI0_write_at_0E00_Tube_init  ; ( ABSOLUTE=1 ) ; "(exit Z=0)"
8C1F  A9 00     ..   	LDA #$00
8C21  20 E6 8B   ..  	JSR Tube_routine_init ; "(A=op) C=0 if rw Tube else Host"        ; "init read from Tube"

8C24                .Load_NMI0_write_at_0E00  ; ( ABSOLUTE=1 )
8C24  A9 00     ..   	LDA #$00
8C26  20 AC 98   ..  	JSR BLOCK_A__claim_NMI__A_is_code_no_from_0_to_6 ; "Claim_NMI A=CODE No (0 to 6)"
8C29  A9 4B     .K   	LDA #$4B                        ; "FDC cmd=WRITE DATA"
8C2B                .init_NMI_vars  ; ( RELATIVE=1 ) ; "(FDC cmd=A,DataPointer=&E00, Attempts=&A)"
8C2B  85 A1     ..   	STA data_A1                     ; "cmd"
8C2D  A9 00     ..   	LDA #$00
8C2F  85 A6     ..   	STA data_A6
8C31  A9 0E     ..   	LDA #$0E
8C33  85 A7     ..   	STA data_A7                     ; "SetRW_Attempts=&A"

8C35                .code_8C35  ;( ABSOLUTE=2 )
8C35  A9 0A     ..   	LDA #$0A
8C37  85 A2     ..   	STA data_A2
8C39  60        `    	RTS

8C3A                .FDC_int_request  ; ( ABSOLUTE=1 )
8C3A  20 CF 8C   ..  	JSR FDC_read_result ; "(return: A=RESULT,C preserved)"          ; "Called by NMI routine"
8C3D  D0 20     .    	BNE FDC_int_request_resultnotzero    ; "Result<>0 = error"
8C3F  20 35 8C   5.  	JSR code_8C35                ; "?A2=&A"
8C42  E6 BA     ..   	INC data_BA                     ; "trk=trk+1"
8C44  A9 00     ..   	LDA #$00
8C46  85 BB     ..   	STA data_BB                     ; "sec=0"
8C48  AD 7C 10  .|.  	LDA data_107C                    ; "secs read last trk"
8C4B  18        .    	CLC
8C4C  6D 73 10  ms.  	ADC data_1073                    ; "wd 1073+=byte 107c"
8C4F  8D 73 10  .s.  	STA data_1073
8C52  90 24     .$   	BCC FDC_Setup_RW ; "?A1=cmd ?BA=trk ?BB=sec A4/A5secsleft"
8C54  EE 74 10  .t.  	INC data_1074
8C57  D0 1F     ..   	BNE FDC_Setup_RW ; "?A1=cmd ?BA=trk ?BB=sec A4/A5secsleft"
8C59  EE 75 10  .u.  	INC data_1075
8C5C  4C 78 8C  Lx.  	JMP FDC_Setup_RW ; "?A1=cmd ?BA=trk ?BB=sec A4/A5secsleft"
8C5F                .FDC_int_request_resultnotzero  ; ( RELATIVE=1 )
8C5F  C6 A2     ..   	DEC data_A2                     ; "dec RW_attempts"
8C61  10 03     ..   	BPL retry_FDC_operation         ; "If >0 try again"
8C63  4C 21 8B  L!.  	JMP FDC_ERROR__A_returns_FDC_result
8C66                .retry_FDC_operation  ; ( RELATIVE=1 )
8C66  A0 04     ..   	LDY #$04                        ; "use copy of NMI vars"
8C68                .restore_NMI_vars_loop  ; ( RELATIVE=1 )
8C68  B9 40 10  .@.  	LDA data_1040,Y
8C6B  99 A3 00  ...  	STA data_00A3,Y
8C6E  88        .    	DEY
8C6F  10 F7     ..   	BPL restore_NMI_vars_loop
8C71  8A        .    	TXA
8C72  48        H    	PHA
8C73  20 DC 8B   ..  	JSR Tube_routine__C_0_if_executed    ; "Tell Tube retrying"
8C76  68        h    	PLA
8C77  AA        .    	TAX

8C78                .FDC_Setup_RW  ; ( ABSOLUTE=3 RELATIVE=2 ) ; "?A1=cmd ?BA=trk ?BB=sec A4/A5secsleft"
8C78  A5 A5     ..   	LDA data_A5                     ; "nothing to do!"
8C7A  F0 40     .@   	BEQ FDC_writeparam_exit

8C7C                .save_NMI_vars  ; ( No direct access )
8C7C  A0 04     ..   	LDY #$04                        ; "Save NMI vars"
8C7E                .save_NMI_vars_loop  ; ( RELATIVE=1 )
8C7E  B9 A3 00  ...  	LDA data_00A3,Y
8C81  99 40 10  .@.  	STA data_1040,Y
8C84  88        .    	DEY
8C85  10 F7     ..   	BPL save_NMI_vars_loop
8C87  A5 A1     ..   	LDA data_A1                     ; "?A1=cmd"
8C89  20 BD 8C   ..  	JSR FDC_write_Cmd__A_is_Cmd__returns_C_is_drive ; "(return C=drv, i.e. C=0 if drive 0, C=1 if drive 1)"
8C8C  A5 BA     ..   	LDA data_BA                     ; "track?"
8C8E  20 B0 8C   ..  	JSR FDC_writeparam__A_is_Param
8C91  A5 BB     ..   	LDA data_BB                     ; "sector?"
8C93  20 B0 8C   ..  	JSR FDC_writeparam__A_is_Param
8C96  A9 0A     ..   	LDA #$0A                        ; "10 sectors/track?"
8C98  38        8    	SEC
8C99  E5 BB     ..   	SBC data_BB                     ; "10-first sector"
8C9B  8D 7C 10  .|.  	STA data_107C                    ; "=rd.secs.on track"
8C9E  A5 A5     ..   	LDA data_A5                     ; "a4/a5 total no.of secs?"
8CA0  C9 01     ..   	CMP #$01
8CA2  D0 07     ..   	BNE secs_a5_not_1               ; "if a5<>#1"
8CA4  A5 A4     ..   	LDA data_A4                     ; "no.of sec left???"
8CA6  CD 7C 10  .|.  	CMP data_107C
8CA9  90 03     ..   	BCC read_less_than_secs_on_track    ; "a4=secsleft<secs on track"
8CAB                .secs_a5_not_1  ; ( RELATIVE=1 )
8CAB  AD 7C 10  .|.  	LDA data_107C
8CAE                .read_less_than_secs_on_track  ; ( RELATIVE=1 )
8CAE  09 20     .    	ORA #$20                        ; "A=secsize=256/noofsecs"

8CB0                .FDC_writeparam__A_is_Param  ; ( ABSOLUTE=7 )
8CB0  48        H    	PHA
8CB1                .FDC_writeparam_wait  ; ( RELATIVE=1 )
8CB1  AD 80 FE  ...  	LDA sheila_FE80_fdc0
8CB4  29 20     )    	AND #$20                        ; "1 = parameter reg full"
8CB6  D0 F9     ..   	BNE FDC_writeparam_wait         ; "wait 'til empty"
8CB8  68        h    	PLA
8CB9  8D 81 FE  ...  	STA sheila_FE81
8CBC                .FDC_writeparam_exit  ; ( RELATIVE=1 )
8CBC  60        `    	RTS

8CBD                .FDC_write_Cmd__A_is_Cmd__returns_C_is_drive  ; ( ABSOLUTE=5 ) ; "(return C=drv, i.e. C=0 if drive 0, C=1 if drive 1)"
8CBD  48        H    	PHA                             ; "A=DRIVE0 + CMD"
8CBE  A5 CF     ..   	LDA data_CF
8CC0  6A        j    	ROR A                           ; "bit 0 = drive 0 or 1"
8CC1  68        h    	PLA
8CC2  90 02     ..   	BCC FDC_write_Cmd__A_is_Cmd__no_drv_select ; "(no drv select)"    ; "C=drive (S=01XXXXXX)"
8CC4  49 C0     I.   	EOR #$C0                        ; "S=10XXXXXX"

8CC6                .FDC_write_Cmd__A_is_Cmd__no_drv_select  ; ( ABSOLUTE=1 RELATIVE=2 ) ; "(no drv select)"
8CC6  2C 80 FE  ,..  	BIT sheila_FE80_fdc0
8CC9  30 FB     0.   	BMI FDC_write_Cmd__A_is_Cmd__no_drv_select ; "(no drv select)"    ; "while FDC command busy"
8CCB  8D 80 FE  ...  	STA sheila_FE80_fdc0
8CCE  60        `    	RTS

8CCF                .FDC_read_result  ; ( ABSOLUTE=6 ) ; "(return: A=RESULT,C preserved)"
8CCF  20 D6 8C   ..  	JSR FDC_wait_if_busy ; "(AXY preserved)"
8CD2  AD 81 FE  ...  	LDA sheila_FE81
8CD5  60        `    	RTS

8CD6                .FDC_wait_if_busy  ; ( ABSOLUTE=3 ) ; "(AXY preserved)"
8CD6  58        X    	CLI                             ; "allow interrupts"
8CD7                .FDC_wait_if_busy_loop  ; ( RELATIVE=2 )
8CD7  2C 80 FE  ,..  	BIT sheila_FE80_fdc0             ; "command busy?"
8CDA  30 FB     0.   	BMI FDC_wait_if_busy_loop
8CDC  2C 80 FE  ,..  	BIT sheila_FE80_fdc0             ; "command busy?"
8CDF  30 F6     0.   	BMI FDC_wait_if_busy_loop
8CE1  60        `    	RTS
8CE2                .FDC_cmd_table0  ; ( DATA=2 )
8CE2  35 0D 02 08 C0 EA        5.....

8CE8                .FDC_cmd_table6  ; ( No direct access )
8CE8  35 0D 03 08 C0 EA        5.....

8CEE                .FDC_cmd_tableC  ; ( No direct access )
8CEE  35 0D 03 19 C4 EA        5.....

8CF4                .FDC_cmd_table12  ; ( No direct access )
8CF4  35 0D 0C 0A C8 EA        5.....

8CFA                .FDC_cmd_table18  ; ( No direct access )
8CFA  35 10 FF FF 00 EA        5.....

8D00                .FDC_cmd_table1E  ; ( No direct access )
8D00  35 18 FF FF 00 EA        5.....

8D06                .FDC_cmd_table24  ; ( No direct access )
8D06  3A 17 C1 EA              :...

8D0A                .FDC_cmd_table28  ; ( No direct access )
8D0A  69 00 EA                 i..

8D0D                .FDC_cmd_table2B  ; ( No direct access )
8D0D  5F 00 08 22 EA           _..".

RELOCATE D00

8D12 0D00                .NMI0_WRITE  ; ( No direct access )
8D12 0D00  48        H    	PHA
8D13 0D01  98        .    	TYA
8D14 0D02  48        H    	PHA
8D15 0D03  AD 80 FE  ...  	LDA sheila_FE80_fdc0
8D18 0D06  29 04     ).   	AND #$04                        ; "/1=non DMA data request"
8D1A 0D08  F0 48     .H   	BEQ NMI0_1_not_NonDMA_request
8D1C 0D0A  AC D6 10  ...  	LDY data_10D6
8D1F 0D0D  D0 08     ..   	BNE NMI0_WRITE_from_Tube
8D21 0D0F  B1 A6     ..   	LDA (data_A6),Y
8D23 0D11  8D 84 FE  ...  	STA sheila_FE84_fdc4
8D26 0D14  4C 38 0D  L8.  	JMP code_0D38                ; "JMP inc_A6_Dec_A3"
8D29 0D17                .NMI0_WRITE_from_Tube  ; ( RELATIVE=1 )
8D29 0D17  AD E5 FE  ...  	LDA sheila_FEE5_tube5            ; "Tube"
8D2C 0D1A  8D 84 FE  ...  	STA sheila_FE84_fdc4
8D2F 0D1D  4C 3E 0D  L>.  	JMP code_0D3E                ; "JMP Dec_A3"

8D32 0D20                .NMI1_READ  ; ( No direct access )
8D32 0D20  48        H    	PHA
8D33 0D21  98        .    	TYA
8D34 0D22  48        H    	PHA
8D35 0D23  AD 80 FE  ...  	LDA sheila_FE80_fdc0
8D38 0D26  29 04     ).   	AND #$04                        ; "1=Non DMA data request"
8D3A 0D28  F0 28     .(   	BEQ NMI0_1_not_NonDMA_request
8D3C 0D2A  AD 84 FE  ...  	LDA sheila_FE84_fdc4
8D3F 0D2D  A4 A5     ..   	LDY data_A5
8D41 0D2F  F0 17     ..   	BEQ NMI_ret_from_int
8D43 0D31  AC D6 10  ...  	LDY data_10D6
8D46 0D34  D0 16     ..   	BNE NMI1_read_to_Tube
8D48 0D36  91 A6     ..   	STA (data_A6),Y

8D4A 0D38                .inc_A6_dec_A3__0D38_0D18  ; ( No direct access )
8D4A 0D38  E6 A6     ..   	INC data_A6
8D4C 0D3A  D0 02     ..   	BNE dec_A3__0D3E_0D1E
8D4E 0D3C  E6 A7     ..   	INC data_A7
8D50 0D3E                .dec_A3__0D3E_0D1E  ; ( RELATIVE=1 )
8D50 0D3E  C6 A3     ..   	DEC data_A3
8D52 0D40  D0 06     ..   	BNE NMI_ret_from_int
8D54 0D42  C6 A4     ..   	DEC data_A4
8D56 0D44  D0 02     ..   	BNE NMI_ret_from_int
8D58 0D46  C6 A5     ..   	DEC data_A5
8D5A 0D48                .NMI_ret_from_int  ; ( RELATIVE=4 )
8D5A 0D48  68        h    	PLA
8D5B 0D49  A8        .    	TAY
8D5C 0D4A  68        h    	PLA

8D5D 0D4B                .NMI2_exit_interrupt  ; ( No direct access )
8D5D 0D4B  40        @    	RTI
8D5E 0D4C                .NMI1_read_to_Tube  ; ( RELATIVE=1 )
8D5E 0D4C  8D E5 FE  ...  	STA sheila_FEE5_tube5            ; "/TUBE"
8D61 0D4F  4C 1E 0D  L..  	JMP code_0D1E                ; "/JMP dec_A3"
8D64 0D52                .NMI0_1_not_NonDMA_request  ; ( RELATIVE=2 )
8D64 0D52  AD 80 FE  ...  	LDA sheila_FE80_fdc0
8D67 0D55  29 08     ).   	AND #$08                        ; "/1 = Interrupt request"
8D69 0D57  D0 06     ..   	BNE FDC_Interrupt_Request
8D6B 0D59  68        h    	PLA
8D6C 0D5A  A8        .    	TAY
8D6D 0D5B  68        h    	PLA
8D6E 0D5C  6C 00 02  l..  	JMP (osvector_user)             ; "/USERV"
8D71 0D5F                .FDC_Interrupt_Request  ; ( RELATIVE=1 )
8D71 0D5F  A5 F4     ..   	LDA os_selected_paged_ROM__F4    ; "/Select DFS ROM"
8D73 0D61  48        H    	PHA
8D74 0D62  A9 00     ..   	LDA #$00                        ; "/op@D63/D43=DFS.rom.no"
8D76 0D64  85 F4     ..   	STA os_selected_paged_ROM__F4
8D78 0D66  8D 30 FE  .0.  	STA sheila_FE30_romsel
8D7B 0D69  20 3A 8C   :.  	JSR FDC_int_request
8D7E 0D6C  68        h    	PLA                             ; "/Select prev. sel. ROM"
8D7F 0D6D  85 F4     ..   	STA os_selected_paged_ROM__F4
8D81 0D6F  8D 30 FE  .0.  	STA sheila_FE30_romsel
8D84 0D72  38        8    	SEC
8D85 0D73  B0 D3     ..   	BCS NMI_ret_from_int            ; "/always; END NMI0/1"
RELOCATE OFF

RELOCATE D00

8D87 0D00                .NMI6_READ_to_Mem  ; ( No direct access )
8D87 0D00  48        H    	PHA                             ; "/save A & Y"
8D88 0D01  98        .    	TYA
8D89 0D02  48        H    	PHA
8D8A 0D03  AD 80 FE  ...  	LDA sheila_FE80_fdc0
8D8D 0D06  29 04     ).   	AND #$04                        ; "/1 = non DMA data request"
8D8F 0D08  F0 0D     ..   	BEQ code_8D9E
8D91 0D0A  AD 84 FE  ...  	LDA sheila_FE84_fdc4             ; "/get data and store"
8D94 0D0D  A0 00     ..   	LDY #$00                        ; "/at word A6"
8D96 0D0F  91 A6     ..   	STA (data_A6),Y
8D98 0D11  E6 A6     ..   	INC data_A6
8D9A 0D13  D0 02     ..   	BNE code_8D9E
8D9C 0D15  E6 A7     ..   	INC data_A7                     ; "/inc word A6"
8D9E 0D17                .code_8D9E  ;( RELATIVE=2 )
8D9E 0D17  68        h    	PLA
8D9F 0D18  A8        .    	TAY
8DA0 0D19  68        h    	PLA
8DA1 0D1A  40        @    	RTI
RELOCATE OFF

RELOCATE D00

8DA2 0D00                .NMI4_WRITE_from_Mem  ; ( No direct access )
8DA2 0D00  48        H    	PHA
8DA3 0D01  98        .    	TYA
8DA4 0D02  48        H    	PHA
8DA5 0D03  AD 80 FE  ...  	LDA sheila_FE80_fdc0
8DA8 0D06  29 04     ).   	AND #$04                        ; "/1 = non DMA data request"
8DAA 0D08  F0 0D     ..   	BEQ code_8DB9
8DAC 0D0A  A0 00     ..   	LDY #$00
8DAE 0D0C  B1 A6     ..   	LDA (data_A6),Y                 ; "/Get data from word A6"
8DB0 0D0E  8D 84 FE  ...  	STA sheila_FE84_fdc4             ; "/and send to FDC"
8DB3 0D11  E6 A6     ..   	INC data_A6
8DB5 0D13  D0 02     ..   	BNE code_8DB9
8DB7 0D15  E6 A7     ..   	INC data_A7                     ; "/inc word A6"
8DB9 0D17                .code_8DB9  ;( RELATIVE=2 )
8DB9 0D17  68        h    	PLA
8DBA 0D18  A8        .    	TAY
8DBB 0D19  68        h    	PLA
8DBC 0D1A  40        @    	RTI
RELOCATE OFF

RELOCATE D00

8DBD 0D00                .NMI5_READ_to_Tube  ; ( No direct access )
8DBD 0D00  48        H    	PHA
8DBE 0D01  AD 80 FE  ...  	LDA sheila_FE80_fdc0
8DC1 0D04  29 04     ).   	AND #$04                        ; "/1 = non DMA data request"
8DC3 0D06  F0 06     ..   	BEQ code_8DCB
8DC5 0D08  AD 84 FE  ...  	LDA sheila_FE84_fdc4
8DC8 0D0B  8D E5 FE  ...  	STA sheila_FEE5_tube5            ; "/TUBE"
8DCB 0D0E                .code_8DCB  ;( RELATIVE=1 )
8DCB 0D0E  68        h    	PLA
8DCC 0D0F  40        @    	RTI
RELOCATE OFF

RELOCATE D00

8DCD 0D00                .NMI3_WRITE_from_Tube  ; ( No direct access )
8DCD 0D00  48        H    	PHA
8DCE 0D01  AD 80 FE  ...  	LDA sheila_FE80_fdc0
8DD1 0D04  29 04     ).   	AND #$04                        ; "/1 = non DMA data request"
8DD3 0D06  F0 06     ..   	BEQ code_8DDB
8DD5 0D08  AD E5 FE  ...  	LDA sheila_FEE5_tube5            ; "/TUBE"
8DD8 0D0B  8D 84 FE  ...  	STA sheila_FE84_fdc4
8DDB 0D0E                .code_8DDB  ;( RELATIVE=1 )
8DDB 0D0E  68        h    	PLA
8DDC 0D0F  40        @    	RTI                             ; "/END NMI ROUTINES"
RELOCATE OFF

8DDD                .fscv7_hndl_range  ; ( No direct access )
8DDD  A2 11     ..   	LDX #$11                        ; "lowest hndl issued"
8DDF  A0 15     ..   	LDY #$15                        ; "highest hndl poss."
8DE1                .code_8de1_rts  ; ( RELATIVE=1 )
8DE1  60        `    	RTS

8DE2                .fscv6_shutdown_filesys  ; ( ABSOLUTE=1 )
8DE2  20 E1 83   ..  	JSR rememberAXY

8DE5                .close_SPOOL_and_EXECfiles  ; ( No direct access )
8DE5  A9 77     .w   	LDA #$77
8DE7  4C F4 FF  L..  	JMP os_byte
8DEA                .close_lp1  ; ( RELATIVE=1 )
8DEA  20 E2 8D   ..  	JSR fscv6_shutdown_filesys

8DED                .code_8DED  ;( ABSOLUTE=1 )
8DED  A9 00     ..   	LDA #$00
8DEF                .close_lp2  ; ( RELATIVE=1 )
8DEF  18        .    	CLC
8DF0  69 20     i    	ADC #$20
8DF2  F0 ED     ..   	BEQ code_8de1_rts
8DF4  A8        .    	TAY                             ; "Y=&20 to &A0 step &20"
8DF5  20 05 8E   ..  	JSR update_cat_and_filetomedia_Y_inthndl
8DF8  D0 F5     ..   	BNE close_lp2

8DFA                .findv0_close_file_Y_hndl  ; ( ABSOLUTE=2 )
8DFA  98        .    	TYA                             ; "0=all files"
8DFB  F0 ED     ..   	BEQ close_lp1
8DFD  20 7B 90   {.  	JSR conv_Y_hndl_intch ; "(exit Y=intch, C=0 if ok)"
8E00  90 03     ..   	BCC update_cat_and_filetomedia_Y_inthndl
8E02  4C AD 90  L..  	JMP errCHANNEL

8E05                .update_cat_and_filetomedia_Y_inthndl  ; ( ABSOLUTE=3 RELATIVE=1 )
8E05  48        H    	PHA
8E06  20 51 90   Q.  	JSR is_hndl_in_use__Y_intch__C_0_if_yes ; "(Y=intch) C=0 if yes"    ; "saves X in &10C6"
8E09  B0 45     .E   	BCS hndl_not_in_use             ; "hndl not in use"
8E0B  B9 1B 11  ...  	LDA data_111B,Y                 ; "ch1=&113b"
8E0E  49 FF     I.   	EOR #$FF
8E10  2D C0 10  -..  	AND data_10C0
8E13  8D C0 10  ...  	STA data_10C0                    ; "clear channel "bit""
8E16  B9 17 11  ...  	LDA data_1117,Y                 ; "ch1=&1137"
8E19  29 60     )`   	AND #$60
8E1B  F0 33     .3   	BEQ hndl_not_in_use
8E1D  20 55 8E   U.  	JSR setup_savetomedia2_Y_intch_set_drv    ; "loads cat"
8E20  B9 17 11  ...  	LDA data_1117,Y
8E23  29 20     )    	AND #$20
8E25  F0 26     .&   	BEQ code_8E4D
8E27  AE C4 10  ...  	LDX data_10C4
8E2A  B9 14 11  ...  	LDA data_1114,Y
8E2D  9D 0C 0F  ...  	STA data_0F0C,X
8E30  B9 15 11  ...  	LDA data_1115,Y
8E33  9D 0D 0F  ...  	STA data_0F0D,X
8E36  B9 16 11  ...  	LDA data_1116,Y
8E39  20 0B 82   ..  	JSR asl_A_4_times
8E3C  5D 0E 0F  ]..  	EOR data_0F0E,X
8E3F  29 30     )0   	AND #$30
8E41  5D 0E 0F  ]..  	EOR data_0F0E,X
8E44  9D 0E 0F  ...  	STA data_0F0E,X
8E47  20 B4 8A   ..  	JSR SaveCatToDisk            ; "save cat"
8E4A  AC C2 10  ...  	LDY data_10C2
8E4D                .code_8E4D  ;( RELATIVE=1 )
8E4D  20 4B 91   K.  	JSR file_to_media_Y
8E50                .hndl_not_in_use  ; ( RELATIVE=2 )
8E50  AE C6 10  ...  	LDX data_10C6
8E53  68        h    	PLA
8E54  60        `    	RTS

8E55                .setup_savetomedia2_Y_intch_set_drv  ; ( ABSOLUTE=1 )
8E55  20 83 8E   ..  	JSR set_filedrive_Y_is_hndl

8E58                .setup_savetomedia_Y_intch  ; ( ABSOLUTE=1 ) ; "exit ?10C4=catoffset"
8E58  A2 07     ..   	LDX #$07
8E5A                .set_osfilevars_loop  ; ( RELATIVE=1 )
8E5A  B9 0C 11  ...  	LDA data_110C,Y                 ; "?Y=intchnl"
8E5D  95 C6     ..   	STA data_C6,X                   ; "copy filename to zp"
8E5F  88        .    	DEY
8E60  88        .    	DEY
8E61  CA        .    	DEX
8E62  D0 F6     ..   	BNE set_osfilevars_loop
8E64  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"       ; "loads cat"
8E67  90 27     .'   	BCC setupsavetomedia_diskchanged    ; "not found"
8E69  8C C4 10  ...  	STY data_10C4                    ; "=FILE OFFSET"
8E6C  B9 0E 0F  ...  	LDA data_0F0E,Y                 ; "check cat"
8E6F  BE 0F 0F  ...  	LDX data_0F0F,Y
8E72  AC C2 10  ...  	LDY data_10C2
8E75  59 0D 11  Y..  	EOR data_110D,Y                 ; "?Y=inthndl"
8E78  29 03     ).   	AND #$03
8E7A  D0 14     ..   	BNE setupsavetomedia_diskchanged
8E7C  8A        .    	TXA
8E7D  D9 0F 11  ...  	CMP data_110F,Y                 ; "?Y=inthndl"
8E80  D0 0E     ..   	BNE setupsavetomedia_diskchanged
8E82  60        `    	RTS

8E83                .set_filedrive_Y_is_hndl  ; ( ABSOLUTE=3 )
8E83  B9 0E 11  ...  	LDA data_110E,Y                 ; "?Y=inthndl"
8E86  29 7F     ).   	AND #$7F                        ; "=DIR"
8E88  85 CE     ..   	STA data_CE
8E8A  B9 17 11  ...  	LDA data_1117,Y
8E8D  4C 7E 87  L~.  	JMP set_CurrentDrive
8E90                .setupsavetomedia_diskchanged  ; ( RELATIVE=3 )
8E90  4C AF 81  L..  	JMP errDISK_CHANGED

8E93                .FINDV_ENTRY  ; ( No direct access )
8E93  C9 00     ..   	CMP #$00
8E95  D0 06     ..   	BNE findv_not_0_openfile
8E97  20 E1 83   ..  	JSR rememberAXY
8E9A  4C FA 8D  L..  	JMP findv0_close_file_Y_hndl    ; "Close file #Y"
8E9D                .findv_not_0_openfile  ; ( RELATIVE=1 )
8E9D  20 11 84   ..  	JSR rAXY2_dont_pull_on_return    ; "Open file XY->filename"
8EA0  86 BC     ..   	STX data_BC
8EA2  84 BD     ..   	STY data_BD
8EA4  85 B4     ..   	STA data_B4
8EA6  24 B4     $.   	BIT data_B4
8EA8  08        .    	PHP
8EA9  20 06 81   ..  	JSR read_afsp_at_indirect_BC ; "(return Y=Tpoffsetnonblank)"
8EAC  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"       ; "loads cat"
8EAF  B0 1A     ..   	BCS findv_file_found
8EB1  28        (    	PLP
8EB2  50 03     P.   	BVC open_file_for_output        ; "open file for output"
8EB4  A9 00     ..   	LDA #$00
8EB6  60        `    	RTS
8EB7                .open_file_for_output  ; ( RELATIVE=1 )
8EB7  08        .    	PHP
8EB8  A9 00     ..   	LDA #$00                        ; "clear BE,1074..."
8EBA  A2 07     ..   	LDX #$07
8EBC                .code_8EBC  ;( RELATIVE=1 )
8EBC  95 BE     ..   	STA data_BE,X
8EBE  9D 74 10  .t.  	STA data_1074,X                 ; "??10ok"
8EC1  CA        .    	DEX
8EC2  10 F8     ..   	BPL code_8EBC
8EC4  A9 40     .@   	LDA #$40
8EC6  85 C5     ..   	STA data_C5                     ; "already checked"
8EC8  20 61 89   a.  	JSR createfile_fsp_at_indirect_BC    ; "? but loads cat"
8ECB                .findv_file_found  ; ( RELATIVE=1 )
8ECB  28        (    	PLP
8ECC  08        .    	PHP
8ECD  70 03     p.   	BVS findv_open_for_read
8ECF  20 3C 98   <.  	JSR check_file_NotLocked
8ED2                .findv_open_for_read  ; ( RELATIVE=1 )
8ED2  20 9E 8F   ..  	JSR code_8f9e
8ED5  90 0E     ..   	BCC code_8EE5
8ED7                .code_8ED7  ;( RELATIVE=1 )
8ED7  B9 0C 11  ...  	LDA data_110C,Y                 ; "?Y=intchnl"
8EDA  10 26     .&   	BPL errFILE_OPEN
8EDC  24 B4     $.   	BIT data_B4
8EDE  30 22     0"   	BMI errFILE_OPEN
8EE0  20 99 8F   ..  	JSR code_8f99
8EE3  B0 F2     ..   	BCS code_8ED7
8EE5                .code_8EE5  ;( RELATIVE=1 )
8EE5  AC C2 10  ...  	LDY data_10C2
8EE8  D0 21     .!   	BNE code_8f0b_Y_int_chnl

8EEA                .errTOO_MANY_FILES_OPEN  ; ( No direct access )
8EEA  20 33 80   3.  	JSR Brk100_errno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"
8EED  C0 54 6F 6F 20 6D 61 6E  .Too man
8EF5  79 20 66 69 6C 65 73 20  y files 
8EFD  6F 70 65 6E 00           open.

8F02                .errFILE_OPEN  ; ( ABSOLUTE=1 RELATIVE=2 )
8F02  20 2B 80   +.  	JSR errFILE
8F05  C2 6F 70 65 6E 00        .open.
8F0B                .code_8f0b_Y_int_chnl  ; ( RELATIVE=1 )
8F0B  A9 08     ..   	LDA #$08
8F0D  8D C5 10  ...  	STA data_10C5
8F10                .code_8F10  ;( RELATIVE=1 )
8F10  BD 08 0E  ...  	LDA data_0E08,X
8F13  99 00 11  ...  	STA data_1100,Y                 ; "?Y=intchnl"
8F16  C8        .    	INY
8F17  BD 08 0F  ...  	LDA data_0F08,X
8F1A  99 00 11  ...  	STA data_1100,Y                 ; "?Y=intchnl"
8F1D  C8        .    	INY
8F1E  E8        .    	INX
8F1F  CE C5 10  ...  	DEC data_10C5
8F22  D0 EC     ..   	BNE code_8F10
8F24  A2 10     ..   	LDX #$10
8F26  A9 00     ..   	LDA #$00
8F28                .code_8F28  ;( RELATIVE=1 )
8F28  99 00 11  ...  	STA data_1100,Y                 ; "?Y=intchnl"
8F2B  C8        .    	INY
8F2C  CA        .    	DEX
8F2D  D0 F9     ..   	BNE code_8F28
8F2F  AD C2 10  ...  	LDA data_10C2
8F32  A8        .    	TAY
8F33  20 04 82   ..  	JSR lsr_A_5_times
8F36  69 11     i.   	ADC #$11
8F38  99 13 11  ...  	STA data_1113,Y                 ; "Buffer page"
8F3B  AD C1 10  ...  	LDA data_10C1
8F3E  99 1B 11  ...  	STA data_111B,Y
8F41  0D C0 10  ...  	ORA data_10C0
8F44  8D C0 10  ...  	STA data_10C0
8F47  B9 09 11  ...  	LDA data_1109,Y                 ; "?Y=intchnl"
8F4A  69 FF     i.   	ADC #$FF
8F4C  B9 0B 11  ...  	LDA data_110B,Y                 ; "?Y=intchnl"
8F4F  69 00     i.   	ADC #$00
8F51  99 19 11  ...  	STA data_1119,Y
8F54  B9 0D 11  ...  	LDA data_110D,Y                 ; "?Y=intchnl"
8F57  09 0F     ..   	ORA #$0F
8F59  69 00     i.   	ADC #$00
8F5B  20 FD 81   ..  	JSR lsr_A_4_times_and_3
8F5E  99 1A 11  ...  	STA data_111A,Y
8F61  28        (    	PLP
8F62  50 2E     P.   	BVC code_8F92
8F64  30 08     0.   	BMI code_8F6E
8F66  A9 80     ..   	LDA #$80
8F68  19 0C 11  ...  	ORA data_110C,Y                 ; "?Y=intchnl"
8F6B  99 0C 11  ...  	STA data_110C,Y                 ; "?Y=intchnl"
8F6E                .code_8F6E  ;( RELATIVE=1 )
8F6E  B9 09 11  ...  	LDA data_1109,Y                 ; "?Y=intchnl"
8F71  99 14 11  ...  	STA data_1114,Y                 ; "?Y=intchnl"
8F74  B9 0B 11  ...  	LDA data_110B,Y                 ; "?Y=intchnl"
8F77  99 15 11  ...  	STA data_1115,Y                 ; "?Y=intchnl"
8F7A  B9 0D 11  ...  	LDA data_110D,Y                 ; "?Y=intchnl"
8F7D  20 FD 81   ..  	JSR lsr_A_4_times_and_3
8F80  99 16 11  ...  	STA data_1116,Y
8F83                .code_8F83  ;( RELATIVE=1 )
8F83  A5 CF     ..   	LDA data_CF
8F85  19 17 11  ...  	ORA data_1117,Y
8F88  99 17 11  ...  	STA data_1117,Y
8F8B  98        .    	TYA
8F8C  20 04 82   ..  	JSR lsr_A_5_times
8F8F  09 10     ..   	ORA #$10
8F91  60        `    	RTS
8F92                .code_8F92  ;( RELATIVE=1 )
8F92  A9 20     .    	LDA #$20
8F94  99 17 11  ...  	STA data_1117,Y
8F97  D0 EA     ..   	BNE code_8F83

8F99                .code_8f99  ; ( ABSOLUTE=1 )
8F99  8A        .    	TXA
8F9A  48        H    	PHA
8F9B  4C DD 8F  L..  	JMP code_8fdd

8F9E                .code_8f9e  ; ( ABSOLUTE=2 )
8F9E  A9 00     ..   	LDA #$00
8FA0  8D C2 10  ...  	STA data_10C2
8FA3  A9 08     ..   	LDA #$08
8FA5  85 B5     ..   	STA data_B5
8FA7  98        .    	TYA
8FA8  AA        .    	TAX
8FA9  A0 A0     ..   	LDY #$A0                        ; "ch5"
8FAB                .code_8fab_loop  ; ( RELATIVE=1 )
8FAB  84 B3     ..   	STY data_B3
8FAD  8A        .    	TXA
8FAE  48        H    	PHA
8FAF  A9 08     ..   	LDA #$08
8FB1  85 B2     ..   	STA data_B2
8FB3  A5 B5     ..   	LDA data_B5
8FB5  2C C0 10  ,..  	BIT data_10C0
8FB8  F0 1D     ..   	BEQ code_8FD7
8FBA  B9 17 11  ...  	LDA data_1117,Y
8FBD  45 CF     E.   	EOR data_CF
8FBF  29 03     ).   	AND #$03
8FC1  D0 1A     ..   	BNE code_8fdd
8FC3                .code_8FC3  ;( RELATIVE=1 )
8FC3  BD 08 0E  ...  	LDA data_0E08,X
8FC6  59 00 11  Y..  	EOR data_1100,Y                 ; "?Y=intchnl"
8FC9  29 7F     ).   	AND #$7F
8FCB  D0 10     ..   	BNE code_8fdd
8FCD  E8        .    	INX
8FCE  C8        .    	INY
8FCF  C8        .    	INY
8FD0  C6 B2     ..   	DEC data_B2
8FD2  D0 EF     ..   	BNE code_8FC3
8FD4  38        8    	SEC
8FD5  B0 10     ..   	BCS code_8FE7
8FD7                .code_8FD7  ;( RELATIVE=1 )
8FD7  8C C2 10  ...  	STY data_10C2
8FDA  8D C1 10  ...  	STA data_10C1

8FDD                .code_8fdd  ; ( ABSOLUTE=1 RELATIVE=2 )
8FDD  38        8    	SEC
8FDE  A5 B3     ..   	LDA data_B3
8FE0  E9 20     .    	SBC #$20
8FE2  85 B3     ..   	STA data_B3
8FE4  06 B5     ..   	ASL data_B5
8FE6  18        .    	CLC
8FE7                .code_8FE7  ;( RELATIVE=1 )
8FE7  68        h    	PLA
8FE8  AA        .    	TAX
8FE9  A4 B3     ..   	LDY data_B3
8FEB  A5 B5     ..   	LDA data_B5
8FED  B0 02     ..   	BCS code_8FF1
8FEF  D0 BA     ..   	BNE code_8fab_loop
8FF1                .code_8FF1  ;( RELATIVE=1 )
8FF1  60        `    	RTS

8FF2                .argsv_allfiles_to_media2  ; ( ABSOLUTE=1 )
8FF2  AD C0 10  ...  	LDA data_10C0
8FF5  48        H    	PHA
8FF6  20 ED 8D   ..  	JSR code_8DED
8FF9  F0 07     ..   	BEQ code_9002
8FFB                .argsv_thisfile_to_media  ; ( RELATIVE=1 )
8FFB  AD C0 10  ...  	LDA data_10C0
8FFE  48        H    	PHA
8FFF  20 FA 8D   ..  	JSR findv0_close_file_Y_hndl
9002                .code_9002  ;( RELATIVE=1 )
9002  68        h    	PLA
9003  8D C0 10  ...  	STA data_10C0
9006  60        `    	RTS                             ; "end"

9007                .ARGSV_ENTRY_X_is_zp_ctl_blk  ; ( No direct access )
9007  C0 00     ..   	CPY #$00                        ; "Y=file hndl"
9009  F0 11     ..   	BEQ argsv_Y_is_0
900B  20 E1 83   ..  	JSR rememberAXY
900E  C9 FF     ..   	CMP #$FF                        ; "update all files to media"
9010  F0 E9     ..   	BEQ argsv_thisfile_to_media
9012  C9 03     ..   	CMP #$03
9014  B0 17     ..   	BCS argsv_exit                  ; ">=3"
9016  4A        J    	LSR A
9017  90 15     ..   	BCC argsv_rdseqptr_or_filelen
9019  4C A7 92  L..  	JMP argsv_write_SeqPointer
901C                .argsv_Y_is_0  ; ( RELATIVE=1 )
901C  20 11 84   ..  	JSR rAXY2_dont_pull_on_return
901F  A8        .    	TAY
9020  C8        .    	INY
9021  C0 03     ..   	CPY #$03
9023  B0 08     ..   	BCS argsv_exit                  ; "y>=3"
9025  B9 81 99  ...  	LDA args_y_0_tableHi,Y
9028  48        H    	PHA
9029  B9 7E 99  .~.  	LDA args_y_0_tableLo,Y
902C  48        H    	PHA
902D                .argsv_exit  ; ( RELATIVE=2 )
902D  60        `    	RTS

902E                .argsv_rdseqptr_or_filelen  ; ( ABSOLUTE=1 RELATIVE=1 )
902E  20 E1 83   ..  	JSR rememberAXY
9031  20 A5 90   ..  	JSR check_channel__Y_is_hndl__exit_Y_is_intch ; "(exit Y=intch)"
9034  8C C2 10  ...  	STY data_10C2
9037  0A        .    	ASL A
9038  0A        .    	ASL A
9039  6D C2 10  m..  	ADC data_10C2                    ; "Y=Y*5"
903C  A8        .    	TAY
903D  B9 10 11  ...  	LDA data_1110,Y
9040  95 00     ..   	STA data_00,X
9042  B9 11 11  ...  	LDA data_1111,Y
9045  95 01     ..   	STA data_01,X
9047  B9 12 11  ...  	LDA data_1112,Y
904A  95 02     ..   	STA data_02,X
904C  A9 00     ..   	LDA #$00
904E  95 03     ..   	STA data_03,X
9050  60        `    	RTS

9051                .is_hndl_in_use__Y_intch__C_0_if_yes  ; ( ABSOLUTE=2 ) ; "(Y=intch) C=0 if yes"
9051  48        H    	PHA
9052  8E C6 10  ...  	STX data_10C6
9055  98        .    	TYA
9056  29 E0     ).   	AND #$E0
9058  8D C2 10  ...  	STA data_10C2
905B  F0 13     ..   	BEQ hndl_in_use_exitC_is_1
905D  20 04 82   ..  	JSR lsr_A_5_times            ; "ch.1-7"
9060  A8        .    	TAY                             ; "creat bit mask"
9061  A9 00     ..   	LDA #$00                        ; "1=1000 0000"
9063  38        8    	SEC                             ; "2=0100 0000 etc"
9064                .code_9064  ;( RELATIVE=1 )
9064  6A        j    	ROR A
9065  88        .    	DEY
9066  D0 FC     ..   	BNE code_9064
9068  AC C2 10  ...  	LDY data_10C2
906B  2C C0 10  ,..  	BIT data_10C0
906E  D0 03     ..   	BNE hndl_in_use_exitC_is_0      ; "file open"
9070                .hndl_in_use_exitC_is_1  ; ( RELATIVE=1 )
9070  68        h    	PLA
9071  38        8    	SEC
9072  60        `    	RTS
9073                .hndl_in_use_exitC_is_0  ; ( RELATIVE=1 )
9073  68        h    	PLA
9074  18        .    	CLC
9075  60        `    	RTS

9076                .conv_X_hndl_intch  ; ( ABSOLUTE=1 ) ; "(exit Y=intch, C=0 if ok)"
9076  48        H    	PHA
9077  8A        .    	TXA
9078  4C 7D 90  L}.  	JMP conv_hndl_X_entry

907B                .conv_Y_hndl_intch  ; ( ABSOLUTE=2 ) ; "(exit Y=intch, C=0 if ok)"
907B  48        H    	PHA                             ; "&10 to &17 are"
907C  98        .    	TYA                             ; "valid"

907D                .conv_hndl_X_entry  ; ( ABSOLUTE=1 )
907D  C9 10     ..   	CMP #$10
907F  90 04     ..   	BCC conv_hndl_less_than_10h     ; "<&10"
9081  C9 18     ..   	CMP #$18
9083  90 02     ..   	BCC conv_hndl_less_than_18h     ; "<&18"
9085                .conv_hndl_less_than_10h  ; ( RELATIVE=1 )
9085  A9 08     ..   	LDA #$08                        ; "intch=0"
9087                .conv_hndl_less_than_18h  ; ( RELATIVE=1 )
9087  20 0A 82   ..  	JSR asl_A_5_times            ; "if Y<&10 or >&18"
908A  A8        .    	TAY                             ; "ch0=&00, ch1=&20, ch2=&40"
908B  68        h    	PLA                             ; "ch3=&60...ch7=&E0"
908C  60        `    	RTS                             ; "c=1 if not valid"

908D                .fscv1_is_EOF  ; ( No direct access )
908D  48        H    	PHA
908E  98        .    	TYA
908F  48        H    	PHA
9090  8A        .    	TXA
9091  A8        .    	TAY
9092  20 A5 90   ..  	JSR check_channel__Y_is_hndl__exit_Y_is_intch ; "(exit Y=intch)"
9095  98        .    	TYA
9096  20 F8 92   ..  	JSR code_92f8__Y_intch
9099  D0 04     ..   	BNE code_909f
909B  A2 FF     ..   	LDX #$FF
909D  D0 02     ..   	BNE code_90a1
909F                .code_909f  ; ( RELATIVE=1 )
909F  A2 00     ..   	LDX #$00
90A1                .code_90a1  ; ( RELATIVE=1 )
90A1  68        h    	PLA
90A2  A8        .    	TAY
90A3  68        h    	PLA
90A4                .check_channel_ok_exit  ; ( RELATIVE=1 )
90A4  60        `    	RTS

90A5                .check_channel__Y_is_hndl__exit_Y_is_intch  ; ( ABSOLUTE=5 ) ; "(exit Y=intch)"
90A5  20 7B 90   {.  	JSR conv_Y_hndl_intch ; "(exit Y=intch, C=0 if ok)"
90A8  20 51 90   Q.  	JSR is_hndl_in_use__Y_intch__C_0_if_yes ; "(Y=intch) C=0 if yes"
90AB  90 F7     ..   	BCC check_channel_ok_exit

90AD                .errCHANNEL  ; ( ABSOLUTE=2 )
90AD  20 33 80   3.  	JSR Brk100_errno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"
90B0  DE 43 68 61 6E 6E 65 6C  .Channel
90B8  00                       .
90B9                .errEOF  ; ( RELATIVE=1 )
90B9  20 33 80   3.  	JSR Brk100_errno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"
90BC  DF 45 4F 46 00           .EOF.

90C1                .BGETV_ENTRY  ; ( ABSOLUTE=1 )
90C1  20 11 84   ..  	JSR rAXY2_dont_pull_on_return    ; "Y=file hndl"
90C4  20 A5 90   ..  	JSR check_channel__Y_is_hndl__exit_Y_is_intch ; "(exit Y=intch)"
90C7  98        .    	TYA
90C8  20 F8 92   ..  	JSR code_92f8__Y_intch       ; "Y preserved"
90CB  D0 13     ..   	BNE code_90e0__Y_is_intch
90CD  B9 17 11  ...  	LDA data_1117,Y
90D0  29 10     ).   	AND #$10
90D2  D0 E5     ..   	BNE errEOF
90D4  A9 10     ..   	LDA #$10
90D6  20 3C 91   <.  	JSR code_913C
90D9  AE C6 10  ...  	LDX data_10C6
90DC  A9 FE     ..   	LDA #$FE
90DE  38        8    	SEC
90DF  60        `    	RTS
90E0                .code_90e0__Y_is_intch  ; ( RELATIVE=1 )
90E0  B9 17 11  ...  	LDA data_1117,Y
90E3  30 0A     0.   	BMI code_90EF
90E5  20 83 8E   ..  	JSR set_filedrive_Y_is_hndl
90E8  20 4B 91   K.  	JSR file_to_media_Y
90EB  38        8    	SEC
90EC  20 53 91   S.  	JSR file_C_1_from_C_0_to_media_Y
90EF                .code_90EF  ;( RELATIVE=1 )
90EF  B9 10 11  ...  	LDA data_1110,Y
90F2  85 BC     ..   	STA data_BC
90F4  B9 13 11  ...  	LDA data_1113,Y
90F7  85 BD     ..   	STA data_BD
90F9  A0 00     ..   	LDY #$00
90FB  B1 BC     ..   	LDA (data_BC),Y
90FD  48        H    	PHA
90FE  AC C2 10  ...  	LDY data_10C2
9101  A6 BC     ..   	LDX data_BC
9103  E8        .    	INX
9104  8A        .    	TXA
9105  99 10 11  ...  	STA data_1110,Y
9108  D0 14     ..   	BNE code_911E
910A  18        .    	CLC
910B  B9 11 11  ...  	LDA data_1111,Y
910E  69 01     i.   	ADC #$01
9110  99 11 11  ...  	STA data_1111,Y
9113  B9 12 11  ...  	LDA data_1112,Y
9116  69 00     i.   	ADC #$00
9118  99 12 11  ...  	STA data_1112,Y
911B  20 41 91   A.  	JSR code_9141
911E                .code_911E  ;( RELATIVE=1 )
911E  18        .    	CLC
911F  68        h    	PLA
9120  60        `    	RTS

9121                .code_9121_Y_is_intchnl  ; ( ABSOLUTE=2 )
9121  18        .    	CLC
9122  B9 0F 11  ...  	LDA data_110F,Y                 ; "?Y=intchl"
9125  79 11 11  y..  	ADC data_1111,Y
9128  85 C5     ..   	STA data_C5
912A  99 1C 11  ...  	STA data_111C,Y
912D  B9 0D 11  ...  	LDA data_110D,Y                 ; "?Y=intchl"
9130  29 03     ).   	AND #$03
9132  79 12 11  y..  	ADC data_1112,Y
9135  85 C4     ..   	STA data_C4
9137  99 1D 11  ...  	STA data_111D,Y

913A                .code_913a_Y_is_intchnl  ; ( ABSOLUTE=1 )
913A  A9 80     ..   	LDA #$80

913C                .code_913C  ;( ABSOLUTE=3 )
913C  19 17 11  ...  	ORA data_1117,Y
913F  D0 05     ..   	BNE code_9146

9141                .code_9141  ;( ABSOLUTE=2 )
9141  A9 7F     ..   	LDA #$7F

9143                .code_9143_Y_is_intchnl  ; ( ABSOLUTE=3 )
9143  39 17 11  9..  	AND data_1117,Y
9146                .code_9146  ;( RELATIVE=1 )
9146  99 17 11  ...  	STA data_1117,Y
9149  18        .    	CLC
914A  60        `    	RTS

914B                .file_to_media_Y  ; ( ABSOLUTE=3 )
914B  B9 17 11  ...  	LDA data_1117,Y
914E  29 40     )@   	AND #$40
9150  F0 3D     .=   	BEQ file_to_from_media_exit
9152  18        .    	CLC

9153                .file_C_1_from_C_0_to_media_Y  ; ( ABSOLUTE=2 )
9153  08        .    	PHP                             ; "CS=Read,CC=Write"
9154  20 9E 8B   ..  	JSR FDC_drive_ready_reset
9157  AC C2 10  ...  	LDY data_10C2
915A  B9 13 11  ...  	LDA data_1113,Y
915D  85 BF     ..   	STA data_BF
915F  20 D1 8B   ..  	JSR set_1074_1075_to_FFFF__AXY_preserved    ; "Not TUBE!"
9162  A9 00     ..   	LDA #$00
9164  85 BE     ..   	STA data_BE
9166  85 C2     ..   	STA data_C2
9168  A9 01     ..   	LDA #$01
916A  85 C3     ..   	STA data_C3
916C  28        (    	PLP
916D  B0 17     ..   	BCS read_from_media

916F                .write_to_media  ; ( No direct access )
916F  B9 1C 11  ...  	LDA data_111C,Y
9172  85 C5     ..   	STA data_C5
9174  B9 1D 11  ...  	LDA data_111D,Y
9177  85 C4     ..   	STA data_C4
9179  20 8F 87   ..  	JSR save_memblock
917C  AC C2 10  ...  	LDY data_10C2
917F  A9 BF     ..   	LDA #$BF
9181  20 43 91   C.  	JSR code_9143_Y_is_intchnl
9184  90 06     ..   	BCC code_918c                   ; "always branch"
9186                .read_from_media  ; ( RELATIVE=1 )
9186  20 21 91   !.  	JSR code_9121_Y_is_intchnl
9189  20 C6 87   ..  	JSR load_memblock
918C                .code_918c  ; ( RELATIVE=1 )
918C  AC C2 10  ...  	LDY data_10C2
918F                .file_to_from_media_exit  ; ( RELATIVE=1 )
918F  60        `    	RTS

9190                .errchannel_2  ; ( No direct access )
9190  4C AD 90  L..  	JMP errCHANNEL
9193                .errfilelocked_2  ; ( RELATIVE=1 )
9193  4C 41 98  LA.  	JMP errFILE_LOCKED
9196                .errFILE_READ_ONLY  ; ( RELATIVE=1 )
9196  20 2B 80   +.  	JSR errFILE
9199  C1 72 65 61 64 20 6F 6E  .read on
91A1  6C 79 00                 ly.

91A4                .bput_Y_is_intchan  ; ( ABSOLUTE=1 )
91A4  20 E1 83   ..  	JSR rememberAXY
91A7  4C B0 91  L..  	JMP code_91B0

91AA                .BPUTV_ENTRY  ; ( ABSOLUTE=1 )
91AA  20 E1 83   ..  	JSR rememberAXY
91AD  20 A5 90   ..  	JSR check_channel__Y_is_hndl__exit_Y_is_intch ; "(exit Y=intch)"

91B0                .code_91B0  ;( ABSOLUTE=1 )
91B0  48        H    	PHA
91B1  B9 0C 11  ...  	LDA data_110C,Y                 ; "?Y=intchnl"
91B4  30 E0     0.   	BMI errFILE_READ_ONLY
91B6  B9 0E 11  ...  	LDA data_110E,Y                 ; "?Y=intchnl"
91B9  30 D8     0.   	BMI errfilelocked_2
91BB  20 83 8E   ..  	JSR set_filedrive_Y_is_hndl
91BE  98        .    	TYA
91BF  18        .    	CLC
91C0  69 04     i.   	ADC #$04
91C2  20 F8 92   ..  	JSR code_92f8__Y_intch
91C5  D0 76     .v   	BNE code_923D
91C7  20 58 8E   X.  	JSR setup_savetomedia_Y_intch ; "exit ?10C4=catoffset"    ; "loads cat"
91CA  AE C4 10  ...  	LDX data_10C4                    ; "X=cat offset"
91CD  38        8    	SEC
91CE  BD 07 0F  ...  	LDA data_0F07,X
91D1  FD 0F 0F  ...  	SBC data_0F0F,X
91D4  48        H    	PHA
91D5  BD 06 0F  ...  	LDA data_0F06,X
91D8  FD 0E 0F  ...  	SBC data_0F0E,X
91DB  29 03     ).   	AND #$03
91DD  8D C3 10  ...  	STA data_10C3
91E0  0A        .    	ASL A
91E1  0A        .    	ASL A
91E2  0A        .    	ASL A
91E3  0A        .    	ASL A
91E4  5D 0E 0F  ]..  	EOR data_0F0E,X
91E7  29 30     )0   	AND #$30
91E9  5D 0E 0F  ]..  	EOR data_0F0E,X
91EC  9D 0E 0F  ...  	STA data_0F0E,X
91EF  AD C3 10  ...  	LDA data_10C3
91F2  D9 1A 11  ...  	CMP data_111A,Y
91F5  D0 2B     .+   	BNE code_9222
91F7  68        h    	PLA
91F8  D9 19 11  ...  	CMP data_1119,Y
91FB  D0 26     .&   	BNE code_9223
91FD  84 B4     ..   	STY data_B4
91FF  20 20 99    .  	JSR osbyteC7_spool_hdl
9202  20 76 90   v.  	JSR conv_X_hndl_intch ; "(exit Y=intch, C=0 if ok)"
9205  C4 B4     ..   	CPY data_B4
9207  D0 03     ..   	BNE code_920C
9209  20 11 99   ..  	JSR osbyteC7_rw_spool_hndl_Y
920C                .code_920C  ;( RELATIVE=1 )
920C  A4 B4     ..   	LDY data_B4
920E  20 05 8E   ..  	JSR update_cat_and_filetomedia_Y_inthndl

9211                .errCANT_EXTEND  ; ( No direct access )
9211  20 33 80   3.  	JSR Brk100_errno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"
9214  BF 43 61 6E 27 74 20 65  .Can't e
921C  78 74 65 6E 64 00        xtend.
9222                .code_9222  ; ( RELATIVE=1 )
9222  68        h    	PLA
9223                .code_9223  ; ( RELATIVE=1 )
9223  9D 0D 0F  ...  	STA data_0F0D,X
9226  99 19 11  ...  	STA data_1119,Y
9229  AD C3 10  ...  	LDA data_10C3
922C  99 1A 11  ...  	STA data_111A,Y
922F  A9 00     ..   	LDA #$00
9231  9D 0C 0F  ...  	STA data_0F0C,X
9234  20 B4 8A   ..  	JSR SaveCatToDisk            ; "save cat"
9237  20 E7 98   ..  	JSR release_NMI_Wait_FDC_busy ; "(A=bitmask)(AXY preserved)"
923A  AC C2 10  ...  	LDY data_10C2
923D                .code_923D  ; ( RELATIVE=1 )
923D  B9 17 11  ...  	LDA data_1117,Y
9240  30 17     0.   	BMI code_9259
9242  20 4B 91   K.  	JSR file_to_media_Y
9245  B9 14 11  ...  	LDA data_1114,Y
9248  D0 0B     ..   	BNE code_9255
924A  98        .    	TYA
924B  20 F8 92   ..  	JSR code_92f8__Y_intch
924E  D0 05     ..   	BNE code_9255
9250  20 21 91   !.  	JSR code_9121_Y_is_intchnl
9253  D0 04     ..   	BNE code_9259
9255                .code_9255  ;( RELATIVE=2 )
9255  38        8    	SEC
9256  20 53 91   S.  	JSR file_C_1_from_C_0_to_media_Y
9259                .code_9259  ;( RELATIVE=2 )
9259  B9 10 11  ...  	LDA data_1110,Y
925C  85 BC     ..   	STA data_BC
925E  B9 13 11  ...  	LDA data_1113,Y
9261  85 BD     ..   	STA data_BD
9263  68        h    	PLA
9264  A0 00     ..   	LDY #$00
9266  91 BC     ..   	STA (data_BC),Y
9268  AC C2 10  ...  	LDY data_10C2
926B  A9 40     .@   	LDA #$40
926D  20 3C 91   <.  	JSR code_913C
9270  E6 BC     ..   	INC data_BC
9272  A5 BC     ..   	LDA data_BC
9274  99 10 11  ...  	STA data_1110,Y
9277  D0 13     ..   	BNE code_928C
9279  20 41 91   A.  	JSR code_9141
927C  B9 11 11  ...  	LDA data_1111,Y
927F  69 01     i.   	ADC #$01
9281  99 11 11  ...  	STA data_1111,Y
9284  B9 12 11  ...  	LDA data_1112,Y
9287  69 00     i.   	ADC #$00
9289  99 12 11  ...  	STA data_1112,Y
928C                .code_928C  ;( RELATIVE=1 )
928C  98        .    	TYA
928D  20 F8 92   ..  	JSR code_92f8__Y_intch
9290  90 14     ..   	BCC code_92A6_RTS
9292  A9 20     .    	LDA #$20
9294  20 3C 91   <.  	JSR code_913C
9297  A2 02     ..   	LDX #$02
9299                .code_9299_loop  ; ( RELATIVE=1 )
9299  B9 10 11  ...  	LDA data_1110,Y
929C  99 14 11  ...  	STA data_1114,Y
929F  C8        .    	INY
92A0  CA        .    	DEX
92A1  10 F6     ..   	BPL code_9299_loop
92A3  88        .    	DEY
92A4  88        .    	DEY
92A5  88        .    	DEY
92A6                .code_92A6_RTS  ; ( RELATIVE=3 )
92A6  60        `    	RTS

92A7                .argsv_write_SeqPointer  ; ( ABSOLUTE=2 )
92A7  20 E1 83   ..  	JSR rememberAXY              ; "X=zp ctl blk"
92AA  20 A5 90   ..  	JSR check_channel__Y_is_hndl__exit_Y_is_intch ; "(exit Y=intch)"    ; "Y=&20(1),&40(2)..."
92AD  20 14 82   ..  	JSR increment_Y_by_4         ; "Bug fix!"
92B0  20 10 93   ..  	JSR cmp_new_PTR_with_EXT     ; "does nothing?!"
92B3  AC C2 10  ...  	LDY data_10C2

92B6                .wsp_loop  ; ( ABSOLUTE=1 )
92B6  20 10 93   ..  	JSR cmp_new_PTR_with_EXT
92B9  B0 08     ..   	BCS code_92c3__Y_intchnl        ; "EXT >= PTR"
92BB  A9 00     ..   	LDA #$00
92BD  20 A4 91   ..  	JSR bput_Y_is_intchan
92C0  4C B6 92  L..  	JMP wsp_loop
92C3                .code_92c3__Y_intchnl  ; ( RELATIVE=1 )
92C3  B5 00     ..   	LDA data_00,X                   ; "set PTR"
92C5  99 10 11  ...  	STA data_1110,Y
92C8  B5 01     ..   	LDA data_01,X
92CA  99 11 11  ...  	STA data_1111,Y
92CD  B5 02     ..   	LDA data_02,X
92CF  99 12 11  ...  	STA data_1112,Y
92D2  A9 6F     .o   	LDA #$6F
92D4  20 43 91   C.  	JSR code_9143_Y_is_intchnl
92D7  B9 0F 11  ...  	LDA data_110F,Y                 ; "?Y=intchnl"
92DA  79 11 11  y..  	ADC data_1111,Y
92DD  8D C5 10  ...  	STA data_10C5
92E0  B9 0D 11  ...  	LDA data_110D,Y                 ; "?Y=intchnl"
92E3  29 03     ).   	AND #$03
92E5  79 12 11  y..  	ADC data_1112,Y
92E8  D9 1D 11  ...  	CMP data_111D,Y
92EB  D0 B9     ..   	BNE code_92A6_RTS
92ED  AD C5 10  ...  	LDA data_10C5
92F0  D9 1C 11  ...  	CMP data_111C,Y
92F3  D0 B1     ..   	BNE code_92A6_RTS
92F5  4C 3A 91  L:.  	JMP code_913a_Y_is_intchnl

92F8                .code_92f8__Y_intch  ; ( ABSOLUTE=5 )
92F8  AA        .    	TAX
92F9  B9 12 11  ...  	LDA data_1112,Y
92FC  DD 16 11  ...  	CMP data_1116,X
92FF  D0 0E     ..   	BNE code_92f8_exit
9301  B9 11 11  ...  	LDA data_1111,Y
9304  DD 15 11  ...  	CMP data_1115,X
9307  D0 06     ..   	BNE code_92f8_exit
9309  B9 10 11  ...  	LDA data_1110,Y
930C  DD 14 11  ...  	CMP data_1114,X
930F                .code_92f8_exit  ; ( RELATIVE=2 )
930F  60        `    	RTS

9310                .cmp_new_PTR_with_EXT  ; ( ABSOLUTE=2 )
9310  B9 14 11  ...  	LDA data_1114,Y                 ; "comp ctl blk ptr"
9313  D5 00     ..   	CMP data_00,X                   ; "to existing"
9315  B9 15 11  ...  	LDA data_1115,Y                 ; "Z=1 if same"
9318  F5 01     ..   	SBC data_01,X                   ; "(ch.1=&1138)"
931A  B9 16 11  ...  	LDA data_1116,Y
931D  F5 02     ..   	SBC data_02,X
931F  60        `    	RTS                             ; "C=p>=n"

9320                .AUTOBOOT  ; ( ABSOLUTE=1 )
9320  A5 B3     ..   	LDA data_B3                     ; "=value of Y on call 3"
9322  48        H    	PHA                             ; "ie =0 then boot file"
9323  A9 FF     ..   	LDA #$FF
9325  8D DE 10  ...  	STA data_10DE

9328                .inf_ACORNDFS  ; ( No direct access )
9328  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"    ; "print "Acorn DFS""
932B  41 63 6F 72 6E 20 44 46  Acorn DF
9333  53 0D 0D                 S..
9336  90 03     ..   	BCC init_DFS                    ; "always"

9338                .CMD_DISK  ; ( No direct access )
9338  A9 FF     ..   	LDA #$FF                        ; "don't exec boot file"
933A  48        H    	PHA
933B                .init_DFS  ; ( RELATIVE=1 )
933B  A9 00     ..   	LDA #$00
933D  BA        .    	TSX
933E  9D 06 01  ...  	STA data_0106,X
9341  A9 06     ..   	LDA #$06                        ; "new filing system"
9343  20 15 80   ..  	JSR go_FSCV
9346  A2 0D     ..   	LDX #$0D                        ; "copy vectors"
9348                .vect_loop  ; ( RELATIVE=1 )
9348  BD 49 99  .I.  	LDA vectors_table,X             ; "'"
934B  9D 12 02  ...  	STA osvector_file,X             ; "'"
934E  CA        .    	DEX                             ; "'"
934F  10 F7     ..   	BPL vect_loop                   ; "'"
9351  20 28 99   (.  	JSR osbyteA8_rom_pointer_table    ; "copy extended vectors"
9354  84 B1     ..   	STY data_B1                     ; "'"
9356  86 B0     ..   	STX data_B0                     ; "'"
9358  A2 07     ..   	LDX #$07                        ; "'"
935A  A0 1B     ..   	LDY #$1B                        ; "'"
935C                .extended_vec_loop  ; ( RELATIVE=1 )
935C  B9 3C 99  .<.  	LDA data_993C,Y                 ; "'"
935F  91 B0     ..   	STA (data_B0),Y                 ; "'"
9361  C8        .    	INY                             ; "'"
9362  B9 3C 99  .<.  	LDA data_993C,Y                 ; "'"
9365  91 B0     ..   	STA (data_B0),Y                 ; "'"
9367  C8        .    	INY                             ; "'"
9368  A5 F4     ..   	LDA os_selected_paged_ROM__F4    ; "'"
936A  91 B0     ..   	STA (data_B0),Y                 ; "'"
936C  C8        .    	INY                             ; "'"
936D  CA        .    	DEX                             ; "'"
936E  D0 EC     ..   	BNE extended_vec_loop           ; "end extended vectors"
9370  86 CF     ..   	STX data_CF                     ; "curdrv=0"
9372  8C 82 10  ...  	STY data_1082                    ; "curdrvcat<>0"
9375  A2 0F     ..   	LDX #$0F                        ; "vectors claimed!"
9377  20 2C 99   ,.  	JSR osbyte8F_issue_service_request
937A  20 9E 98   ..  	JSR set_PrivateWorkspacePointer_indirect_B0
937D  A0 D4     ..   	LDY #$D4
937F  B1 B0     ..   	LDA (data_B0),Y
9381  10 2F     ./   	BPL setup_abs                   ; "PWS not setup"
9383  A0 D5     ..   	LDY #$D5
9385  B1 B0     ..   	LDA (data_B0),Y
9387  30 27     0'   	BMI absinited                   ; "already own abs wsp"
9389  20 8F 98   ..  	JSR claim_StaticWorkspace
938C  A0 00     ..   	LDY #$00                        ; "copy data"
938E                .copy_PWStoSWS_loop  ; ( RELATIVE=1 )
938E  B1 B0     ..   	LDA (data_B0),Y                 ; "from private wsp"
9390  C0 C0     ..   	CPY #$C0                        ; "to abs wsp"
9392  90 05     ..   	BCC code_9399                   ; "'"
9394  99 00 10  ...  	STA data_1000,Y                 ; "??10ok"
9397  B0 03     ..   	BCS code_939C                   ; "'"
9399                .code_9399  ;( RELATIVE=1 )
9399  99 00 11  ...  	STA data_1100,Y                 ; "?Y=copy vars only"
939C                .code_939C  ;( RELATIVE=1 )
939C  88        .    	DEY                             ; "'"
939D  D0 EF     ..   	BNE copy_PWStoSWS_loop          ; "'"
939F  A9 A0     ..   	LDA #$A0                        ; "Setup channels"
93A1                .code_93a1_loop  ; ( RELATIVE=1 )
93A1  A8        .    	TAY                             ; "'"
93A2  48        H    	PHA                             ; "'"
93A3  A9 3F     .?   	LDA #$3F                        ; "'"
93A5  20 43 91   C.  	JSR code_9143_Y_is_intchnl    ; "'"
93A8  68        h    	PLA                             ; "'"
93A9  99 1D 11  ...  	STA data_111D,Y                 ; "'"
93AC  E9 1F     ..   	SBC #$1F                        ; "'"
93AE  D0 F1     ..   	BNE code_93a1_loop              ; "'"
93B0                .absinited  ; ( RELATIVE=1 )
93B0  68        h    	PLA                             ; "'"
93B1  60        `    	RTS                             ; "RETURN"
93B2                .setup_abs  ; ( RELATIVE=1 )
93B2  A9 FF     ..   	LDA #$FF                        ; "Ptr=PWS"
93B4  91 B0     ..   	STA (data_B0),Y                 ; "PWS?&D4=&FF"
93B6  8D D4 10  ...  	STA data_10D4
93B9  20 8F 98   ..  	JSR claim_StaticWorkspace
93BC  20 24 99   $.  	JSR osbyteEA_is_Tube
93BF  8A        .    	TXA                             ; "X=0 if Tube not present"
93C0  49 FF     I.   	EOR #$FF
93C2  8D D7 10  ...  	STA data_10D7                    ; "=FF if Tube not present"
93C5  A9 24     .$   	LDA #$24
93C7  8D CA 10  ...  	STA data_10CA
93CA  8D CC 10  ...  	STA data_10CC
93CD  A0 00     ..   	LDY #$00
93CF  8C CB 10  ...  	STY data_10CB
93D2  8C CD 10  ...  	STY data_10CD
93D5  A0 00     ..   	LDY #$00
93D7  8C C0 10  ...  	STY data_10C0
93DA  8C C9 10  ...  	STY data_10C9
93DD  88        .    	DEY
93DE  8C C8 10  ...  	STY data_10C8
93E1  8C C7 10  ...  	STY data_10C7
93E4  8C DE 10  ...  	STY data_10DE
93E7  20 30 99   0.  	JSR osbyteFF_startupopts     ; "X get drive timings"
93EA  86 B4     ..   	STX data_B4                     ; "X"
93EC  8A        .    	TXA                             ; "X"

93ED                .BLOCK_Z  ; ( No direct access )
93ED  29 30     )0   	AND #$30                        ; "X"
93EF  4A        J    	LSR A                           ; "X"
93F0  4A        J    	LSR A                           ; "X"
93F1  85 B0     ..   	STA data_B0                     ; "X"
93F3  4A        J    	LSR A                           ; "X"
93F4  65 B0     e.   	ADC data_B0                     ; "X"
93F6  A8        .    	TAY                             ; "X"
93F7  20 88 8B   ..  	JSR FDCcmd_from_table_with_Y_index ; "(exit Y=nextindex)"    ; "X init timings"
93FA  A0 18     ..   	LDY #$18                        ; "X"
93FC  A2 03     ..   	LDX #$03                        ; "X"
93FE                .init_loop  ; ( RELATIVE=1 )
93FE  20 88 8B   ..  	JSR FDCcmd_from_table_with_Y_index ; "(exit Y=nextindex)"    ; "X load surface 0"
9401  CA        .    	DEX                             ; "X spec reg, track 0"
9402  D0 FA     ..   	BNE init_loop                   ; "X ver dat
; "MMC modification: ; JSR mmcloadcurdrvcat"

9404                .init_cont  ; ( No direct access )
9404  68        h    	PLA
9405  D0 34     .4   	BNE bootopt0_do_nothing
9407  20 EB 8A   ..  	JSR Load_CurDrvCatalog
940A  A0 00     ..   	LDY #$00
940C  A2 00     ..   	LDX #$00
940E  AD 06 0F  ...  	LDA data_0F06
9411  20 05 82   ..  	JSR lsr_A_4_times
9414  F0 25     .%   	BEQ bootopt0_do_nothing         ; "opt.0"
9416  48        H    	PHA
9417  A2 43     .C   	LDX #$43                        ; "!BOOT"
9419  A0 99     ..   	LDY #$99
941B  20 B8 86   ..  	JSR set_TextPointer_to_Y_times_100_plus_X
941E  20 FE 80   ..  	JSR read_afsp_at_TextPointer
9421  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"
9424  68        h    	PLA
9425  B0 15     ..   	BCS bootfile_found

9427                .errFILE_NOT_FOUND  ; ( No direct access )
9427  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
942A  46 69 6C 65 20 6E 6F 74  File not
9432  20 66 6F 75 6E 64 0D 0D   found..
943A  EA        .    	NOP
943B                .bootopt0_do_nothing  ; ( RELATIVE=2 )
943B  60        `    	RTS
943C                .bootfile_found  ; ( RELATIVE=1 )
943C  C9 02     ..   	CMP #$02
943E  90 0E     ..   	BCC boot_opt1_load
9440  F0 06     ..   	BEQ boot_opt2_run

9442                .boot_opt3_exec  ; ( No direct access )
9442  A2 41     .A   	LDX #$41
9444  A0 99     ..   	LDY #$99
9446  D0 0A     ..   	BNE boot_oscli
9448                .boot_opt2_run  ; ( RELATIVE=1 )
9448  A2 43     .C   	LDX #$43
944A  A0 99     ..   	LDY #$99
944C  D0 04     ..   	BNE boot_oscli
944E                .boot_opt1_load  ; ( RELATIVE=1 )
944E  A2 39     .9   	LDX #$39
9450  A0 99     ..   	LDY #$99
9452                .boot_oscli  ; ( RELATIVE=2 )
9452  4C F7 FF  L..  	JMP os_cli

9455                .SERVICE_claim_abs_workspace  ; ( ABSOLUTE=1 )
9455  C9 01     ..   	CMP #$01                        ; "A=1 : abs workspace claim"
9457  D0 07     ..   	BNE SERVICE_claim_priv_workspace
9459  C0 17     ..   	CPY #$17                        ; "Y=current upper limit"
945B  B0 02     ..   	BCS code_945F                   ; "already >=&17"
945D  A0 17     ..   	LDY #$17                        ; "Up upper limit to &17"
945F                .code_945F  ;( RELATIVE=1 )
945F  60        `    	RTS
9460                .SERVICE_claim_priv_workspace  ; ( RELATIVE=1 )
9460  C9 02     ..   	CMP #$02                        ; "A=2 : priv workspace claim"
9462  D0 1A     ..   	BNE SERVICE_autoboot
9464  48        H    	PHA
9465  98        .    	TYA                             ; "Y=First available page"
9466  18        .    	CLC
9467  85 B1     ..   	STA data_B1
9469  9D F0 0D  ...  	STA os_paged_ROM_private_workspace_H__0DF0,X
946C  69 02     i.   	ADC #$02                        ; "takes 2 pages for pwsp"
946E  48        H    	PHA
946F  A9 00     ..   	LDA #$00                        ; "store 0 at pwsp+&D4/&D5"
9471  85 B0     ..   	STA data_B0
9473  A0 D4     ..   	LDY #$D4
9475  91 B0     ..   	STA (data_B0),Y
9477  C8        .    	INY
9478  91 B0     ..   	STA (data_B0),Y
947A  68        h    	PLA
947B  A8        .    	TAY                             ; "Y=Y+2"
947C  68        h    	PLA                             ; "restore A"
947D                .dont_Start_DFS  ; ( RELATIVE=1 )
947D  60        `    	RTS
947E                .SERVICE_autoboot  ; ( RELATIVE=1 )
947E  C9 03     ..   	CMP #$03                        ; "A=3 : auto boot"
9480  D0 19     ..   	BNE SERVICE_unrec_command
9482  84 B3     ..   	STY data_B3                     ; "if Y=0 then !BOOT"
9484  20 E1 83   ..  	JSR rememberAXY
9487  A9 7A     .z   	LDA #$7A
9489  20 F4 FF   ..  	JSR os_byte                  ; "Keyboard scan"
948C  8A        .    	TXA                             ; "X=int.key.no"
948D  30 09     0.   	BMI code_9498
948F  C9 32     .2   	CMP #$32                        ; ""D" key"
9491  D0 EA     ..   	BNE dont_Start_DFS
9493  A9 78     .x   	LDA #$78
9495  20 F4 FF   ..  	JSR os_byte                  ; "write current keys pressed info"
9498                .code_9498  ;( RELATIVE=1 )
9498  4C 20 93  L .  	JMP AUTOBOOT
949B                .SERVICE_unrec_command  ; ( RELATIVE=1 )
949B  C9 04     ..   	CMP #$04                        ; "A=4 : unrec command"
949D  D0 08     ..   	BNE SERVICE_help
949F  20 E1 83   ..  	JSR rememberAXY
94A2  A2 72     .r   	LDX #$72                        ; "Ex-DFS commands"
94A4                .code_94A4  ;( RELATIVE=1 )
94A4  4C 71 86  Lq.  	JMP unrec_command_at_TextPointer
94A7                .SERVICE_help  ; ( RELATIVE=1 )
94A7  C9 09     ..   	CMP #$09                        ; "A=9 : *HELP"
94A9  D0 12     ..   	BNE SERVICE_claim_statworkspace
94AB  20 E1 83   ..  	JSR rememberAXY
94AE  B1 F2     ..   	LDA (os_textptr_L__F2),Y
94B0  A2 A0     ..   	LDX #$A0
94B2  C9 0D     ..   	CMP #$0D
94B4  D0 EE     ..   	BNE code_94A4
94B6  98        .    	TYA
94B7  E8        .    	INX
94B8  A0 02     ..   	LDY #$02
94BA  4C CB 99  L..  	JMP prt_help
94BD                .SERVICE_claim_statworkspace  ; ( RELATIVE=1 )
94BD  C9 0A     ..   	CMP #$0A                        ; "Another ROM"
94BF  D0 29     .)   	BNE SERVICE_unrec_osword        ; "wants the"
94C1  20 E1 83   ..  	JSR rememberAXY              ; "absolute workspace"
94C4  20 9E 98   ..  	JSR set_PrivateWorkspacePointer_indirect_B0
94C7  A0 D5     ..   	LDY #$D5
94C9  B1 B0     ..   	LDA (data_B0),Y                 ; "not using workspace!"
94CB  10 1C     ..   	BPL exit_ServiceCalls
94CD  A0 00     ..   	LDY #$00                        ; "copy valuable"
94CF                .stat_loop1  ; ( RELATIVE=1 )
94CF  C0 C0     ..   	CPY #$C0                        ; "data to private wsp"
94D1  90 05     ..   	BCC stat_Y_lessthan_C0          ; "I.e. 10C0-10FF"
94D3  B9 00 10  ...  	LDA data_1000,Y                 ; "and 1100-11BF"
94D6  B0 03     ..   	BCS stat_Y_greaterequal_C0
94D8                .stat_Y_lessthan_C0  ; ( RELATIVE=1 )
94D8  B9 00 11  ...  	LDA data_1100,Y                 ; "?Y = copy vars only"
94DB                .stat_Y_greaterequal_C0  ; ( RELATIVE=1 )
94DB  91 B0     ..   	STA (data_B0),Y
94DD  88        .    	DEY
94DE  D0 EF     ..   	BNE stat_loop1
94E0  20 F2 8F   ..  	JSR argsv_allfiles_to_media2
94E3  A0 D5     ..   	LDY #$D5
94E5  A9 00     ..   	LDA #$00
94E7  91 B0     ..   	STA (data_B0),Y
94E9                .exit_ServiceCalls  ; ( RELATIVE=2 )
94E9  60        `    	RTS
94EA                .SERVICE_unrec_osword  ; ( RELATIVE=1 )
94EA  C9 08     ..   	CMP #$08                        ; "Last service call"
94EC  D0 FB     ..   	BNE exit_ServiceCalls
94EE  20 11 84   ..  	JSR rAXY2_dont_pull_on_return
94F1  A4 F0     ..   	LDY os_byteword_save_X__F0      ; "Osword X reg"
94F3  84 B0     ..   	STY data_B0
94F5  A4 F1     ..   	LDY os_byteword_save_Y__F1      ; "Osword Y reg"
94F7  84 B1     ..   	STY data_B1
94F9  A4 EF     ..   	LDY os_byteword_save_A__EF      ; "Osword A reg"
94FB  C0 7F     ..   	CPY #$7F
94FD  D0 4C     .L   	BNE not_osword7F
94FF  A0 00     ..   	LDY #$00                        ; "OSWORD &7F"
9501  B1 B0     ..   	LDA (data_B0),Y                 ; "oswptr+0"

9503                .new_Calls  ; ( No direct access )
9503  30 06     0.   	BMI osword7F_dont_reset
9505  20 7E 87   ~.  	JSR set_CurrentDrive
9508  20 9E 8B   ..  	JSR FDC_drive_ready_reset
950B                .osword7F_dont_reset  ; ( RELATIVE=1 )
950B  C8        .    	INY
950C  A2 02     ..   	LDX #$02                        ; "be/bf=oswptr+1/2"
950E  20 DA 80   ..  	JSR copyvars_indirect_B0_Y_to_BC_X__and__indirect_B0_Y_plus_2_to_1072_X    ; "1074/75=oswptr+3/4"
9511  B1 B0     ..   	LDA (data_B0),Y                 ; "oswptr+5 = param.#"
9513  C8        .    	INY
9514  48        H    	PHA
9515  B1 B0     ..   	LDA (data_B0),Y                 ; "oswptr+6 = FDC cmd"
9517  48        H    	PHA
9518  20 BD 8C   ..  	JSR FDC_write_Cmd__A_is_Cmd__returns_C_is_drive ; "(return C=drv, i.e. C=0 if drive 0, C=1 if drive 1)"    ; "FDC CMD"
951B  68        h    	PLA
951C  20 05 82   ..  	JSR lsr_A_4_times
951F  29 01     ).   	AND #$01                        ; "0=init rd/1=init wr"
9521  20 E6 8B   ..  	JSR Tube_routine_init ; "(A=op) C=0 if rw Tube else Host"
9524  2A        *    	ROL A                           ; "2 or 0"
9525  69 03     i.   	ADC #$03                        ; "3or5(tube)/4or6(host)"
9527  20 AC 98   ..  	JSR BLOCK_A__claim_NMI__A_is_code_no_from_0_to_6 ; "Claim_NMI A=CODE No (0 to 6)"    ; "3+4WR, 5+6RD"
952A  A5 BE     ..   	LDA data_BE                     ; "oswptr+1"
952C  85 A6     ..   	STA data_A6
952E  A5 BF     ..   	LDA data_BF                     ; "oswptr+2"
9530  85 A7     ..   	STA data_A7
9532  A0 07     ..   	LDY #$07
9534  68        h    	PLA                             ; "oswptr+5=No.of FDC parameters"
9535  AA        .    	TAX
9536  F0 09     ..   	BEQ osword7F_result
9538                .osword7F_param_loop  ; ( RELATIVE=1 )
9538  B1 B0     ..   	LDA (data_B0),Y
953A  20 B0 8C   ..  	JSR FDC_writeparam__A_is_Param
953D  C8        .    	INY
953E  CA        .    	DEX
953F  D0 F7     ..   	BNE osword7F_param_loop
9541                .osword7F_result  ; ( RELATIVE=1 )
9541  20 CF 8C   ..  	JSR FDC_read_result ; "(return: A=RESULT,C preserved)"
9544  91 B0     ..   	STA (data_B0),Y
9546  A9 00     ..   	LDA #$00
9548  4C EA 98  L..  	JMP release_NMI ; "(AXY preserved)"
954B                .not_osword7F  ; ( RELATIVE=1 )
954B  C0 7D     .}   	CPY #$7D
954D  90 2B     .+   	BCC not_DFS_osword
954F  20 4D 83   M.  	JSR set_CE_CF_driveno        ; "OSWORD A>=&7D"
9552  20 47 83   G.  	JSR Load_CurDrvCat__preserve_AXY
9555  C0 7E     .~   	CPY #$7E
9557  F0 09     ..   	BEQ osword7E
9559  A0 00     ..   	LDY #$00
955B  AD 04 0F  ...  	LDA data_0F04                    ; "Cycle no."
955E  91 B0     ..   	STA (data_B0),Y
9560  98        .    	TYA
9561  60        `    	RTS
9562                .osword7E  ; ( RELATIVE=1 )
9562  A9 00     ..   	LDA #$00
9564  A8        .    	TAY
9565  91 B0     ..   	STA (data_B0),Y
9567  C8        .    	INY
9568  AD 07 0F  ...  	LDA data_0F07                    ; "sector count LB"
956B  91 B0     ..   	STA (data_B0),Y
956D  C8        .    	INY
956E  AD 06 0F  ...  	LDA data_0F06
9571  29 03     ).   	AND #$03                        ; "sector count HB (mixed byte)"
9573  91 B0     ..   	STA (data_B0),Y
9575  C8        .    	INY
9576  A9 00     ..   	LDA #$00
9578  91 B0     ..   	STA (data_B0),Y                 ; "result"
957A                .not_DFS_osword  ; ( RELATIVE=1 )
957A  60        `    	RTS

957B                .FILEV_ENTRY  ; ( No direct access )
957B  20 11 84   ..  	JSR rAXY2_dont_pull_on_return
957E  48        H    	PHA
957F  20 62 82   b.  	JSR parameter_fsp
9582  86 B0     ..   	STX data_B0
9584  8E DC 10  ...  	STX data_10DC
9587  84 B1     ..   	STY data_B1
9589  8C DD 10  ...  	STY data_10DD
958C  A2 00     ..   	LDX #$00
958E  A0 00     ..   	LDY #$00
9590  20 EA 80   ..  	JSR copyword_indirect_B0_Y_to_BC_X    ; "filename ptr ->BC/BD"
9593                .filev_copyparams_loop  ; ( RELATIVE=1 )
9593  20 DA 80   ..  	JSR copyvars_indirect_B0_Y_to_BC_X__and__indirect_B0_Y_plus_2_to_1072_X
9596  C0 12     ..   	CPY #$12
9598  D0 F9     ..   	BNE filev_copyparams_loop
959A  68        h    	PLA
959B  AA        .    	TAX
959C  E8        .    	INX
959D  E0 08     ..   	CPX #$08                        ; "NB A=FF -> X=0"
959F  B0 08     ..   	BCS filev_unknown_op            ; "x>=8 (a>=7)"
95A1  BD 8C 99  ...  	LDA finv_tablehi,X              ; "get addr from table"
95A4  48        H    	PHA                             ; "and "return" to it"
95A5  BD 84 99  ...  	LDA finv_tablelo,X
95A8  48        H    	PHA
95A9                .filev_unknown_op  ; ( RELATIVE=2 )
95A9  60        `    	RTS

95AA                .FSCV_ENTRY  ; ( No direct access )
95AA  C9 09     ..   	CMP #$09
95AC  B0 FB     ..   	BCS filev_unknown_op            ; "op>=9 not valide"
95AE  86 B5     ..   	STX data_B5
95B0  AA        .    	TAX
95B1  BD 75 99  .u.  	LDA fscv_table2,X
95B4  48        H    	PHA
95B5  BD 6C 99  .l.  	LDA fscv_table1,X
95B8  48        H    	PHA
95B9  8A        .    	TXA
95BA  A6 B5     ..   	LDX data_B5
95BC  60        `    	RTS

95BD                .argsv_restcmdlineaddr  ; ( No direct access )
95BD  A9 FF     ..   	LDA #$FF
95BF  95 02     ..   	STA data_02,X
95C1  95 03     ..   	STA data_03,X
95C3  AD DA 10  ...  	LDA data_10DA
95C6  95 00     ..   	STA data_00,X
95C8  AD DB 10  ...  	LDA data_10DB
95CB  95 01     ..   	STA data_01,X
95CD  A9 00     ..   	LDA #$00
95CF                .gbpbv_unrec_op  ; ( RELATIVE=1 )
95CF  60        `    	RTS

95D0                .GBPBV_ENTRY  ; ( No direct access )
95D0  C9 09     ..   	CMP #$09
95D2  B0 FB     ..   	BCS gbpbv_unrec_op              ; ">=9 not valid"
95D4  20 E1 83   ..  	JSR rememberAXY
95D7  8E 7D 10  .}.  	STX data_107D                    ; "XY -> param blk"
95DA  8C 7E 10  .~.  	STY data_107E
95DD  A8        .    	TAY
95DE  BA        .    	TSX
95DF  A9 00     ..   	LDA #$00
95E1  9D 05 01  ...  	STA data_0105,X
95E4  B9 AB 99  ...  	LDA gbpbv_table1,Y
95E7  8D D8 10  ...  	STA data_10D8                    ; "w 10D8 = GBPB routine entry"
95EA  B9 B4 99  ...  	LDA gbpbv_table2,Y
95ED  8D D9 10  ...  	STA data_10D9
95F0  B9 BD 99  ...  	LDA gbpbv_table3,Y
95F3  4A        J    	LSR A
95F4  08        .    	PHP
95F5  4A        J    	LSR A
95F6  08        .    	PHP
95F7  8D 7F 10  ...  	STA data_107F                    ; "save Tube op"
95FA  20 56 97   V.  	JSR copy_107D_107E_to_B4_B5    ; "w B4 = w 1074 = XY on entry"
95FD  A0 0C     ..   	LDY #$0C
95FF                .gbpb_cblk_loop  ; ( RELATIVE=1 )
95FF  B1 B4     ..   	LDA (data_B4),Y                 ; "Copy ctl block to &1060"
9601  99 60 10  .`.  	STA data_1060,Y
9604  88        .    	DEY
9605  10 F8     ..   	BPL gbpb_cblk_loop
9607  AD 63 10  .c.  	LDA data_1063                    ; "data ptr bytes 3 & 4"
960A  2D 64 10  -d.  	AND data_1064
960D  0D D7 10  ...  	ORA data_10D7
9610  18        .    	CLC
9611  69 01     i.   	ADC #$01
9613  F0 02     ..   	BEQ gbpb_not_Tube               ; "not Tube!"
9615  A9 FF     ..   	LDA #$FF
9617                .gbpb_not_Tube  ; ( RELATIVE=1 )
9617  8D 81 10  ...  	STA data_1081                    ; "GBPB to TUBE IF >=&80"
961A  AD 7F 10  ...  	LDA data_107F                    ; "Tube op! 0 or 1"
961D  B0 07     ..   	BCS gbpb_not_Tube2
961F  A2 61     .a   	LDX #$61                        ; "init TUBE addr @ 1061"
9621  A0 10     ..   	LDY #$10
9623  20 06 04   ..  	JSR os_tube_filing_system_IO__0406
9626                .gbpb_not_Tube2  ; ( RELATIVE=1 )
9626  28        (    	PLP
9627  B0 04     ..   	BCS gbpb_A_is_1_to_4            ; "Bit 1! A was <5"
9629  28        (    	PLP                             ; "Bit 0 = 0"

962A                .gpbp_JMP_indirect_10d8  ; ( ABSOLUTE=1 )
962A  6C D8 10  l..  	JMP (data_10D8)                 ; "A = 0 , 5 - 8"
962D                .gbpb_A_is_1_to_4  ; ( RELATIVE=1 )
962D  A2 03     ..   	LDX #$03
962F                .gbpb_copy_seqptr  ; ( RELATIVE=1 )
962F  BD 69 10  .i.  	LDA data_1069,X                 ; "!B6=seq ptr"
9632  95 B6     ..   	STA data_B6,X
9634  CA        .    	DEX
9635  10 F8     ..   	BPL gbpb_copy_seqptr
9637  A2 B6     ..   	LDX #$B6
9639  AC 60 10  .`.  	LDY data_1060
963C  A9 00     ..   	LDA #$00
963E  28        (    	PLP                             ; "Bit 0!"
963F  B0 03     ..   	BCS gbpb_skip_set_ptr           ; "Set=don't use new ptr"
9641  20 A7 92   ..  	JSR argsv_write_SeqPointer
9644                .gbpb_skip_set_ptr  ; ( RELATIVE=1 )
9644  20 2E 90   ..  	JSR argsv_rdseqptr_or_filelen
9647  A2 03     ..   	LDX #$03
9649                .gpbp_copy_back_seq_ptr  ; ( RELATIVE=1 )
9649  B5 B6     ..   	LDA data_B6,X
964B  9D 69 10  .i.  	STA data_1069,X
964E  CA        .    	DEX
964F  10 F8     ..   	BPL gpbp_copy_back_seq_ptr
9651                .code_9651  ;( RELATIVE=1 )
9651  20 48 97   H.  	JSR invert_1065_to_1068      ; "No of bytes"
9654  30 0D     0.   	BMI gpbp_loop_entry             ; "always jumps!"
9656                .gpbp_loop  ; ( RELATIVE=1 )
9656  AC 60 10  .`.  	LDY data_1060                    ; "Y=handle"
9659  20 2A 96   *.  	JSR gpbp_JMP_indirect_10d8    ; "Jmp routine!!!"
965C  B0 0D     ..   	BCS gpbp_exit_err
965E  A2 09     ..   	LDX #$09
9660  20 3C 97   <.  	JSR inc_1060_X               ; "Inc Seq Ptr"
9663                .gpbp_loop_entry  ; ( RELATIVE=1 )
9663  A2 05     ..   	LDX #$05
9665  20 3C 97   <.  	JSR inc_1060_X               ; "Inc No. of Bytes"
9668  D0 EC     ..   	BNE gpbp_loop                   ; "More bytes?"
966A  18        .    	CLC
966B                .gpbp_exit_err  ; ( RELATIVE=1 )
966B  08        .    	PHP                             ; "save result"
966C  20 48 97   H.  	JSR invert_1065_to_1068      ; "restore ctl block"
966F  A2 05     ..   	LDX #$05
9671  20 3C 97   <.  	JSR inc_1060_X               ; "Inc No. of bytes"
9674  A0 0C     ..   	LDY #$0C
9676  20 56 97   V.  	JSR copy_107D_107E_to_B4_B5    ; "restore ctl block ptr"
9679                .gpbp_copy_back_ctl_blk  ; ( RELATIVE=1 )
9679  B9 60 10  .`.  	LDA data_1060,Y                 ; "copy ctl block back to"
967C  91 B4     ..   	STA (data_B4),Y                 ; "orig location"
967E  88        .    	DEY
967F  10 F8     ..   	BPL gpbp_copy_back_ctl_blk
9681  28        (    	PLP                             ; "C=1 if not completed!!!!"
9682  60        `    	RTS

9683                .gbpb8_rd_files_curdir  ; ( No direct access )
9683  20 4D 83   M.  	JSR set_CE_CF_driveno
9686  20 DE 8A   ..  	JSR check_CurDrvCatalog
9689  A9 95     ..   	LDA #$95
968B  8D D8 10  ...  	STA data_10D8
968E  A9 96     ..   	LDA #$96
9690  8D D9 10  ...  	STA data_10D9
9693  D0 BC     ..   	BNE code_9651
9695  AC 69 10  .i.  	LDY data_1069
9698                .code_9698  ;( RELATIVE=1 )
9698  CC 05 0F  ...  	CPY data_0F05
969B  B0 28     .(   	BCS code_96C5
969D  B9 0F 0E  ...  	LDA data_0E0F,Y
96A0  20 EE 82   ..  	JSR alphachr_if_C_0 ; "returns C=0 if A is alpha; A preserved"
96A3  45 CE     E.   	EOR data_CE
96A5  B0 02     ..   	BCS code_96A9
96A7  29 DF     ).   	AND #$DF
96A9                .code_96A9  ;( RELATIVE=1 )
96A9  29 7F     ).   	AND #$7F
96AB  F0 05     ..   	BEQ code_96B2
96AD  20 10 82   ..  	JSR increment_Y_by_8
96B0  D0 E6     ..   	BNE code_9698
96B2                .code_96B2  ;( RELATIVE=1 )
96B2  A9 07     ..   	LDA #$07
96B4  20 6A 97   j.  	JSR gbpb_gb_SAVEBYTE
96B7  85 B0     ..   	STA data_B0
96B9                .code_96B9  ;( RELATIVE=1 )
96B9  B9 08 0E  ...  	LDA data_0E08,Y
96BC  20 6A 97   j.  	JSR gbpb_gb_SAVEBYTE
96BF  C8        .    	INY
96C0  C6 B0     ..   	DEC data_B0
96C2  D0 F5     ..   	BNE code_96B9
96C4  18        .    	CLC
96C5                .code_96C5  ;( RELATIVE=1 )
96C5  8C 69 10  .i.  	STY data_1069
96C8  AD 04 0F  ...  	LDA data_0F04
96CB  8D 60 10  .`.  	STA data_1060
96CE  60        `    	RTS

96CF                .gbpb5_get_media_title  ; ( No direct access )
96CF  20 4D 83   M.  	JSR set_CE_CF_driveno
96D2  20 DE 8A   ..  	JSR check_CurDrvCatalog
96D5  A9 0C     ..   	LDA #$0C
96D7  20 6A 97   j.  	JSR gbpb_gb_SAVEBYTE
96DA  A0 00     ..   	LDY #$00
96DC                .code_96DC  ;( RELATIVE=1 )
96DC  B9 00 0E  ...  	LDA data_0E00,Y
96DF  20 6A 97   j.  	JSR gbpb_gb_SAVEBYTE
96E2  C8        .    	INY
96E3  C0 08     ..   	CPY #$08
96E5  D0 F5     ..   	BNE code_96DC
96E7                .code_96E7  ;( RELATIVE=1 )
96E7  B9 F8 0E  ...  	LDA data_0EF8,Y
96EA  20 6A 97   j.  	JSR gbpb_gb_SAVEBYTE
96ED  C8        .    	INY
96EE  C0 0C     ..   	CPY #$0C
96F0  D0 F5     ..   	BNE code_96E7
96F2  AD 06 0F  ...  	LDA data_0F06
96F5  20 05 82   ..  	JSR lsr_A_4_times
96F8  20 6A 97   j.  	JSR gbpb_gb_SAVEBYTE
96FB  A5 CF     ..   	LDA data_CF
96FD  4C 6A 97  Lj.  	JMP gbpb_gb_SAVEBYTE

9700                .gbpb6_rd_curdir_and_device  ; ( No direct access )
9700  20 61 97   a.  	JSR code_9761
9703  AD CB 10  ...  	LDA data_10CB
9706  09 30     .0   	ORA #$30
9708  20 6A 97   j.  	JSR gbpb_gb_SAVEBYTE
970B  20 61 97   a.  	JSR code_9761
970E  AD CA 10  ...  	LDA data_10CA
9711  4C 6A 97  Lj.  	JMP gbpb_gb_SAVEBYTE

9714                .gbpb7_rd_curlib_and_device  ; ( No direct access )
9714  20 61 97   a.  	JSR code_9761
9717  AD CD 10  ...  	LDA data_10CD
971A  09 30     .0   	ORA #$30
971C  20 6A 97   j.  	JSR gbpb_gb_SAVEBYTE
971F  20 61 97   a.  	JSR code_9761
9722  AD CC 10  ...  	LDA data_10CC
9725  4C 6A 97  Lj.  	JMP gbpb_gb_SAVEBYTE

9728                .wB8_is_w1061_X_is_0  ; ( ABSOLUTE=2 )
9728  48        H    	PHA
9729  AD 61 10  .a.  	LDA data_1061
972C  85 B8     ..   	STA data_B8
972E  AD 62 10  .b.  	LDA data_1062
9731  85 B9     ..   	STA data_B9
9733  A2 00     ..   	LDX #$00
9735  68        h    	PLA
9736  60        `    	RTS

9737                .inc_1061  ; ( ABSOLUTE=4 )
9737  20 E1 83   ..  	JSR rememberAXY
973A  A2 01     ..   	LDX #$01

973C                .inc_1060_X  ; ( ABSOLUTE=3 )
973C  A0 04     ..   	LDY #$04
973E                .code_973e_loop  ; ( RELATIVE=1 )
973E  FE 60 10  .`.  	INC data_1060,X                 ; "Inc 4 byte number"
9741  D0 04     ..   	BNE code_9747_exit
9743  E8        .    	INX
9744  88        .    	DEY
9745  D0 F7     ..   	BNE code_973e_loop
9747                .code_9747_exit  ; ( RELATIVE=1 )
9747  60        `    	RTS

9748                .invert_1065_to_1068  ; ( ABSOLUTE=2 )
9748  A2 03     ..   	LDX #$03
974A                .invert_1065_to_1068_loop  ; ( RELATIVE=1 )
974A  A9 FF     ..   	LDA #$FF
974C  5D 65 10  ]e.  	EOR data_1065,X                 ; "??10ok"
974F  9D 65 10  .e.  	STA data_1065,X                 ; "??10ok"
9752  CA        .    	DEX
9753  10 F5     ..   	BPL invert_1065_to_1068_loop
9755  60        `    	RTS

9756                .copy_107D_107E_to_B4_B5  ; ( ABSOLUTE=2 )
9756  AD 7D 10  .}.  	LDA data_107D
9759  85 B4     ..   	STA data_B4
975B  AD 7E 10  .~.  	LDA data_107E
975E  85 B5     ..   	STA data_B5
9760                .gbpb_gb_err  ; ( RELATIVE=1 )
9760  60        `    	RTS

9761                .code_9761  ;( ABSOLUTE=4 )
9761  A9 01     ..   	LDA #$01
9763  D0 05     ..   	BNE gbpb_gb_SAVEBYTE

9765                .gbpb_get_bytes  ; ( No direct access )
9765  20 C1 90   ..  	JSR BGETV_ENTRY
9768  B0 F6     ..   	BCS gbpb_gb_err

976A                .gbpb_gb_SAVEBYTE  ; ( ABSOLUTE=11 RELATIVE=1 )
976A  2C 81 10  ,..  	BIT data_1081
976D  10 06     ..   	BPL gBpb_gb_fromhost
976F  8D E5 FE  ...  	STA sheila_FEE5_tube5            ; "fast Tube Bget"
9772  4C 37 97  L7.  	JMP inc_1061
9775                .gBpb_gb_fromhost  ; ( RELATIVE=1 )
9775  20 28 97   (.  	JSR wB8_is_w1061_X_is_0
9778  81 B8     ..   	STA (data_B8,X)
977A  4C 37 97  L7.  	JMP inc_1061

977D                .gbpb_put_bytes  ; ( No direct access )
977D  20 85 97   ..  	JSR gpbp_pb_LOADBYTE
9780  20 AA 91   ..  	JSR BPUTV_ENTRY
9783  18        .    	CLC                             ; "always ok!"
9784  60        `    	RTS

9785                .gpbp_pb_LOADBYTE  ; ( ABSOLUTE=1 )
9785  2C 81 10  ,..  	BIT data_1081
9788  10 06     ..   	BPL gbp_pb_from_host
978A  AD E5 FE  ...  	LDA sheila_FEE5_tube5            ; "fast Tube Bput"
978D  4C 37 97  L7.  	JMP inc_1061
9790                .gbp_pb_from_host  ; ( RELATIVE=1 )
9790  20 28 97   (.  	JSR wB8_is_w1061_X_is_0
9793  A1 B8     ..   	LDA (data_B8,X)
9795  4C 37 97  L7.  	JMP inc_1061

9798                .fscv_os_about_to_proc_cmd  ; ( No direct access )
9798  2C C8 10  ,..  	BIT data_10C8
979B  30 03     0.   	BMI code_97A0
979D  CE C8 10  ...  	DEC data_10C8
97A0                .code_97A0  ;( RELATIVE=1 )
97A0  60        `    	RTS

97A1                .osfile5_rdcatinfo  ; ( No direct access )
97A1  20 5A 98   Z.  	JSR code_985a
97A4  20 7E 83   ~.  	JSR read_fileattribs__Y_is_offset_of_file
97A7  A9 01     ..   	LDA #$01
97A9  60        `    	RTS

97AA                .osfile6_delfile  ; ( No direct access )
97AA  20 37 98   7.  	JSR code_9837
97AD  20 7E 83   ~.  	JSR read_fileattribs__Y_is_offset_of_file
97B0  20 D1 82   ..  	JSR DeleteCatEntry__Y_is_file_offset ; "(Y=file_offset)"
97B3  90 24     .$   	BCC code_97D9

97B5                .osfile1_updatecat  ; ( No direct access )
97B5  20 37 98   7.  	JSR code_9837
97B8  20 DF 97   ..  	JSR code_97DF
97BB  20 FB 97   ..  	JSR code_97FB
97BE  50 16     P.   	BVC code_97D6

97C0                .osfile2_wrloadaddr  ; ( No direct access )
97C0  20 37 98   7.  	JSR code_9837
97C3  20 DF 97   ..  	JSR code_97DF
97C6  50 11     P.   	BVC code_97D9

97C8                .osfile3_wrexecaddr  ; ( No direct access )
97C8  20 37 98   7.  	JSR code_9837
97CB  20 FB 97   ..  	JSR code_97FB
97CE  50 09     P.   	BVC code_97D9

97D0                .osfile4_wrattribs  ; ( No direct access )
97D0  20 5A 98   Z.  	JSR code_985a
97D3  20 4F 98   O.  	JSR code_984F
97D6                .code_97D6  ;( RELATIVE=1 )
97D6  20 1E 98   ..  	JSR code_981E
97D9                .code_97D9  ;( RELATIVE=3 )
97D9  20 C3 88   ..  	JSR code_88C3
97DC  A9 01     ..   	LDA #$01
97DE  60        `    	RTS

97DF                .code_97DF  ;( ABSOLUTE=2 )
97DF  20 E1 83   ..  	JSR rememberAXY
97E2  A0 02     ..   	LDY #$02
97E4  B1 B0     ..   	LDA (data_B0),Y
97E6  9D 08 0F  ...  	STA data_0F08,X
97E9  C8        .    	INY
97EA  B1 B0     ..   	LDA (data_B0),Y
97EC  9D 09 0F  ...  	STA data_0F09,X
97EF  C8        .    	INY
97F0  B1 B0     ..   	LDA (data_B0),Y
97F2  0A        .    	ASL A
97F3  0A        .    	ASL A
97F4  5D 0E 0F  ]..  	EOR data_0F0E,X
97F7  29 0C     ).   	AND #$0C
97F9  10 1B     ..   	BPL code_9816

97FB                .code_97FB  ;( ABSOLUTE=2 )
97FB  20 E1 83   ..  	JSR rememberAXY
97FE  A0 06     ..   	LDY #$06
9800  B1 B0     ..   	LDA (data_B0),Y
9802  9D 0A 0F  ...  	STA data_0F0A,X
9805  C8        .    	INY
9806  B1 B0     ..   	LDA (data_B0),Y
9808  9D 0B 0F  ...  	STA data_0F0B,X
980B  C8        .    	INY
980C  B1 B0     ..   	LDA (data_B0),Y
980E  6A        j    	ROR A
980F  6A        j    	ROR A
9810  6A        j    	ROR A
9811  5D 0E 0F  ]..  	EOR data_0F0E,X
9814  29 C0     ).   	AND #$C0
9816                .code_9816  ;( RELATIVE=1 )
9816  5D 0E 0F  ]..  	EOR data_0F0E,X
9819  9D 0E 0F  ...  	STA data_0F0E,X
981C  B8        .    	CLV
981D  60        `    	RTS

981E                .code_981E  ;( ABSOLUTE=1 )
981E  20 E1 83   ..  	JSR rememberAXY
9821  A0 0E     ..   	LDY #$0E
9823  B1 B0     ..   	LDA (data_B0),Y
9825  29 0A     ).   	AND #$0A
9827  F0 02     ..   	BEQ code_982B
9829  A9 80     ..   	LDA #$80
982B                .code_982B  ;( RELATIVE=1 )
982B  5D 0F 0E  ]..  	EOR data_0E0F,X
982E  29 80     ).   	AND #$80
9830  5D 0F 0E  ]..  	EOR data_0E0F,X
9833  9D 0F 0E  ...  	STA data_0E0F,X
9836  60        `    	RTS

9837                .code_9837  ;( ABSOLUTE=4 )
9837  20 64 98   d.  	JSR code_9864 ; "rd(a)fsp@BC,find catentry,set pwspptr,C=0nf)"
983A  90 23     .#   	BCC code_985F

983C                .check_file_NotLocked  ; ( ABSOLUTE=2 )
983C  B9 0F 0E  ...  	LDA data_0E0F,Y
983F  10 22     ."   	BPL code_9863

9841                .errFILE_LOCKED  ; ( ABSOLUTE=1 )
9841  20 2B 80   +.  	JSR errFILE
9844  C3 6C 6F 63 6B 65 64 00  .locked.

984C                .check_file_NotOpen  ; ( ABSOLUTE=2 )
984C  20 3C 98   <.  	JSR check_file_NotLocked

984F                .code_984F  ;( ABSOLUTE=2 )
984F  20 E1 83   ..  	JSR rememberAXY
9852  20 9E 8F   ..  	JSR code_8f9e
9855  90 21     .!   	BCC checkexit
9857  4C 02 8F  L..  	JMP errFILE_OPEN

985A                .code_985a  ; ( ABSOLUTE=2 )
985A  20 64 98   d.  	JSR code_9864 ; "rd(a)fsp@BC,find catentry,set pwspptr,C=0nf)"
985D  B0 19     ..   	BCS checkexit
985F                .code_985F  ;( RELATIVE=1 )
985F  68        h    	PLA
9860  68        h    	PLA
9861  A9 00     ..   	LDA #$00
9863                .code_9863  ;( RELATIVE=1 )
9863  60        `    	RTS

9864                .code_9864  ; ( ABSOLUTE=2 ) ; "rd(a)fsp@BC,find catentry,set pwspptr,C=0nf)"
9864  20 06 81   ..  	JSR read_afsp_at_indirect_BC ; "(return Y=Tpoffsetnonblank)"
9867  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"
986A  90 0C     ..   	BCC checkexit
986C  98        .    	TYA
986D  AA        .    	TAX

986E                .code_986e  ; ( ABSOLUTE=2 ) ; "pwsptr=?10DC/DD"
986E  AD DC 10  ...  	LDA data_10DC
9871  85 B0     ..   	STA data_B0
9873  AD DD 10  ...  	LDA data_10DD
9876  85 B1     ..   	STA data_B1
9878                .checkexit  ; ( RELATIVE=3 )
9878  60        `    	RTS                             ; "CalcRAM(HIMEM-PAGE+1)"

9879                .code_9879  ;( ABSOLUTE=2 )
9879  A9 83     ..   	LDA #$83
987B  20 F4 FF   ..  	JSR os_byte                  ; "YX=OSHWM (PAGE)"
987E  8C D0 10  ...  	STY data_10D0
9881  A9 84     ..   	LDA #$84
9883  20 F4 FF   ..  	JSR os_byte                  ; "YX=HIMEM"
9886  98        .    	TYA
9887  38        8    	SEC
9888  ED D0 10  ...  	SBC data_10D0                    ; "HIMEMpage-OSHWMpage+1"
988B  8D D1 10  ...  	STA data_10D1
988E  60        `    	RTS

988F                .claim_StaticWorkspace  ; ( ABSOLUTE=2 )
988F  A2 0A     ..   	LDX #$0A
9891  20 2C 99   ,.  	JSR osbyte8F_issue_service_request
9894  20 9E 98   ..  	JSR set_PrivateWorkspacePointer_indirect_B0
9897  A0 D5     ..   	LDY #$D5
9899  A9 FF     ..   	LDA #$FF
989B  91 B0     ..   	STA (data_B0),Y
989D  60        `    	RTS

989E                .set_PrivateWorkspacePointer_indirect_B0  ; ( ABSOLUTE=3 )
989E  48        H    	PHA
989F  A6 F4     ..   	LDX os_selected_paged_ROM__F4
98A1  A9 00     ..   	LDA #$00
98A3  85 B0     ..   	STA data_B0
98A5  BD F0 0D  ...  	LDA os_paged_ROM_private_workspace_H__0DF0,X
98A8  85 B1     ..   	STA data_B1
98AA  68        h    	PLA
98AB  60        `    	RTS

98AC                .BLOCK_A__claim_NMI__A_is_code_no_from_0_to_6  ; ( ABSOLUTE=4 ) ; "Claim_NMI A=CODE No (0 to 6)"
98AC  20 E1 83   ..  	JSR rememberAXY
98AF  48        H    	PHA
98B0  2C C9 10  ,..  	BIT data_10C9                    ; "own NMI?"
98B3  30 0E     0.   	BMI already_own_NMI
98B5  A9 8F     ..   	LDA #$8F                        ; "Iss.pg.rom service request"
98B7  A2 0C     ..   	LDX #$0C                        ; "service type: NMI CLAIM"
98B9  20 34 99   4.  	JSR do_osbyte_Y_FF
98BC  84 A0     ..   	STY data_A0                     ; "=Prev.owner of NMI"
98BE  A9 FF     ..   	LDA #$FF
98C0  8D C9 10  ...  	STA data_10C9
98C3                .already_own_NMI  ; ( RELATIVE=1 )
98C3  68        h    	PLA                             ; "COPY CODE TO &D00"
98C4  AA        .    	TAX
98C5  BD 94 99  ...  	LDA NMI_table1,X
98C8  85 B8     ..   	STA data_B8
98CA  BD 9B 99  ...  	LDA NMI_table2,X
98CD  85 B9     ..   	STA data_B9
98CF  BC A2 99  ...  	LDY NMI_table3,X
98D2                .code_98D2  ;( RELATIVE=1 )
98D2  B1 B8     ..   	LDA (data_B8),Y
98D4  99 00 0D  ...  	STA data_0D00,Y
98D7  88        .    	DEY
98D8  10 F8     ..   	BPL code_98D2
98DA  E0 02     ..   	CPX #$02
98DC  B0 08     ..   	BCS claim_NMI_exit              ; "Code X>=2"
98DE  A5 F4     ..   	LDA os_selected_paged_ROM__F4    ; "I.e. DFS Rom no"
98E0  BC A9 99  ...  	LDY NMI_table4,X                ; "Y=offset to store rom no"
98E3  99 00 0D  ...  	STA data_0D00,Y                 ; "0:D63 1:D43"
98E6                .claim_NMI_exit  ; ( RELATIVE=1 )
98E6  60        `    	RTS

98E7                .release_NMI_Wait_FDC_busy  ; ( ABSOLUTE=4 ) ; "(A=bitmask)(AXY preserved)"
98E7  20 D6 8C   ..  	JSR FDC_wait_if_busy ; "(AXY preserved)"

98EA                .release_NMI  ; ( ABSOLUTE=2 ) ; "(AXY preserved)"
98EA  20 E1 83   ..  	JSR rememberAXY
98ED  2C C9 10  ,..  	BIT data_10C9                    ; "don't own NMI"
98F0  10 0E     ..   	BPL release_NMI_clr10c9
98F2  20 E1 83   ..  	JSR rememberAXY              ; "again?"
98F5  A4 A0     ..   	LDY data_A0                     ; "prev.nmi.owner"
98F7  C0 FF     ..   	CPY #$FF
98F9  F0 05     ..   	BEQ release_NMI_clr10c9
98FB  A2 0B     ..   	LDX #$0B                        ; "Release NMI space"
98FD  20 2C 99   ,.  	JSR osbyte8F_issue_service_request    ; "type 0b; y=prev.nmi.owner"
9900                .release_NMI_clr10c9  ; ( RELATIVE=2 )
9900  A9 00     ..   	LDA #$00
9902  8D C9 10  ...  	STA data_10C9
9905  60        `    	RTS                             ; "end release_nmi
; "osbyte0F flush.in.buf (rem.AXY)"

9906                .code_9906  ;( ABSOLUTE=2 )
9906  20 E1 83   ..  	JSR rememberAXY              ; "osbyte0F flush.in.buf"
9909  A9 0F     ..   	LDA #$0F
990B  A2 01     ..   	LDX #$01
990D                .code_990D  ;( RELATIVE=1 )
990D  A0 00     ..   	LDY #$00
990F  F0 25     .%   	BEQ do_osbyte                   ; "always"

9911                .osbyteC7_rw_spool_hndl_Y  ; ( ABSOLUTE=1 )
9911  A9 C7     ..   	LDA #$C7
9913  A2 00     ..   	LDX #$00
9915  F0 F6     ..   	BEQ code_990D                   ; "always"

9917                .osbyte03_output_stream_A  ; ( ABSOLUTE=1 )
9917  AA        .    	TAX

9918                .osbyte03_output_stream_X  ; ( ABSOLUTE=1 )
9918  A9 03     ..   	LDA #$03                        ; "select output stream"
991A  D0 1A     ..   	BNE do_osbyte

991C                .osbyteEC_chr_destination_status_AND_Y_EOR_X  ; ( ABSOLUTE=1 )
991C  A9 EC     ..   	LDA #$EC                        ; "r/w char dest status"
991E  D0 12     ..   	BNE do_osbyte_X_0__Y_FF

9920                .osbyteC7_spool_hdl  ; ( ABSOLUTE=1 )
9920  A9 C7     ..   	LDA #$C7                        ; "r/w *SPOOL handle"
9922  D0 0E     ..   	BNE do_osbyte_X_0__Y_FF

9924                .osbyteEA_is_Tube  ; ( ABSOLUTE=1 )
9924  A9 EA     ..   	LDA #$EA                        ; "rd Tube present flag"
9926  D0 0A     ..   	BNE do_osbyte_X_0__Y_FF

9928                .osbyteA8_rom_pointer_table  ; ( ABSOLUTE=1 )
9928  A9 A8     ..   	LDA #$A8                        ; "rd addr ROM point tbl lo"
992A  D0 06     ..   	BNE do_osbyte_X_0__Y_FF

992C                .osbyte8F_issue_service_request  ; ( ABSOLUTE=3 )
992C  A9 8F     ..   	LDA #$8F                        ; "issued pg.rom serv.req"
992E  D0 06     ..   	BNE do_osbyte

9930                .osbyteFF_startupopts  ; ( ABSOLUTE=1 )
9930  A9 FF     ..   	LDA #$FF                        ; "r/w start up opts"
9932                .do_osbyte_X_0__Y_FF  ; ( RELATIVE=4 )
9932  A2 00     ..   	LDX #$00

9934                .do_osbyte_Y_FF  ; ( ABSOLUTE=1 )
9934  A0 FF     ..   	LDY #$FF
9936                .do_osbyte  ; ( RELATIVE=3 )
9936  4C F4 FF  L..  	JMP os_byte

9939                .boot_table  ; ( No direct access )
9939  4C 2E 21                 L.!
993C                .data_993C  ; ( DATA=2 )
993C  42 4F 4F 54 0D 45 2E 21  BOOT.E.!
9944  42 4F 4F 54 0D           BOOT.
9949                .vectors_table  ; ( DATA=1 )
9949  1B FF 1E FF 21 FF 24 FF  ....!.$.
9951  27 FF 2A FF 2D FF        '.*.-.

9957                .extendedvectors_table  ; ( No direct access )
9957  7B 95 00 07 90 00 C1 90  {.......
995F  00 AA 91 00 D0 95 00 93  ........
9967  8E 00 AA 95 00           .....
996C                .fscv_table1  ; ( DATA=1 )
996C  1B 8C D3 6B D3 1D E1 DC  ...k....
9974  97                       .
9975                .fscv_table2  ; ( DATA=1 )
9975  89 90 87 86 87 84 8D 8D  ........
997D  97                       .
997E                .args_y_0_tableLo  ; ( DATA=1 )
997E  F1 3C BC                 .<.
9981                .args_y_0_tableHi  ; ( DATA=1 )
9981  8F 9B 95                 ...
9984                .finv_tablelo  ; ( DATA=1 )
9984  93 85 B4 BF C7 CF A0 A9  ........
998C  
998C                .finv_tablehi  ; ( DATA=1 )
998C  87 87 97 97 97 97 97 97  ........
9994  
9994                .NMI_table1  ; ( DATA=1 )
9994  12 32 5D CD A2 BD 87     .2]....
999B                .NMI_table2  ; ( DATA=1 )
999B  8D 8D 8D 8D 8D 8D 8D     .......
99A2                .NMI_table3  ; ( DATA=1 )
99A2  74 54 00 0F 1A 0F 1A     tT.....
99A9                .NMI_table4  ; ( DATA=1 )
99A9  63 43                    cC
99AB                .gbpbv_table1  ; ( DATA=1 )
99AB  B7 7D 7D 65 65 CF 00 14  .}}ee...
99B3  83                       .
99B4                .gbpbv_table2  ; ( DATA=1 )
99B4  85 97 97 97 97 96 97 97  ........
99BC  96                       .
99BD                .gbpbv_table3  ; ( DATA=1 )
99BD  04 02 03 06 07 04 04 04  ........
99C5  04                       .

99C6                .CMD_DFS  ; ( No direct access )
99C6  98        .    	TYA                             ; "*HELP DFS"
99C7  A2 FF     ..   	LDX #$FF                        ; "cmd table 1"
99C9  A0 0E     ..   	LDY #$0E                        ; "no.of commands (14)"

99CB                .prt_help  ; ( ABSOLUTE=1 RELATIVE=1 )
99CB  48        H    	PHA
99CC  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"    ; "print "DFS 0.90""
99CF  0D 44 46 53 20 30 2E 39  .DFS 0.9
99D7  30 0D                    0.
99D9  86 B8     ..   	STX data_B8                     ; "?&B8=&FF"
99DB                .help_dfs_loop  ; ( RELATIVE=1 )
99DB  20 CB 9F   ..  	JSR prt_2spc_or_put_at_100    ; "print " ";"
99DE  20 19 9A   ..  	JSR prt_cmd_at_memB8_plus_1    ; "print cmd & parameters"
99E1  20 9A 9F   ..  	JSR prt_NewLine ; "(A preserved)"              ; "print"
99E4  88        .    	DEY
99E5  D0 F4     ..   	BNE help_dfs_loop
99E7  68        h    	PLA
99E8  A8        .    	TAY                             ; "restore Y"
99E9                .morehelp  ; ( RELATIVE=1 )
99E9  A2 A0     ..   	LDX #$A0                        ; "more? Eg *HELP DFS UTILS"
99EB  4C 71 86  Lq.  	JMP unrec_command_at_TextPointer    ; "start cmd @ A3 in table"

99EE                .CMD_UTILS  ; ( No direct access )
99EE  98        .    	TYA                             ; "*HELP UTILS"
99EF  A2 74     .t   	LDX #$74                        ; "cmd table 2"
99F1  A0 05     ..   	LDY #$05                        ; "5 commands"
99F3  D0 D6     ..   	BNE prt_help                    ; "always"

99F5                .CMD_NOTHELPTBL  ; ( No direct access )
99F5  20 BF 86   ..  	JSR Go_GSINIT__terminator_is_spc_cr_doublequote
99F8  F0 60     .`   	BEQ prt_param_exit              ; "null str"
99FA                .cmd_not_help_tlb_loop  ; ( RELATIVE=1 )
99FA  20 C5 FF   ..  	JSR os_gsread
99FD  90 FB     ..   	BCC cmd_not_help_tlb_loop
99FF  B0 E8     ..   	BCS morehelp                    ; "end of str"

9A01                .init_param  ; ( ABSOLUTE=7 ) ; "(syntax error if none)"
9A01  20 BF 86   ..  	JSR Go_GSINIT__terminator_is_spc_cr_doublequote    ; "(if no params then syntax error)"
9A04  D0 54     .T   	BNE prt_param_exit              ; "if not null string"

9A06                .syntax_err  ; ( ABSOLUTE=4 )
9A06  20 33 80   3.  	JSR Brk100_errno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"
9A09  DC 53 79 6E 74 61 78 3A  .Syntax:
9A11  20                        
9A12  EA        .    	NOP
9A13  20 19 9A   ..  	JSR prt_cmd_at_memB8_plus_1    ; "add command syntax"
9A16  4C 8A 80  L..  	JMP prt_str_BRK              ; "force error"

9A19                .prt_cmd_at_memB8_plus_1  ; ( ABSOLUTE=2 )
9A19  A6 B8     ..   	LDX data_B8

9A1B                .prt_cmd_loop  ; ( ABSOLUTE=1 )
9A1B  E8        .    	INX
9A1C  BD B8 85  ...  	LDA cmdlist,X
9A1F  30 06     0.   	BMI code_9A27
9A21  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"
9A24  4C 1B 9A  L..  	JMP prt_cmd_loop
9A27                .code_9A27  ;( RELATIVE=1 )
9A27  E8        .    	INX                             ; "skip address"
9A28  E8        .    	INX
9A29  86 B8     ..   	STX data_B8                     ; "ready for next time"
9A2B  BD B8 85  ...  	LDA cmdlist,X                   ; "paramater code"
9A2E  20 34 9A   4.  	JSR prt_param                ; "1st parameter"
9A31  20 05 82   ..  	JSR lsr_A_4_times            ; "2nd parameter"

9A34                .prt_param  ; ( ABSOLUTE=1 )
9A34  20 E1 83   ..  	JSR rememberAXY
9A37  29 0F     ).   	AND #$0F
9A39  F0 1F     ..   	BEQ prt_param_exit              ; "no parameter"
9A3B  A8        .    	TAY                             ; "Y=parameter no."
9A3C  A9 20     .    	LDA #$20
9A3E  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"    ; "print space"
9A41  A2 00     ..   	LDX #$00
9A43                .prt_param.2  ; ( RELATIVE=1 )
9A43  BD 5B 9A  .[.  	LDA parameter_table,X           ; "find parameter in table"
9A46  F0 03     ..   	BEQ prt_param.4
9A48                .prt_param.3  ; ( RELATIVE=1 )
9A48  E8        .    	INX
9A49  D0 F8     ..   	BNE prt_param.2
9A4B                .prt_param.4  ; ( RELATIVE=1 )
9A4B  88        .    	DEY
9A4C  D0 FA     ..   	BNE prt_param.3

9A4E                .prt_param_loop4  ; ( ABSOLUTE=1 )
9A4E  E8        .    	INX                             ; "print parameter"
9A4F  BD 5B 9A  .[.  	LDA parameter_table,X
9A52  F0 06     ..   	BEQ prt_param_exit              ; "0 terminator"
9A54  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"
9A57  4C 4E 9A  LN.  	JMP prt_param_loop4
9A5A                .prt_param_exit  ; ( RELATIVE=4 )
9A5A  60        `    	RTS
9A5B                .parameter_table  ; ( DATA=2 )
9A5B  00 3C 66 73 70 3E 00 3C  .<fsp>.<
9A63  61 66 73 70 3E 00 28 4C  afsp>.(L
9A6B  29 00 3C 73 72 63 20 64  ).<src d
9A73  72 76 3E 00 3C 64 65 73  rv>.<des
9A7B  74 20 64 72 76 3E 00 3C  t drv>.<
9A83  64 65 73 74 20 64 72 76  dest drv
9A8B  3E 20 3C 61 66 73 70 3E  > <afsp>
9A93  00 3C 6F 6C 64 20 66 73  .<old fs
9A9B  70 3E 00 3C 6E 65 77 20  p>.<new 
9AA3  66 73 70 3E 00 28 3C 64  fsp>.(<d
9AAB  69 72 3E 29 00 28 3C 64  ir>).(<d
9AB3  72 76 3E 29 00 3C 74 69  rv>).<ti
9ABB  74 6C 65 3E 00           tle>.

9AC0                .CMD_COMPACT  ; ( No direct access )
9AC0  20 58 83   X.  	JSR get_driveno_with_init

9AC3                .msgCOMPACTING_DRIVE  ; ( No direct access )
9AC3  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
9AC6  43 6F 6D 70 61 63 74 69  Compacti
9ACE  6E 67 20 64 72 69 76 65  ng drive
9AD6  20                        
9AD7  8D D2 10  ...  	STA data_10D2
9ADA  8D D3 10  ...  	STA data_10D3
9ADD  20 CA 80   ..  	JSR prt_hex_lower_4bits_of_A
9AE0  20 9A 9F   ..  	JSR prt_NewLine ; "(A preserved)"
9AE3  A0 00     ..   	LDY #$00
9AE5  20 05 8E   ..  	JSR update_cat_and_filetomedia_Y_inthndl
9AE8  20 79 98   y.  	JSR code_9879
9AEB  20 47 83   G.  	JSR Load_CurDrvCat__preserve_AXY    ; "load cat"
9AEE  AC 05 0F  ...  	LDY data_0F05
9AF1  84 CC     ..   	STY data_CC
9AF3  A9 02     ..   	LDA #$02
9AF5  85 CA     ..   	STA data_CA
9AF7  A9 00     ..   	LDA #$00
9AF9  85 CB     ..   	STA data_CB

9AFB                .compact_loop  ; ( ABSOLUTE=1 )
9AFB  A4 CC     ..   	LDY data_CC
9AFD  20 19 82   ..  	JSR decrement_Y_by_8
9B00  C0 F8     ..   	CPY #$F8
9B02  D0 3C     .<   	BNE compact_move_file

9B04                .msgDISK_COMPACTED  ; ( No direct access )
9B04  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
9B07  44 69 73 6B 20 63 6F 6D  Disk com
9B0F  70 61 63 74 65 64 20     pacted 
9B16  EA        .    	NOP
9B17  38        8    	SEC
9B18  AD 07 0F  ...  	LDA data_0F07
9B1B  E5 CA     ..   	SBC data_CA
9B1D  48        H    	PHA
9B1E  AD 06 0F  ...  	LDA data_0F06
9B21  29 03     ).   	AND #$03
9B23  E5 CB     ..   	SBC data_CB
9B25  20 CA 80   ..  	JSR prt_hex_lower_4bits_of_A
9B28  68        h    	PLA
9B29  20 C2 80   ..  	JSR prt_hex_A ; "A preserved"

9B2C                .msgFREE_SECTORS  ; ( No direct access )
9B2C  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
9B2F  20 66 72 65 65 20 73 65   free se
9B37  63 74 6F 72 73 0D        ctors.

9B3D                .argsv_return_curfilesystem  ; ( No direct access )
9B3D  A9 04                    ..
9B3F  60        `    	RTS                             ; "finished compact"
9B40                .compact_move_file  ; ( RELATIVE=1 )
9B40  84 CC     ..   	STY data_CC
9B42  20 FC 82   ..  	JSR prt_infoline_if_mem10C7_negative
9B45  A4 CC     ..   	LDY data_CC
9B47  B9 0E 0F  ...  	LDA data_0F0E,Y
9B4A  29 30     )0   	AND #$30
9B4C  19 0D 0F  ...  	ORA data_0F0D,Y
9B4F  19 0C 0F  ...  	ORA data_0F0C,Y
9B52  F0 5E     .^   	BEQ code_9bb2
9B54  A9 00     ..   	LDA #$00
9B56  85 BE     ..   	STA data_BE
9B58  85 C2     ..   	STA data_C2
9B5A  A9 FF     ..   	LDA #$FF
9B5C  18        .    	CLC
9B5D  79 0C 0F  y..  	ADC data_0F0C,Y
9B60  A9 00     ..   	LDA #$00
9B62  79 0D 0F  y..  	ADC data_0F0D,Y
9B65  85 C6     ..   	STA data_C6
9B67  B9 0E 0F  ...  	LDA data_0F0E,Y
9B6A  08        .    	PHP
9B6B  20 FD 81   ..  	JSR lsr_A_4_times_and_3
9B6E  28        (    	PLP
9B6F  69 00     i.   	ADC #$00
9B71  85 C7     ..   	STA data_C7
9B73  B9 0F 0F  ...  	LDA data_0F0F,Y
9B76  85 C8     ..   	STA data_C8
9B78  B9 0E 0F  ...  	LDA data_0F0E,Y
9B7B  29 03     ).   	AND #$03
9B7D  85 C9     ..   	STA data_C9
9B7F  C5 CB     ..   	CMP data_CB
9B81  D0 14     ..   	BNE code_9b97
9B83  A5 C8     ..   	LDA data_C8
9B85  C5 CA     ..   	CMP data_CA
9B87  D0 0E     ..   	BNE code_9b97
9B89  18        .    	CLC
9B8A  65 C6     e.   	ADC data_C6
9B8C  85 CA     ..   	STA data_CA
9B8E  A5 CB     ..   	LDA data_CB
9B90  65 C7     e.   	ADC data_C7
9B92  85 CB     ..   	STA data_CB
9B94  4C B5 9B  L..  	JMP code_9bb5
9B97                .code_9b97  ; ( RELATIVE=2 )
9B97  A5 CA     ..   	LDA data_CA
9B99  99 0F 0F  ...  	STA data_0F0F,Y
9B9C  B9 0E 0F  ...  	LDA data_0F0E,Y
9B9F  29 FC     ).   	AND #$FC
9BA1  05 CB     ..   	ORA data_CB
9BA3  99 0E 0F  ...  	STA data_0F0E,Y
9BA6  A9 00     ..   	LDA #$00
9BA8  85 A8     ..   	STA data_A8                     ; "move only!"
9BAA  85 A9     ..   	STA data_A9                     ; "(doesn't write cat)"
9BAC  20 06 9E   ..  	JSR movefile_from_disk1to2    ; "calls savememblock!"
9BAF  20 B4 8A   ..  	JSR SaveCatToDisk            ; "cat corrupted?"
9BB2                .code_9bb2  ; ( RELATIVE=1 )
9BB2  20 E7 98   ..  	JSR release_NMI_Wait_FDC_busy ; "(A=bitmask)(AXY preserved)"

9BB5                .code_9bb5  ; ( ABSOLUTE=1 )
9BB5  A4 CC     ..   	LDY data_CC
9BB7  20 01 83   ..  	JSR prt_infoline__Y_file_offset
9BBA  4C FB 9A  L..  	JMP compact_loop

9BBD                .ENABLED_CMD  ; ( ABSOLUTE=2 )
9BBD  2C C8 10  ,..  	BIT data_10C8
9BC0  10 75     .u   	BPL code_9C37

9BC2                .errNOT_ENABLED  ; ( No direct access )
9BC2  20 33 80   3.  	JSR Brk100_errno__terminator_0_causes_BRK ; "(terminator=0 causes BRK)"
9BC5  BD 4E 6F 74 20 65 6E 61  .Not ena
9BCD  62 6C 65 64 00           bled.

9BD2                .get_Drives_to_10D2_10D3_and_CalcRam_and_GiveMsg  ; ( ABSOLUTE=2 )
9BD2  20 BF 86   ..  	JSR Go_GSINIT__terminator_is_spc_cr_doublequote
9BD5  D0 03     ..   	BNE code_9BDA
9BD7                .code_9BD7  ;( RELATIVE=1 )
9BD7  4C 06 9A  L..  	JMP syntax_err
9BDA                .code_9BDA  ;( RELATIVE=1 )
9BDA  20 5D 83   ].  	JSR code_835D
9BDD  8D D2 10  ...  	STA data_10D2
9BE0  20 BF 86   ..  	JSR Go_GSINIT__terminator_is_spc_cr_doublequote
9BE3  F0 F2     ..   	BEQ code_9BD7
9BE5  20 5D 83   ].  	JSR code_835D
9BE8  8D D3 10  ...  	STA data_10D3
9BEB  98        .    	TYA
9BEC  48        H    	PHA
9BED  A9 00     ..   	LDA #$00
9BEF  85 A9     ..   	STA data_A9
9BF1  AD D3 10  ...  	LDA data_10D3
9BF4  CD D2 10  ...  	CMP data_10D2
9BF7  D0 06     ..   	BNE code_9BFF
9BF9  A9 FF     ..   	LDA #$FF
9BFB  85 A9     ..   	STA data_A9
9BFD  85 AA     ..   	STA data_AA
9BFF                .code_9BFF  ;( RELATIVE=1 )
9BFF  20 79 98   y.  	JSR code_9879

9C02                .msgCOPYING_FROM_DRIVE  ; ( No direct access )
9C02  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
9C05  43 6F 70 79 69 6E 67 20  Copying 
9C0D  66 72 6F 6D 20 64 72 69  from dri
9C15  76 65 20                 ve 
9C18  AD D2 10  ...  	LDA data_10D2
9C1B  20 CA 80   ..  	JSR prt_hex_lower_4bits_of_A

9C1E                .msgTO_DRIVE  ; ( No direct access )
9C1E  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
9C21  20 74 6F 20 64 72 69 76   to driv
9C29  65 20                    e 
9C2B  AD D3 10  ...  	LDA data_10D3
9C2E  20 CA 80   ..  	JSR prt_hex_lower_4bits_of_A
9C31  20 9A 9F   ..  	JSR prt_NewLine ; "(A preserved)"
9C34  68        h    	PLA
9C35  A8        .    	TAY
9C36  18        .    	CLC
9C37                .code_9C37  ;( RELATIVE=1 )
9C37  60        `    	RTS

9C38                .insertdisk_2  ; ( ABSOLUTE=4 )
9C38  20 E1 83   ..  	JSR rememberAXY
9C3B  24 A9     $.   	BIT data_A9
9C3D  10 0B     ..   	BPL insertdisk_dontprompt
9C3F  A9 00     ..   	LDA #$00
9C41  F0 0A     ..   	BEQ insertdisk_checkoptwith_A

9C43                .insertdisk_checkopt2  ; ( ABSOLUTE=3 )
9C43  20 E1 83   ..  	JSR rememberAXY
9C46  24 A9     $.   	BIT data_A9
9C48  30 01     0.   	BMI insertdisk_checkopt
9C4A                .insertdisk_dontprompt  ; ( RELATIVE=2 )
9C4A  60        `    	RTS
9C4B                .insertdisk_checkopt  ; ( RELATIVE=1 )
9C4B  A9 80     ..   	LDA #$80
9C4D                .insertdisk_checkoptwith_A  ; ( RELATIVE=1 )
9C4D  C5 AA     ..   	CMP data_AA
9C4F  F0 F9     ..   	BEQ insertdisk_dontprompt

9C51                .insertdisk_A_is_opt  ; ( No direct access )
9C51  85 AA     ..   	STA data_AA

9C53                .msgINSERT  ; ( No direct access )
9C53  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
9C56  49 6E 73 65 72 74 20     Insert 
9C5D  EA        .    	NOP
9C5E  24 AA     $.   	BIT data_AA
9C60  30 0B     0.   	BMI msgDESTINATION

9C62                .msgSOURCE  ; ( No direct access )
9C62  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
9C65  73 6F 75 72 63 65        source
9C6B  90 0F     ..   	BCC msgDISK_AND_HIT_A_KEY
9C6D                .msgDESTINATION  ; ( RELATIVE=1 )
9C6D  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
9C70  64 65 73 74 69 6E 61 74  destinat
9C78  69 6F 6E                 ion
9C7B  EA        .    	NOP
9C7C                .msgDISK_AND_HIT_A_KEY  ; ( RELATIVE=1 )
9C7C  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
9C7F  20 64 69 73 6B 20 61 6E   disk an
9C87  64 20 68 69 74 20 61 20  d hit a 
9C8F  6B 65 79                 key
9C92  EA        .    	NOP
9C93  20 06 99   ..  	JSR code_9906
9C96  20 E0 FF   ..  	JSR os_rdch
9C99  B0 19     ..   	BCS confirm_YN_error
9C9B  4C 9A 9F  L..  	JMP prt_NewLine ; "(A preserved)"

9C9E                .confirm_YN__Z_is_1_if_Yes  ; ( ABSOLUTE=2 )
9C9E  20 06 99   ..  	JSR code_9906
9CA1  20 E0 FF   ..  	JSR os_rdch
9CA4  B0 0E     ..   	BCS confirm_YN_error            ; "Osrdch error"
9CA6  29 5F     )_   	AND #$5F                        ; "lower case"
9CA8  C9 59     .Y   	CMP #$59                        ; ""Y""
9CAA  08        .    	PHP
9CAB  F0 02     ..   	BEQ confirm_YN_yes
9CAD  A9 4E     .N   	LDA #$4E                        ; ""N""
9CAF                .confirm_YN_yes  ; ( RELATIVE=1 )
9CAF  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"
9CB2  28        (    	PLP
9CB3  60        `    	RTS
9CB4                .confirm_YN_error  ; ( RELATIVE=2 )
9CB4  A6 B6     ..   	LDX data_B6
9CB6  9A        .    	TXS
9CB7  60        `    	RTS
9CB8                .errDiskFull2  ; ( RELATIVE=2 )
9CB8  4C 58 89  LX.  	JMP errDISK_FULL

9CBB                .CMD_BACKUP  ; ( No direct access )
9CBB  20 BD 9B   ..  	JSR ENABLED_CMD
9CBE  20 D2 9B   ..  	JSR get_Drives_to_10D2_10D3_and_CalcRam_and_GiveMsg
9CC1  A9 00     ..   	LDA #$00
9CC3  85 C9     ..   	STA data_C9
9CC5  85 CB     ..   	STA data_CB
9CC7  85 CA     ..   	STA data_CA
9CC9  85 C8     ..   	STA data_C8
9CCB  85 A8     ..   	STA data_A8
9CCD  20 38 9C   8.  	JSR insertdisk_2
9CD0  AD D2 10  ...  	LDA data_10D2
9CD3  85 CF     ..   	STA data_CF
9CD5  20 EB 8A   ..  	JSR Load_CurDrvCatalog       ; "load source cat"
9CD8  AD 07 0F  ...  	LDA data_0F07
9CDB  85 C6     ..   	STA data_C6
9CDD  AD 06 0F  ...  	LDA data_0F06
9CE0  29 03     ).   	AND #$03
9CE2  85 C7     ..   	STA data_C7
9CE4  AD 06 0F  ...  	LDA data_0F06
9CE7  29 F0     ).   	AND #$F0
9CE9  8D D8 10  ...  	STA data_10D8
9CEC  20 43 9C   C.  	JSR insertdisk_checkopt2
9CEF  AD D3 10  ...  	LDA data_10D3
9CF2  85 CF     ..   	STA data_CF
9CF4  20 EB 8A   ..  	JSR Load_CurDrvCatalog       ; "load target cat"
9CF7  AD 06 0F  ...  	LDA data_0F06
9CFA  29 03     ).   	AND #$03
9CFC  C5 C7     ..   	CMP data_C7
9CFE  90 B8     ..   	BCC errDiskFull2
9D00  D0 07     ..   	BNE code_9d09
9D02  AD 07 0F  ...  	LDA data_0F07
9D05  C5 C6     ..   	CMP data_C6
9D07  90 AF     ..   	BCC errDiskFull2
9D09                .code_9d09  ; ( RELATIVE=1 )
9D09  20 06 9E   ..  	JSR movefile_from_disk1to2
9D0C  AD 06 0F  ...  	LDA data_0F06
9D0F  48        H    	PHA
9D10  AD 07 0F  ...  	LDA data_0F07
9D13  48        H    	PHA
9D14  20 EB 8A   ..  	JSR Load_CurDrvCatalog       ; "load cat"
9D17  68        h    	PLA
9D18  8D 07 0F  ...  	STA data_0F07
9D1B  68        h    	PLA
9D1C  29 0F     ).   	AND #$0F
9D1E  0D D8 10  ...  	ORA data_10D8
9D21  8D 06 0F  ...  	STA data_0F06
9D24  4C B4 8A  L..  	JMP SaveCatToDisk            ; "save cat"

9D27                .CMD_COPY  ; ( No direct access )
9D27  20 5E 82   ^.  	JSR parameter_afsp
9D2A  20 D2 9B   ..  	JSR get_Drives_to_10D2_10D3_and_CalcRam_and_GiveMsg
9D2D  20 BF 86   ..  	JSR Go_GSINIT__terminator_is_spc_cr_doublequote
9D30  D0 03     ..   	BNE code_9D35
9D32  4C 06 9A  L..  	JMP syntax_err
9D35                .code_9D35  ;( RELATIVE=1 )
9D35  20 FE 80   ..  	JSR read_afsp_at_TextPointer
9D38  20 38 9C   8.  	JSR insertdisk_2
9D3B  AD D2 10  ...  	LDA data_10D2
9D3E  20 7E 87   ~.  	JSR set_CurrentDrive
9D41  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"
9D44  B0 03     ..   	BCS code_9D49
9D46  4C 76 82  Lv.  	JMP err_FILE_NOT_FOUND
9D49                .code_9D49  ;( RELATIVE=2 )
9D49  84 AB     ..   	STY data_AB
9D4B  20 01 83   ..  	JSR prt_infoline__Y_file_offset
9D4E  A2 00     ..   	LDX #$00
9D50                .code_9d50_loop  ; ( RELATIVE=1 )
9D50  B5 C7     ..   	LDA data_C7,X
9D52  9D 58 10  .X.  	STA data_1058,X                 ; "??10ok"
9D55  B9 08 0E  ...  	LDA data_0E08,Y
9D58  95 C7     ..   	STA data_C7,X
9D5A  9D 50 10  .P.  	STA data_1050,X                 ; "??10ok"
9D5D  B9 08 0F  ...  	LDA data_0F08,Y
9D60  95 BD     ..   	STA data_BD,X
9D62  9D 47 10  .G.  	STA data_1047,X                 ; "??10ok"
9D65  E8        .    	INX
9D66  C8        .    	INY
9D67  E0 08     ..   	CPX #$08
9D69  D0 E5     ..   	BNE code_9d50_loop
9D6B  A5 C3     ..   	LDA data_C3
9D6D  20 FD 81   ..  	JSR lsr_A_4_times_and_3
9D70  85 C5     ..   	STA data_C5
9D72  A5 C1     ..   	LDA data_C1
9D74  18        .    	CLC
9D75  69 FF     i.   	ADC #$FF
9D77  A5 C2     ..   	LDA data_C2
9D79  69 00     i.   	ADC #$00
9D7B  85 C6     ..   	STA data_C6
9D7D  A5 C5     ..   	LDA data_C5
9D7F  69 00     i.   	ADC #$00
9D81  85 C7     ..   	STA data_C7
9D83  AD 4E 10  .N.  	LDA data_104E
9D86  85 C8     ..   	STA data_C8
9D88  AD 4D 10  .M.  	LDA data_104D
9D8B  29 03     ).   	AND #$03
9D8D  85 C9     ..   	STA data_C9
9D8F  A9 FF     ..   	LDA #$FF
9D91  85 A8     ..   	STA data_A8                     ; "creat file on target"
9D93  20 06 9E   ..  	JSR movefile_from_disk1to2
9D96  20 38 9C   8.  	JSR insertdisk_2
9D99  AD D2 10  ...  	LDA data_10D2
9D9C  20 7E 87   ~.  	JSR set_CurrentDrive
9D9F  20 47 83   G.  	JSR Load_CurDrvCat__preserve_AXY    ; "load cat"
9DA2  A2 07     ..   	LDX #$07
9DA4                .code_9DA4  ;( RELATIVE=1 )
9DA4  BD 58 10  .X.  	LDA data_1058,X                 ; "??10ok"
9DA7  95 C7     ..   	STA data_C7,X
9DA9  CA        .    	DEX
9DAA  10 F8     ..   	BPL code_9DA4
9DAC  A4 AB     ..   	LDY data_AB
9DAE  8C CE 10  ...  	STY data_10CE
9DB1  20 9D 82   ..  	JSR get_cat_nextentry ; "(return: C=1=found, Y=offset)"
9DB4  B0 93     ..   	BCS code_9D49
9DB6  60        `    	RTS

9DB7                .createcatfile_on_target  ; ( ABSOLUTE=1 )
9DB7  20 F5 9D   ..  	JSR set_vars
9DBA  20 43 9C   C.  	JSR insertdisk_checkopt2
9DBD  AD D3 10  ...  	LDA data_10D3                    ; "target drive"
9DC0  85 CF     ..   	STA data_CF
9DC2  A5 CE     ..   	LDA data_CE
9DC4  48        H    	PHA
9DC5  20 47 83   G.  	JSR Load_CurDrvCat__preserve_AXY    ; "load cat"
9DC8  20 96 82   ..  	JSR get_cat_firstentry ; "(return: C=1=found, Y=offset)"
9DCB  90 03     ..   	BCC code_9DD0
9DCD  20 D1 82   ..  	JSR DeleteCatEntry__Y_is_file_offset ; "(Y=file_offset)"    ; "delete file"
9DD0                .code_9DD0  ;( RELATIVE=1 )
9DD0  68        h    	PLA
9DD1  85 CE     ..   	STA data_CE
9DD3  20 3F 8A   ?.  	JSR LoadAddrHi2 ; "(?C4=mixed byte : if Host=FFFF)"
9DD6  20 56 8A   V.  	JSR exec_AddrHi2 ; "(?C4=mixed byte)"
9DD9  A5 C4     ..   	LDA data_C4
9DDB  20 FD 81   ..  	JSR lsr_A_4_times_and_3
9DDE  85 C6     ..   	STA data_C6
9DE0  20 9D 89   ..  	JSR createfile_2             ; "create file cat entry"
9DE3  A5 C4     ..   	LDA data_C4                     ; "-> saves cat"
9DE5  29 03     ).   	AND #$03
9DE7  48        H    	PHA
9DE8  A5 C5     ..   	LDA data_C5
9DEA  48        H    	PHA
9DEB  20 F5 9D   ..  	JSR set_vars
9DEE  68        h    	PLA
9DEF  85 CA     ..   	STA data_CA
9DF1  68        h    	PLA
9DF2  85 CB     ..   	STA data_CB
9DF4  60        `    	RTS

9DF5                .set_vars  ; ( ABSOLUTE=2 )
9DF5  A2 11     ..   	LDX #$11
9DF7                .set_vars_loop  ; ( RELATIVE=1 )
9DF7  BD 45 10  .E.  	LDA data_1045,X                 ; "??10ok"
9DFA  B4 BC     ..   	LDY data_BC,X
9DFC  95 BC     ..   	STA data_BC,X
9DFE  98        .    	TYA
9DFF  9D 45 10  .E.  	STA data_1045,X                 ; "??10ok"
9E02  CA        .    	DEX
9E03  10 F2     ..   	BPL set_vars_loop
9E05  60        `    	RTS

9E06                .movefile_from_disk1to2  ; ( ABSOLUTE=3 )
9E06  20 D1 8B   ..  	JSR set_1074_1075_to_FFFF__AXY_preserved    ; "moves/copies"
9E09  A9 00     ..   	LDA #$00                        ; "file"
9E0B  85 BE     ..   	STA data_BE                     ; "&A8>=&80 create file"
9E0D  85 C2     ..   	STA data_C2
9E0F                .movefile_loop  ; ( RELATIVE=1 )
9E0F  A5 C6     ..   	LDA data_C6
9E11  A8        .    	TAY
9E12  CD D1 10  ...  	CMP data_10D1
9E15  A5 C7     ..   	LDA data_C7
9E17  E9 00     ..   	SBC #$00
9E19  90 03     ..   	BCC code_9E1E
9E1B  AC D1 10  ...  	LDY data_10D1
9E1E                .code_9E1E  ;( RELATIVE=1 )
9E1E  84 C3     ..   	STY data_C3
9E20  A5 C8     ..   	LDA data_C8
9E22  85 C5     ..   	STA data_C5
9E24  A5 C9     ..   	LDA data_C9
9E26  85 C4     ..   	STA data_C4
9E28  AD D0 10  ...  	LDA data_10D0
9E2B  85 BF     ..   	STA data_BF
9E2D  AD D2 10  ...  	LDA data_10D2                    ; "source drive"
9E30  85 CF     ..   	STA data_CF
9E32  20 38 9C   8.  	JSR insertdisk_2
9E35  20 9E 8B   ..  	JSR FDC_drive_ready_reset
9E38  20 C6 87   ..  	JSR load_memblock            ; "get block"
9E3B  AD D3 10  ...  	LDA data_10D3                    ; "target drive"
9E3E  85 CF     ..   	STA data_CF
9E40  24 A8     $.   	BIT data_A8
9E42  10 07     ..   	BPL movefile_skip_createcatentry
9E44  20 B7 9D   ..  	JSR createcatfile_on_target    ; "loads & saves"
9E47  A9 00     ..   	LDA #$00                        ; "target cat"
9E49  85 A8     ..   	STA data_A8                     ; "(first block only)"
9E4B                .movefile_skip_createcatentry  ; ( RELATIVE=1 )
9E4B  A5 CA     ..   	LDA data_CA
9E4D  85 C5     ..   	STA data_C5
9E4F  A5 CB     ..   	LDA data_CB
9E51  85 C4     ..   	STA data_C4
9E53  AD D0 10  ...  	LDA data_10D0
9E56  85 BF     ..   	STA data_BF
9E58  20 43 9C   C.  	JSR insertdisk_checkopt2
9E5B  20 9E 8B   ..  	JSR FDC_drive_ready_reset
9E5E  20 8F 87   ..  	JSR save_memblock            ; "put block"
9E61  A5 C3     ..   	LDA data_C3                     ; "poss buffering req'd"
9E63  18        .    	CLC
9E64  65 CA     e.   	ADC data_CA
9E66  85 CA     ..   	STA data_CA
9E68  90 02     ..   	BCC code_9E6C
9E6A  E6 CB     ..   	INC data_CB
9E6C                .code_9E6C  ;( RELATIVE=1 )
9E6C  A5 C3     ..   	LDA data_C3
9E6E  18        .    	CLC
9E6F  65 C8     e.   	ADC data_C8
9E71  85 C8     ..   	STA data_C8
9E73  90 02     ..   	BCC code_9E77
9E75  E6 C9     ..   	INC data_C9
9E77                .code_9E77  ;( RELATIVE=1 )
9E77  38        8    	SEC
9E78  A5 C6     ..   	LDA data_C6
9E7A  E5 C3     ..   	SBC data_C3
9E7C  85 C6     ..   	STA data_C6
9E7E  B0 02     ..   	BCS code_9E82
9E80  C6 C7     ..   	DEC data_C7
9E82                .code_9E82  ;( RELATIVE=1 )
9E82  05 C7     ..   	ORA data_C7
9E84  D0 89     ..   	BNE movefile_loop
9E86  60        `    	RTS

9E87                .CMD_TYPE  ; ( No direct access )
9E87  20 D7 9F   ..  	JSR ltrim_at_TextPointer_Y
9E8A  A9 00     ..   	LDA #$00
9E8C  F0 05     ..   	BEQ code_9E93

9E8E                .CMD_LIST  ; ( No direct access )
9E8E  20 D7 9F   ..  	JSR ltrim_at_TextPointer_Y
9E91  A9 FF     ..   	LDA #$FF
9E93                .code_9E93  ;( RELATIVE=1 )
9E93  85 AB     ..   	STA data_AB
9E95  A9 C0     ..   	LDA #$C0
9E97  20 CE FF   ..  	JSR os_find
9E9A  A8        .    	TAY
9E9B  A9 0D     ..   	LDA #$0D
9E9D  C0 00     ..   	CPY #$00
9E9F  D0 1E     ..   	BNE code_9EBF
9EA1                .jmp_FILE_NOT_FOUND  ; ( RELATIVE=1 )
9EA1  4C 76 82  Lv.  	JMP err_FILE_NOT_FOUND

9EA4                .code_9EA4  ;( ABSOLUTE=1 RELATIVE=1 )
9EA4  20 D7 FF   ..  	JSR os_bget
9EA7  B0 1E     ..   	BCS code_9EC7
9EA9  C9 0A     ..   	CMP #$0A
9EAB  F0 F7     ..   	BEQ code_9EA4
9EAD  28        (    	PLP
9EAE  D0 08     ..   	BNE code_9EB8
9EB0  48        H    	PHA
9EB1  20 A2 9F   ..  	JSR code_9fa2
9EB4  20 CE 9F   ..  	JSR prt_spc_or_put_at_100
9EB7  68        h    	PLA
9EB8                .code_9EB8  ;( RELATIVE=1 )
9EB8  20 E3 FF   ..  	JSR os_asci
9EBB  24 FF     $.   	BIT os_escape_flag__FF
9EBD  30 09     0.   	BMI code_9EC8
9EBF                .code_9EBF  ;( RELATIVE=1 )
9EBF  25 AB     %.   	AND data_AB
9EC1  C9 0D     ..   	CMP #$0D
9EC3  08        .    	PHP
9EC4  4C A4 9E  L..  	JMP code_9EA4
9EC7                .code_9EC7  ;( RELATIVE=1 )
9EC7  28        (    	PLP
9EC8                .code_9EC8  ;( RELATIVE=1 )
9EC8  20 9A 9F   ..  	JSR prt_NewLine ; "(A preserved)"

9ECB                .code_9ECB  ;( ABSOLUTE=1 RELATIVE=2 )
9ECB  A9 00     ..   	LDA #$00                        ; "Close file"
9ECD  4C CE FF  L..  	JMP os_find                  ; "Y=hndl (0=all)"

9ED0                .CMD_DUMP  ; ( No direct access )
9ED0  20 D7 9F   ..  	JSR ltrim_at_TextPointer_Y
9ED3  A9 C0     ..   	LDA #$C0                        ; "openfile"
9ED5  20 CE FF   ..  	JSR os_find                  ; "XY pt.name"
9ED8  A8        .    	TAY                             ; "file hndl."
9ED9  F0 C6     ..   	BEQ jmp_FILE_NOT_FOUND          ; "file not opened"
9EDB  A6 F4     ..   	LDX os_selected_paged_ROM__F4
9EDD  BD F0 0D  ...  	LDA os_paged_ROM_private_workspace_H__0DF0,X
9EE0  85 AD     ..   	STA data_AD
9EE2  E6 AD     ..   	INC data_AD
9EE4                .code_9EE4  ;( RELATIVE=1 )
9EE4  24 FF     $.   	BIT os_escape_flag__FF
9EE6  30 E3     0.   	BMI code_9ECB
9EE8  A5 A9     ..   	LDA data_A9
9EEA  20 C2 80   ..  	JSR prt_hex_A ; "A preserved"
9EED  A5 A8     ..   	LDA data_A8
9EEF  20 C2 80   ..  	JSR prt_hex_A ; "A preserved"
9EF2  20 CE 9F   ..  	JSR prt_spc_or_put_at_100
9EF5  A9 07     ..   	LDA #$07
9EF7  85 AC     ..   	STA data_AC
9EF9  A2 00     ..   	LDX #$00
9EFB                .code_9EFB  ;( RELATIVE=1 )
9EFB  20 D7 FF   ..  	JSR os_bget
9EFE  B0 0D     ..   	BCS code_9F0D
9F00  81 AC     ..   	STA (data_AC,X)
9F02  20 C2 80   ..  	JSR prt_hex_A ; "A preserved"
9F05  20 CE 9F   ..  	JSR prt_spc_or_put_at_100
9F08  C6 AC     ..   	DEC data_AC
9F0A  10 EF     ..   	BPL code_9EFB
9F0C  18        .    	CLC
9F0D                .code_9F0D  ;( RELATIVE=1 )
9F0D  08        .    	PHP
9F0E  90 0E     ..   	BCC code_9F1E
9F10                .code_9F10  ;( RELATIVE=1 )
9F10  20 65 80   e.  	JSR prt_str__if_terminator_0_do_BRK_100 ; "(if terminator=0, BRK 100, no return)"
9F13  2A        *    	ROL A
9F14  2A        *    	ROL A
9F15  20 A9 00   ..  	JSR code_00A9
9F18  81 AC     ..   	STA (data_AC,X)
9F1A  C6 AC     ..   	DEC data_AC
9F1C  10 F2     ..   	BPL code_9F10
9F1E                .code_9F1E  ;( RELATIVE=1 )
9F1E  A9 07     ..   	LDA #$07
9F20  85 AC     ..   	STA data_AC
9F22                .code_9F22  ;( RELATIVE=1 )
9F22  A1 AC     ..   	LDA (data_AC,X)
9F24  C9 7F     ..   	CMP #$7F
9F26  B0 04     ..   	BCS code_9F2C
9F28  C9 20     .    	CMP #$20
9F2A  B0 02     ..   	BCS cmd_dump_prt_chr
9F2C                .code_9F2C  ;( RELATIVE=1 )
9F2C  A9 2E     ..   	LDA #$2E
9F2E                .cmd_dump_prt_chr  ; ( RELATIVE=1 )
9F2E  20 E3 FF   ..  	JSR os_asci
9F31  C6 AC     ..   	DEC data_AC
9F33  10 ED     ..   	BPL code_9F22
9F35  20 9A 9F   ..  	JSR prt_NewLine ; "(A preserved)"
9F38  A9 08     ..   	LDA #$08
9F3A  18        .    	CLC
9F3B  65 A8     e.   	ADC data_A8
9F3D  85 A8     ..   	STA data_A8
9F3F  90 02     ..   	BCC code_9F43
9F41  E6 A9     ..   	INC data_A9
9F43                .code_9F43  ;( RELATIVE=1 )
9F43  28        (    	PLP
9F44  90 9E     ..   	BCC code_9EE4
9F46  B0 83     ..   	BCS code_9ECB

9F48                .CMD_BUILD  ; ( No direct access )
9F48  20 D7 9F   ..  	JSR ltrim_at_TextPointer_Y
9F4B  A9 80     ..   	LDA #$80
9F4D  20 CE FF   ..  	JSR os_find
9F50  85 AB     ..   	STA data_AB

9F52                .code_9F52  ;( ABSOLUTE=1 )
9F52  20 A2 9F   ..  	JSR code_9fa2
9F55  20 CE 9F   ..  	JSR prt_spc_or_put_at_100
9F58  A6 F4     ..   	LDX os_selected_paged_ROM__F4
9F5A  BC F0 0D  ...  	LDY os_paged_ROM_private_workspace_H__0DF0,X
9F5D  C8        .    	INY
9F5E  84 AD     ..   	STY data_AD
9F60  A2 AC     ..   	LDX #$AC
9F62  A0 FF     ..   	LDY #$FF
9F64  84 AE     ..   	STY data_AE
9F66  84 B0     ..   	STY data_B0
9F68  C8        .    	INY
9F69  84 AC     ..   	STY data_AC
9F6B  84 AF     ..   	STY data_AF
9F6D  98        .    	TYA
9F6E  20 F1 FF   ..  	JSR os_word                  ; "OSWORD 0, XY=&AC"
9F71  08        .    	PHP
9F72  84 AA     ..   	STY data_AA
9F74  A4 AB     ..   	LDY data_AB
9F76  A2 00     ..   	LDX #$00
9F78  F0 07     ..   	BEQ code_9F81
9F7A                .code_9F7A  ;( RELATIVE=1 )
9F7A  A1 AC     ..   	LDA (data_AC,X)
9F7C  20 D4 FF   ..  	JSR os_bput
9F7F  E6 AC     ..   	INC data_AC
9F81                .code_9F81  ;( RELATIVE=1 )
9F81  A5 AC     ..   	LDA data_AC
9F83  C5 AA     ..   	CMP data_AA
9F85  D0 F3     ..   	BNE code_9F7A
9F87  28        (    	PLP
9F88  B0 08     ..   	BCS code_9f92
9F8A  A9 0D     ..   	LDA #$0D
9F8C  20 D4 FF   ..  	JSR os_bput
9F8F  4C 52 9F  LR.  	JMP code_9F52
9F92                .code_9f92  ; ( RELATIVE=1 )
9F92  A9 7E     .~   	LDA #$7E                        ; "ack.ESCAPE"
9F94  20 F4 FF   ..  	JSR os_byte
9F97  20 CB 9E   ..  	JSR code_9ECB

9F9A                .prt_NewLine  ; ( ABSOLUTE=14 ) ; "(A preserved)"
9F9A  48        H    	PHA                             ; "print New line"
9F9B  A9 0D     ..   	LDA #$0D
9F9D  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"
9FA0  68        h    	PLA
9FA1  60        `    	RTS                             ; "end"

9FA2                .code_9fa2  ; ( ABSOLUTE=2 )
9FA2  F8        .    	SED                             ; "word &A8+=1 BCD"
9FA3  18        .    	CLC
9FA4  A5 A8     ..   	LDA data_A8
9FA6  69 01     i.   	ADC #$01
9FA8  85 A8     ..   	STA data_A8
9FAA  A5 A9     ..   	LDA data_A9
9FAC  69 00     i.   	ADC #$00
9FAE  85 A9     ..   	STA data_A9
9FB0  D8        .    	CLD
9FB1  18        .    	CLC
9FB2  20 B7 9F   ..  	JSR code_9fb7
9FB5  A5 A8     ..   	LDA data_A8

9FB7                .code_9fb7  ; ( ABSOLUTE=1 )
9FB7  48        H    	PHA
9FB8  08        .    	PHP
9FB9  20 05 82   ..  	JSR lsr_A_4_times
9FBC  28        (    	PLP
9FBD  20 C1 9F   ..  	JSR code_9fc1
9FC0  68        h    	PLA

9FC1                .code_9fc1  ; ( ABSOLUTE=1 )
9FC1  AA        .    	TAX
9FC2  B0 02     ..   	BCS code_9fc6
9FC4  F0 08     ..   	BEQ prt_spc_or_put_at_100
9FC6                .code_9fc6  ; ( RELATIVE=1 )
9FC6  20 CA 80   ..  	JSR prt_hex_lower_4bits_of_A
9FC9  38        8    	SEC
9FCA  60        `    	RTS

9FCB                .prt_2spc_or_put_at_100  ; ( ABSOLUTE=4 )
9FCB  20 CE 9F   ..  	JSR prt_spc_or_put_at_100    ; "print two spaces"

9FCE                .prt_spc_or_put_at_100  ; ( ABSOLUTE=9 RELATIVE=1 )
9FCE  48        H    	PHA                             ; "print space"
9FCF  A9 20     .    	LDA #$20
9FD1  20 9C 80   ..  	JSR prt_chr_or_store_at_100_X ; "if ?$10DE<$80 then store at 100,X instead of printing, and increment 10DE"
9FD4  68        h    	PLA
9FD5  18        .    	CLC
9FD6  60        `    	RTS                             ; "end"

9FD7                .ltrim_at_TextPointer_Y  ; ( ABSOLUTE=4 )
9FD7  BA        .    	TSX
9FD8  A9 00     ..   	LDA #$00
9FDA  9D 07 01  ...  	STA data_0107,X                 ; "??"
9FDD  88        .    	DEY
9FDE                .ltrim_loop  ; ( RELATIVE=1 )
9FDE  C8        .    	INY
9FDF  B1 F2     ..   	LDA (os_textptr_L__F2),Y
9FE1  C9 20     .    	CMP #$20                        ; "ignore spaces"
9FE3  F0 F9     ..   	BEQ ltrim_loop
9FE5  C9 0D     ..   	CMP #$0D                        ; "don't expect CR"
9FE7  D0 03     ..   	BNE ltrimnoerror
9FE9  4C 06 9A  L..  	JMP syntax_err
9FEC                .ltrimnoerror  ; ( RELATIVE=1 )
9FEC  A9 00     ..   	LDA #$00
9FEE  85 A8     ..   	STA data_A8
9FF0  85 A9     ..   	STA data_A9
9FF2  48        H    	PHA
9FF3  98        .    	TYA                             ; "YX=T.P.+Y"
9FF4  18        .    	CLC
9FF5  65 F2     e.   	ADC os_textptr_L__F2
9FF7  AA        .    	TAX
9FF8  A5 F3     ..   	LDA os_textptr_H__F3
9FFA  69 00     i.   	ADC #$00
9FFC  A8        .    	TAY
9FFD  68        h    	PLA
9FFE  60        `    	RTS

; Warning, no apparant access to code following JMP/RTS/RTI
9FFF  6D        m    	.byte $6D ;