0000 C  RST_00
0000 +  prevent interrupts
0002 +  continue at 0674H
0008 C  RST_08
0008 +	continue at 7800H and from there at 1C96H
0010 C  RST_10
0010 +	continue at 7803H and from there at 1D78H
0013 ;  DCB input (AF,DE)
0013 ;  I: DE = DCB address
0013 ;  O: A  = byte read
0013 C  INCH
0014 +  DCB type is input
0018 C  RST_18
0018 +	continue at 7806H and from there at 1C90H
001B ;  DCB output (AF,DE)
001B ;  I: DE = DCB address
001B ;  I: A  = byte to output
001B ;  O: -
001B C  DCB_output
0020 C  RST_20
0023 ;  DCB in/out (AF,DE)
0023 ;  I: DE = DCB address
0023 ;  O: ?
0023 C  DCB_in_out
0028 C  RST_28
002B ;  get keyboard (AF,DE)
002B ;  I: -
002B ;  O: A = ASCII code of character
002B C  KEY_get
0030 C  RST_30
0033 ;  display (AF,DE)
0033 ;  print a character on the screen
0033 ;  I: A = ASCII code of character
0033 ;  O: -
0033 C  OUTCH
0038 C  RST_38
003B ;  print (AF,DE)
003B ;  I: ASCII code of character to print
003B ;  O: -
003B C  DCB_print
0040 C  INLINE
0046 C  DCB_in_out
0049 ;  wait for key (AF,DE)
0049 ;  I: -
0049 ;  O: A = ASCII code of character
0049 C  INCHW
0050 C
0060 ;  sleep BC (AF,BC)
0060 ;  I: BC counter (BC * 11.3 us delay)
0060 C  sleep_BC
0066 ;  NMI entry (reset key)
0066 C  reset
006C ;  prepare ram for BASIC
006C C  start4
007B C	start5a
007D ;  no ROM with basic found
007D C  start6
008B ;  ROM with basic found
008B C  start7
00E9 ;  enter number at MEM SIZE?
00E9 C  SUB_mem_size
00FA ;  limit memory
00FA ;  I: HL = address of top memory + 1
00FA C  SUB_mem_top
010A W	RAM_lo??
010C W	RAM_hi??
010E A  MSG_startup
012D C
0132 C  BAS_CHECK
0135 C  BAS_SET
0138 C  BAS_RESET
0140 C  start5
014F C  BAS_set_1
015D C  BAS_reset_1
016B C  BAS_check_1
0183 C  BAS_bit_and_addr
0195 B
019D C  BAS_inkey
01C9 C  BAS_CLS
01D3 C  BAS_RANDOM
01D9 B	KBD_norm_column_0
01E1 B	KBD_norm_column_1
01E9 B	KBD_norm_column_2
01F1 B	KBD_norm_column_3
01F9 B	KBD_norm_column_4
0201 B	KBD_norm_column_5
0209 B	KBD_shift_column_0
0211 B	KBD_shift_column_1
0219 B	KBD_shift_column_2
0221 B	KBD_shift_column_3
0229 B	KBD_shift_column_4
0231 B	KBD_shift_column_5
0239 B	KBD_func1_column_0
0241 B	KBD_func1_column_1
0249 B	KBD_func1_column_2
0251 B	KBD_func1_column_3
0259 B	KBD_func1_column_4
0261 B	KBD_func1_column_5
0269 B	KBD_func2_column_0
0271 B	KBD_func2_column_1
0279 B	KBD_func2_column_2
0281 B	KBD_func2_column_3
0289 B	KBD_func2_column_4
0291 B	KBD_func2_column_5
0299 B	KBD_func3_column_0
02a1 B	KBD_func3_column_1
02a9 B	KBD_func3_column_2
02b1 B	KBD_func3_column_3
02b9 B	KBD_func3_column_4
02c1 B	KBD_func3_column_5
02c9 B	KBD_func3_column_0
02d1 B	KBD_func3_column_1
02d9 B	KBD_func3_column_2
02e1 B	KBD_func3_column_3
02e9 B	KBD_func3_column_4
02f1 B	KBD_func3_column_5
02f9 C
0317 C  SUB_cursor_up
033A C  SUB_put_chr
0345 ;  calc new pos (AF,DE)
0345 ;  I: -
0345 ;  O: A = new pos value
0345 C  SUB_calc_pos
0358 ;  get keyboard DOS (AF)
0358 ;  I: -
0358 ;  O: A = ASCII code of character
0358 C  SUB_key_get_dos
0361 ;  input a line of max 240 characters (AF,DE,HL)
0361 ;  I: -
0361 ;  O: carry set if break pressed
0361 C  SUB_input_line
0384 ;  wait keyboard DOS (AF)
0384 ;  I: -
0384 ;  O: A = ASCII code of character
0384 C  SUB_key_wait_dos
038B ;  terminate printing (AF)
038B ;  I: -
038B ;  O: DPOS = 0
038B C  SUB_print_term
039C C  SUB_print_char
039C ;  print one character, convert control codes
03C2 C  DCB_in_out_1
03E3 ;  read keyboard (called by DCB)
03E3 C  SUB_kbd_read
0529 C  SUB_prt_status
053C C  SUB_prt_output
0564 C  SUB_print_number
056D C	start2
05CA C  reset_1
0674 C	start1
06CB B
06D2 C  DCB_init
0708 C
0713 C  SNG_sub_y_from_x
0716 C  SNG_add_y_to_x
0809 C  LOG_x
0847 C  SNG_mul_x_by_y
0897 C  SDIV_x_by_10
089D C  DIV_SP_by_HL
08A0 C  DIV_SP_by_x
08A0 C  DIV_BCDE_by_x
08A2 C  SNG_div_x_by_y
093E C  SMUL_x_by_10
0977 C  ABS_x
097B C  TNEG_x
0982 C  SDNEG_x
098A C  SGN_x
09BF C  GET_x_to_BCDE
0A0C C  SNG_cmp_x_with_y
0A39 C  INT_cmp_hl_de
0A78 C  DBL_cmp_x_with_y
0A7F C  CINT_x
0AB1 C  CSNG_x
0ADB C  CDBL_x
0B26 C  FIX_x
0B37 C  INT_x
0BC7 C  INT_sub_x_hl_de
0BD2 C  INT_add_x_hl_de
0BF2 C  INT_mul_x_hl_de
0C5B C  INEG_x
0C77 C  DBL_add_y_to_x
0C70 C  DBL_sub_y_from_x
0DA1 C  DBL_mul_x_by_y
0DE5 C  DBL_div_x_by_y
1364 D  FLO_1D10
136C D  FLO_1D15
1374 D  FLO_1D16
137C D  FLO_0D5
1384 D  FLO_1D16_2
138C B  FIX_1D15
1393 B  FIX_1D14
139A B  FIX_1D13
13A1 B  FIX_1D12
13A8 B  FIX_1D11
13AF B  FIX_1D10
13B6 B  FIX_1D9
13BD B  FIX_1D8
13C4 B  FIX_1D7
13CB B  FIX_1D6
13D2 B  FIX_1E5
13D5 B  FIX_1E4
13D8 B  INT_1E4
13DA B  INT_1E3
13DC B  INT_1E2
13DE B  INT_1E1
13E0 B  INT_1E0
13E2 C  NEG_x_on_ret
13E7 C  SQR_x
13F2 C  EXP_SP
1439 C  EXP_x
1479 B  EXP_coeff_cnt
147A S  EXP_1_7fak
147E S  EXP_1_6fak
1482 S  EXP_1_5fak
1486 S  EXP_1_4fak
148A S  EXP_1_3fak
148E S  EXP_1_2fak
1492 S  EXP_m1_1fak
1496 S  EXP_1
149A C  MATH_taylor_1
14A9 C  MATH_taylor_2
14C9 C  RND_x
14F0 C  RND_0
1541 C  COS_x
1547 C  SIN_x
1593 B  SIN_coeff_cnt
1594 S  PI2_E9_DIV_9
1598 S  PI2_E7_DIV_7
159C S  PI2_E5_DIV_5
15A0 S  PI2_E3_DIV_3
15A4 S  PI2_E1_DIV_1
15A8 C  TAN_x
15BD C  ATN_x
15E3 B  ATN_coeff_cnt
15E4 S  ATN_1_349
15E8 S  ATN_1_62
15EC S  ATN_1_23
15F0 S  ATN_M_1_11
15F4 S  ATN_1_9
15F8 S  ATN_M_1_7
15FC S  ATN_1_5
1600 S  ATN_M_1_3
1604 S  ATN_1
1608 E  BAS_funct_entry
1650 7  BAS_token_table
17A5 7  BAS_funct_table
1822 E  BAS_token_entry
189A B  BAS_op_priority
18A1 E  BAS_type_conv
18AB E  BAS_op_double
18B5 E  BAS_op_single
18BF E  BAS_op_integer
18C9 A  BAS_err2
18C9 +  Next without For
18CB +  SyNtax
18CD +  Return without Gosub
18CF +  Out of Data
18D1 +  Function Call
18D3 +  OVerflow
18D5 +  Out of Memory
18D7 +  Undefined Line
18D9 +  BS ??
18DB +  DD ??
18DD +  division by zero (/0)
18DF +  Illegal Direct
18E1 +  Type Mismatch
18E3 +  Out of Stringspace
18E5 +  LS ??
18E7 +  ST ??
18E9 +  CN ??
18EB +  NR ??
18ED +  RW ??
18EF +  UE ??
18F1 +  Missing Operand
18F3 +  FD ??
18F5 +	Syntax Error
18F7 ;	this is copied into ram at 7880H...
18F7 C	_SUB_SDIV
191C A  MSG_Error
1924 A  MSG_in
1929 A  MSG_READY
1930 A  MSG_Break
1936 C
1936 ;  subroutine for FOR, NEXT and RETURN
1936 ;  get data from basic stack
1936 ;  I: DE = VARPTR of the new loop variable if FOR/NEXT loop
1936 ;     DE = VARPTR of the variable of NEXT
1936 ;     DE = 0000 if no variable at NEXT
1936 ;  O: DE = unchanged
1936 ;     HL = stack pointer to FOR/TO stack + 1 (if Z clear)
1936 ;     HL = stack pointer to FOR/TO stack + 3 (if Z is set)
1B49 C  BAS_NEW
1CA1 C  BAS_FOR
1D91 C  BAS_RESTOR
1DA9 C  BAS_STOP
1DAE C  BAS_END
1DE4 C  BAS_CONT
1DF7 C  BAS_TRON
1DF8 C  BAS_TROFF
1E00 C  BAS_DEFSTR
1E03 C  BAS_DEFINT
1E06 C  BAS_DEFSNG
1E09 C  BAS_DEFDBL
1E7A C  BAS_CLEAR
1EA3 C  BAS_RUN
1EB1 C  BAS_GOSUB
1EC2 C  BAS_GOTO
1EDE C  BAS_RETURN
1F05 C  BAS_DATA
1F07 C  BAS_REM_ELSE
1F21 C  BAS_LET
1F6C C  BAS_ON
1FAF C  BAS_RESUME
1FF4 C  BAS_ERROR
2008 C  BAS_AUTO
2039 C  BAS_IF
2067 C  BAS_LPRINT
206F C  BAS_PRINT
219A C  BAS_INPUT
21EF C  BAS_READ
22B6 C  BAS_NEXT
2490 C  INT_div_x_hl_de
2608 C  BAS_DIM
27D4 C  FRE_x
27F5 C  POS_x
2836 C  STR$_x
28A7 C  SUB_print_hl
2A03 C  LEN_x
2A0F C  ASC_x
2A1F C  CHR$_x
2A61 C  LEFT$_x
2A91 C  RIGHT$_x
2A9A C  MID$_x
2AC5 C  VAL_x
2AEF C  INP_x
2AFB C  BAS_OUT
2B29 C  BAS_LLIST
2B2E C  BAS_LIST
2BC6 C  BAS_DELETE
2BF5 C  BAS_CSAVE
2C1F C  BAS_CLOAD
2CAA C  PEEK_x
2CB1 C  BAS_POKE
2E60 C  BAS_EDIT
687F B  KEY_ROW_0
68BF B	KEY_ROW_1
68DF B	KEY_ROW_2
68BF B	KEY_ROW_3
68F7 B	KEY_ROW_4
68FB B	KEY_ROW_5
68FD B	KEY_ROW_6
68FE B	KEY_ROW_7
7000 B	SCR_memory
7800 C  VEC_RST_08
7803 C	VEC_RST_10
7806 C	VEC_RST_18
7809 C	VEC_RST_20
780C C	VEC_RST_28
780F C	VEC_RST_30
7812 C	VEC_RST_38
7815 B	DCB_kbd_type
7816 E	DCB_kbd_entry
7818 B	DCB_kbd_ctrl_modsel
7819 B	CRT_cur_bottom
781A B	CRT_cur_top_flag
781D B	DCB_scr_type
781E E	DCB_scr_entry
781F B	DCB_scr_entry+1
7820 W	DCB_scr_pos
7821 B	DCB_scr_pos+1
7822 B	DCB_scr_cursor
7823 B	DCB_scr_colour
7824 B	DCB_scr_repeat
7825 B	DCB_prt_type
7826 E	DCB_prt_entry
7827 B	DCB_prt_entry+1
7828 B	DCB_prt_page_size
7829 B	DCB_prt_line_count
782D C	DOS_$RET
7830 C	DOS_$EXIT
7833 C	SUB_ill_DCB
7836 B	KEY_old_0
7837 B	KEY_old_1
7838 B	KEY_old_2
7839 B	KEY_old_3
783A B	KEY_old_4
783B B	KEY_old_5
783C B	KEY_old_6
783D B	KEY_old_7
783E B	MEM_unused
7880 C	SUB_SDIV
788E W	USR_address
7890 B	VAL_rnd_factor
7893 C	SUB_INP
7896 C	SUB_OUT
7899 B	KEY_old
789A B	ERR
789B B	DPOS
789C B	out_flag
789D B	scr_width
789E B	tab_max
78A0 W	STR_space
78A2 W	BAS_line_number
78A4 W	BAS_lomem
78A6 B	pos
78A7 W	ptr_line_buffer
78A9 B	flg_input
78AA B	rnd_mantissa
78AB B	rnd_seed
78AE B	dim_flag
78AF B	var_type
78B0 B	flg_dont_tokenize
78B1 W	bas_space_end
78B3 W	str_space_next
78B5 B	str_tab_len_0
78B6 W	str_tab_adr_0
78B8 B	str_tab_len_1
78B9 W	str_tab_adr_1
78BB B	str_tab_len_2
78BC W	str_tab_adr_2
78BE B	str_tab_len_3
78BF W	str_tab_adr_3
78C1 B	str_tab_len_4
78C2 W	str_tab_adr_4
78C4 B	str_tab_len_5
78C5 W	str_tab_adr_5
78C7 B	str_tab_len_6
78C8 W	str_tab_adr_6
78CA B	str_tab_len_7
78CB W	str_tab_adr_7
78CD B	str_tab_len_8
78CE W	str_tab_adr_8
78D0 B	str_tab_len_9
78D1 W	str_tab_adr_9
78D3 B	str_len
78D4 W	str_adr
78D6 W	str_last_str
78D8 W	old_ptz
78DA W	data_line
78DC B	flg_no_array
78DD B	flg_stopped
78DE B	flg_read_input
78DF E	VEC_prg_start
78E1 B	flg_auto
78E2 W	VAL_auto_line
78E4 W	VAL_auto_step
78E6 W	basic_code
78E8 W	basic_stack
78EA W	VAL_basic_erl
78EC W	VAL_basic_dot
78EE W	basic_code0
78F0 W	basic_on_error
78F2 B	flg_basic_on_error
78F3 W	BUF_basic_code
78F5 W	VAL_basic_line
78F7 W	basic_cont
78F9 W	var_space
78FB W	var_space_dim
78FD W	free_mem
78FF W	data
7901 B	DEF_A
7902 B	DEF_B
7903 B	DEF_C
7904 B	DEF_D
7905 B	DEF_E
7906 B	DEF_F
7907 B	DEF_G
7908 B	DEF_H
7909 B	DEF_I
790A B	DEF_J
790B B	DEF_K
790C B	DEF_L
790D B	DEF_M
790E B	DEF_N
790F B	DEF_O
7910 B	DEF_P
7911 B	DEF_Q
7912 B	DEF_R
7913 B	DEF_S
7914 B	DEF_T
7915 B	DEF_U
7916 B	DEF_V
7917 B	DEF_W
7918 B	DEF_X
7919 B	DEF_Y
791A B	DEF_Z
791B B	flg_trace
791C S	X_buff
7926 S	Y_buff
792F B	N_buff
794A B	M_buff
7952 C	DOS_CVI
7955 C	DOS_FN
7958 C	DOS_CVS
795B C	DOS_DEF
795E C	DOS_CVD
7961 C	DOS_EOF
7964 C	DOS_LOC
7967 C	DOS_LOF
796A C	DOS_MKI$
796D C	DOS_MKS$
7970 C	DOS_MKD$
7973 C	DOS_CMD
7976 C	DOS_TIME$
7979 C	DOS_OPEN
797C C	DOS_FIELD
797F C	DOS_GET
7982 C	DOS_PUT
7985 C	DOS_CLOSE
7988 C	DOS_LOAD
798B C	DOS_MERGE
798E C	DOS_NAME
7991 C	DOS_KILL
7994 C	DOS_AMPERSAND
7997 C	DOS_LSET
799A C	DOS_RSET
799D C	DOS_INSTR
79A0 C	DOS_SAVE
79A3 C	DOS_LINE
79A6 C	DOS_error
79A9 C	DOS_USR
79AC C	DOS_cmd_mode
79AF C	DOS_line_input
79B2 C	DOS_line_tokenized
79B5 C	DOS_line_program
79B8 C	DOS_line_inserted
79BB C	DOS_var_clear
79BE C	DOS_prt_done
79C1 C	DOS_dsp_char
79C4 C	DOS_key_running
79C7 C	DOS_RUN
79CA C	DOS_token_PRINT
79CD C	DOS_token_PRINT_N
79D0 C	DOS_new_line
79D3 C	DOS_PRINT
79D6 C	DOS_token_INPUT
79D9 C	DOS_func_MID$
79DC C	DOS_read_input
79DF C	DOS_input_done
79E2 C	DOS_SYSTEM
79E5 B	line_buffer_mark
79E8 B	line_buffer

0010 P	IO_FDC
0020 P	IO_LPT
