; TEXT-EDITOR 6/8 ; Anders Franz`n <5258> ; Stockholm april 1985 ; Uppdaterad juli 1985 S\KTEXT LD HL,S\KT1 LD C,S\KT2-S\KT1 CALL CUR Skriv fr}ga LD HL,255:129 LD C,20 PUSH HL CALL 0:5 H{mta s|kt text POP HL LD A,(HL) CP 13 Tom rad ? JPZ TANGENT Ja, ignorera LD HL,0 LD (S\KACK),HL LD A,255 LD (S\KFLG),A S\KIGEN CALL FR]NBUFF Spara rad JPC TANGENT Minnet fullt CALL S\K JPNZ TANGENT Hoppa om saknas JP SIDTEST Visa sida S\KT1 DEFM "S\KT TEXT ?" S\KT2 EQU $ BYTTEXT CALL FR]NBUFF JPC TANGENT Minnet fullt CALL BYTFR]GA Fr}ga om text JPZ TANGENT Hoppa om fel CALL S\K Leta s|kt text JPNZ TANGENT Text ej hittad LD HL,BYTT1 LD C,BYTTKN-BYTT1 CALL CUR JP SIDTEST Visa sida BYTT1 DEFM "CR=slut h|gerpil=" DEFM "s|k \VR=byt A=alla" BYTTKN AND 223 G|r versal CP 13 Ska byte sluta ? JPZ RETURN Ja, hoppa CP "A" Byta allt ? JRZ BYTALLT Ja, hoppa CP 9 Ska byte ske ? CALLNZ BYT Ja, byt ut text JPC TANGENT Minnet fullt CALL S\K Leta s|kt text LD A,255 LD (SIDFLG),A Sida ska visas JP SIDTEST Fixa \VERST BYTALLT CALL BYT Byt ut text RETC Minnet fullt LD A,(254:7) CTRL-C ? AND A LD A,255 RETNZ Ja, retur CALL S\K S|k vidare JRZ BYTALLT Igen om hittad LD A,255 LD (SIDFLG),A Sida ska visas LD A,(SCRFLG) AND A JPZ SIDTEST LD A,(T\MFLG) AND A JPZ SIDTEST LD HL,(RAD) LD (\VERST),HL XOR A RET Visa sida S\K LD DE,(RAD) Rad f|r mark|r LD BC,(KOL) Kolumn mark|r INC BC N{sta kolumn LD A,C CP 160 Sista kolumnen ? JRC S\K1 Nej, hoppa INC DE Ja, tag n{sta LD BC,0 rad ! S\K1 PUSH DE Spara rad PUSH BC Spara kolumn CALL TILLBUFF H{mta rad LD HL,(SAKNAS) LD A,H [r det slut p} OR L alla rader ? JRNZ S\K7 Ja, text saknas POP BC Kolumnnr LD HL,160 XOR A SBC HL,BC PUSH HL LD HL,BUFF1 Rad att leta i ADD HL,BC F|rsta position POP BC LD E,A LD D,A DE=noll PUSH DE Spara ny kolumn S\K2 LD DE,255:129 S|kt text LD A,(DE) F|rsta s|kta tkn CPIR Finns tecken ? JRNZ S\K5 Nej, n{sta rad PUSH HL PUSH BC S\K3 INC DE LD A,(DE) N{sta s|kta tkn CP 13 Slut p} rad ? JRZ S\K6 Ja, text hittad LD A,B [r aktuell rad OR C slut ? JRZ S\K4 Ja, n{sta rad LD A,(DE) CPI Samma tecken ? JRZ S\K3 Ja, n{sta tecken S\K4 POP BC POP HL JRZ S\K5 JPPE S\K2 S\K5 POP BC Kolumn POP DE Radnummer INC DE Tag n{sta rad JR S\K1 Forts{tt leta S\K6 POP BC POP HL LD HL,159 AND A SBC HL,BC LD (KOL),HL Placera mark|r POP BC Kolumn LD HL,(S\KACK) INC HL LD (S\KACK),HL POP HL Radens nummer LD (RAD),HL Spara rad CALL RJUST Justera radl{ngd CP A Flagga hittad RET S\K7 POP BC Ta bort kolumnnr POP DE Ta bort radnr CALL BLANK Blanka rad 23 LD HL,(S\KACK) LD A,H OR L JRNZ S\K8 LD HL,S\K10 LD C,S\K11-S\K10 CALL CUR Skriv text JR S\K9 S\K8 PUSH HL LD HL,S\K11 LD C,S\K12-S\K11 CALL CUR POP HL CALL SKRIVTAL S\K9 XOR A LD (S\KFLG),A LD (BYTFLG),A INC A Flagga saknas RET Tag ny tangent S\K10 DEFM "S\KT TEXT FINNS EJ." S\K11 DEFM "ANTAL TR[FFAR : " S\K12 EQU $ BYTFR]GA LD HL,BYT3 LD C,BYT4-BYT3 CALL CUR Skriv fr}ga LD HL,255:129 LD C,17 PUSH HL CALL 0:5 H{mta s|kt text POP DE AND A SBC HL,DE L{ngd p} text RETZ Ignorera om noll LD (255:180),HL CALL BLANK Blanka rad 23 LD HL,BYT4 LD C,BYT5-BYT4 CALL CUR Skriv fr}ga LD HL,255:150 LD C,16 PUSH HL CALL 0:5 H{mta ny text POP DE AND A SBC HL,DE L{ngd p} text RETZ Ignorera om noll LD (255:182),HL LD HL,0 LD (S\KACK),HL XOR A LD (S\KFLG),A DEC A LD (BYTFLG),A RET BYT LD HL,BUFF1 LD BC,(KOL) ADD HL,BC PUSH HL Spara position LD C,L BC=f|rsta pos LD B,H LD HL,(255:180) L{ngd gammal LD DE,(255:182) L{ngd ny text AND A SBC HL,DE J{mf|r l{ngd JRZ BYT2 Lika l{ngd JRC BYT1 Ny text l{ngre EX DE,HL ADD HL,BC Att flytta till PUSH HL ADD HL,DE Att flytta fr}n EX DE,HL LD HL,BUFF1+160 AND A SBC HL,DE EX (SP),HL EX DE,HL POP BC JRZ BYT2 LDIR Ta bort tecknen LD HL,BUFF1+159 AND A SBC HL,DE LD C,L BC=antal tecken LD B,H borta i rad LD L,E LD H,D LD (HL),32 L{gg ner space JRZ BYT2 INC DE LDIR Blanka resten JR BYT2 BYT1 LD DE,BUFF1+159 ADD HL,DE PUSH HL AND A SBC HL,BC EX (SP),HL POP BC JRZ BYT2 JRC BYT2 LDDR G|r plats BYT2 POP DE Position i rad LD BC,(255:182) LD HL,255:150 LDIR CALL FR]NBUFF RET BYT3 DEFM "TEXT ATT BYTA UT ?" BYT4 DEFM "TEXT ATT BYTA TILL ?" BYT5 EQU $