OEL TTX2000 Issue 2.3
Routines
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
downloader_not_present: Display downloader not present message for 3 seconds.
1551
OELRoutine02
170A
OELRoutine03
173D
copy_pointer_to_escape_table
1750
OELRoutine05
1756
OELRoutine06
1764
OELRoutine07
1798
OELRoutine08
17AF
OELRoutine09
17BA
OELRoutine10
17BF
OELRoutine11
185A
OELRoutine12
195F
OELRoutine13
1975
OELRoutine14
1A2B
OELRoutine15
1A5E
OELRoutine16
1A9D
OELRoutine17
1ABB
parity_error
1AC1
OELRoutine18
1AF8
OELRoutine19
1B21
hex_to_int: Convert hex digit in A to integer in B or $FF if invalid.
1B3A
OELRoutine20
1B3F
OELRoutine21
1B4D
OELRoutine22
1B50
OELRoutine23
1B7E
illegal_type: Display
illegal_type_message
and jump into page decode loop.
1B84
missing_operand: Display
parity_error_message
and jump into page decode loop.
1B8A
datatype_and_hardware: Parse Datatype and Hardware command.
1C1F
OELRoutine24
1DB2
Routine at 1DB2
1DB7
Routine at 1DB7
1DBC
Routine at 1DBC
1DC1
Routine at 1DC1
1DC4
Routine at 1DC4
1E1B
Routine at 1E1B
1E37
Routine at 1E37
1E3F
Routine at 1E3F
1E42
Routine at 1E42
1F19
Routine at 1F19
1F1F
Routine at 1F1F
1F28
Routine at 1F28
1F40
Routine at 1F40
1F50
display_error: Display error message and jump into page decode loop.
1F67
Routine at 1F67
1F7F
Routine at 1F7F
1F8D
get_hex: Get a hexadecimal keypress.