F00:0001       
F00:0002       ;Uncomment one of the lines below to select your compilation target
F00:0003       
F00:0004       ;BuildCPC equ 1	; Build for Amstrad CPC
F00:0005       ;BuildMSX equ 1 ; Build for MSX
F00:0006       ;BuildTI8 equ 1 ; Build for TI-83+
F00:0007       ;BuildZXS equ 1 ; Build for ZX Spectrum
F00:0008       ;BuildENT equ 1 ; Build for Enterprise
F00:0009       ;BuildSAM equ 1 ; Build for SamCoupe
F00:0010       ;BuildSMS equ 1 ; Build for Sega Mastersystem
F00:0011       ;BuildSGG equ 1 ; Build for Sega GameGear
F00:0012       ;BuildGMB equ 1 ; Build for GameBoy Regular
F00:0013       ;BuildGBC equ 1 ; Build for GameBoyColor 
F00:0014       BuildMSX_MSX1VDP equ 1
F00:0015       
F00:0016       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F00:0017       	ifdef vasm
F00:0018       		include "..\SrcALL\VasmBuildCompat.asm"
F01:0001       	macro print,lin	
F01:0002       
F01:0003       	macro write,lin	
F01:0004       
F01:0005       	macro read,lin	
F01:0007       
F01:0008       	
F01:0009       	macro align256
F01:0011       
F01:0012       	macro align128
F01:0014       
F01:0015       	macro align64
F01:0017       
F01:0018       	macro align32
F01:0020       
F01:0021       	macro align16
F01:0023       
F01:0024       	macro align8
F01:0026       
F01:0027       	macro align4
F01:0029       
F01:0030       	macro align2
F01:0032       
F01:0033       
F01:0034       	macro NewOrg,val
F01:0036       
F01:0037       	macro save	
F01:0038       
F01:0039       	macro close
F01:0040       
F00:0019       	else
F00:0020       		read "..\SrcALL\WinApeBuildCompat.asm"
F00:0021       	endif
F00:0022       	read "..\SrcALL\CPU_Compatability.asm"
F02:0001       	include "..\SrcALL\CPU_Compatability.asm"
F03:0001       	ifdef BuildCPC 
F03:0002       			read "..\SrcALL\Z80_Compatability.asm"
F03:0003       	endif
F03:0004       	ifdef BuildMSX
F03:0005       			read "..\SrcALL\Z80_Compatability.asm"
F03:0006       	endif
F03:0007       	ifdef BuildTI8
F03:0008       			read "..\SrcALL\Z80_Compatability.asm"
F04:0001       	include "..\SrcALL\Z80_Compatability.asm"
F05:0001       	macro z_ex_sphl
F05:0003       
F05:0004       	macro z_ex_dehl
F05:0006       
F05:0007       	macro z_ldir
F05:0009       
F05:0010       	macro z_ldi
F05:0012       
F05:0013       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0014       	macro z_or_ixl
F05:0016       
F05:0017       	macro z_or_ixh
F05:0019       
F05:0020       	macro z_or_iyl
F05:0022       
F05:0023       	macro z_or_iyh
F05:0025       
F05:0026       
F05:0027       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0028       		macro z_ld_iy_plusn_a,aoffset
F05:0030       
F05:0031       		
F05:0032       		macro z_ld_iy_plusn_n,aoffset,aval
F05:0034       
F05:0035       		
F05:0036       		macro z_ld_iy_plusn_h,aoffset
F05:0038       
F05:0039       		macro z_ld_iy_plusn_l,aoffset
F05:0041       
F05:0042       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0043       
F05:0044       
F05:0045       	macro z_halt
F05:0047       
F05:0048       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0049       
F05:0050       	ifndef vasm
F05:0051       		macro z_djnz addr
F05:0052       			djnz addr
F05:0053       		endm
F05:0054       	else 
F05:0055       		macro z_djnz,addr
F05:0057       
F05:0058       	endif
F05:0059       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0060       	macro z_ld_a_r
F05:0062       
F05:0063       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0064       	
F05:0065       	macro z_ld_a_iyl
F05:0067       
F05:0068       	macro z_ld_a_iyh
F05:0070       
F05:0071       	
F05:0072       	macro z_ld_a_ixl
F05:0074       
F05:0075       	macro z_ld_a_ixh
F05:0077       
F05:0078       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	
F05:0079       	macro z_ld_b_ixl
F05:0081       
F05:0082       	macro z_ld_c_ixl
F05:0084       
F05:0085       	macro z_ld_d_ixl
F05:0087       
F05:0088       	macro z_ld_e_ixl
F05:0090       
F05:0091       	macro z_ld_h_ixl
F05:0093       
F05:0094       	macro z_ld_l_ixl
F05:0096       
F05:0097       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	
F05:0098       	macro z_ld_b_ixh
F05:0100       
F05:0101       	macro z_ld_c_ixh
F05:0103       
F05:0104       	macro z_ld_d_ixh
F05:0106       
F05:0107       	macro z_ld_e_ixh
F05:0109       
F05:0110       	macro z_ld_h_ixh
F05:0112       
F05:0113       	macro z_ld_l_ixh
F05:0115       
F05:0116       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	
F05:0117       	macro z_ld_ixl_b
F05:0119       
F05:0120       	macro z_ld_ixl_c
F05:0122       
F05:0123       	macro z_ld_ixl_d
F05:0125       
F05:0126       	macro z_ld_ixl_e
F05:0128       
F05:0129       	macro z_ld_ixl_h
F05:0131       
F05:0132       	macro z_ld_ixl_l
F05:0134       
F05:0135       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	
F05:0136       	macro z_ld_ixh_b
F05:0138       
F05:0139       	macro z_ld_ixh_c
F05:0141       
F05:0142       	macro z_ld_ixh_d
F05:0144       
F05:0145       	macro z_ld_ixh_e
F05:0147       
F05:0148       	macro z_ld_ixh_h
F05:0150       
F05:0151       	macro z_ld_ixh_l
F05:0153       
F05:0154       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0155       	macro z_ld_iyl_a
F05:0157       
F05:0158       	macro z_ld_iyh_a
F05:0160       
F05:0161       	
F05:0162       	macro z_ld_ixl_a
F05:0164       
F05:0165       	macro z_ld_ixh_a
F05:0167       
F05:0168       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0169       	macro z_cp_iyl
F05:0171       
F05:0172       	macro z_cp_iyh
F05:0174       
F05:0175       	
F05:0176       	macro z_cp_ixl
F05:0178       
F05:0179       	macro z_cp_ixh
F05:0181       
F05:0182       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0183       	macro z_dec_ixl
F05:0185       
F05:0186       	macro z_dec_ixh
F05:0188       
F05:0189       	macro z_dec_iyl
F05:0191       
F05:0192       	macro z_dec_iyh
F05:0194       
F05:0195       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0196       	macro z_inc_ixl
F05:0198       
F05:0199       	macro z_inc_ixh
F05:0201       
F05:0202       	macro z_inc_iyl
F05:0204       
F05:0205       	macro z_inc_iyh
F05:0207       
F05:0208       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0209       	macro z_inc_iy
F05:0211       
F05:0212       	macro z_dec_iy
F05:0214       
F05:0215       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0216       	macro z_inc_ix
F05:0218       
F05:0219       	macro z_dec_ix
F05:0221       
F05:0222       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0223       	macro z_sbc_hl_de
F05:0225       
F05:0226       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0227       	macro z_sbc_hl_bc
F05:0229       
F05:0230       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0231       	ifdef vasm
F05:0232       		macro z_ld_bc_from,addr
F05:0234       
F05:0235       		macro z_ld_de_from,addr
F05:0237       
F05:0238       		macro z_ld_hl_from,addr
F05:0240       
F05:0241       		macro z_ld_ix_from,addr
F05:0243       
F05:0244       		macro z_ld_iy_from,addr
F05:0246       
F05:0247       		
F05:0248       		macro z_ld_bc_to,addr
F05:0250       
F05:0251       		macro z_ld_de_to,addr
F05:0253       
F05:0254       		macro z_ld_hl_to,addr
F05:0256       
F05:0257       		macro z_ld_ix_to,addr
F05:0259       
F05:0260       		macro z_ld_iy_to,addr
F05:0262       
F05:0263       	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0264       		macro z_ld_ix,valu
F05:0266       
F05:0267       		macro z_ld_iy,valu
F05:0269       
F05:0270       		macro z_ld_ixl,valu
F05:0272       
F05:0273       		macro z_ld_ixh,valu
F05:0275       
F05:0276       		macro z_ld_iyl,valu
F05:0278       
F05:0279       		macro z_ld_iyh,valu
F05:0281       
F05:0282       	else
F05:0283       		macro z_ld_bc_from addr
F05:0284       			ld bc,(addr)
F05:0285       		endm
F05:0286       		macro z_ld_de_from addr
F05:0287       			ld de,(addr)
F05:0288       		endm
F05:0289       		macro z_ld_hl_from addr
F05:0290       			ld hl,(addr)
F05:0291       		endm
F05:0292       		macro z_ld_ix_from addr
F05:0293       			ld ix,(addr)
F05:0294       		endm
F05:0295       		macro z_ld_ix_from addr
F05:0296       			ld ix,(addr)
F05:0297       		endm
F05:0298       		macro z_ld_iy_from addr
F05:0299       			ld iy,(addr)
F05:0300       		endm
F05:0301       		macro z_ld_bc_to addr
F05:0302       			ld (addr),bc
F05:0303       		endm
F05:0304       		macro z_ld_de_to addr
F05:0305       			ld (addr),de
F05:0306       		endm
F05:0307       		macro z_ld_hl_to addr
F05:0308       			ld (addr),hl
F05:0309       		endm
F05:0310       		macro z_ld_ix_to addr
F05:0311       			ld (addr),ix
F05:0312       		endm
F05:0313       		macro z_ld_iy_to addr
F05:0314       			ld (addr),iy
F05:0315       		endm
F05:0316       	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0317       		macro z_ld_ix,valu
F05:0318       			ld ix,valu
F05:0319       		endm
F05:0320       		macro z_ld_iy,valu
F05:0321       			ld iy,valu
F05:0322       		endm
F05:0323       		macro z_ld_ixl,valu
F05:0324       			ld ixl,valu
F05:0325       		endm
F05:0326       		macro z_ld_ixh,valu
F05:0327       			ld ixh,valu
F05:0328       		endm
F05:0329       		macro z_ld_iyl,valu
F05:0330       			ld iyl,valu
F05:0331       		endm
F05:0332       		macro z_ld_iyh,valu
F05:0333       			ld iyh,valu
F05:0334       		endm
F05:0335       	endif
F05:0336       	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0337       	macro gb_swap_a
F05:0342       
F05:0343       	macro gb_swap_b
F05:0348       
F05:0349       	macro gb_swap_c
F05:0354       
F05:0355       	macro gb_swap_d
F05:0360       
F05:0361       	macro gb_swap_e
F05:0366       
F05:0367       	macro gb_swap_f
F05:0372       
F05:0373       	macro gb_swap_h
F05:0378       
F05:0379       	macro gb_swap_l
F05:0384       
F05:0385       	macro gb_swap_hl
F05:0390       
F05:0391       	
F05:0392       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F05:0393       	macro z_ex_af_afs
F05:0395       
F05:0396       	macro z_exx
F05:0398       
F05:0399       	
F05:0400       	
F05:0401       	
F05:0402       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; there seems to be a bug in VASM - it thinks the GBZ80 doesn't support SRL, but it does!
F05:0403       	macro z_srl_a
F05:0405       
F05:0406       	macro z_srl_h
F05:0408       
F05:0409       	
F05:0410       	
F05:0411       	
F03:0009       	endif
F03:0010       	ifdef BuildZXS
F03:0011       			read "..\SrcALL\Z80_Compatability.asm"
F03:0012       	endif
F03:0013       	ifdef BuildENT
F03:0014       			read "..\SrcALL\Z80_Compatability.asm"
F03:0015       	endif
F03:0016       	ifdef BuildSAM
F03:0017       			read "..\SrcALL\Z80_Compatability.asm"
F03:0018       	endif
F03:0019       	ifdef BuildSMS
F03:0020       			read "..\SrcALL\Z80_Compatability.asm"
F03:0021       	endif
F03:0022       	ifdef BuildSGG
F03:0023       			read "..\SrcALL\Z80_Compatability.asm"
F03:0024       	endif
F03:0025       	ifdef BuildGMB
F03:0026       			read "..\SrcGB\GBZ80_Compatability.asm"
F03:0027       	endif
F03:0028       	ifdef BuildGBC
F03:0029       			read "..\SrcGB\GBZ80_Compatability.asm"
F03:0030       	endif
F03:0031       
F03:0032       
F00:0023       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F00:0024       
F00:0025       
F00:0026       
F00:0027       ;read "..\SrcALL\V1_Header.asm"
F00:0028       	read "..\SrcALL\V1_Header.asm"
F06:0001       	include "..\SrcALL\V1_Header.asm"
F07:0001       	
F07:0002       	ifdef BuildCPC
F07:0003       		read "..\SrcCPC\CPC_V1_Header.asm" 
F07:0004       	endif
F07:0005       	ifdef BuildMSX
F07:0006       		read "..\SrcMSX\MSX_V1_Header.asm" 
F07:0007       	endif
F07:0008       	ifdef BuildTI8
F07:0009       		read "..\SrcTI\TI_V1_header.asm" 
F08:0001       	include "..\SrcTI\TI_V1_header.asm"
F09:0001       ; Learn Multi platform Z80 Assembly Programming... With Vampires!
F09:0002       
F09:0003       ;Please see my website at	www.chibiakumas.com/z80/
F09:0004       ;for the 'textbook', useful resources and video tutorials
F09:0005       
F09:0006       ;File		TI-83 Header
F09:0007       ;Version	V1.0
F09:0008       ;Date		2018/3/01
F09:0009       ;Content	Generic Header
F09:0010       
F09:0011       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F09:0012       PutString		equ &450A
F09:0013       
F09:0014       	write "..\BldTI\program.bin"
F09:0015       
F09:0016       
F09:0017       	Org &9D93
F09:0018       	db &BB,&6d	;Header
               S01:00009D93:  BB
               S01:00009D94:  6D
