; trdos.symbols.input.z80s
;
; This file is part of TR-DOS Disassembled
; By Marcos Cruz (programandala.net), 2016, 2017

; Last modified 201703110030

include "inc/zx_spectrum_system_variables.z80s"
include "inc/zx_spectrum_trdos_addresses.z80s"

; Entry points to routines of the main ROM
; (with the names used in the main ROM)

test_room:                                                  equ 0x19FD
chan_open:                                                  equ 0x1D84
get_char:                                                   equ 0x1D8C
editor:                                                     equ 0x1D90
cls:                                                        equ 0x1D97
look_vars:                                                  equ 0x1D9B
cls_lower:                                                  equ 0x1D9F
stk_fetch:                                                  equ 0x1DB5
find_int2:                                                  equ 0x1DB9
expt_exp:                                                   equ 0x1DBD
expt_1num:                                                  equ 0x1DC1
remove_fp:                                                  equ 0x1E1C
bc_spaces:                                                  equ 0x1E23
next_char:                                                  equ 0x1E2A
reclaim_2:                                                  equ 0x1E2E
make_room:                                                  equ 0x1E32
print_a:                                                    equ 0x3D94

; Routines

rst_10:                                                     equ 0x0010
rst_18:                                                     equ 0x0018
rst_20:                                                     equ 0x0020
do_interpret_rem_command_in_basic:                          equ 0x016C
finishing_proc_0x0201:                                      equ 0x0201
empty_command_line:                                         equ 0x0212
finishing_proc_0x02CB:                                      equ 0x02CB
jp_exit_dos:                                                equ 0x03C0
print_error_number_A_whose_message_is_at_HL:                equ 0x03C3
print_no_files_error_and_exit_DOS:                          equ 0x03D9
print_OK_and_exit_DOS:                                      equ 0x03E1
read_cat_sector_0_into_tmp_buffer:                          equ 0x03E8
read_current_cat_sector_into_tmp_buffer:                    equ 0x03EC
read_sector_DE_into_tmp_buffer:                             equ 0x03F2
read_sector_8_of_track_0:                                   equ 0x03FD
z_if_next_command_line_char_is_carriage_return:             equ 0x042B
init_cat_drive:                                             equ 0x04F6
check_drive_letter_and_convert_to_number:                   equ 0x0524
check_error_code_msb:                                       equ 0x0572
set_file_type_stored_in_B:                                  equ 0x104D
get_uppercase_pressed_key:                                  equ 0x1052
color_the_trdos_title:                                      equ 0x1063
print_number_in_HL_right_justified_with_zeroes:             equ 0x115D
print_character_A_preserving_DEHL:                          equ 0x11A8
set_z_if_file_descriptor_C_is_a_deleted_file:               equ 0x1653
read_file_descriptor_C:                                     equ 0x165D
transfer_file_descriptor_C:                                 equ 0x165E
write_file_descriptor_C:                                    equ 0x166B
print_error_number_A_whose_message_is_at_HL_and_exit_DOS:   equ 0x1C4A
parse_possible_drive_letter_in_filename_at_HL:              equ 0x1C81
convert_dir_entry_C_to_its_address_HL_in_sector_buffer:     equ 0x1CA4
z_if_checking_syntax:                                       equ 0x1D70
pop_hl_if_checking_syntax:                                  equ 0x1D75
open_channel_0:                                             equ 0x1D83
open_channel_2:                                             equ 0x1D88
print_number_in_A:                                          equ 0x1DA3
print_number_in_C:                                          equ 0x1DA4
print_number_in_BC:                                         equ 0x1DA9
point_interpreter_to_command_line:                          equ 0x1DC5
parse_expression:                                           equ 0x1DDF
write_B_sectors_to_sector_DE_from_address_HL:               equ 0x1E62
transfer_B_sectors_first_sector_DE_address_HL:              equ 0x1E64
open_stream_in_variable_stream_or_file_size:                equ 0x220F
jp_print_error_number_A_whose_message_is_at_HL:             equ 0x2225
print_message_at_HL:                                        equ 0x2707
set_sys_err_nr_to_tape_loading_error:                       equ 0x272B
execute_command_C:                                          equ 0x283C
print_filename_at_HL:                                       equ 0x2938
allocate_the_sector_buffer:                                 equ 0x294A
set_number_of_tracks:                                       equ 0x2998
magic_button_nmi_request:                                   equ 0x2A56
read_all_file_sectors:                                      equ 0x2D92
call_zx_spectrum_rom_routine_stored_at_the_address_on_tos:  equ 0x2F72
init_main_variables:                                        equ 0x2F90
jp_execute_command_C:                                       equ 0x3CFD
interpret_rem_command_in_basic:                             equ 0x3D1A
enter_trdos_from_basic:                                     equ 0x3D31
print_carriage_return:                                      equ 0x3D80
print_character_A:                                          equ 0x3D82
init_default_disk_drive:                                    equ 0x3DC8
point_HL_to_step_rate_of_temporary_drive:                   equ 0x3E08
calculate_step_rate_of_temporary_drive:                     equ 0x3E16
try_B_as_step_rate_of_temporary_drive:                      equ 0x3E1D
vg93_command_B_with_data_A:                                 equ 0x3E44
report_tape_loading_error_and_issue_no_disk_error:          equ 0x3EE7

