; TEXT-EDITOR 5/8 ; Anders Franz`n <5258> ; Stockholm april 1985 ; Uppdaterad juli 1985 CTRL1 DEFB 3,9,10,13 Otill}tna CTRL CTRL2 DEFM "ANGE CTRL-TKN." CTRL LD HL,(253:243) PUSH HL Spara mark|r LD HL,CTRL2 LD C,CTRL-CTRL2 CALL CUR POP HL LD (253:243),HL CALL GET H{mta tangent CP 64 Bokstav ? JPC TAN14 Nej, fel tkn AND 223 G|r versal SUB 64 G|r CTRL-tkn LD HL,CTRL1 LD C,4 OBS att B=noll! CPIR Godk{nt tkn ? JPZ TAN14 Nej, hoppa LD HL,MAXFLG Uppdatera INC (HL) virtuell kolumn ; Forts{tt ner i TANGENT TECKEN CALL UPPDAT Uppdatera raden LD A,(ORDFLG) AND A Ord-mode ? JRZ TECK3 Nej, hoppa LD BC,(HMARG) LD A,C AND A Finns marginal? LD A,(L[NGD) JRZ TECK1 Nej, hoppa CP C Marg > radl{ngd? JRC TECK1 Ja, hoppa LD A,C TECK1 LD BC,(KOL) INC C Skriver vi i CP C marginalen ? JRZ TECK2 JRNC TECK3 Nej, hoppa TECK2 LD A,32 Var sista CP (HL) tecknet space ? JRZ TECK3 Ja, hoppa LD E,C CPDR Leta space JRNZ TECK3 Ej hittat INC BC Mark|r placeras LD (KOL),BC p} sista ordet LD D,C PUSH DE CALL BRYT Bryt av raden POP DE JPC TANGENT Minnet fullt LD A,E Fixa mark|rens SUB D placering p} LD (KOL),A den nya raden JP SIDTEST Fixa \VERST TECK3 CALL SKRIVRAD Skriv ut raden JR H\GERPIL Flytta mark|r UPPDAT LD HL,BUFF1 LD BC,(KOL) ADD HL,BC Peka p} tecken PUSH AF under mark|r LD A,(INSFLG) Ska tecken AND A skjutas in ? CALLNZ INSERT Ja, g|r plats POP BC B = nya tecknet LD A,255 LD (SPRFLG),A LD A,(HL) Gammalt tecken LD (HL),B L{gg ner tecken CP 32 CTRL-tecken? RETNC Nej, retur CP 6 Slut grafik? RETZ Ja, retur CP 23 Start grafik? RETZ Ja, retur LD HL,MAXFLG DEC (HL) RET INSERT PUSH DE PUSH BC EX DE,HL LD HL,BUFF1+159 PUSH HL AND A SBC HL,DE EX (SP),HL POP BC LD E,L LD D,H JRZ INSERT1 DEC HL LDDR Flytta }t h|ger EX DE,HL INSERT1 POP BC POP DE RET TILLTAB LD C,A LD A,(S\KFLG) AND A JPNZ S\KIGEN LD A,C LD HL,(L[NGD) DEC HL LD BC,(KOL) AND A SBC HL,BC JRZ H\GERPIL LD C,L LD B,H LD HL,TABRAD1 LD DE,(KOL) ADD HL,DE INC HL LD A,'' CPIR JRNZ H\GERPIL LD HL,(L[NGD) DEC HL AND A SBC HL,BC LD (KOL),HL JP TANGENT H\GERPIL LD A,(KOL) INC A LD (KOL),A LD HL,(L[NGD) LD A,(MAXFLG) INC A CP L JPC TANGENT RETURN XOR A LD (KOL),A LD (S\KFLG),A Avbryt s|kning LD (BYTFLG),A och utbyte NER CALL FR]NBUFF LD HL,(RAD) INC HL LD (RAD),HL JP SIDTEST V[NSTPIL LD E,A LD A,(KOL) DEC A LD (KOL),A INC A Utanf|r raden? JPNZ TANGENT Nej, hoppa LD A,E CP 8 Piltangent ? LD A,(L[NGD) JRNZ V[N1 Nej, hoppa LD A,1 V[N1 DEC A LD (KOL),A UPP CALL FR]NBUFF LD HL,(RAD) DEC HL Befinner vi oss LD A,H p} den |versta OR L raden ? JPZ TANGENT Ja, hoppa LD (RAD),HL Spara ny rad JP SIDTEST HOME CALL FR]NBUFF LD HL,(\VERST) LD (RAD),HL XOR A LD (KOL),A JP TANGENT FRAMSIDA CALL FR]NBUFF LD A,(SCRFLG) AND A Scroll-mode ? JRZ FRA1 Nej, hoppa LD HL,(\VERST) INC HL LD (\VERST),HL LD HL,(RAD) INC HL JR FRA2 FRA1 LD HL,(RAD) LD DE,(SIDSTORL) ADD HL,DE FRA2 LD (RAD),HL XOR A RET BAKSIDA CALL FR]NBUFF LD DE,(SIDSTORL) LD A,(SCRFLG) AND A Scroll-mode ? JRZ BAK1 Nej, hoppa LD DE,1 BAK1 LD HL,(RAD) AND A SBC HL,DE JPC TANGENT JPZ TANGENT LD (RAD),HL LD A,(SCRFLG) AND A Scroll-mode ? RETZ Nej, retur LD HL,(\VERST) DEC HL LD A,H OR L JPZ TANGENT LD (\VERST),HL XOR A RET F\RSIDA CALL FR]NBUFF LD HL,1 F|rsta raden LD (RAD),HL i texten XOR A LD (KOL),A JP SIDTEST SISTSIDA CALL FR]NBUFF XOR A LD (KOL),A CALL R[KNA EX DE,HL HL=antal rader LD A,H som finns i TED OR L JRNZ SIS1 INC HL SIS1 LD (RAD),HL JP SIDTEST INSLINE CALL FR]NBUFF JPC TANGENT Minnet fullt CALL INSL Skjut in en rad JPC TANGENT Minnet fullt XOR A RET Visa sida INSL LD HL,(SAKNAS) LD A,H OR L AND A Clear carry RETNZ Rad saknas LD DE,(EOT) INC DE LD HL,(MAX) AND A SBC HL,DE JPC ERR Minnet fullt LD HL,(PRAD) EX DE,HL SBC HL,DE RETZ Rad saknas LD C,L LD B,H LD HL,(EOT) LD E,L LD D,H INC DE LD (EOT),DE LDDR LD A,1 LD (DE),A LD (BRAD),BC AND A RET HM[RKE LD BC,(HMARG) DEC BC LD HL,0 LD (HMARG),HL LD HL,TABRAD1 ADD HL,BC LD A,C INC A JRNZ TAB2 LD HL,TABRAD1 LD BC,(KOL) ADD HL,BC LD (HL),"#" INC BC LD (HMARG),BC JP TANGENT TAB LD HL,TABRAD1 LD BC,(KOL) ADD HL,BC LD A,(HL) CP "" JRZ TAB2 CP "#" JRNZ TAB1 XOR A LD (HMARG),A TAB1 LD (HL),"" JP TANGENT TAB2 EX DE,HL LD HL,TABRAD2 ADD HL,BC LD A,(HL) LD (DE),A JP TANGENT DELCHAR LD HL,BUFF1 LD BC,(KOL) ADD HL,BC EX DE,HL LD HL,BUFF1+159 AND A SBC HL,DE JRZ DELCH1 LD C,L LD B,H LD L,E LD H,D INC HL LD A,B OR C LDIR DELCH1 LD A,32 LD (DE),A LD (SPRFLG),A CALL SKRIVRAD JP TANGENT DELLINE CALL FR]NBUFF LD HL,(PRAD) PUSH HL LD C,(HL) LD B,0 ADD HL,BC EX DE,HL LD HL,(EOT) AND A SBC HL,DE EX (SP),HL POP BC EX DE,HL LD A,B OR C JRZ DELL1 LDIR DELL1 EX DE,HL LD (HL),C LD (EOT),HL LD (BRAD),BC XOR A RET SCRMODE CALL FR]NBUFF LD A,(SCRFLG) XOR 255 LD (SCRFLG),A JR SK[3 T|m sk{rm RADL[NGD CALL FR]NBUFF LD A,(L[NGD) LD H,40 ADD H \ka radl{ngd CP 200 St|rre {n max? JRNZ RAD1 Nej, hoppa LD A,H Ja, s{tt 40 RAD1 LD (L[NGD),A LD L,A LD A,(KOL) ADD H RAD2 SUB H CP L JRNC RAD2 LD (KOL),A PUSH HL LD HL,RAD3 LD BC,SK[RMBRE-RAD3 CALL CUR POP HL LD H,B HL=radl{ngden CALL SKRIVTAL JR SK[2 RAD3 DEFM "RADL[NGD: " SK[RMBRE CALL FR]NBUFF LD A,(1:216) LD B,A LD C,4 CP 40 JRZ SK[1 DEC C SK[1 IN A,(C) LD A,(1:216) CP B JPZ TANGENT CALL BLANK Blanka rad 23 SK[2 LD A,(SCRFLG) AND A Scroll-mode ? JRZ SK[3 Nej, hoppa LD HL,(RAD) LD (\VERST),HL SK[3 LD A,255 S{tt flagga LD (T\MFLG),A f|r formfeed XOR A RET