F09:0019       ProgramOrg:
F09:0020       	;Program actually starts at 9D95
F09:0021       	print "*** TI-83+ Build ***"
F09:0022       	print "*** Saved to BldTI\program.bin ***"
F09:0023       	print "*** Run Ti_Go.bat ***"
F09:0024       
F09:0025       BuildCPCv equ 0
F09:0026       BuildMSXv equ 0
F09:0027       BuildTI8v equ 1
F09:0028       BuildZXSv equ 0
F09:0029       BuildENTv equ 0
F09:0030       BuildSAMv equ 0
F09:0031       
F09:0032       
F09:0033       ScreenWidth16 equ 1
F09:0034       ScreenHeight8 equ 1
F09:0035       
F09:0036       	ifdef ScrTISmall
F09:0037       ScreenWidth equ 16
F09:0038       	else
F09:0039       ScreenWidth equ 12
F09:0040       	endif
F09:0041       ScreenHeight equ 8
F09:0042       
F09:0043       KeyChar_Enter equ 5
F09:0044       KeyChar_Backspace equ 10
F09:0045       
F09:0046       
F07:0010       	endif
F07:0011       	ifdef BuildZXS
F07:0012       		read "..\SrcZX\ZX_V1_header.asm" 
F07:0013       	endif
F07:0014       	ifdef BuildENT
F07:0015       		read "..\SrcENT\ENT_V1_header.asm" 
F07:0016       	endif
F07:0017       	ifdef BuildSAM
F07:0018       		read "..\SrcSAM\SAM_V1_header.asm" 
F07:0019       	endif
F07:0020       
F07:0021       	ifdef BuildSMS
F07:0022       		read "..\SrcSMS\SMS_V1_header.asm" 
F07:0023       	endif
F07:0024       	ifdef BuildSGG
F07:0025       		read "..\SrcSMS\SMS_V1_header.asm" 
F07:0026       	endif
F07:0027       
F07:0028       	ifdef BuildGMB
F07:0029       		include "..\SrcGB\GB_V1_header.asm" 
F07:0030       	endif
F07:0031       	
F07:0032       	ifdef BuildGBC
F07:0033       		include "..\SrcGB\GB_V1_header.asm" 
F07:0034       	endif
F07:0035       
F07:0036       	ifndef vasm
F07:0037       		ifdef BuildCPC
F07:0038       			if BuildMSXv+BuildZXSv+BuildENTv+BuildSAMv+BuildTI8v
F07:0039       				print "Bad Build - Multiple target platforms selected"
F07:0040       				stop
F07:0041       			endif
F07:0042       		endif
F07:0043       		ifdef BuildMSX
F07:0044       			if BuildCPCv+BuildZXSv+BuildENTv+BuildSAMv+BuildTI8v
F07:0045       				print "Bad Build - Multiple target platforms selected"
F07:0046       				stop
F07:0047       			endif
F07:0048       		endif
F07:0049       		ifdef BuildZXS
F07:0050       			if BuildCPCv+BuildMSXv+BuildENTv+BuildSAMv+BuildTI8v
F07:0051       				print "Bad Build - Multiple target platforms selected"
F07:0052       				stop
F07:0053       			endif
F07:0054       		endif
F07:0055       		ifdef BuildENT
F07:0056       			if BuildCPCv+BuildMSXv+BuildZXSv+BuildSAMv+BuildTI8v
F07:0057       				print "Bad Build - Multiple target platforms selected"
F07:0058       				stop
F07:0059       			endif
F07:0060       		endif
F07:0061       		ifdef BuildSAM
F07:0062       			if BuildCPCv+BuildMSXv+BuildENTv+BuildZXSv+BuildTI8v
F07:0063       			
F07:0064       				print "Bad Build - Multiple target platforms selected"
F07:0065       				stop
F07:0066       			endif
F07:0067       		endif
F07:0068       	endif
F00:0029       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F00:0030       ;
F00:0031       ;			Start Your Program Here
F00:0032       ;
F00:0033       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F00:0034       	
F00:0035       	Call DOINIT	; Get ready
               S01:00009D95:  CD BC 9E
