; общая процедура выхода.
; в A поместить код возврата.
; Если была ошибка, то лучше -1 (255)
; Если ошибки небыло, то 0.
quit0:		pop ix
		ld b,a
		ld c,quit
		rst 10h
		jp $			; заглушка

;-[]------------------------------------------------------------
; misc procedures and functions...
;---------------------------------------------------------------
open:		ld a,1
		ld c,fopen
		rst 10h
		ret

close:		ld c,fclose
		rst 10h
		ret

read:		ld c,fread
		rst 10h
		ret

;dir_ret:	ld hl,cur_dir
;		ld c,chdir
;		rst 10h
;		ret

gmem:		ld c,getmem
		ld b,1
		rst 10h
		ret

; процедура сохранения страницы в указнном окне.
; C = окно (порт)
; HL = куда сохранять.
save_pg:	in a,(c)
		ld (hl),a
		ret

; процедура восстановления страницы в указнном окне.
; C = окно (порт)
; HL = от куда восстановить.
restore_pg:	ld a,(hl)
		out (c),a
		ret


; обработка ошибки открытия файла
open_err:
		ld hl,open_err_str
		ld c,pchars
		rst 10h
.err_file:	ld hl,0
		ld c,pchars
		rst 10h
		ld hl,crlf0
		ld c,pchars
		rst 10h
		ld a,-1
		jp quit0


; обработка ошибки чтения файла
rd_err:
		ld hl,read_err_str
		ld c,pchars
		rst 10h
.err_file:	ld hl,0
		ld c,pchars
		rst 10h
		ld hl,crlf0
		ld c,pchars
		rst 10h
		ld a,-1
		jp quit0
	

; обработка ошибки запроса памяти
gmem_err:	ld hl,gmem_err_str
		ld c,pchars
		rst 10h
		ld a,-1
		jp quit0

; обработка ошибки открытия видеорежима
vm_err:		ld hl,vm_err_str
		ld c,pchars
		rst 10h
                jp quit0

	IFDEF debug
debug_print:	ld c,pchars
		rst 10h
		ret
	ENDIF

; обработка ошибкок токенов
;tok_err:
;		ld hl,token_err_str
;		ld c,pchars
;		rst 10h
;.token_ptr:	ld hl,0
;		ld c,pchars
;		rst 10h
;		ld hl,crlf0
;		ld c,pchars
;		rst 10h
;		ld a,-1
;		jp quit0
