.Z80 ;Quelltext WORDPRO ;Vereinbarungen ; SYS EQU 0F003H CURSO EQU 0B7A0H FLAG EQU 250H ;Bit: 2 Wordwrapping ;Bit: 3 Pagemodus ;Bit: 5 Statuszeile RANDR EQU FLAG+1 RANDL EQU RANDR+1 PAGE EQU RANDL+1 MEML EQU PAGE+2 COL EQU MEML+2 LINE EQU COL+1 ADR EQU LINE+1 FMEM EQU ADR+2 TOP EQU FMEM+2 COLOR EQU TOP+2 ARG EQU COLOR+1 WW EQU ARG+2 SUM EQU WW+2 ADRO EQU SUM+2 ORD EQU ADRO+2 ORDO EQU ORD+1 HOCOL EQU ORDO+1 MEML2 EQU HOCOL+1 FROMD EQU MEML+2 TOD EQU FROMD+2 BELL EQU TOD+2 ; .PHASE 0C000H ; SHOW: LD HL,0B980H LD B,0 SLA A RL B SLA A RL B LD C,A ADD HL,BC LD (ARG),HL LD B,8 LAB1O: LD HL,(COL) SRL L PUSH AF LD A,L CP 32 JR NC,CALC1 LD A,3 AND H RLCA RLCA LD D,A LD A,12 AND H RRCA RRCA LD E,A LD A,H AND 240 OR E OR D LD H,A LD DE,8000H XOR A CALC2: RR H RRA RR H RRA RR H RRA OR L LD L,A ADD HL,DE JR CALC3 CALC1: SUB 32 LD L,A LD A,51 AND H RLCA RLCA RLCA RLCA LD E,A LD A,H AND 204 OR E LD H,A XOR A LD DE,0A000H RR H RRA RR H RRA JR CALC2 LAB1: JR LAB1O CALC3: EX DE,HL LD HL,(ARG) LD C,(HL) BIT 0,B JR NZ,HO LD A,C RRA RRA RRA RRA LD C,A JR LAD HO: INC HL LAD: LD (ARG),HL EX DE,HL LD A,(FLAG) BIT 0,A JR Z,LAB2 LD A,C CPL LD C,A LAB2: POP AF JR C,LAB3 RLD LD A,C RRD JR LAB4 LAB3: RRD LD A,C RLD LAB4: LD A,(LINE) INC A LD (LINE),A DJNZ LAB1 SUB 8 LD (LINE),A RET INPAT: LD (CURSO),HL CALL SYS DEFB 17H EX DE,HL LD DE,5 ADD HL,DE LD C,(HL) INC HL LD D,(HL) INC HL LD E,(HL) LD B,3 LD A,47 LABL2: CP E JR C,LABL3 LD E,D LD D,C LD C,0 DJNZ LABL2 LD HL,0 RET LABL3: LD A,15 AND C LD C,A LD A,15 AND E LD E,A LD A,15 AND D LD D,A LD B,3 LD HL,0 ZYKLI: ADD HL,HL LD (WW),DE LD D,H LD E,L ADD HL,HL ADD HL,HL ADD HL,DE LD E,C LD D,0 ADD HL,DE LD DE,(WW) LD C,D LD D,E LD E,0 DJNZ ZYKLI LD (ORD),HL CALL MUL80 LD DE,(TOP) ADD HL,DE RET INPUT: BIT 0,(IX+8) JR Z,INPUT LD A,(IX+13) PUSH AF LD A,(FLAG) BIT 1,A JR Z,LAB5 LD HL,0 LD (0B783H),HL LD HL,400H LD (0B786H),HL LD A,50 LD (0B782H),A CALL SYS DEFB 35H LAB5: POP AF RES 0,(IX+8) RET UPS: LD HL,32832 LD DE,32768 LAB13: LD BC,64 LDIR LD BC,384 ADD HL,BC LD BC,64 LDIR LD BC,383 SCF SBC HL,BC LD A,0A0H CP D JR NZ,LAB13 LD HL,40968 LD DE,41024 LAB6: LD A,4 LAB7: LD (ARG),A LD A,15 LAB8: LD BC,8 SBC HL,BC EX DE,HL LDIR DEC A JR NZ,LAB8 LD A,(ARG) DEC A JR Z,LAB9 LD BC,64 ADD HL,BC EX DE,HL LD BC,72 ADD HL,BC JR LAB7 LAB9: LD A,H CP 168 RET Z EX DE,HL LD BC,359 SCF SBC HL,BC EX DE,HL LD A,4 JR LAB10 LAB11: LD BC,88 ADD HL,BC EX DE,HL ADD HL,BC EX DE,HL LAB10: LD BC,8 LDIR LD BC,24 ADD HL,BC EX DE,HL ADD HL,BC EX DE,HL LD BC,8 LDIR DEC A JR NZ,LAB11 LD BC,359 SCF SBC HL,BC EX DE,HL LD BC,8 ADD HL,BC JR LAB6 DOWNS: LD HL,40895 LD DE,40959 LAB12: LD BC,64 LDDR LD BC,383 SCF SBC HL,BC LD BC,64 LDDR LD BC,384 ADD HL,BC LD A,7FH CP H JR NZ,LAB12 LD HL,42999 LD DE,42943 LAB14: LD A,4 LAB15: LD (ARG),A LD A,15 LAB16: LD BC,8 ADD HL,BC EX DE,HL LDDR DEC A JR NZ,LAB16 LD A,(ARG) DEC A JR Z,LAB17 LD BC,63 SCF SBC HL,BC EX DE,HL LD BC,71 SCF SBC HL,BC JR LAB15 LAB17: LD A,H CP 9FH RET Z LD BC,360 EX DE,HL ADD HL,BC EX DE,HL LD A,4 JR LAB18 LAB19: LD BC,87 SCF SBC HL,BC EX DE,HL SCF SBC HL,BC EX DE,HL LAB18: LD BC,8 LDDR LD BC,23 SCF SBC HL,BC EX DE,HL SCF SBC HL,BC EX DE,HL LD BC,8 LDDR DEC A JR NZ,LAB19 LD BC,360 ADD HL,BC EX DE,HL LD BC,7 SCF SBC HL,BC JR LAB14 PVAL: LD H,L SRL H SRL H SRL H SRL H RES 7,L RES 6,L RES 5,L RES 4,L LD A,H ADD A,48 LD (DE),A INC DE LD A,L ADD A,48 LD (DE),A RET PPAGE: LD HL,8000H LD (HL),0 LD DE,8001H LD BC,27FFH LDIR LD A,(FLAG) RES 0,A LD (FLAG),A LD HL,(COL) PUSH HL LD HL,(PAGE) LD BC,0 LAB20: LD A,(HL) CP 32 JR Z,PPOK LD (COL),BC PUSH HL PUSH BC CALL SHOW POP BC POP HL PPOK: LD A,80 INC C INC HL CP C JR NZ,LAB20 LD A,8 ADD A,B LD B,A JR C,LAB21 LD C,0 JR LAB20 LAB21: POP HL LD (COL),HL RET PLINE: LD A,(FLAG) RES 0,A LD (FLAG),A LD HL,(ADR) LD A,(COL) PUSH AF SCF CCF LD B,80 LD E,A LD D,0 SBC HL,DE LD DE,(COL) LD E,0 LAB22: LD A,(HL) LD (COL),DE INC E INC HL PUSH BC PUSH DE PUSH HL CALL SHOW POP HL POP DE POP BC DJNZ LAB22 POP AF LD (COL),A RET SETCO: LD A,(COLOR) LD (0A800H),A LD HL,0A800H LD DE,0A801H LD BC,9FFH LDIR RET CLS: LD HL,8000H LD (HL),0 LD DE,8001H LD BC,27FFH LDIR LD HL,0B200H LD (HL),0 LD DE,0B201H LD BC,4FFH LDIR RET CLEAR: LD HL,(FMEM) LD BC,(TOP) SCF SBC HL,BC LD DE,160 ADD HL,DE LD B,H LD C,L LD HL,(TOP) LD DE,(TOP) INC DE LD (HL),32 LDIR RET TO: LD HL,2304 LD (CURSO),HL CALL SYS DEFB 23H DEFM 'TO' NOP LD HL,2309 CALL INPAT LD DE,80 ADD HL,DE LD (TOD),HL RET NAME: LD HL,1792 LD (0B7A2H),HL LD HL,2560 LD (CURSO),HL CALL SYS DEFB 23H DEFM 'NAME' NOP LD HL,2565 LD (CURSO),HL CALL SYS DEFB 17H EX DE,HL LD DE,5 ADD HL,DE RET BCD: XOR A LD D,A LD B,16 ZYK1: ADD HL,HL ADC A,A DAA LD E,A LD A,D ADC A,A DAA LD D,A RL C LD A,E DJNZ ZYK1 EX DE,HL LD A,C RET MUL80: LD B,4 ZYK2: SLA L RL H DJNZ ZYK2 LD D,H LD E,L SLA L RL H SLA L RL H ADD HL,DE RET FROM: LD HL,2048 LD (CURSO),HL LD HL,1792 LD (0B7A2H),HL CALL SYS DEFB 23H DEFM 'FROM' NOP LD HL,2053 CALL INPAT LD (FROMD),HL RET NEWLI: LD A,C LD BC,(SUM) ADD HL,BC LD C,A LD A,(HOCOL) LD B,A RET GTC EQU 0BD80H TAB2 EQU 200H SCIT: LD HL,(TOP) SCITL: LD BC,80 CPIR JR Z,SCEND LD B,A LD A,(FMEM+1) CP H LD A,B JR Z,CCMP JR NC,SCITL JR CMPEN CCMP: LD A,(FMEM) CP L LD A,B JR NC,SCITL CMPEN: XOR A RET SCEND: LD A,80 SUB C LD C,A DEC HL LD (HL),32 LD B,0 INC HL OR A SBC HL,BC CPL RET BLO1: LD HL,(ADR) LD DE,(COL) LD D,0 OR A SBC HL,DE LD (WW),HL LD A,144 CALL SCIT CP 0 JP Z,LOOP2 LD DE,(WW) LD (ARG),HL LD A,D CP H JR C,BDEL JR Z,CCOMP JR BINS CCOMP: LD A,E CP L JP Z,LOOP2 JR NC,BINS BDEL: EX DE,HL LD HL,(FMEM) OR A SBC HL,DE LD B,H LD C,L LD HL,(WW) EX DE,HL LDIR LD HL,(FMEM) OR A SBC HL,DE LD B,H LD C,L LD H,D LD L,E INC DE LD (HL),32 LDIR CALL PPAGE CALL ISL JP LOOP2 BINS: LD HL,(FMEM) OR A SBC HL,DE LD B,H LD C,L LD HL,(ARG) EX DE,HL OR A SBC HL,DE LD (ORDO),HL EX DE,HL LD HL,(FMEM) OR A SBC HL,DE LD DE,(FMEM) DEC DE DEC HL LDDR LD H,D LD L,E DEC DE LD BC,(ORDO) LD (HL),32 LDDR CALL PPAGE CALL ISL JP LOOP2 IT1: LD A,(HOCOL) CP 0 JR Z,BLDIR JP HOCH IT2: LD A,(HOCOL) CP 0 JP Z,BETCU JP TIEF BCOPY: LD A,144 CALL SCIT CP 0 JP Z,LOOP2 EX DE,HL LD A,145 CALL SCIT CP 0 JP Z,LOOP2 LD BC,80 ADD HL,BC LD A,D CP H JR C,OKC JR Z,CCOP JP LOOP2 CCOP: LD A,E CP L JP NC,LOOP2 OKC: LD (ARG),HL LD HL,(ADR) LD BC,(COL) LD B,0 OR A SBC HL,BC LD A,H CP D JR C,IT1 JR Z,BTCUR JR CUGBE BTCUR: LD A,L CP E JP Z,LOOP2 JR NC,CUGBE JR IT1 BLDIR: LD (WW),HL LD HL,(ARG) OR A SBC HL,DE LD (ORDO),HL EX DE,HL LD HL,(FMEM) LD DE,(ORDO) OR A SBC HL,DE LD D,H LD E,L LD BC,(WW) OR A SBC HL,BC LD B,H LD C,L LD HL,(FMEM) DEC HL DEC DE EX DE,HL LDDR LD BC,(ORDO) LD HL,(ARG) LD DE,(WW) LDIR CALL PPAGE CALL ISL JP LOOP2 CUGBE: LD BC,(ARG) LD A,H CP B JP C,LOOP2 JR Z,CCOM JP IT2 CCOM: LD A,L CP C JP C,LOOP2 JP IT2 BETCU: LD (WW),HL LD HL,(ARG) OR A SBC HL,DE LD (ORDO),HL EX DE,HL LD (ARG),HL LD HL,(FMEM) OR A SBC HL,DE LD D,H LD E,L LD BC,(WW) OR A SBC HL,BC LD B,H LD C,L LD HL,(FMEM) DEC HL DEC DE EX DE,HL LDDR LD BC,(ORDO) LD DE,(WW) LD HL,(ARG) LDIR CALL PPAGE CALL ISL JP LOOP2 HOCH: EX DE,HL LD (ADRO),HL OR A SBC HL,DE LD (ORDO),HL HLOOP: LD HL,(ADRO) PUSH HL LD DE,0B700H LD BC,80 LDIR LD (ADRO),HL EX DE,HL DEC DE POP HL DEC HL LD BC,(ORDO) LDDR EX DE,HL INC DE LD HL,0B700H LD BC,80 LDIR LD HL,(ADRO) LD DE,(ARG) OR A SBC HL,DE JR C,HLOOP CALL PPAGE CALL ISL JP LOOP2 TIEF: LD (ADRO),DE OR A SBC HL,DE LD (ORDO),HL LD HL,(ARG) OR A SBC HL,DE LD (ARG),HL TLOOP: LD HL,(ADRO) PUSH HL LD BC,80 LD DE,0B700H LDIR POP HL LD D,H LD E,L LD BC,80 ADD HL,BC LD BC,(ORDO) LDIR LD BC,80 LD HL,0B700H LDIR LD HL,(ARG) LD BC,80 XOR A SBC HL,BC LD (ARG),HL JR NZ,TLOOP CALL PPAGE CALL ISL JP LOOP2 BELLO: XOR A LD (0B784H),A LD (0B783H),A LD A,100 LD (0B782H),A LD A,10 LD (0B787H),A LD A,1 LD (0B786H),A CALL SYS DEFB 35H LD A,(BELL) LD D,A RET BOTO: LD HL,(FMEM) DEC HL LD D,H LD E,L LD BC,(TOP) XOR A SBC HL,BC LD B,H LD C,L EX DE,HL LD A,32 SLO: CPD JP PO,ENDOS JR Z,SLO ENDOS: EX DE,HL LD HL,(TOP) LD BC,0 LFL: LD A,D CP H RET C JR NZ,CLFL LD A,E CP L RET C CLFL: PUSH DE LD DE,80 ADD HL,DE POP DE INC BC JR LFL BOT: CALL BOTO LD (PAGE),HL LD (ADR),HL LD (MEML),BC LD HL,0 LD (COL),HL CALL PPAGE CALL KEY1 JP LOOP2 KEY1: LD HL,0B900H LD (IX+14),L LD (IX+15),H CALL ISL RET LIN: CALL KEY1 CALL TO LD HL,(ORD) LD (MEML),HL LD HL,(TOD) LD DE,80 XOR A SBC HL,DE LD (ADR),HL LD (PAGE),HL LD HL,0 LD (COL),HL CALL CLS CALL PPAGE JP LOOP2 CENT: LD HL,(ADR) LD BC,(COL) LD B,0 XOR A SBC HL,BC LD D,H LD E,L LD BC,(RANDR) LD A,C LD C,B LD B,0 ADD HL,BC LD (WW),HL EX DE,HL LD C,A ADD HL,BC DEC HL LD A,32 SLD: CP (HL) JR NZ,SLDOK DEC HL INC B JR NZ,SLD JP LOOP2 SLDOK: LD (ADRO),HL LD HL,(WW) LD C,0 SLI: CP (HL) JR NZ,SLIOK INC HL INC C JR NZ,SLI JP LOOP2 SLIOK: LD (WW),HL LD A,B CP 81 JP NC,LOOP2 LD H,C ADD A,C LD C,A LD DE,(RANDR) LD A,E SUB D SUB C JP C,LOOP2 LD (ORD),A LD A,C SRL A CP B JP Z,LOOP2 JR NC,BDIR LD HL,(ADRO) LD D,H LD E,L LD C,A LD A,B SUB C JP Z,LOOP2 JP C,LOOP2 LD C,A LD B,0 ADD HL,BC LD BC,(ORD) LD B,0 EX DE,HL LDDR LD HL,(WW) LD D,H LD E,L INC DE LD C,A LD (HL),32 DEC C JP Z,LOOP2 LDIR JR EOC BDIR: LD L,A LD A,H SUB L JP C,LOOP2 JP Z,LOOP2 LD HL,(WW) LD D,H LD E,L LD C,A LD B,0 OR A SBC HL,BC LD BC,(ORD) LD B,0 EX DE,HL LDIR LD HL,(ADRO) LD D,H LD E,L DEC DE LD C,A LD (HL),32 DEC C JP Z,LOOP2 LDDR EOC: CALL KEY1 CALL PLINE JP LOOP2 BROT: CALL KEY1 LD HL,(ADR) LD DE,(COL) LD D,0 XOR A SBC HL,DE LD DE,(RANDL) LD D,0 ADD HL,DE LD (WW),HL LD BC,80 OR 32 ROTL: ADD HL,BC CP (HL) JR NZ,ROTL SCF SBC HL,DE LD (ADRO),HL LD A,(COL) CP E JP Z,LOOP2 JR C,RDIR SUB E LD E,A OR A SBC HL,DE LD D,H LD E,L LD BC,(WW) OR A SBC HL,BC LD B,H LD C,L JP Z,LOOP2 LD HL,(ADRO) EX DE,HL INC BC LDDR LD H,D LD L,E LD (HL),32 DEC A JR Z,PPG LD C,A LD B,0 DEC DE LDDR PPG: CALL PPAGE CALL ISL JP LOOP2 RDIR: LD C,A LD A,E SUB C LD DE,(WW) SBC HL,DE LD B,H LD C,L JP Z,LOOP2 LD HL,(ADR) EX DE,HL INC BC LDIR LD H,D LD L,E LD (HL),32 DEC A JR Z,PPG2 LD C,A INC DE LD B,0 LDIR PPG2: CALL PPAGE CALL ISL JP LOOP2 BSLIC: CALL KEY1 LD DE,(COL) LD HL,(ADR) XOR A LD D,0 SBC HL,DE PUSH HL LD DE,(RANDR) LD A,80 CP E JP Z,LOOP2 LD A,D LD D,0 ADD HL,DE LD (TOD),HL POP HL PUSH HL LD E,A ADD HL,DE LD (FROMD),HL POP HL LD E,80 ADD HL,DE LD (WW),HL LD HL,(RANDR) LD A,80 SUB L LD (ORD),A LD A,L SUB H LD (HOCOL),A BGN: LD HL,(FROMD) LD A,32 CP (HL) JP Z,EOS LD HL,(TOD) CP (HL) JR Z,NLCP LD BC,(HOCOL) LD B,0 CPDR JP PO,NELI INC HL INC HL LD A,(HOCOL) INC C INC C SUB C LD C,A LD A,(ORD) ADD A,C JR SDIR NLCP: LD BC,(ORD) LD B,C NLFL: CP (HL) JR NZ,NFON INC HL DJNZ NLFL JR NELI NFON: LD A,B SDIR: PUSH HL LD HL,(FMEM) LD DE,80 OR A SBC HL,DE LD D,H LD E,L LD BC,(WW) OR A SBC HL,BC LD B,H LD C,L LD HL,(FMEM) DEC DE DEC HL EX DE,HL LDDR LD HL,(WW) LD D,H LD E,L INC DE LD (HL),32 LD BC,79 LDIR LD BC,80 LD HL,(FROMD) ADD HL,BC POP DE PUSH DE LD C,A EX DE,HL LDIR POP HL LD (HL),32 DEC A JR Z,NELI LD D,H LD E,L INC DE LD C,A LDIR NELI: LD BC,80 LD HL,(WW) ADD HL,BC LD (WW),HL LD HL,(FROMD) ADD HL,BC LD (FROMD),HL LD HL,(TOD) ADD HL,BC LD (TOD),HL JP BGN EOS: CALL PPAGE CALL ISL JP LOOP2 HOME: LD HL,(COL) EX DE,HL LD HL,0 LD (COL),HL LD HL,(MEML) SRL D SRL D SRL D LD C,D LD B,0 OR A SBC HL,BC LD (MEML),HL LD HL,(PAGE) LD (ADR),HL JP LOOP2 SHOME: LD A,(LINE) LD HL,65567 LD (COL),HL LD B,A LD A,248 SUB B SRL A SRL A SRL A LD C,A LD B,0 LD HL,(MEML) ADD HL,BC LD (MEML),HL LD BC,2559 LD HL,(PAGE) ADD HL,BC LD (ADR),HL CALL ISL JP LOOP2 ANTIE: LD A,(COL) SCF LD B,A LD A,(RANDR) SBC A,B JP C,LOOP2 LD HL,(ADR) LD C,A LD B,0 ADD HL,BC LD (ADR),HL LD A,(RANDR) DEC A LD (COL),A JP LOOP2 OFF: LD B,0 LD HL,TAB2 ADD HL,BC LD (HL),'o' INC HL LD (HL),'f' INC HL LD (HL),'f' RET MON: LD B,0 LD HL,TAB2 ADD HL,BC LD (HL),32 INC HL LD (HL),'o' INC HL LD (HL),'n' RET CALL SHOW LD A,(COL) ISL EQU 0 LOOP2 EQU $ TAB EQU 0B7E0H JPTAB EQU 280H RAM24 EQU 2A0H JP PSL LD HL,(PAGE) LD A,(TOP+1) DEC A CP H JR NC,JTOP LD A,0C0H CP H JR NC,CLOOP JTOP: CALL PRTOT CALL KEY1 LD HL,(TOP) LD (ADR),HL LD (PAGE),HL LD HL,0 LD (MEML),HL LD (COL),HL CALL PPAGE CLOOP: CALL TXEND LD HL,999 LD (MEML2),HL LET: LD A,(FLAG) BIT 5,A JR Z,NCP CALL PCOL LD A,(FLAG) NCP: SET 0,A LD (FLAG),A LD HL,(ADR) LD A,(HL) CALL SHOW LD A,(FLAG) RES 0,A LD (FLAG),A CALL INPUT CODE: LD HL,(FLAG) BIT 7,L JR Z,SLOK CP 97 JR C,SLOK CP 126 JR NC,SLOK SUB 32 SLOK: CP 32 JP C,FCT1 CP 240 JP NC,FCT2 LD HL,(ADR) LD (HL),A CALL SHOW LD A,(COL) INC A LD D,A LD A,(RANDR) CP D JR Z,FSH LD A,80 CP D JR Z,FSH LD A,(BELL) CP D CALL Z,BELLO NOT: LD A,D LD (COL),A LD HL,(ADR) INC HL LD (ADR),HL JR LET FSH: LD A,(RANDL) ADD A,81 SUB D LD HL,(ADR) LD (WW),HL ADD A,L LD L,A LD A,H ADC A,0 LD H,A LD (ADR),HL LD A,(COL) LD (ORDO),A END1T: LD A,(RANDL) LD (COL),A LD HL,(MEML) INC HL LD (MEML),HL LD A,(LINE) ADD A,8 JR NC,NOTSC LD A,(FLAG) BIT 3,A JR Z,FSCR LD HL,(FLAG) LD DE,2560 ADD HL,DE LD (PAGE),HL CALL PPAGE XOR A JR NOTSC FSCR: CALL UPS LD HL,(PAGE) LD DE,80 ADD HL,DE LD (PAGE),HL CALL PLINE LD HL,(WW) PUSH HL CALL ISL POP HL LD (WW),HL LD A,(LINE) NOTSC: LD (LINE),A LD A,(FLAG) SET 0,A LD (FLAG),A LD HL,(ADR) LD A,(HL) CALL SHOW LD A,(FLAG) RES 0,A LD (FLAG),A CALL INPUT CP 32 JP Z,CHEC PUSH AF LD A,(FLAG) BIT 2,A JP Z,WWEND LD HL,(WW) LD A,(HL) CP 32 JR Z,WWEND LD BC,0 LOOP3: DEC HL INC BC LD A,(HL) CP 32 JR NZ,LOOP3 LD A,(LINE) CP 0 JR Z,LP3OK PUSH HL LD A,(ORDO) LD (COL),A LD A,(LINE) SUB 8 LD (LINE),A PUSH BC LD B,C PRL: PUSH BC LD A,32 CALL SHOW POP BC LD A,(COL) DEC A LD (COL),A DJNZ PRL POP BC POP HL LD A,(LINE) ADD A,8 LD (LINE),A LP3OK: INC HL LD (WW),BC LD DE,(ADR) LDIR LD BC,(WW) SCF SBC HL,BC LD D,H LD E,L INC DE LDIR LD A,(RANDL) LD (COL),A LD HL,(ADR) LD BC,(WW) LD B,C PRI: PUSH BC PUSH HL LD A,(HL) CALL SHOW POP HL INC HL LD A,(COL) INC A LD (COL),A POP BC DJNZ PRI LD (ADR),HL WWEND: POP AF NOTWW: CALL ROUT JP CODE ROUT: PUSH AF LD A,(LINE) CP 16 CALL Z,ISL CALL TXEND POP AF RET CHEC: CALL ROUT JP LOOP2 FCT1: LD HL,(ADR) PUSH AF LD A,(HL) CALL SHOW POP AF LD HL,(ADR) LD DE,JTAB ADD A,A ADD A,E LD E,A LD A,D ADC A,0 LD D,A LD A,(DE) LD (ADRO),A INC DE LD A,(DE) LD (ADRO+1),A LD IY,(ADRO) JP (IY) JTAB: DEFW LOOP2 DEFW UJUST DEFW SDEL DEFW SJUS DEFW JTOP DEFW BOT DEFW LIN DEFW CENT DEFW LEFT DEFW RIGHT DEFW CDOWN DEFW CUP DEFW SHOME DEFW ENTER DEFW BSLIC DEFW JUST DEFW HOME DEFW PUP DEFW PDOWN DEFW ANTIE DEFW SURE DEFW LOOP2 DEFW LOOP2 DEFW LOOP2 DEFW WRIGH DEFW WLEFT DEFW INS DEFW LOOP2 DEFW BEGIN DEFW CAPSC DEFW LOOP2 DEFW DEL DEFW LOOP2 DEFW IOMEN DEFW MLEFT DEFW MPAGE DEFW BLORD DEFW BLO1 DEFW LOOP2 DEFW STAT DEFW MRIGH DEFW CLIC DEFW BLAJU DEFW BELLS DEFW LOOP2 DEFW SINS DEFW WWOO DEFW BOARD CAPSC: LD A,(FLAG) XOR 128 LD (FLAG),A CAPS: CALL PSL JP LOOP2 FCT2: SUB 208 CP 2CH JR NZ,C1 XOR A LD (HOCOL),A JP BCOPY C1: CP 26H JP NZ,FCT1 LD A,1 LD (HOCOL),A JP BCOPY INS: LD A,(RANDR) LD B,A LD A,(RANDL) LD C,A LD A,(COL) CP B JP NC,LOOP2 CP C JP C,LOOP2 LD D,A LD A,B SUB D LD C,A LD B,0 LD HL,(ADR) DEC HL ADD HL,BC LD A,(HL) CP 32 JP NZ,LOOP2 LD E,L LD D,H DEC HL LDDR INC HL INC HL LD (HL),32 CALL PLINE JP LOOP2 JUS: LD D,A LD A,(RANDL) LD E,A LD A,(RANDR) DEC A SUB D RET C LD C,A LD B,0 PUSH HL ADD HL,BC LD A,32 CP (HL) JR Z,NPPIC POP HL RET NPPIC: LD (ADRO),HL LD A,(RANDL) LD B,A LD A,(RANDR) SUB B LD B,A LTD: LD A,(HL) CP 32 JR NZ,WF DEC HL DJNZ LTD POP HL RET WF: INC HL LD (WW),HL POP HL LD A,D SUB E RET C LD C,A LD B,0 OR A SBC HL,BC LD A,32 L2TD: CP (HL) JR NZ,LTDW INC HL JR L2TD LTDW: CP (HL) JR Z,WF2 INC HL JR LTDW WF2: LD (SUM),HL LD BC,(WW) LD A,H CP B JR C,INI JR Z,CZER RET CZER: LD A,L CP C RET NC INI: LD HL,(SUM) LTFS: LD A,(HL) CP 32 JR Z,FOUND INC HL JR LTFS FOUND: LD DE,(WW) LD A,H CP D JR C,OKNE LD A,L CP E JR C,OKNE JR INI OKNE: EX DE,HL LD HL,(ADRO) OR A SBC HL,DE LD B,H LD C,L PUSH DE LD HL,(ADRO) LD D,H LD E,L DEC HL LDDR POP DE LD HL,(ADRO) LD A,32 CP (HL) RET NZ LD HL,(WW) INC HL LD (WW),HL EX DE,HL LTFNW: CP (HL) JR NZ,LTFS INC HL JR LTFNW MLEFT: LD A,(COL) LD (RANDL),A JP CAPS MRIGH: LD A,(COL) INC A LD (RANDR),A JP CAPS MPAGE: LD A,(FLAG) XOR 8 LD (FLAG),A JP CAPS CLIC: LD A,(FLAG) XOR 2 LD (FLAG),A JP CAPS PDOWN: LD HL,(ADR) LD DE,2560 ADD HL,DE LD (ADR),HL LD HL,(PAGE) ADD HL,DE LD (PAGE),HL LD HL,(MEML) LD DE,32 ADD HL,DE LD (MEML),HL CALL PPAGE JP CAPS PUP: LD HL,(ADR) LD DE,2559 SCF SBC HL,DE LD (ADR),HL LD HL,(PAGE) SCF SBC HL,DE LD (PAGE),HL LD DE,31 LD HL,(MEML) SCF SBC HL,DE LD (MEML),HL CALL PPAGE JP CAPS WWOO: LD A,(FLAG) XOR 4 LD (FLAG),A JP CAPS CDOWN: LD DE,80 ADD HL,DE LD (ADR),HL LD HL,(MEML) INC HL LD (MEML),HL LD A,(LINE) ADD A,8 JR C,NNDO LD (LINE),A CP 16 CALL Z,ISL JP LOOP2 NNDO: CALL NPAGE JP LOOP2 CUP: LD DE,79 SCF SBC HL,DE LD (ADR),HL LD HL,(MEML) DEC HL LD (MEML),HL LD A,(LINE) SUB 8 JR C,NNUP LD (LINE),A JP LOOP2 NNUP: LD A,(FLAG) BIT 3,A JR Z,SDO LD HL,(PAGE) LD DE,2559 SCF SBC HL,DE LD (PAGE),HL CALL PPAGE LD A,0F8H LD (LINE),A JP CAPS SDO: CALL DOWNS LD HL,(PAGE) LD DE,79 SCF SBC HL,DE LD (PAGE),HL CALL PLINE JP CAPS RIGHT: INC HL LD (ADR),HL LD A,(COL) INC A CP 80 JR Z,RLEND LD (COL),A JP LOOP2 RLEND: XOR A LD (COL),A LD HL,(MEML) INC HL LD (MEML),HL LD A,(LINE) ADD A,8 JR C,REOP LD (LINE),A CP 16 CALL Z,ISL JP LOOP2 REOP: CALL NPAGE JP LOOP2 LEFT: DEC HL LD (ADR),HL LD A,(COL) CP 0 JR Z,LLEND DEC A LD (COL),A JP LOOP2 LLEND: LD A,79 LD (COL),A LD HL,(MEML) DEC HL LD (MEML),HL LD A,(LINE) SUB 8 JR C,LEOP LD (LINE),A JP LOOP2 LEOP: LD A,(FLAG) BIT 3,A JR Z,LSC LD HL,(PAGE) LD DE,2559 SCF SBC HL,DE LD (PAGE),HL CALL PPAGE LD A,0F8H LD (LINE),A JP CAPS LSC: CALL DOWNS LD HL,(PAGE) LD DE,79 SCF SBC HL,DE LD (PAGE),HL CALL PLINE JP LOOP2 ENTER: LD A,(COL) LD B,A LD A,(RANDL) LD (COL),A ADD A,80 SUB B ADD A,L LD L,A LD A,H ADC A,0 LD H,A LD (ADR),HL LD HL,(MEML) INC HL LD (MEML),HL LD A,(LINE) ADD A,8 JR C,EOUT LD (LINE),A CP 16 CALL Z,ISL JP LOOP2 EOUT: CALL NPAGE JP LOOP2 IOMEN: LD A,(COLOR) PUSH AF LD A,7 LD (COLOR),A CALL SETCO POP AF LD (COLOR),A CALL CLS LD A,7 CALL ICON XOR A LD (0B7A1H),A LD A,13 LD (CURSO),A LD A,63 LD (0B7A3H),A CALL SYS DEFB 23H DEFM 'W o r d P r o ' NOP LD A,2 LD (0B7A1H),A LD A,6 LD (CURSO),A LD A,7 LD (0B7A3H),A CALL SYS DEFB 23H DEFB 200 DEFM ' 1986 ' DEFB 201 DEFB 202 DEFB 203 DEFB 204 DEFB 205 DEFM ' S.Schl.' NOP LD A,6 LD (0B7A1H),A XOR A LD (CURSO),A LD A,79 LD (0B7A3H),A LOOPC: LD A,206 CALL SYS NOP LD A,(FLAG) RES 1,A LD (FLAG),A CALL INPUT LD B,A CP 13 JR Z,IOEND LD A,(CURSO) DEC A LD (CURSO),A LD A,32 CALL SYS NOP LD A,B CP 9 JR NZ,NONIN LD A,(CURSO) CP 37 JR Z,LOCO ADD A,3 LD (CURSO),A JR LOOPC NONIN: CP 8 JR NZ,LOCO LD A,(CURSO) CP 1 JR Z,LOCO SUB 5 LD (CURSO),A JR LOOPC LOCO: LD A,(CURSO) DEC A LD (CURSO),A JR LOOPC IOEND: LD HL,JPTAB LD DE,(CURSO) LD D,0 SRL E ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL JP (HL) ICON: XOR A LD (CURSO),A LD A,4 LD (0B781H),A LD HL,0 LD (0B7AAH),HL LD HL,TAB LD B,160 ICONT: CALL LAB23 LD A,(0B7A1H) CP 5 INC HL JR Z,NEL INC A LD (0B7A1H),A LD A,(CURSO) SUB 2 LD (CURSO),A JR ICONT NEL: DEC A LD (0B7A1H),A LD A,(CURSO) CP 38 RET Z ADD A,2 LD (CURSO),A JR ICONT LAB23: LD A,(HL) LD (0B7A3H),A LD A,B CALL SYS NOP INC B LD A,B CALL SYS NOP INC B RET DEL: LD A,(COL) LD L,A LD A,(RANDL) CP L JP NC,LOOP2 LD A,L LD B,A LD A,80 SUB B LD C,A LD B,0 LD HL,(ADR) LD D,H LD E,L DEC DE LDIR LD A,32 LD (DE),A CALL PLINE LD A,(COL) DEC A LD (COL),A LD HL,(ADR) DEC HL LD (ADR),HL JP LOOP2 JUST: LD A,(COL) LD HL,(ADR) CALL JUS CALL PLINE JP LOOP2 SJUS: LD A,(FLAG) XOR 16 LD (FLAG),A JP CAPS BLORD: XOR A LD (TOD),A LD A,(RANDR) LD D,A LD A,(RANDL) LD E,A LD A,(COL) CP D JP NC,LOOP2 CP E JP C,LOOP2 LD C,A LD A,D SUB C LD (ORD),A LD (ORDO),A LD A,80 SUB D ADD A,E LD L,A LD H,0 LD (SUM),HL LD A,D SUB E LD (HOCOL),A LD HL,(ADR) LD A,(ORD) LD B,A FFC: LD A,(HL) CP 32 JR Z,FCF INC HL DJNZ FFC CALL NEWLI JR FFC FCF: LD A,B LD (ORD),A LD (ORDO),A LD (ADRO),HL LD (WW),HL SNW: LD A,(ORD) LD B,A LD C,0 LD HL,(WW) SNWL: LD A,(HL) CP 32 JR NZ,LENNW INC HL DJNZ SNWL LD A,B JP EOSL LENNW: LD A,(HL) CP 32 JR Z,COW INC C INC HL DJNZ LENNW COW: LD (WW),HL LD A,B LD (ORD),A LD A,(ORDO) LD HL,(ADRO) INC C LD B,A CP C JR NC,COW1 CP 0 JR Z,NLI LD A,(TOD) CP 0 JR Z,LFD INC HL DEC B JR Z,NLI INC HL DEC B JR Z,NLI LFD: LD (HL),32 INC HL DJNZ LFD NLI: XOR A LD (TOD),A CALL NEWLI COW1: LD A,(HOCOL) LD D,A LD A,B CP D JR NZ,STCR DEC C STCR: LD (FROMD),A SUB C LD (ORDO),A LD B,0 EX DE,HL LD HL,(WW) OR A SBC HL,BC UM: LD A,(TOD) CP 0 JR Z,UMS INC DE INC HL UMS: LDIR CP 0 JR Z,COK2 DEC HL DEC DE COK2: LD A,(ORDO) CP 0 JR Z,CUKUK LD A,32 LD (DE),A CUKUK: XOR A LD (TOD),A DEC DE LD A,(DE) CP 45 JR Z,COK1 COK5: INC DE JR COK3 COK1: DEC DE LD A,(DE) CP 32 JR NZ,COK4 INC DE JR COK5 COK4: LD A,(ORDO) ADD A,2 CALL CHECK LD (ORDO),A LD (TOD),A COK3: LD (ADRO),DE LD A,(ORD) EOSL: CP 0 LD B,A JR NZ,COW2 CALL NEWLI LD A,(HL) CP 32 JR Z,BES COW2: LD A,B LD (ORD),A LD (WW),HL JP SNW BES: LD BC,(RANDL) LD B,0 OR A SBC HL,BC LD (WW),HL LD HL,(ADRO) LD A,(ORDO) LD B,A INC B DEC HL LD A,(RANDR) SUB B LD B,A LD A,80 SUB B JR Z,LLE LD B,A LL: INC HL LD (HL),32 DJNZ LL LLE: EX DE,HL LD HL,(FMEM) LD BC,(WW) OR A SBC HL,BC LD B,H LD C,L LD HL,(WW) LDIR LD HL,(FMEM) XOR A SBC HL,DE LD B,H LD C,L LD H,D LD L,E INC DE CP B JR NZ,DELOK CP C JR Z,VGL DELOK: DEC BC LD (HL),32 LDIR VGL: LD A,(FLAG) BIT 4,A JR Z,BLEND BLAJU: LD A,(RANDL) LD B,A LD A,(COL) SUB B LD C,A LD B,0 OR A LD HL,(ADR) SBC HL,BC LD (ORD),HL LOOPX: LD A,(FLAG) BIT 4,A LD A,(RANDL) LD HL,(ORD) JR Z,CUNJU CALL JUS JR CUNJE CUNJU: CALL UNJUS CUNJE: LD HL,(ORD) LD BC,80 ADD HL,BC LD (ORD),HL LD A,32 CP (HL) JR Z,BLEND JR LOOPX BLEND: CALL PPAGE JP CAPS LOFB: LD (IX+5),0 LD (IX+6),0B7H CALL SYS DEFB 10 LD A,33 JR NC,LOFOK LD A,63 LOFOK: CALL SYS NOP RET TXEND: CALL TXE RET C CALL PREOT TXL: CALL TXE JR NC,TXL CALL PPAGE CALL ISL RET TXE: LD HL,(FMEM) LD DE,0FF60H LD A,(ADR+1) ADD HL,DE CP H RET C JR NZ,CURL LD A,(ADR) CP L RET C CURL: LD HL,(ADR) LD BC,79 SCF SBC HL,BC LD (ADR),HL LD HL,(PAGE) SCF SBC HL,BC LD (PAGE),HL LD HL,(MEML) DEC HL LD (MEML),HL OR A RET PREOT: LD HL,0F0CH ; ??????????????????? LD (CURSO),HL LD A,(COLOR) LD (0B7A3H),A CALL SYS DEFB 23H DEFM 'End of workspace' NOP JR WTSEC PRTOT: LD HL,0F0CH LD (CURSO),HL LD A,(COLOR) LD (0B7A3H),A CALL SYS DEFB 23H DEFM 'Top of workspace' NOP WTSEC: LD A,255 CALL SYS DEFB 14H RET SURE: LD HL,0F11H LD (CURSO),HL LD A,(COLOR) LD (0B7A3H),A CALL SYS DEFB 23H DEFM 'Sure ?' NOP CALL KEY1 CALL INPUT CP 121 PUSH AF CALL PPAGE CALL ISL POP AF JP Z,BROT JP LOOP2 OOM: JR NZ,POM LD A,C CP L RET C POM: LD HL,900H LD (CURSO),HL CALL SYS DEFB 23H DEFM 'Memory full' NOP CALL WTSEC POP HL JP IOMEN NPAGE: LD A,(FLAG) BIT 3,A JR Z,SCRO LD HL,(PAGE) LD DE,2560 ADD HL,DE LD (PAGE),HL CALL PPAGE XOR A LD (LINE),A CALL ISL RET SCRO: CALL UPS LD HL,(PAGE) LD DE,80 ADD HL,DE LD (PAGE),HL CALL PLINE CALL ISL RET CHECK: PUSH HL PUSH AF LD A,(ORD) CP 0 JR Z,CHEND LD B,A LD A,32 CHLOO: CP (HL) JR NZ,CHEOL INC HL DJNZ CHLOO CHEND: POP AF POP HL RET CHEOL: POP AF POP HL SUB 2 INC DE INC DE LD (HL),32 RET SINS: LD A,(COL) CP 79 JP Z,LOOP2 LD D,A LD A,80 SUB D LD HL,(ADR) LD C,A LD B,0 ADD HL,BC LD (WW),HL LD (SUM),BC LD DE,80 ADD HL,DE EX DE,HL LD HL,(FMEM) OR A SBC HL,DE LD B,H LD C,L LD HL,(FMEM) LD DE,80 SCF SBC HL,DE LD DE,(FMEM) DEC DE LDDR INC HL LD (HL),32 LD D,H LD E,L INC DE LD BC,79 LDIR LD HL,(ADR) LD DE,(WW) LD BC,(RANDL) LD B,0 EX DE,HL ADD HL,BC LD BC,(SUM) EX DE,HL LDIR LD HL,(ADR) LD DE,(ADR) INC DE LD BC,(SUM) DEC BC LD (HL),32 LDIR CALL PPAGE CALL ISL JP LOOP2 SDEL: LD BC,(COL) LD B,0 LD HL,(ADR) OR A SBC HL,BC LD D,H LD E,L LD BC,80 ADD HL,BC LD (WW),HL LD BC,(WW) LD HL,(FMEM) OR A SBC HL,BC LD B,H LD C,L LD HL,(WW) LDIR EX DE,HL DEC HL LD (HL),32 LD D,H LD E,L INC HL LD BC,79 LDIR CALL PPAGE CALL ISL JP LOOP2 STAT: LD A,(FLAG) BIT 5,A JR Z,STBI LD HL,(COL) CALL BELL LD A,(FLAG) RES 5,A JR FLAGL STBI: SET 5,A FLAGL: LD (FLAG),A CALL ISL JP LOOP2 PSL: LD A,(FLAG) BIT 5,A RET Z LD HL,(COL) LD (WW),HL LD A,8 CP H JP NC,LINES LD HL,(ADR) LD (ADRO),HL LD HL,2048 LD (COL),HL LD HL,TAB2 LD (ADR),HL LD B,80 PLOOP: LD A,147 LD (SUM),BC CALL SHOW LD BC,(SUM) LD A,(COL) INC A LD (COL),A DJNZ PLOOP LD A,(FLAG) BIT 2,A LD C,20 JR NZ,MON1 CALL OFF JR MON1E MON1: CALL MON MON1E: BIT 3,A LD C,37 JR NZ,MON2 CALL OFF JR MON2E MON2: CALL MON MON2E: BIT 4,A LD C,28 JR NZ,MON3 CALL OFF JR MON3E MON3: CALL MON MON3E: BIT 1,A LD C,63 JR NZ,MON4 CALL OFF JR MON4E MON4: CALL MON MON4E: LD A,(RANDL) LD (COL),A LD A,149 CALL SHOW LD A,(RANDR) DEC A LD (COL),A LD A,149 CALL SHOW LD A,(BELL) END2T: ; ORG 0D3E6H ;Seite 032H SUB 2 LD (COL),A LD A,(FLAG) BIT 7,A JR Z,BOK INC A LD (FLAG),A BOK: LD A,146 CALL SHOW LD A,(FLAG) AND 254 LD (FLAG),A LD HL,0 LD (COL),HL LD HL,(RANDL) LD H,0 CALL BCD LD DE,TAB2+46 CALL PVAL LD HL,(RANDR) LD H,0 DEC L CALL BCD LD DE,TAB2+55 CALL PVAL LD A,(IX+15) CP 0BDH LD HL,TAB2+76 JR Z,KEY00 LD (HL),39 JR KEY01 KEY00: LD (HL),42 KEY01: CALL PLINE LE: LD HL,(WW) LD (COL),HL LD HL,(ADRO) LD (ADR),HL RET LINES: LD A,(8004H) LD HL,(WW) LD (COL),HL CP 7 RET NZ DELL: LD (WW),HL LD HL,(ADR) LD (ADRO),HL LD HL,0 LD (COL),HL LD HL,(PAGE) LD (ADR),HL CALL PLINE ;Seite 033H LD HL,(ADR) LD BC,80 ADD HL,BC LD (ADR),HL LD A,8 LD (LINE),A CALL PLINE JR LE PCOL: LD HL,(COL) LD (WW),HL LD A,8 CP H JP NC,DELLI LD H,0 CALL BCD LD A,L AND 240 RRCA RRCA RRCA RRCA LD H,A LD A,L AND 15 LD L,A XOR A LD (LINE),A LD A,14 LD (COL),A LD A,H ADD A,48 LD (ORD),HL CALL SHOW LD A,15 LD (COL),A LD A,(ORD) ADD A,48 CALL SHOW LD HL,(WW) LD (COL),HL LD HL,(MEML) LD A,(MEML2+1) CP H JR NZ,PMLI LD A,(MEML2) CP L RET Z PMLI: CALL BCD XOR A LD (COL),A LD (LINE),A ;Seite 034H LD A,H AND 15 LD B,A LD A,6 LD (COL),A LD (SUM),HL LD A,B ADD A,48 CALL SHOW LD HL,(SUM) LD A,L SRL A SRL A SRL A SRL A LD (SUM),HL ADD A,48 LD B,A LD A,7 LD (COL),A LD A,B CALL SHOW LD HL,(SUM) LD A,15 AND L LD L,A LD A,8 LD (COL),A LD A,L ADD A,48 CALL SHOW LD HL,(MEML) LD (MEML2),HL LD HL,(WW) LD (COL),HL RET DELLI: LD HL,(WW) JP LINES UNJUS: LD D,A LD A,(RANDL) LD E,A LD A,(RANDR) DEC A SUB D RET C LD C,A LD B,0 PUSH HL ADD HL,BC LD A,(RANDR) SUB E ;Seite 035H LD B,A LD A,32 CP (HL) JR NZ,UWF LOO5: CP (HL) JR NZ,UWF DEC HL DJNZ LOO5 POP HL RET UWF: INC HL LD (WW),HL POP HL LD A,D SUB E RET C LD C,A LD B,0 OR A SBC HL,BC LD A,32 LOO6: CP (HL) JR NZ,LOO6E INC HL JR LOO6 LOO6E: CP (HL) JR Z,UWF2 INC HL JR LOO6E UWF2: LD BC,(WW) LD A,H CP B JR C,UINI JR Z,UCZER RET UCZER: LD A,L CP C RET NC UINI: LD A,32 INC HL CP (HL) JR NZ,USNW LD (SUM),HL EX DE,HL LD HL,(WW) SCF SBC HL,DE LD B,H LD C,L LD HL,(SUM) INC HL LDIR ;Seite 036H DEC HL LD (HL),32 LD HL,(WW) DEC HL LD (WW),HL LD HL,(SUM) DEC HL JR UINI USNW: LD A,32 JR LOO6E WRIGH: LD A,(RANDR) LD B,A LD A,(COL) CP B JP NC,LOOP2 LD C,A LD A,B SUB C LD B,A LD HL,(ADR) LD A,32 LOO1: CP (HL) JR Z,LOO2 INC HL DJNZ LOO1 LD HL,(ADR) JP ENTER LOO2: CP (HL) JR NZ,ENDWR INC HL DJNZ LOO2 LD HL,(ADR) JP ENTER ENDWR: LD A,(RANDR) SUB B LD (COL),A LD (ADR),HL JP LOOP2 WLEFT: LD A,(RANDL) LD B,A LD A,(COL) CP B JP C,LOOP2 INC A SUB B LD B,A LD HL,(ADR) LD A,32 LOO3: CP (HL) JR Z,LOO4 DEC HL ;Seite 037H DJNZ LOO3 JR ENEWL LOO4: CP (HL) JR NZ,ENDWL DEC HL DJNZ LOO4 JR ENEWL ENDWL: LD A,(RANDL) DEC B ADD A,B LD (COL),A LD (ADR),HL JP LOOP2 ENEWL: LD A,(RANDL) LD B,A LD A,(RANDR) DEC A LD (COL),A INC A SUB B LD C,A LD B,0 ADD HL,BC JP CUP UJUST: LD A,(COL) LD HL,(ADR) CALL UNJUS CALL PLINE JP LOOP2 SAVE: CALL FROM CALL TO CALL NAME LD (WW),HL LD HL,(FROMD) XOR A CP H JR NZ,SOK LD HL,(TOP) LD (FROMD),HL SOK: LD HL,(TOD) CP H JR NZ,SOK1 CALL BOTO LD (TOD),HL SOK1: LD BC,8000 LD (IX+5),0 LD (IX+6),0B7H LD HL,(FROMD) LD (0B700H),HL LD HL,(TOD) LD (0B702H),HL ;Seite 038H CALL SYS DEFB 8 LD HL,(FROMD) LD (0B782H),HL LD HL,(TOD) LD (0B784H),HL LD A,2 LD (0B781H),A LD HL,(WW) CALL SYS DEFB 36H JP IOMEN LOAD: CALL FROM CALL LOFB LD DE,(0B700H) LD HL,(0B702H) LD BC,(FROMD) XOR A CP B JR NZ,OK0 LD BC,(0B700H) LD (FROMD),BC OK0: OR A SBC HL,DE EX DE,HL LD HL,(FMEM) OR A SBC HL,DE LD D,H LD E,L LD A,B CP H CALL NC,OOM XOR A SBC HL,BC LD B,H LD C,L LD HL,(FMEM) EX DE,HL DEC HL DEC DE LDDR LD DE,(0B700H) OR 1 LD HL,(FROMD) SBC HL,DE LD (0B782H),HL LD (0B781H),A CALL SYS DEFB 16 JP IOMEN ;Seite 039H VERI: LD HL,1792 LD (0B7A2H),HL LD HL,2048 LD (CURSO),HL CALL LOFB CALL SYS DEFB 11H JP IOMEN BOARD: LD A,(IX+15) XOR 4 LD (IX+15),A JP CAPS PRINT: CALL FROM CALL TO CALL SPACE CALL IFAD1 LPA: LD DE,80 LD B,80 LD HL,(FROMD) ADD HL,DE LD (FROMD),HL LD A,32 LPB: DEC HL CP (HL) JR NZ,LPBEG DJNZ LPB JR POK LPBEG: LD HL,(FROMD) XOR A SBC HL,DE LPC: PUSH BC PUSH HL LD A,(HL) CP 128 JR C,LPC1 CP 144 JR NC,LPC1 LD DE,GTC AND 127 LD B,A JR Z,LPD SEC: LD A,(DE) CP 0DH INC DE JR NZ,SEC DJNZ SEC LPD: LD A,(DE) CP 0DH JR Z,COUT PUSH DE CALL IFAD2 ;Seite 03AH POP DE INC DE JR LPD LPC1: CALL IFAD2 COUT: POP HL POP BC INC HL DJNZ LPC POK: LD A,(ORD) LD B,A INC B LPF: PUSH BC LD A,13 CALL IFAD2 LD A,10 CALL IFAD2 POP BC DJNZ LPF LD HL,(FROMD) LD DE,(TOD) OR A SBC HL,DE JR C,LPA CALL IFAD3 JP IOMEN IFAD1: JP PIN IFAD2: JP PCH IFAD3: JP PCLOS SWIT: LD HL,32528 LD C,80H LD B,8 IN A,(C) CP 0F4H JR NZ,LSLOT MSET: LD A,43H OUT (C),A RET LSLOT: LD B,12 ;Schacht C IN A,(C) CP 0F4H JR Z,MSET CP 0F6H JR Z,MSET LD HL,16144 RET ; BACK: LD HL,TAB3 LD DE,FLAG LD BC,16 LDIR LD A,81 LD (BELL),A RET ;Seite 03BH RETU: CALL SWIT ;Modulswitch LD (FMEM),HL CALL CLS CALL SETCO CALL PPAGE CALL ISL LD HL,0B900H LD A,(COLOR) LD (0B7A3H),A LD (IX+14),L LD (IX+15),H JP LOOP2 BELLS: LD A,(COL) ADD A,2 LD (BELL),A JP CAPS SPACE: LD HL,2560 LD (CURSO),HL CALL SYS DEFB 23H DEFM 'LINE' NOP LD HL,2565 CALL INPAT XOR A CP H RET NZ CP L RET NZ LD (ORD),A RET TALES: LD HL,0DAF8H LD BC,44H LD DE,0BD80H LDIR LD BC,14H LD DE,0B7E0H LDIR LD BC,50H LD DE,200H LDIR LD BC,180H LD DE,0 LDIR LD BC,1E0H LD DE,0BA00H LDIR LD BC,80H LD DE,0B900H LDIR LD BC,80H ;Seite 03CH LD BC,0BD00H LDIR LD HL,JTA LD DE,JPTAB LD BC,14H LDIR LD HL,TAB24 LD DE,RAM24 LD BC,8 LDIR RET ; CLR: CALL SWIT ; CALL QUEST ;?????????? ; JR Z,CLR1 POP HL JP BEGIN ; CLR1: LD HL,8000H LD (FMEM),HL CALL CLEAR RET ; FIRST: CALL BACK CALL CLR CALL TALES JP RETU ; JTA: DEFW RETU DEFW SAVE DEFW LOAD DEFW VERI DEFW PRINT DEFW IOMEN DEFW IOMEN DEFW IOMEN DEFW IOMEN DEFW IOMEN WORD EQU 0 TAB3: DEFB 0 DEFW 80 DEFW 300H DEFW 0 DEFW 0 DEFW 300H DEFW 3FFFH DEFW 300H DEFB 7 PIN: LD B,40H LD C,80H PIN1: IN A,(C) CP 0EEH JR Z,PIOK DEC B LD A,B CP 10H JR NC,PIN1 POP HL JP IOMEN ;Seite 03DH PIOK: LD L,B LD A,2 LD D,1 CALL SYS DEFB 26H LD C,0CH LD B,2 LD HL,RAM24 DI OTIR LD C,0AH LD B,6 OTIR EI RET PCH: PUSH AF PCH1: IN A,(0AH) BIT 2,A JR NZ,PUT LD A,1 CALL SYS DEFB 14H JR PCH1 PUT: POP AF OUT (8),A RET PCLOS: RET TAB24: DEFB 47H DEFB 5BH DEFB 4 DEFB 4 DEFB 3 DEFB 20H DEFB 5 DEFB 6AH TV24 EQU TAB24 IOTAB EQU JPTAB IF3 EQU IFAD3 IF2 EQU IFAD2 IF1 EQU IFAD1 SYST EQU TAB3 ;--------------------------------------- DEFW 7F7FH DEFM 'WORDPRO' DEFB 1 LD A,7 LD (COLOR),A BEGIN: LD (IX+14),0 LD (IX+15),0DFH LD A,(COLOR) LD (0B7A3H),A CALL CLS CALL SETCO LD HL,8 LD (CURSO),HL CALL SYS DEFB 23H DEFM 'WordPro 87 * Main Menu' DEFB 0DH DEFW 0A0AH DEFW 10 LD B,40 PRLOO: LD A,'-' CALL SYS DEFB 0 DJNZ PRLOO CALL SYS DEFB 23H DEFB 10 DEFM ' First Clear ' DEFM 'Tables Back ' DEFW 0A0DH DEFB 10 DEFM ' Return V24-Init' DEFM ' Invert System' DEFW 0A0DH DEFW 10 CALL SYS DEFB 4 BCP: CP 'f' JP Z,FIRST CP 'c' CALL Z,CLR CP 't' CALL Z,TALES CP 'b' CALL Z,BACK CP 'r' JP Z,RETU CP 'v' JR Z,V24IN CP 's' JP Z,0E000H CP 'i' JR Z,INV JP BEGIN INV: LD HL,(COLOR) LD A,3FH SUB L LD (COLOR),A JP BEGIN V24IN: CALL SYS DEFB 23H DEFM '1) 9600 2) 1200' DEFM ' 3) 150' DEFW 0A0DH DEFW 10 AG1: CALL SYS DEFB 4 SUB '1' JR C,AG1 CP 3 JR NC,AG1 LD D,A ADD A,A ADD A,D LD C,A LD B,0 LD HL,LDTAB ADD HL,BC LD A,(HL) LD (RAM24),A INC HL LD A,(HL) LD (RAM24+1),A INC HL LD A,(HL) LD (RAM24+3),A CALL SYS DEFB 23H DEFM 'Bits/Char?' DEFW 0A0DH DEFW 10 AG2: CALL SYS DEFB 4 SUB '7' JR C,AG2 CP 2 JR NC,AG2 LD B,59H OR A LD A,6AH ;Seite 040H JR NZ,LVOK INC B LD A,2AH LVOK: LD (RAM24+7),A CALL SYS DEFB 23H DEFM 'Stopbits?' DEFW 0A0DH DEFW 10 AG3: CALL SYS DEFB 4 SUB '1' JR C,AG3 CP 2 JR NC,AG3 OR A JR Z,C1200 LD A,(RAM24+3) ADD A,8 LD (RAM24+3),A JR CTRLQ C1200: LD A,D CP 1 JR NZ,CTRLQ LD A,B LD (RAM24+1),A CTRLQ: CALL SYS DEFB 23H DEFM 'Seq?' NOP CALL SYS DEFB 4 CP 'n' JP NZ,BEGIN LD HL,0BD80H LD DE,0BD81H LD BC,16 LD (HL),13 LDIR JP BEGIN ; LDTAB: DEFW 5B47H DEFB 4 DEFW 5007H DEFB 4 DEFW 5B47H DEFB 0C4H END