F00:0036       
F00:0037       	call CLS
               S01:00009D98:  CD 67 9E
F00:0038       	;call Monitor
F00:0039       	
F00:0040       	ld hl,&0000		;Screen position - 0,0 is top left, H=X,L=Y
               S01:00009D9B:  21 00 00
F00:0041       LocateAgain:
F00:0042       	push hl
               S01:00009D9E:  E5
F00:0043       		call Locate	;Set cursor position
               S01:00009D9F:  CD 6D 9E
F00:0044       		ld hl,Message	
               S01:00009DA2:  21 D3 9D
F00:0045       		call PrintString;Print Message
               S01:00009DA5:  CD B2 9E
F00:0046       
F00:0047       	pop hl
               S01:00009DA8:  E1
F00:0048       	inc h	;Move Right 2
               S01:00009DA9:  24
F00:0049       	inc h
               S01:00009DAA:  24
F00:0050       	inc l	;Move Down 1
               S01:00009DAB:  2C
F00:0051       	ld a,l
               S01:00009DAC:  7D
F00:0052       	cp 3	;We're going to do this 3 times
               S01:00009DAD:  FE 03
F00:0053       	jp nz,LocateAgain
               S01:00009DAF:  C2 9E 9D
F00:0054       
F00:0055       	call NewLine	;Newline command
               S01:00009DB2:  CD A8 9E