; Secondary addresses (e.g. loops or jumps in a subroutine)

sectors_per_track_are_correct_so_disk_is_recognized:        equ 0x0415
print_catalogue_of_current_temporary_drive:                 equ 0x046A
print_catalogue_to_stream_A:                                equ 0x0479
print_catalogue.line:                                       equ 0x04B6
print_catalogue.file:                                       equ 0x04C4
check_deleted_files_and_exit_DOS:                           equ 0x0577
wait_for_key:                                               equ 0x1056
print_detailed_catalogue_of_current_temporary_drive:        equ 0x1205
print_detailed_catalogue.page:                              equ 0x123E
print_detailed_catalogue.file:                              equ 0x12B5
sectors_number_is_smaller_than_10:                          equ 0x12D0
print_B_spaces_before_sectors_number:                       equ 0x12D4
print_sectors_number_in_TOS:                                equ 0x12D9
print_detailed_catalogue.file.basic_program:                equ 0x131B
no_drive_letter_in_filename_at_HL_so_use_default_drive:     equ 0x1C98
transfer_sectors:                                           equ 0x1E64
set_sys_err_nr:                                             equ 0x2731
print_filename_letter_at_HL:                                equ 0x293B
allocate_the_sector_buffer.exit:                            equ 0x2992
break_key_not_pressedt:                                     equ 0x3DA5
next_try_of_step_rate_of_temporary_drive:                   equ 0x3E3F
ignore_retry_or_abort:                                      equ 0x3F7B

; Errors

error.no_space:                                             equ 0x1C45
error.file_exists:                                          equ 0x1C50
error.wrong_drive_letter:                                   equ 0x1D1A
error.stream_opened:                                        equ 0x221B
error.no_disk:                                              equ 0x271B
error.directory_full:                                       equ 0x2723
error.not_disk_file:                                        equ 0x2728

; Texts

message.del_files:                                          equ 0x10A5
message.files:                                              equ 0x10AA
message.title:                                              equ 0x10B3
message.disk_drive:                                         equ 0x10BA
message.tab_0x10_space:                                     equ 0x10CA
message.40_track_single_side:                               equ 0x10CE
message.80_track_single_side:                               equ 0x10E2
message.40_track_double_side:                               equ 0x10F6
message.80_track_double_side:                               equ 0x110A
message.free_sector:                                        equ 0x111E
message.file_name_start_length_line:                        equ 0x112E

