Address Description
0000
START: ROM reset
000A
ignore_subcode: Prepare to execute page_found.
0012
inhibit_display_clear: Clear inhibit_display and set exit_pointer to backup_exit_pointer.
0038
MASK_INT: IM 1 maskable interrupt service routine
0066
NMI: Non-Maskable interrupt vector
0069
NMI_ISR: Non-Maskable Interrupt service routine
0280
hamming_decode_hl: Hamming 8/4 decode the byte at address in HL and return it in B.
028B
set_hardware_counter: Reads a byte from the decoder's SRAM but doesn't retain it. This sets an internal 4 bit counter to bits 6-9 of the read address.
0292
decode_magazine_number: Get the magazine number from the Magazine Row Address Group.
029D
decode_packet_number: Get the packet address from the Magazine Row Address Group.
02B7
store_packet_30: Copy packet to row 29 of page receive buffer.
02CA
init_memory: Main initialization routine.
0328
init_variables: Initialize BASIC system variables in a similar way to the BASIC ROM 'NEW' routine and initialize own variables in printer buffer.
043A
NMI_VECTOR: Jump to NMI service routine (Copied to NMI_JUMP).
043D
init_48k: Initialise pointers for 48k systems.
046D
init_16k: Initialise pointers for 16k systems
0640
display_menu: Display the main menu and wait for enter key to be pressed.
06A6
print_character: Print character to the screen
073B
print_half_row: Print 4 pixel rows of character bitmap over 8 pixel rows of screen (double height).
074C
print_double_column_0: Write 4 pixel rows of double height character data over 8 pixel rows at column that is a multiple of 4.
0766
print_double_column_1: Write 4 pixel rows of double height character data over 8 pixel rows at column that is 1 greater than a multiple of 4.
0780
print_double_column_2: Write 4 pixel rows of double height character data over 8 pixel rows at column that is 2 greater than a multiple of 4.
079A
print_double_column_3: Write 4 pixel rows of double height character data over 8 pixel rows at column that is 3 greater than a multiple of 4.
07B4
print_normal: Print 8 pixel rows of font data (a normal height character).
07C5
print_column_0: Write character data at column that is a multiple of 4.
07D3
print_column_1: Write character data at column that is 1 greater than a multiple of 4.
07F2
print_column_2: Write character data at column that is 2 greater than a multiple of 4.
080F
print_column_3: Write character data at column that is 3 greater than a multiple of 4.
081B
screen_address: Calculate the address in screen RAM of the second byte of character row in A.
084D
set_attrs: Set screen attributes corresponding to screen address in character screen address variable to value in temp_attr.
08B0
clear_screen: Clear display bitmap and attributes.
08C4
clear_page_buffer: Clear page display buffer to spaces.
08DF
clear_receive_rows: Clear all rows except header in page receive buffer.
08F7
decode_row: Decode row of teletext data and render it to the screen.
0998
alpha_colour_code: Alphanumeric colour control code.
09AA
normal_code: Handle normal size control code.
09B6
double_code: Handle double height control code.
09C9
mosaics_colour_code: Handle a mosaics colour code.
09EB
conceal_code: Handle conceal code.
09FB
contiguous_code: Handle contiguous mosaics cotrol code.
0A02
separated_code: Handle separated mosaics cotrol code.
0A17
black_background_code: Clear paper colour bits of temp_attr.
0A22
new_background_code: Copy ink colour bits of temp_attr to paper colour bits.
0A37
hold_mosaics_code: Handle hold mosaics code.
0A4C
Release_mosaics_code: Handle release mosaics code.
0A52
code_set_at: Display character.
0AB8
translate_colour: Translate an alphanumeric colour code to spectrum attribute colour.
0ADC
set_character_pointer: Set character_pointer to start of current row in page display buffer.
0AFA
wait_and_decode_page: Wait for page_ready_flag, and check for key presses.
0B46
decode_page: Decode and render 24 rows.
0E60
init_mosaics: Initialize font data for contiguous and separated mosaic character sets.
0EC9
generate_mosaics: Generate font data for contiguous mosaic with the character code in B at the address in HL.
0EFD
copy_blast_through: Copy blast through alphanumerics font data.
0F06
Copy 32 contiguous mosaic characters from address in HL to address in DE, separating the columns.
0F11
write_top_sixels: Write bitmap in D to three rows of font data.
0F18
set_right_bits: Set right half of mosaic bits.
0F1F
get_keypress.
0F34
scan_keyboard: Loop through keyboard rows to detect a keypress and return return key code.
0FA2
detect_any_key: Detect if any key is pressed.
0FB2
handle_keypress: Handle a keypress while in teletext mode.
0FFB
toggle_bright: Toggle bright flag.
1009
exit_routine: Relocatable exit to BASIC routine.
1034
no_printer: Break out of printer loop gracefully.
1038
print: Printer routine for Sinclair ZX Printer or Alphacom 32.
109C
enter_page: Get valid page number and display digits in row 0.
10EB
enter_page_and_clear: Get valid page number then clear the page buffer.
10F0
enter_subcode_and_clear: Get valid page subcode then clear the page buffer.
1155
get_dec_digit: Wait for a keypress in the range 0-9.
1163
select_channel: Channel selection and tuning display.
11C8
hold_page: Pressed H to hold page.
1220
toggle_reveal.
122B
data_to_header_row: Copy header row data from recieve buffer to page display buffer.
1243
display_header_row: Decode and display the header row.
1257
copy_page_data: Copy received page data into page display buffer.
1277
clear_page_number: Copy page number display to number_display_buffer and clear to spaces.
1293
restore_number: Copy number_display_buffer into page number display.
12B1
save_routine: Relocatable save page routine.
13B4
init_hamming_table: Create 256 byte look up table of Hamming 8/4 decoded bytes.
1481
store_hamming_nibble: Read the four data bits from hamming coded byte into address in HL
14AA
store_hamming_error
14AE
correct_and_store_nibble: Correct a single bit error at bit position in C.
14BB
warm_start_routine: Relocatable "warm start" from BASIC routine.
14D5
clear_header: Clear page header to spaces.
14F0
copy string in HL to page header
1512
pause_3s: Pause for 3 seconds
151C
get_hex_digit: Wait for a keypress in the range 0-9 or A-F.
1532
download_complete: All telesoftware blocks downloaded.
1538
parse_download: Determine what to do with telesoftware download based on the footer.
1582
execute_basic_stop: Setup VARS, and E-LINE and prepare to execute STOP.
15A2
execute_basic_continue: Setup VARS, E-LINE, and OLDPPC, and prepare to execute CONTINUE.
15CD
setup_vars_eline: setup VARS and E-LINE.
15E9
execute_code: Relocate and execute jump to machine code routine.
15F7
page_out_to_code: Relocatable page out ROM and execute machine code routine.
1600
return_to_STOP: Prepare to execute STOP with no variables.
1619
load_next_nibbles: Load next four low nibbles into address in HL.
1623
execute_basic: Relocate and execute initialize BASIC routine.
1632
page_out_to_basic: Relocatable initialize BASIC routine.
185A
check_page: Telesoftware page checksum.
18ED
download_data: Download data from page into memory specified in nibbles at row 23, column 8.
1938
block_downloaded: See if there are undownloaded blocks remaining.
1954
load_nibbles: Read low nibble of four bytes from address in DE to word at address in HL.
1966
write_header_message: Copy up to 16 bytes from address in DE to row 0 in page display buffer.
1B8A
wait_for_page: Wait up to 2 minutes for page to load (or enter key pressed).
1BBD
clear_header_start: Clear 16 characters of header to spaces.
1BD8
start_telesoftware: Load the telesoftware index on Channel 4 page 460.
1C1F
telesoftware_jump.
1C22
telesoftware_main: Main telesoftware interface loop.
1C86
display_message: Display telesoftware error and prompt for input.
1D15
check_footer: Check row 23 of recieved page for telesoftware footer.
1D66
buffers_in_screen: Reposition the page receive buffer at $4840 and the page display buffer at $5000 (within screen RAM).
1D9D
border_flash: Flash border to colour in A for 300ms.
1F8D
get_hex: Get a hexadecimal keypress.
1F98
telesoftware_number: Input page number for telesoftware page search.