F00:0056       
F00:0057       	ld hl,Message2	;Press A key
               S01:00009DB5:  21 E6 9D
F00:0058       	call PrintString
               S01:00009DB8:  CD B2 9E
F00:0059       
F00:0060       	call NewLine	;Newline command
               S01:00009DBB:  CD A8 9E
F00:0061       
F00:0062       	call WaitChar	;Wait for a keypress
               S01:00009DBE:  CD 7F 9E
F00:0063       
F00:0064       	push af
               S01:00009DC1:  F5
F00:0065       		ld hl,Message3	;Print message
               S01:00009DC2:  21 F3 9D
F00:0066       		call PrintString
               S01:00009DC5:  CD B2 9E
F00:0067       	pop af
               S01:00009DC8:  F1
F00:0068       
F00:0069       	call PrintChar	;Show Pressed key
               S01:00009DC9:  CD 75 9E
F00:0070       	call NewLine
               S01:00009DCC:  CD A8 9E
F00:0071       
F00:0072       
F00:0073       	CALL SHUTDOWN ; return to basic or whatever
               S01:00009DCF:  CD BD 9E
F00:0074       	ret
               S01:00009DD2:  C9
F00:0075       
F00:0076       
F00:0077       Message: db 'Hello World 55523!',255
               S01:00009DD3:  48 65 6C 6C 6F 20 57 6F 72 6C 64 20 35 35 35 32
               S01:00009DE3:  33 21
               S01:00009DE5:  FF
F00:0078       Message2: db 'Press A Key:',255
               S01:00009DE6:  50 72 65 73 73 20 41 20 4B 65 79 3A
               S01:00009DF2:  FF
F00:0079       Message3: db 'You Pressed:',255
               S01:00009DF3:  59 6F 75 20 50 72 65 73 73 65 64 3A
               S01:00009DFF:  FF
