code=-1023:OSBPUT=&FEB2 I%=0  2  2 P%=code:[:OPT I%I*.rombyte;Returns a byte from EPROM in A, all main registers preserved4EXX>LD A,(&4D3):PUSH AF"HLD A,C:LD (&4D3),A:OUT (&D3),ARLD A,(HL):LD D,A"\POP AF:LD (&4D3),A:OUT (&D3),AfLD A,D:EXXpRET%z;--------------------------------C.incaddr;Advances pointers in H'L' and C' to point to next byte!;All main registers preservedPUSH AF:EXX#LD A,L: H:CP &FF:JR Z,new_pageINC HL:POP AF:EXX:RET.new_pageLD HL,&C000:INC CPOP AF:EXX:RET;----------------------J.addaddr;advances pointers in H'L' and C' by a two byte value on stack.;all main registers preserved IX corrupted%EXX:POP IX:POP DE:PUSH IX:PUSH AFADD HL,DE	LD A,H:CP &C0:JR NC,doneadv	LD DE,&C000	.advloop$	ADD HL,DE:INC C.	LD A,H:CP &C0:JR C,advloop8	.doneadv:POP AF:EXX:RETB	;--------------------------L	;Main program.V	;Pass handle of file open for writing in E#`	;Name of file to copy in $fnamej	;Slot No. in ANt	;returns error codes in ?err 1=No eprom,2=file not found,0=finished,3=slot
~	.start(	PUSH DE:POP IY:LD HL,err:LD (HL),&017	CP &02:JR Z,slot2:CP &03:JR Z,slot3:LD (HL),&03:RET
	.slot24	LD C,&BF:LD HL,&FFFF:EXX: rombyte:CP &7A:RET NZ/	EXX:LD HL,&FFFE:EXX: rombyte:CP &6F:RET NZ!	EXX:LD C,&80:EXX:JP bothslots
	.slot34	LD C,&FF:LD HL,&FFFF:EXX: rombyte:CP &7A:RET NZ/	EXX:LD HL,&FFFE:EXX: rombyte:CP &6F:RET NZ	EXX:LD C,&C0:EXX	.bothslots-	LD HL,err:LD (HL),&02:EXX:LD HL,&C000:EXX 
.schloop$

 rombyte: incaddr:CP &FF:RET Z
LD B,A:LD HL,fname:LD D,0
.nmloop3(
 rombyte: incaddr:CP (HL):JP Z,equal:LD D,&FF$2
.equal:INC HL:DEC B:JR NZ,nmloop<
 rombyte: incaddr:LD L,AF
 rombyte: incaddr:LD H,AP
 incaddr: incaddrZ
LD A,&FF: D:JR Z,foundd
PUSH HL: addaddrn
JP schloop
x
.found$
PUSH IY:POP DE:LD A,0:LD (err),A
.movelp
 rombyte: incaddr+
EXX:PUSH HL:PUSH BC:EXX:PUSH DE:PUSH HL
 OSBPUT'
POP HL:POP DE:EXX:POP BC:POP HL:EXX"
DEC HL:LD A,H: L:JR NZ,movelp
RET:.err:B 00:.fname
]:)
!(-4)=fname:!(-8)=start:!(-12)=err
"Z081/MENU.BAS" 