; TEXT-EDITOR 1/8 ; Anders Franz`n <5258> ; Stockholm april 1985 ; Uppdaterad juli 1985 SPACE EQU 34:74 Mellanslag DEVROT EQU 254:10 BOFA EQU 254:28 EOFA EQU 254:30 HEAP EQU 254:32 STACK EQU 254:39 BUFF1 EQU 254:64 160 bytes BUFF2 EQU 254:224 160 bytes ; Initieringsrutinen placeras i en ; kassettbuffert, d} initieringen {r ; gjord beh|vs ju ej rutinen l{ngre. ; P} detta vis sparas drygt 100 bytes. ORG 251:0 Kassettbuff ett INIT LD HL,(STACK) Spara 256 bytes LD DE,1:0 f|r stack! AND A SBC HL,DE LD (HL),1 NEW LD (BOFA),HL LD (EOFA),HL INC HL LD (HEAP),HL CLEAR DEC HL DEC HL LD (MAX),HL Max f|r text LD HL,SLUT Start f|r text LD (TXT),HL LD (EOT),HL Sista tkn i text LD (HL),0 Slutm{rke LD A,(1:216) Sk{rmbredd 40/80 LD (L[NGD),A S{tt radl{ngd LD HL,FILNAMN Inget default LD (HL),13 filnamn finns LD HL,(DEVROT) LD DE,L[NK INIT1 LD A,H Slut p} OR L enhets-lista ? JRZ INIT2 Ja, hoppa PUSH HL AND A SBC HL,DE Finns TED: redan POP HL i listan ? JPZ MENY Ja, hoppa LD A,(HL) Adress till INC HL n{sta l{nk LD H,(HL) LD L,A JR INIT1 Leta vidare INIT2 LD HL,(DEVROT) LD (L[NK),HL Spara TED: i LD HL,L[NK enhetslistan LD (DEVROT),HL JP MENY ; Nu f|ljer huvudprogrammet som alltid ; ligger under BOFA som h|jts av INIT. ; ORG 128:0 anv{nds om 32K ORG 192:0 annars f|r 16K ;Fasta hoppadresser f|r extra rutiner JP R[KNA JP TILLBUFF JP SPARRAD JPTAB JP MENY JP MENY JP MENY JP MENY JP MENY JP MENY JP MENY JP MENY JP MENY L[NK DEFS 2 DEFM "TED" DEFW JPTAB ; R{kna antal rader som finns i TED R[KNA XOR A LD E,A LD D,A LD B,A LD HL,(TXT) Peka p} rad ett DEC DE R[K1 INC DE \ka r{knare LD C,(HL) L{ngd p} raden ADD HL,BC Peka p} n{sta CP C Slut? JRNZ R[K1 Nej, upprepa RET ; Diverse variabler: TEDSTACK DEFW 0 Stackv{rde vid MENY BRAD DEFW 0 Rad som finns i buffert PRAD DEFW 0 Den radens prad SRAD DEFW 0 Rad p} sk{rm f|r BRAD SAKNAS DEFW 0 Antal saknade rader TXT DEFW 0 Pekar p} f|rsta praden EOT DEFW 0 Byten efter sista prad MAX DEFW 0 Maxv{rde f|r EOT RAD DEFW 1 Rad som mark|r {r p} KOL DEFW 0 dito kolumn L[NGD DEFW 0 L{ngd p} rader \VERST DEFW 0 Rad |verst p} sida SIDSTORL DEFW 0 Antal rader p} en sida SIDNR DEFW 0 Aktuell sida som visas HMARG DEFW 0 Position h|germarginal S\KACK DEFW 0 Antal lyckade s|kningar FILFLG DEFB 0 Flagga "fil l{ses" MAXFLG DEFB 0 Flagga "KOL {r p} max" SPRFLG DEFB 0 Flagga "text {ndrad" SCRFLG DEFB 0 Flagga "scroll-mode" T\MFLG DEFB 0 Flagga "t|m sk{rm" INSFLG DEFB 0 Flagga "insert-mode" S\KFLG DEFB 0 Flagga "s|kning p}g}r" SIDFLG DEFB 0 Flagga "sidvisning" BYTFLG DEFB 0 Flagga "utbyte p}g}r" KOPFLG DEFB 0 Flagga "kopiering" ORDFLG DEFB 0 Flagga "ord-mode" KLKFLG DEFB 0 Flagga "tangentklick" HLPFLG DEFB 1 Flagga "aktuell hlprad" FILNAMN DEFS 25 Plats f|r filnamn ;Observera att platsen f|r filnamnet ;{r l{ngre {n max antal tecken att ;knappa in. Detta f|r att extension ;".TXT" ska kunna l{ggas sist utan att ;TAB-raden nedan f|rst|rs ! TABRAD1 DEFM "1...5...10...15...20" DEFM "...25...30...35...40" DEFM "...45...50...55...60" DEFM "...65...70...75...80" DEFM "...85...90...95..100" DEFM "..105..110..115..120" DEFM "..125..130..135..140" DEFM "..145..150..155..160" TABRAD2 DEFM "1...5...10...15...20" DEFM "...25...30...35...40" DEFM "...45...50...55...60" DEFM "...65...70...75...80" DEFM "...85...90...95..100" DEFM "..105..110..115..120" DEFM "..125..130..135..140" DEFM "..145..150..155..160"