F00:0080       
F00:0081       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F00:0082       ;
F00:0083       ;			End of Your program
F00:0084       ;
F00:0085       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F00:0086       Monitor_NextMonitorPos_2Byte equ &CFF0
F00:0087       Monitor_Pause equ 1
F00:0088       
F00:0089       	read "..\SrcALL\Multiplatform_Monitor_RomVer.asm"
F14:0001       	include "..\SrcALL\Multiplatform_Monitor_RomVer.asm"
F15:0001       ; Learn Multi platform Z80 Assembly Programming... With Vampires!
F15:0002       
F15:0003       ;Please see my website at	www.chibiakumas.com/z80/
F15:0004       ;for the 'textbook', useful resources and video tutorials
F15:0005       
F15:0006       ;File		Monitor
F15:0007       ;Version	V1.0b
F15:0008       ;Date		2018/4/1
F15:0009       ;Content	Provides simple ability to show the Program Counter, and to show register values without altering z80 state
F15:0010       ;Requires	ShowHex function
F15:0011       
F15:0012       ;Changelog	Code shown in youtube vid had a bug - it was showing more registers than exited, resulting in
F15:0013       ;		non-existant reg pair DIxxxx showing
F15:0014       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F15:0015       
F15:0016       ;include this somewhere
F15:0017       ;read "..\SrcAll\Multiplatform_ShowHex.asm"
F15:0018       
F15:0019       ;Options
F15:0020       ;Monitor_Full equ 1				;*** FULL monitor takes more ram, but shows all registers
F15:0021       ;Monitor_Pause equ 1 				;*** Pause after showing debugging info
F15:0022       
F15:0023       ;Usage
F15:0024       ;	call Monitor
F15:0025       
F15:0026       
F15:0027       ;Magic trick to work out if Interrupts are enabled or disabled
F15:0028       	ifdef Monitor_Full
F15:0029       
F15:0030       MonitorEICheck:
F15:0031       	ld bc,&44F3		;F3 is DI
F15:0032       
F15:0033       	ifdef BuildENT
F15:0034       		call TestInterrupts
F15:0035       		ret c
F15:0036       	else
F15:0037       		ld a,i			;strange - but this sets PO flag inf ints were enabled
F15:0038       		ret po 			;this is tricky - it will return if Interrupts disabled
F15:0039       	endif
F15:0040       
F15:0041       	ld c,&FB		;FB is EI
F15:0042       	inc b 			;convert D->E for the label
F15:0043       	ret
F15:0044       
F15:0045       	ifdef BuildENT
F15:0046       	;Thanks to BruceTanner on the EnterpriseForever forums, who suggested using this... which works more reliably on the En
F15:0047       TestInterrupts:
F15:0048       		XOR 	A			;Push a zero on stack and pop it
F15:0049       		PUSH 	AF			; back off so we can tell if it gets
F15:0050       		POP 	AF			; overwitten with IRQ return address.
F15:0051       		LD 	A,R			;Get IRQ state
F15:0052       		DI
F15:0053       		RET 	PE			;Return if interrupts enabled
F15:0054       		DEC 	SP			;If they appear disabled then check
F15:0055       		DEC 	SP			; whether the zero is still below stack
F15:0056       		POP 	AF
F15:0057       		OR 	A			;If not then interrupts must have been 
F15:0058       		RET 	NZ			; enabled so return with carry clear.
F15:0059       		SCF				;Return with carry set to indicate
F15:0060       		RET	
F15:0061       		endif
F15:0062       	endif ;Monitor_Full
F15:0063       
F15:0064       Monitor:
F15:0065       ;This is a dirty trick to check if interrupts are enabled or not 
F15:0066       	ifdef Monitor_Full
F15:0067       		push bc
F15:0068       		push af
F15:0069       			call MonitorEICheck
F15:0070       			ld a,c
F15:0071       			ld (Monitor_EI_Reenable_2byte),a	;DI /EI at end of monitor
F15:0072       			ld a,b
F15:0073       			ld (Monitor_Special),a			;letter D/E for visible string
F15:0074       			ld a,&c9
F15:0075       			ld (Monitor_EI_Reenable_2byte+1),a
F15:0076       		pop af
F15:0077       		pop bc
F15:0078       		di
F15:0079       	endif
F15:0080       
F15:0081       	; Push all registers onto the stack - we'll pop them back and put them onscreen
F15:0082       
F15:0083       	ifdef Monitor_Full		;Monitor FULL includes all registers
F15:0084       		exx			
F15:0085       		ex af,af'		;Backup all the registers.
F15:0086       		push HL
F15:0087       		PUSH DE
F15:0088       		PUSH BC
F15:0089       		Push AF
F15:0090       
F15:0091       		ld a,I
F15:0092       		ld h,a
F15:0093       		ld a,R
F15:0094       		ld l,a
F15:0095       		push hl
F15:0096       
F15:0097       		exx
F15:0098       		ex af,af'
F15:0099       		push IY
F15:0100       		push IX
F15:0101       
F15:0102       	endif
F15:0103       	push HL
               S01:00009E00:  E5
F15:0104       	PUSH DE
               S01:00009E01:  D5
F15:0105       	PUSH BC
               S01:00009E02:  C5
F15:0106       	Push AF
               S01:00009E03:  F5
F15:0107       
F15:0108       ;	ld (MonitorStackRestore_Plus2-2),sp	;We need to backup the true stack pointer, we're going to be messin' around!
F15:0109       
F15:0110       	call NewLine
               S01:00009E04:  CD A8 9E
F15:0111       
F15:0112       
F15:0113       	ifdef Monitor_Full
F15:0114       		ld hl,12*2	;NO of bytes we pushed in FULL mode
F15:0115       	else
F15:0116       		ld hl,12-7 *2	;NO of bytes we pushed in NORMAL mode
               S01:00009E07:  21 FE FF
F15:0117       	endif
F15:0118       	add hl,sp	;work out the original stack pointer address, and push that too!
               S01:00009E0A:  39
F15:0119       	push hl
               S01:00009E0B:  E5
F15:0120       	ld (Monitor_NextMonitorPos_2Byte),sp	;Store the current stack pointer, so we know where the legit data is.
               S01:00009E0C:  ED 73 F0 CF
F15:0121       
F15:0122       	ifdef Monitor_Full
F15:0123       		ld b,13				;Set our loop counter to the number of regs
F15:0124       	else
F15:0125       		ld b,13-7
               S01:00009E10:  06 06
F15:0126       	endif 
F15:0127       	ld hl,Monitor_NextMonitorPos_2Byte	;Pointer to the pushed values - we use this to read them out the stack.
               S01:00009E12:  21 F0 CF
F15:0128       	ld e,(hl)
               S01:00009E15:  5E
F15:0129       	inc hl
               S01:00009E16:  23
F15:0130       	ld d,(hl)
               S01:00009E17:  56
F15:0131       	ld hl,Monitor_Text 
               S01:00009E18:  21 44 9E
F15:0132       	
F15:0133       
F15:0134       MonitorAgain:
F15:0135       
F15:0136       	;push bc
F15:0137       		ld a,(hl)
               S01:00009E1B:  7E
F15:0138       		call PrintChar		;Shiw the 2 char label
               S01:00009E1C:  CD 75 9E
F15:0139       		inc hl
               S01:00009E1F:  23
F15:0140       		ld a,(hl)
               S01:00009E20:  7E
F15:0141       		call PrintChar
               S01:00009E21:  CD 75 9E
F15:0142       ;	push de
F15:0143       		inc de
               S01:00009E24:  13
F15:0144       		ld a,(de)		;Show the 1st Hex Byte
               S01:00009E25:  1A
F15:0145       		call ShowHex
               S01:00009E26:  CD 50 9E
F15:0146       ;	pop de
F15:0147       	dec de
               S01:00009E29:  1B
F15:0148       	ld a,(de)			;Load the 2nd HEX byte
               S01:00009E2A:  1A
F15:0149       	inc de
               S01:00009E2B:  13
