LOAD:	jsr	EXPR2
..ld0:	ldx	#4
..ld1:	jsr	RI
	cmp	#0FF
	bne	..ld0
	dex
	bne	..ld1
..ld2:	jsr	RI
	cmp	#0FF
	beq	..ld2
	bne	..ld3
;
..loop:	jsr	RI
..ld3:	sta	@ptrHL,Y
	jsr	SHOWIT
	jmp	..loop
;
UNLD:	jsr	EXPR2
	jsr	MARK
..loop:	lda	@ptrHL,Y
	jsr	PO
	jsr	SHOWIT
	jmp	..loop
;
MARK:	ldx	#8
..mrk:	lda	#0FF
	jsr	PO
	dex
	bne	..mrk
	rts
;
MEMCK:
MEMSIZ:	sty	ptrL
	sty	ptrH
	dec	ptrL
..mem0:	inc	ptrH
	lda	@ptrHL,Y
	eor	#0FF
	sta	@ptrHL,Y
	cmp	@ptrHL,Y
	bne	..mem1
	eor	#0FF
	sta	@ptrHL,Y
	jmp	..mem0
;
..mem1:	dec	ptrH
	ldx	ptrL
	lda	ptrH
	rts
;
;;
;;;********
ASSIGN:
BFUNCT:
CFUNCT:
EFUNCT:
JTEST:
NFUNCT:
IUSER:
OUSER:
QUERY:
READ:
WRITE:
YSRCH:
	lda	#"?"
	jmp	CO
;
;;
.sbttl	/IO subroutines/
.page
.ife %type-1,[
CI:	jsr	CSTS
	beq	CI
	lda	CONPRT
	clc
	rts
;
CSTS:	lda	CONSTS
	rora
	bcs	..none
	lda	#0FF
	rts
;
..none:	clc
	lda	#00
	rts
;
;;
CO:	and	#0FF
	beq	..rts
	pha
..wait:	lda	CONSTS
	rola
	bcs	..wait
	pla
	sta	CONPRT
..rts:	rts
;
;;
IOINIT:	lda	#BREAK
	sta	IRQLOC
	lda	#BREAK>8
	sta	IRQLOC+1
	lda	#OLDBRK
	sta	BRKV
	lda	#OLDBRK>8
	sta	BRKV+1
	rts
;
;;
RI:
PO:
LO:
IOGET:
IOSET:
	rts
;;
;
;;
.loc	0FFFA
.WORD	TRAP
.WORD	ZAPPLE
.WORD	IRQ
]
.ife %type-2,[
PRTSTS	=	0C080
PRTDAT	=	0C081
KEYBD	=	0C000
KBDSTB	=	0C010
COUT	=	0FDF0
%READ	=	0FEFD
%WRITE	=	0FECD
;
CI:	lda	KEYBD
	bpl	CI
	bit	KBDSTB
	clc
	rts
;
CSTS:	lda	KEYBD
	bmi	..rts
	lda	#0
..rts:	rts
;
;;
CO:	sta	regA
	and	#0FF
	beq	..pla
	cmp	#0A
	beq	..pla
	and	#7F
	cmp	#"`"
	bcc	..notl
	sbc	#20
..notl:	ora	#80
	jsr	COUT
..pla:	lda	regA
	rts
;
;;
RI:	ldx	SLOTN
..noac:	lda	KEYBD
	bpl	..nxt
	jsr	CI
	cmp	#03	;ctl C
	bne	..nxt
	jmp	ERROR
;
..nxt:	lda	PRTSTS,X
	lsra
	bcc	..noac
	lda	PRTDAT,X
	rts
;
;;
PO:	sta	regA
	ldx	SLOTN
..po:	lda	PRTSTS,X
	and	#2
	beq	..po
	lda	regA
	sta	PRTDAT,X
	rts
;
IOINIT:	lda	#BREAK
	sta	IRQLOC
	lda	#BREAK>8
	sta	IRQLOC+1
	lda	#OLDBRK
	sta	BRKV
	lda	#OLDBRK>8
	sta	BRKV+1
	lda	#2*10
	sta	SLOTN
	lda	#11	;300baud
	sta	BAUDR
ACINIT:	ldx	SLOTN
	lda	#3
	sta	PRTSTS,X
	lda	BAUDR
	sta	PRTSTS,X
	rts
;
;;
IOGET:
IOSET:
LO:	rts
RESTRT:	JMP	ENTRY
]
.ife %type,[
tempx=	4E
tempy=	4F
chin=	50
LOUT=	3
COUT=	1
KBDSTS=	2
KBDSTB=	0
;
CI:	stx	tempx
	sty	tempy
..sts:	jsr	kbdsts
	sta	chin
	lda	chin
	beq	..sts
	jsr	kbdstb
	ldy	tempy
	ldx	tempx
	sta	chin
	lda	chin
	clc
IOINIT:	rts
;
CO:	and	#0FF
	beq	..rts
	stx	tempx
	sty	tempy
	jsr	COUT
	ldy	tempy
	ldx	tempx
	and	#7F
..rts:	rts
;
CSTS:	stx	tempx
	sty	tempy
	jsr	kbdsts
	ldy	tempy
	ldx	tempx
	sta	chin
	lda	chin
	bne	..rts
	lda	#0
..rts:	rts
;
RI:
PO:
LO:
IOGET:
IOSET:
	rts
;
RESTRT:	jmp	BEGIN]
;
;;
