TABVK1: DEFB KODUP,KODDOW,KODCUP,KODCDO,KODBRK DEFB KODSUP,KODSDO,KODESC TABVA1: DEFW VIUP,VIDOW,VIPGUP,VIPGDN,VIRET DEFW VIHOME,VIEND,VIRET TABVA2: DEFW VIRET DEFW VIVIEW DEFW VIKOD DEFW VIFINB DEFW VIFIND VIHBUF: DEFS 010 VIHPOZ: DEFB 0 VISMER: DEFB 0 VIFLEN: DEFB 0 VIFBUF: DEFW 0,0,0,0,0,0,0,0 VIR1: DEFB 0,0,0 VIR2: DEFB 0,0,0 VIR3: DEFB 0,0,0 VIR4: DEFB 0,0,0 VIR5: DEFB 0,0,0 VIR6: DEFB 0,0,0 VIR7: DEFB 0,0,0 VIR8: DEFB 0,0,0 VIR9: DEFB 0,0,0 VIR10: DEFB 0,0,0 VIR11: DEFB 0,0,0 VIR12: DEFB 0,0,0 VIR13: DEFB 0,0,0 VIR14: DEFB 0,0,0 VIR15: DEFB 0,0,0 VIR16: DEFB 0,0,0 VIR17: DEFB 0,0,0 VIR18: DEFB 0,0,0 VIR19: DEFB 0,0,0 VIR20: DEFB 0,0,0 TKODY: DEFW MKOI DEFW MASC DEFW MLAT DEFW MKAM WIEW1: CALL PUAL LD HL,0202 LD DE,024F CALL SETWIN JP FARMNU WIEW2: CALL PUAL LD HL,0401 LD DE,01650 CALL SETWIN CALL FARPAN JP FARZVY PUTWK: CALL PUAL CALL WIEW1 LD A,018 CALL SETX LD B,0B PUTWK2: CALL PUTSPC DJNZ PUTWK2 LD A,014 CALL SETX LD A,(HOKOD) LD HL,TKODY ADD A,A LD C,A LD B,0 ADD HL,BC LD E,(HL) INC HL LD D,(HL) LD (PUTWK1),DE CALL PLX0 DEFW MKOD PUTWK1: DEFW MKOI DEFW 0 RET VIPLB: LD A,3 CALL SETX LD A,C CALL PAHEX CALL PHLHEX CALL TEXT0 DEFB ': ',0 LD HL,VIHBUF LD C,1 PUSH BC PUSH HL VIPLB1: LD A,(HL) INC HL CALL PAHEX CALL PUTSPC LD A,C AND 3 CALL Z,PUTSPC INC C DJNZ VIPLB1 POP HL POP BC LD A,03F CALL SETX VIPLB2: LD A,(HL) INC HL CP ' ' JR NC,VIPLB3 LD A,'.' VIPLB3: CALL PUTCNV DJNZ VIPLB2 RET VIPL: CALL RDPTST RET NC PUSH BC CALL RDBSOF LD A,(HOVIEW) OR A JR Z,VIPLT PUSH HL LD B,010 LD HL,VIHBUF VIPL1: CALL RDBREAD LD (HL),A INC HL CALL RDBNEXT JR C,VIPL2 DJNZ VIPL1 LD B,010 POP HL CALL VIPLB VIPL4: POP BC CALL RDBGOF OR A RET VIPL2: LD A,011 SUB B LD B,A POP HL CALL VIPLB VIPL3: POP BC CALL RDBGOF SCF INC L RET NZ INC H RET NZ INC C RET VIPLT: LD HL,VIHPOZ LD (HL),A INC A CALL SETX LD B,50 VIPLT2: CALL RDBREAD CP 09 JR NZ,VIPLT1 VIPLT3: LD A,' ' CALL PUTCNV INC (HL) LD A,(HL) AND 7 JR Z,VIPLT4 DJNZ VIPLT3 CALL RDBNEXT JR C,VIPL3 VIPLT5: CALL VIPLTE JR C,VIPL3 JR VIPL4 VIPLT4: CALL RDBNEXT JR C,VIPL3 VIPLT7: DJNZ VIPLT2 JR VIPLT5 VIPLT1: CALL CNV7 CP 0A JR NZ,VIPLT6 CALL RDBNEXT JR C,VIPL3 JR VIPLT2 VIPLT6: CP 0D JR Z,VIPLT5 CALL PUTCNV INC (HL) CALL RDBNEXT JR C,VIPL3 JR VIPLT7 VIPREV: CALL PUA LD A,(HOVIEW) OR A JR Z,VIPREV1 LD B,010 VIPREV2: CALL RDBPREV RET C DJNZ VIPREV2 RET VIPREV1: CALL RDBPREV RET C CALL RDBREAD CALL CNV7 CP 0D JR NZ,VIPREV1 VIPREV3: CALL RDBPREV RET C CALL RDBREAD CALL CNV7 CP 0D JR NZ,VIPREV3 JP RDBNEXT VIPLTE: CALL RDBREAD CALL CNV7 CP 0D JP Z,RDBNEXT CALL RDBNEXT JR NC,VIPLTE RET VISOF: LD (IY+0),L LD (IY+1),H LD (IY+2),C VISOF1: INC IY INC IY INC IY RET VIGOF: LD L,(IY+0) LD H,(IY+1) LD C,(IY+2) JR VISOF1 VIPS: CALL WIEW2 CALL CLRSCR PUSH IY LD IY,VIR1 LD B,013 VIPS1: CALL VISOF CALL RDPTST CCF JR C,VIPS2 LD A,014 SUB B CALL SETY CALL VIPL DJNZ VIPS1 CALL VISOF VIPS2: POP IY JP SCANW HOREVI: CALL PUAL LD HL,VIR2 LD DE,VIR1 LD BC,039 LDIR RET DOLEVI: CALL PUAL LD HL,VIR19+2 LD DE,VIR20+2 LD BC,039 LDDR RET VIAPO: LD IY,VIR1 LD B,014 VIAPO1: CALL VIGOF CALL RDPTST CCF RET C DJNZ VIAPO1 RET VIDOW: CALL PUAL CALL WIEW2 CALL VIAPO RET C CALL HORESOF CALL HOREVI LD IY,VIR19 CALL VIGOF LD A,013 CALL SETY CALL VIPL CALL VISOF VIDOW1: JP SCANW VIUP: CALL PUAL CALL WIEW2 LD IY,VIR1 CALL VIGOF LD A,C OR L OR H RET Z CALL RDPTST RET NC CALL DOLESOF CALL DOLEVI CALL RDBSOF CALL VIPREV CALL RDBGOF LD IY,VIR1 CALL VISOF LD A,1 CALL SETY CALL VIPL CALL VIAPO JR VIDOW1 NRVIEW: CALL FFIRST RET C CALL RDBINI RET C CALL CLRALL PUSH HL POP IY LD HL,MHELPW CALL HELP CALL WIEW1 CALL CLRSCR CALL ORAMUJ CALL SETRIGHT CALL PLX0 DEFW 3,5,0 LD A,025 CALL SETX LD L,(IY+XPUS) LD H,(IY+XPUS+1) CALL PHLDEK LD HL,MSKB CALL TEXT LD HL,012E LD (CGXY),HL CALL SETXY CALL FARPAN LD B,020 LD A,KODPLN NRVIEW1: CALL PUTCHAR DJNZ NRVIEW1 LD L,(IY+XPZAZ) LD H,(IY+XPZAZ+1) ADD HL,HL ADD HL,HL DEC HL PUSH HL EXX POP DE LD HL,0 LD C,0 EXX CALL PUTWK LD HL,0 LD C,0 CALL VIPS NRVIEW2: CALL KBDREAD LD HL,NRVIEW2 PUSH HL LD HL,TABVK1 LD D,H LD E,L LD BC,TABVA1-TABVK1 CPIR JR NZ,NRVIEW4 SCF SBC HL,DE LD DE,TABVA1 NRVIEW3: ADD HL,HL ADD HL,DE LD E,(HL) INC HL LD D,(HL) PUSH DE RET NRVIEW4: CP 02 RET NZ CALL KBDREAD CALL UPCASE SUB 'A' RET C CP 05 RET NC LD L,A LD H,0 LD DE,TABVA2 JR NRVIEW3 VIRET: CALL CLRALL LD A,(HOHELP) OR A LD HL,MHELP CALL NZ,HELP CALL PLCL CALL PLCP CALL PLCAKP CALL PLCAKS POP HL RET VIVIEW: LD A,(HOVIEW) XOR 1 LD (HOVIEW),A VIVIEW1: LD IY,VIR1 CALL VIGOF VIVIEW2: JP VIPS VIKOD: LD A,(HOKOD) INC A AND 3 LD (HOKOD),A CALL PUTWK JR VIVIEW1 VIPGDN: CALL VIAPO JR NC,VIVIEW2 RET VIPGUP: LD IY,VIR1 CALL VIGOF LD A,C OR L OR H RET Z CALL RDPTST RET NC VIPGUP3: LD B,013 VIPGUP4: CALL RDBSOF VIPGUP1: CALL VIPREV JR C,VIPGUP2 DJNZ VIPGUP1 VIPGUP2: CALL RDBGOF JR VIVIEW2 VIHOME: LD HL,0 LD C,L JR VIVIEW2 VIEND: LD HL,(RDBMPT) LD A,(RDBMCB) LD C,A XOR A SRL C RRA SRL C RRA OR H LD H,A LD DE,1 OR A SBC HL,DE JR NC,VIEND1 LD A,C OR A RET Z DEC C VIEND1: LD A,(HOVIEW) CP 1 JR NZ,VIEND2 LD A,L AND 0F0 LD L,A VIEND2: LD B,012 JR VIPGUP4 CNV7: PUSH BC LD BC,(HOKOD) DEC C JR NZ,CNV71 AND 07F CNV71: POP BC RET VIWF: CALL PUA LD HL,0119 XOR A CALL OPENM CALL PUTSPC LD HL,MNAJDI CALL TEXT LD HL,HOFBUF PUSH HL CALL ILN POP DE CP KODCR JR NZ,VIWF1 LD BC,010FF VIWF2: LD A,(HL) LDI OR A JR Z,VIWF3 DJNZ VIWF2 VIWF3: LD A,010 SUB B LD (VIFLEN),A XOR A VIWF1: JP CLOSEW VIWFN: CALL WPLX0 DEFW MNEM,MNAJST,HOFBUF DEFW 0 RET VIWFH: CALL PWPLX0 DEFW MHLADAM,HOFBUF DEFW 0 RET VIFNXT: LD A,(VIFLEN) LD C,A LD B,0 LD A,(VISMER) DEC C JR Z,VIFNXT4 OR A PUSH BC JR NZ,VIFNXT2 LD HL,VIFBUF+1 LD DE,VIFBUF LDIR JR VIFNXT3 VIFNXT2: LD HL,VIFBUF ADD HL,BC LD D,H LD E,L DEC HL LDDR VIFNXT3: POP BC VIFNXT4: LD HL,VIFBUF OR A JR NZ,VIFNXT5 ADD HL,BC VIFNXT5: OR A JR NZ,VIFNXT6 CALL RDBNEXT VIFNXT7: RET C CALL RDBREAD CALL KODCNV LD (HL),A CALL RDBGOF CALL SCANW XOR A RET VIFNXT6: CALL RDBPREV JR VIFNXT7 VIFGEN: LD A,(VISMER) OR A LD IY,VIR1 JR NZ,VIFGEN1 LD B,2 VIFGEN2: CALL VIGOF CALL RDPTST CCF RET C DJNZ VIFGEN2 CALL RDBSOF RET C CALL RDBPREV RET C VIFGEN4: LD A,(VIFLEN) LD B,A VIFGEN3: PUSH BC CALL VIFNXT POP BC RET C DJNZ VIFGEN3 RET VIFGEN1: CALL VIGOF CALL RDBSOF RET C JR VIFGEN4 VIFINB: LD A,0FF JR VIFIND1 VIFIND: XOR A VIFIND1: LD (VISMER),A CALL VIWF RET NZ LD A,(VIFLEN) OR A RET Z CALL VIWFH CALL VIFGEN JR NC,VIFIND3 VIFIND2: CALL CLOSEW CALL VIWFN CALL VIAPO JP SCANW VIFIND3: LD HL,HOFBUF LD DE,VIFBUF LD A,(VIFLEN) LD B,A VIFIND5: LD A,(DE) CP (HL) JR NZ,VIFIND6 INC DE INC HL DJNZ VIFIND5 LD A,(VISMER) OR A JR NZ,VIFIND7 LD A,(VIFLEN) DEC A JR Z,VIFIND7 LD B,A VIFIND8: CALL RDBPREV DJNZ VIFIND8 VIFIND7: CALL RDBGOF LD A,(HOVIEW) OR A JR Z,VIFIND9 LD A,L AND 0F0 LD L,A VIFND10: CALL CLOSEW JP VIPS VIFIND9: CALL VIBGL CALL RDBGOF JR VIFND10 VIFIND6: CALL VIFNXT JR C,VIFIND2 JR VIFIND3 VIBGL: CALL RDBPREV RET C CALL RDBREAD CALL CNV7 CP 0D JR NZ,VIBGL JP RDBNEXT