F15:0150       	inc de
               S01:00009E2C:  13
F15:0151       		call ShowHex		;Show the 2nd Hex Byte
               S01:00009E2D:  CD 50 9E
F15:0152       		ld a,32			;Show two spaces
               S01:00009E30:  3E 20
F15:0153       		call PrintChar
               S01:00009E32:  CD 75 9E
F15:0154       		call PrintChar
               S01:00009E35:  CD 75 9E
F15:0155       ;	pop bc
F15:0156       ;	inc bc
F15:0157       	inc hl
               S01:00009E38:  23
F15:0158       
F15:0159       	ifdef BuildGBC
F15:0160       		bit 0,b
F15:0161       		call nz,NewLine
F15:0162       	endif 
F15:0163       	ifdef BuildGMB
F15:0164       		bit 0,b
F15:0165       		call nz,NewLine
F15:0166       	endif 
F15:0167       	
F15:0168       	z_djnz MonitorAgain
F16:0001       			djnz MonitorAgain
               S01:00009E39:  10 E0
F15:0169       	ifdef Monitor_Full
F15:0170       
F15:0171       		ld a,(Monitor_Special)
F15:0172       		call PrintChar
F15:0173       		ld a,"I"
F15:0174       		call PrintChar
F15:0175       	endif
F15:0176       
F15:0177       
F15:0178       ;	ld sp,&0000 MonitorStackRestore_Plus2
F15:0179       
F15:0180       	pop hl				;this is the SP we pushed before.
               S01:00009E3B:  E1
F15:0181       
F15:0182       	ifdef Monitor_Pause
F15:0183       		call WaitChar			;Do a WaitChar if we're supposed to pause
               S01:00009E3C:  CD 7F 9E
F15:0184       	endif
F15:0185       	Pop AF				;Restore all the registers.
               S01:00009E3F:  F1
F15:0186       	Pop BC
               S01:00009E40:  C1
F15:0187       	pop DE
               S01:00009E41:  D1
F15:0188       	pop HL
               S01:00009E42:  E1
F15:0189       	ifdef Monitor_Full
F15:0190       
F15:0191       
F15:0192       		pop IX
F15:0193       		pop IY
F15:0194       
F15:0195       		;I and R
F15:0196       		inc SP
F15:0197       		inc SP
F15:0198       
F15:0199       		exx
F15:0200       		ex af,af'
F15:0201       		Pop AF
F15:0202       		Pop BC
F15:0203       		pop DE
F15:0204       		pop HL
F15:0205       		exx
F15:0206       		ex af,af'
F15:0207       	endif
F15:0208       
F15:0209       
F15:0210       	ifdef Monitor_Full				;SelfModifying code will change this to EI or DI depending if interrputs are needed
F15:0211       		call Monitor_EI_Reenable_2byte
F15:0212       	endif
F15:0213       	ret
               S01:00009E43:  C9
F15:0214       
F15:0215       Monitor_Text:			;Labels of the register - must be 2 char!
F15:0216       	db "S","p"
               S01:00009E44:  53
               S01:00009E45:  70
F15:0217       	db "A","f"
               S01:00009E46:  41
               S01:00009E47:  66
F15:0218       	db "B","c"
               S01:00009E48:  42
               S01:00009E49:  63
F15:0219       	db "D","e"
               S01:00009E4A:  44
               S01:00009E4B:  65
F15:0220       	db "H","l"
               S01:00009E4C:  48
               S01:00009E4D:  6C
F15:0221       	ifdef Monitor_Full
F15:0222       
F15:0223       		db "I","x"
F15:0224       		db "I","y"
F15:0225       		db "i","R"
F15:0226       		db "A","'"
F15:0227       		db "B","'"
F15:0228       		db "D","'"
F15:0229       		db "H","'"
F15:0230       
F15:0231       	endif
F15:0232       	db "P","c"
               S01:00009E4E:  50
               S01:00009E4F:  63
F15:0233       
F15:0234       
F00:0090       	read "..\SrcALL\Multiplatform_ShowHex.asm"
F17:0001       	include "..\SrcALL\Multiplatform_ShowHex.asm"
F18:0001       
F18:0002       ShowHex:	
F18:0003       	push af
               S01:00009E50:  F5
F18:0004       		and %11110000
               S01:00009E51:  E6 F0
F18:0005       		rrca
               S01:00009E53:  0F
F18:0006       		rrca
               S01:00009E54:  0F
F18:0007       		rrca
               S01:00009E55:  0F
F18:0008       		rrca
               S01:00009E56:  0F
F18:0009       		call PrintHexChar
               S01:00009E57:  CD 5D 9E
F18:0010       	pop af
               S01:00009E5A:  F1
F18:0011       	and %00001111
               S01:00009E5B:  E6 0F
F18:0012       PrintHexChar:
F18:0013       	or a	;Clear Carry Clag
               S01:00009E5D:  B7
F18:0014       	daa
               S01:00009E5E:  27
F18:0015       	add a,&F0
               S01:00009E5F:  C6 F0
F18:0016       	adc a,&40
               S01:00009E61:  CE 40
F18:0017       	call PrintChar
               S01:00009E63:  CD 75 9E
F18:0018       	ret
               S01:00009E66:  C9
F18:0019       
F18:0020       
F00:0091       	read "..\SrcALL\V1_Functions.asm"
F19:0001       	include "..\SrcALL\V1_Functions.asm"
F20:0001       	ifdef BuildCPC
F20:0002       		read "..\SrcCPC\CPC_V1_Functions.asm" 
F20:0003       	endif
F20:0004       	ifdef BuildMSX
F20:0005       		read "..\SrcMSX\MSX_V1_Functions.asm" 
F20:0006       	endif
F20:0007       	ifdef BuildTI8
F20:0008       		read "..\SrcTI\TI_V1_Functions.asm" 
F21:0001       	include "..\SrcTI\TI_V1_Functions.asm"
F22:0001       ; Learn Multi platform Z80 Assembly Programming... With Vampires!
F22:0002       
F22:0003       ;Please see my website at	www.chibiakumas.com/z80/
F22:0004       ;for the 'textbook', useful resources and video tutorials
F22:0005       
F22:0006       ;File		TI-83 Firmware Functions
F22:0007       ;Version	V1.0c
F22:0008       ;Date		2018/3/25
F22:0009       ;Content	Provides basic text functions using Firware calls
F22:0010       
F22:0011       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F22:0012       
F22:0013       
F22:0014       
F22:0015       ;Note - BCALL is a 'far call' it pages in ROM then does call.
F22:0016       
F22:0017       CLS:
F22:0018       	rst 40		;BCALL
               S01:00009E67:  EF