message.insert_destination_disk:                            equ 0x2725
message.ok:                                                 equ 0x2766
message.verify_error:                                       equ 0x276B
message.backup_disk:                                        equ 0x2779
message.insert_source_disk:                                 equ 0x27AA
message.break:                                              equ 0x27CA
message.out_of_ram:                                         equ 0x27D2
message.array_not_found:                                    equ 0x27DD
message.directory_full:                                     equ 0x27ED
message.no_disk:                                            equ 0x27FC
message.stream_opened:                                      equ 0x2804
message.not_disk_file:                                      equ 0x2812
message.file_exists:                                        equ 0x2820

message.error:                                              equ 0x29B2
message.cr.no_space:                                        equ 0x29BB
message.cr.file_exists:                                     equ 0x29C5
message.cr.free:                                            equ 0x29D2
message.cr.read_only:                                       equ 0x29D8
message.cr.disc_error:                                      equ 0x29E2
message.cr.rec_overflow:                                    equ 0x29ED
message.cr.title:                                           equ 0x29F7
message.cr.retry_abort_ignore:                              equ 0x29FE
message.cr.trk:                                             equ 0x2A13
message.sec:                                                equ 0x2A18
message.del_file:                                           equ 0x2A1D
message.cr.no_files:                                        equ 0x2A28
message.files.cr:                                           equ 0x2A2B

; Tables

table.c_commands:                                           equ 0x288C

; Routines associated to C commands

exit_dos:                                                   equ 0x01D3
read_system_track:                                          equ 0x0405
fetch_drive_letter_from_the_calculator_stack:               equ 0x0531
read_file_descriptor:                                       equ 0x165C
write_file_descriptor:                                      equ 0x1664
find_file:                                                  equ 0x1CF0
read_sectors:                                               equ 0x1E3D
write_sectors:                                              equ 0x1E4D
select_bottom_side:                                         equ 0x1FEB
select_top_side:                                            equ 0x1FF6
test_track:                                                 equ 0x2739
print_catalogue:                                            equ 0x28D8
copy_from_hl_to_file_descriptor:                            equ 0x28E0
copy_from_file_descriptor_to_HL:                            equ 0x28E3
save_basic_program:                                         equ 0x28F2
save_code_file:                                             equ 0x28FB
load_or_verify:                                             equ 0x290F
delete_file:                                                equ 0x2926
init_interface:                                             equ 0x3D98
init_disk_drive_in_A_register:                              equ 0x3DCB
seek_track:                                                 equ 0x3E63
set_sector_number:                                          equ 0x3F02
define_buffer_address:                                      equ 0x3F06

; Routines associated to CLI commands

cli_command.cat:                                            equ 0x0433
cli_command.asterisk:                                       equ 0x1018
cli_command.format:                                         equ 0x1EC2
cli_command.move:                                           equ 0x16AB
cli_command.new:                                            equ 0x053A
cli_command.erase:                                          equ 0x0787
cli_command.gosub:                                          equ 0x1815
cli_command.save:                                           equ 0x1AD0
cli_command.return:                                         equ 0x1CFB
cli_command.peek:                                           equ 0x19A5
cli_command.poke:                                           equ 0x19A9
cli_command.merge:                                          equ 0x19B1
cli_command.run:                                            equ 0x1D4D
cli_command.open_channel:                                   equ 0x2182
cli_command.close_channel:                                  equ 0x2656
cli_command.copy:                                           equ 0x0690
cli_command.4:                                              equ 0x2997
cli_command.go_to:                                          equ 0x2DA1
cli_command.8:                                              equ 0x29AE
cli_command.list:                                           equ 0x11CE
cli_command.verify:                                         equ 0x1810

; Sections of the routines associated to CLI commands

cli_command.copy_s:                                         equ 0x1360
cli_command.copy_b:                                         equ 0x152C

; Other

zx_spectrum_font_char_0:                                    equ 0x3C00