F22:0019       	dw &4546	;ClrScrnFull ;Clear screen firmware functiuon
               S01:00009E68:  46 45
F22:0020       
F22:0021       	ld hl,&0000	;Execute the locate command to clear the screen
               S01:00009E6A:  21 00 00
F22:0022       ;ret
F22:0023       
F22:0024       Locate:; X=h , Y=L	On the TI we just save to a memory pos!
F22:0025       	ld (&844B),hl
               S01:00009E6D:  22 4B 84
F22:0026       ;	ld a,l
F22:0027       ;	ld (&844B),a 	;Y is stored in memory here
F22:0028       ;	ld a,h
F22:0029       ;	ld (&844C),a 	;X is stored in memory here
F22:0030       	ret
               S01:00009E70:  C9
F22:0031       
F22:0032       GetCursorPos:		;get HL back from the same memory address!
F22:0033       	ld hl,(&844B)
               S01:00009E71:  2A 4B 84
F22:0034       	ret
               S01:00009E74:  C9
F22:0035       
F22:0036       PrintChar:
F22:0037       	push hl
               S01:00009E75:  E5
F22:0038       	push bc
               S01:00009E76:  C5
F22:0039       	push de
               S01:00009E77:  D5
F22:0040       		rst 40		;BCALL
               S01:00009E78:  EF
F22:0041       		dw &4504	;PutC firmware function
               S01:00009E79:  04 45
F22:0042       	pop de
               S01:00009E7B:  D1
F22:0043       	pop bc
               S01:00009E7C:  C1
F22:0044       	pop hl
               S01:00009E7D:  E1
F22:0045       	ret	
               S01:00009E7E:  C9
F22:0046       
F22:0047       WaitChar:
F22:0048       	push hl
               S01:00009E7F:  E5
F22:0049       	push bc
               S01:00009E80:  C5
F22:0050       	push de
               S01:00009E81:  D5
F22:0051       		rst 40		;BCALL 
               S01:00009E82:  EF
F22:0052       		dw &4972	;_getkey firmware function
               S01:00009E83:  72 49
F22:0053       	pop de
               S01:00009E85:  D1
F22:0054       	pop bc
               S01:00009E86:  C1
F22:0055       	pop hl
               S01:00009E87:  E1
F22:0056       	cp &99
               S01:00009E88:  FE 99
F22:0057       	jr z,WaitCharSpace
               S01:00009E8A:  28 19
F22:0058       
F22:0059       	cp &8E		;Less than '0'
               S01:00009E8C:  FE 8E
F22:0060       	ret c	
               S01:00009E8E:  D8
F22:0061       	cp &97+1	;Less than '9'+1
               S01:00009E8F:  FE 98
F22:0062       	jr c,WaitCharNum
               S01:00009E91:  38 08
F22:0063       	cp &9A		;Less than 'A'
               S01:00009E93:  FE 9A
F22:0064       	ret c	
               S01:00009E95:  D8
F22:0065       	cp &B3+1	;Less than 'Z'+1
               S01:00009E96:  FE B4
F22:0066       	jr c,WaitCharLetter
               S01:00009E98:  38 06
F22:0067       
F22:0068       	ret	
               S01:00009E9A:  C9
F22:0069       WaitCharNum:
F22:0070       	sub &8E
               S01:00009E9B:  D6 8E
F22:0071       	add '0'
               S01:00009E9D:  C6 30
F22:0072       	ret
               S01:00009E9F:  C9
F22:0073       WaitCharLetter:
F22:0074       	sub &9A
               S01:00009EA0:  D6 9A
F22:0075       	add 'A'
               S01:00009EA2:  C6 41
F22:0076       	ret
               S01:00009EA4:  C9
F22:0077       WaitCharSpace:
F22:0078       	ld a,' '
               S01:00009EA5:  3E 20
F22:0079       	ret
               S01:00009EA7:  C9
F22:0080       	
F22:0081       
F22:0082       NewLine:
F22:0083       	push hl
               S01:00009EA8:  E5
F22:0084       	push bc
               S01:00009EA9:  C5
F22:0085       	push de
               S01:00009EAA:  D5
F22:0086       		rst 40		;BCALL
               S01:00009EAB:  EF
F22:0087       		dw &452E	;_newline firmware function
               S01:00009EAC:  2E 45
F22:0088       	pop de
               S01:00009EAE:  D1
F22:0089       	pop bc
               S01:00009EAF:  C1
F22:0090       	pop hl
               S01:00009EB0:  E1
F22:0091       	ret
               S01:00009EB1:  C9
F22:0092       
F22:0093       PrintString:
F22:0094       	ld a,(hl)	;Char 255 terminated string
               S01:00009EB2:  7E
F22:0095       	cp 255
               S01:00009EB3:  FE FF
F22:0096       	ret z
               S01:00009EB5:  C8
F22:0097       	inc hl
               S01:00009EB6:  23
F22:0098       	call PrintChar
               S01:00009EB7:  CD 75 9E
F22:0099       	jr PrintString
               S01:00009EBA:  18 F6
F22:0100       
F22:0101       DOINIT:
F22:0102       	ret
               S01:00009EBC:  C9
F22:0103       SHUTDOWN:
F22:0104       	ret
               S01:00009EBD:  C9
F22:0105       
F22:0106       
F22:0107       Keylookup:
F22:0108       	defb '0'
               S01:00009EBE:  30
F20:0009       	endif
F20:0010       	ifdef BuildZXS
F20:0011       		read "..\SrcZX\ZX_V1_Functions.asm" 
F20:0012       	endif
F20:0013       	ifdef BuildENT
F20:0014       		read "..\SrcENT\ENT_V1_Functions.asm" 
F20:0015       	endif
F20:0016       	ifdef BuildSAM
F20:0017       		read "..\SrcSAM\SAM_V1_Functions.asm" 
F20:0018       	endif
F20:0019       
F20:0020       	ifdef BuildSMS
F20:0021       		read "..\SrcSMS\SMS_V1_Functions.asm" 
F20:0022       	endif
F20:0023       	ifdef BuildSGG
F20:0024       		read "..\SrcSMS\SMS_V1_Functions.asm" 
F20:0025       	endif
F20:0026       
F20:0027       	ifdef BuildGMB
F20:0028       		include "..\SrcGB\GB_V1_Functions.asm" 
F20:0029       	endif
F20:0030       	ifdef BuildGBC
F20:0031       		include "..\SrcGB\GB_V1_Functions.asm" 
F20:0032       	endif
F00:0092       	read "..\SrcALL\V1_Footer.asm"
F23:0001       	include "..\SrcALL\V1_Footer.asm"
F24:0001       	ifdef BuildMSX
F24:0002       		read "..\SrcMSX\MSX_V1_Footer.asm" 
F24:0003       	endif
F24:0004       	ifdef BuildCPC
F24:0005       		read "..\SrcCPC\CPC_V1_Footer.asm" 
F24:0006       	endif
F24:0007       	ifdef BuildENT
F24:0008       		read "..\SrcENT\ENT_V1_Footer.asm" 
F24:0009       	endif
F24:0010       	ifdef BuildSMS
F24:0011       		read "..\SrcSMS\Sms_V1_Footer.asm" 
F24:0012       	endif
F24:0013       	ifdef BuildSGG
F24:0014       		read "..\SrcSMS\Sms_V1_Footer.asm" 
F24:0015       	endif
F00:0093       


Sections:
S01  seg9d93


Sources:
F00  HelloWorld.asm
F01  ..\SrcALL\VasmBuildCompat.asm
F02  read
F03  ..\SrcALL\CPU_Compatability.asm
F04  read
F05  ..\SrcALL\Z80_Compatability.asm
F06  read
F07  ..\SrcALL\V1_Header.asm
F08  read
F09  ..\SrcTI\TI_V1_header.asm
F14  read
F15  ..\SrcALL\Multiplatform_Monitor_RomVer.asm
F16  z_djnz
F17  read
F18  ..\SrcALL\Multiplatform_ShowHex.asm
F19  read
F20  ..\SrcALL\V1_Functions.asm
F21  read
F22  ..\SrcTI\TI_V1_Functions.asm
F23  read
F24  ..\SrcALL\V1_Footer.asm


Symbols:
Keylookup EXPR(40638=0x9ebe) UNUSED ABS 
WaitCharLetter EXPR(40608=0x9ea0) ABS 
WaitCharNum EXPR(40603=0x9e9b) ABS 
WaitCharSpace EXPR(40613=0x9ea5) ABS 
GetCursorPos EXPR(40561=0x9e71) UNUSED ABS 
PrintHexChar EXPR(40541=0x9e5d) ABS 
ShowHex EXPR(40528=0x9e50) ABS 
MonitorAgain EXPR(40475=0x9e1b) ABS 
Monitor_Text EXPR(40516=0x9e44) ABS 
Monitor EXPR(40448=0x9e00) UNUSED ABS 
Monitor_Pause EXPR(1=0x1) UNUSED EQU 
Monitor_NextMonitorPos_2Byte EXPR(53232=0xcff0) EQU 
SHUTDOWN EXPR(40637=0x9ebd) ABS 
PrintChar EXPR(40565=0x9e75) ABS 
Message3 EXPR(40435=0x9df3) ABS 
WaitChar EXPR(40575=0x9e7f) ABS 
Message2 EXPR(40422=0x9de6) ABS 
NewLine EXPR(40616=0x9ea8) ABS 
PrintString EXPR(40626=0x9eb2) ABS 
Message EXPR(40403=0x9dd3) ABS 
Locate EXPR(40557=0x9e6d) ABS 
LocateAgain EXPR(40350=0x9d9e) ABS 
CLS EXPR(40551=0x9e67) ABS 
DOINIT EXPR(40636=0x9ebc) ABS 
KeyChar_Backspace EXPR(10=0xa) UNUSED EQU 
KeyChar_Enter EXPR(5=0x5) UNUSED EQU 
ScreenHeight EXPR(8=0x8) UNUSED EQU 
ScreenWidth EXPR(12=0xc) UNUSED EQU 
ScreenHeight8 EXPR(1=0x1) UNUSED EQU 
ScreenWidth16 EXPR(1=0x1) UNUSED EQU 
BuildSAMv EXPR(0=0x0) UNUSED EQU 
BuildENTv EXPR(0=0x0) UNUSED EQU 
BuildZXSv EXPR(0=0x0) UNUSED EQU 
BuildTI8v EXPR(1=0x1) UNUSED EQU 
BuildMSXv EXPR(0=0x0) UNUSED EQU 
BuildCPCv EXPR(0=0x0) UNUSED EQU 
ProgramOrg EXPR(40341=0x9d95) UNUSED ABS 
PutString EXPR(17674=0x450a) UNUSED EQU 
BuildMSX_MSX1VDP EXPR(1=0x1) UNUSED EQU 
__RPTCNT EXPR(-1=0xffff) INTERNAL 
__VASM EXPR(0=0x0) INTERNAL 
BuildTI8 EXPR(1=0x1) UNUSED 
vasm EXPR(1=0x1) UNUSED 

There have been no errors.
