;:poke56,144:clr ;:remopen1,8,15,"s:mcode $8000":close1 ;:remopen2,8,2,"mcode $8000,p,w ;:rem *** achtung, zeile 222 ! ;:sys36864 ;.opt o *= $8000 crs1 =204 crs2 =205 crs3 =207 get =65508 bsout =$ffd2 spalte =211 zeile =214 zeilset =$e56a clrx =59903 aclrx =$ea01 setcr =58732 tmp =2 bild =$d1 calcx =$e9f0 mem =$d000 ; $400 byte konf =1 key =198 space =$ab3f crscol =646 farbram =$d800 qsuchvar =$b08b getx =$b7f1 komma =$aefd frestr =$b6a3 strres =$b475 latch =820 varadr =$49 para =$61 quote =212 clrchn =$ffcc chkin =$e11e basin =$e112 illquan =$b248 chkout =$e118 return =$aad7 farbptr =$ea24 farb =$f3 vic =$d000 keybuf =631 bslatch =$9400 ; $400 byte tmp2 =tmp+2 basmerk =820 erg =$c000 ; lowbyte = 0, $400 byte anzfe =820 chrget =$73 frmnum =$ad8a integer =$b7f7 chrptr =$7a intvar =$47 tmp3 =166 aktdes =$fb suchdes =$b4 getadrx =$b7eb wrt =20 inbuf =$c600 ; 256 byte rvs =199 speicher =824 poskey =822 lenkey =823 gesalen =821 frmevl =$ad9e stradr =$22 drumem =$9800 ; $800 byte ab $9800 sprspr =704 sprptr =2040 posline =787 irqvec =$314 timemsb =161 keyboard =203 jmp maskedit jmp colin jmp waitkey jmp inform jmp inputf jmp posit jmp margin jmp clr jmp loadm jmp savem jmp bslt jmp ltbs jmp aw jmp search jmp memvar jmp clrbuffer jmp outbuf jmp eingabe jmp eval jmp varmem jmp ober2 jmp parameter jmp holpar jmp infind jmp schneider jmp edruck jmp clrdruk jmp harda2 jmp harddata jmp irqon jmp irqoff jmp settime jmp gettime kofi jsr komma findvar jmp qsuchvar helptxt .byte "\x05\x13\x19\x12\x11\x12\xb0\x19%\xc0\xae\x1a\x12\xdd CBM S: Schluesselfeld\x17\xdd\x1a\x12\xdd" .byte " CBM F: Zwangseintragstextfeld\x17\xdd\x1a\x12\xdd CBM T:" .byte " Textfeld\x17\xdd\x1a\x12\xdd CBM Z: Zahlenfeld\x17\xdd\x1a\x12\xdd" .byte " F1: Ende\x17\xdd" .byte "\x1a\x12\xad\x19%\xc0\xbd\x92\x03" delt .byte "\x9d \x9d\x03" erra .byte "\x13\x05\x13\x19\x18\x11\x12\x03" err1 .byte "\x18Felder zu lang !\x17 \x92\x03" err2 .byte "\x18Wo ist das Schluesselfeld ?\x17 \x92\x03" err3 .byte "\x18Bitte nur ein Schluesselfeld !\x17 \x92\x03" helppri .byte "\x05\x13\x19\x0e\x11\x12\xb0\x19%\xc0\xae\x1a\x12\xdd F1: Ende\x17\xdd\x1a\x12\xdd" .byte " F4: Alles loeschen\x17\xdd\x1a\x12\xdd F5: Zeile einfuegen" .byte "\x17\xdd\x1a\x12\xdd F6: Zeile loeschen\x17\xdd\x1a\x12\xdd F7: Hilfe" .byte "\x17\xdd\x1a\x12\xdd F2 + CRSR: Druckgrenze festlegen\x17\xdd\x1a\x12\xdd C" .byte "TRL + 1 bis 9: Feld einfuegen" .byte "\x17\xdd\x1a\x12\xdd CTRL A: Feldlaenge konstant (normal)" .byte "\x17\xdd\x1a\x12\xdd CTRL B: Feldlaengenautomatik" .byte "\x17\xdd\x1a\x12\xad\x19%\xc0\xbd\x92\x03" user .byte "u1:8 0 " track .byte "?? " sektor .byte "??" buftxt .byte "b-p 8 " byte .byte "???" b1 .byte "u?:8 0 3" b1a .byte " " b1b brk ctrlnum .byte "\x90\x05\x1c\x9f\x9c\x1e\x1f\x9e\x12" maskmode brk char brk len brk merkze brk merksp brk merkcol brk geslen brk maskart .word 0,0 brk error brk lastcode brk gofx brk gofy brk gofxx brk gofyy brk ende .word 0 elemnr .word 0 prueflen brk lenflag brk konfmerk brk rvmod .byt 1 start brk posx brk len1 brk len2 brk nh brk old brk look brk abort brk sperr brk blank brk oldirq .word 0 bltime brk steuer .byt 13,20 .byte "\x94\x13\x93\x11\x91\x1d\x9d\x85\xae\xbb\xa3\xad\x88\xa6\xa8\xa4\xaf" adr .word ret,del,inst,home,clr,down,up,right,left,finish .word feld1,feld2,feld3,feld4,help,tool,tool,tool,tool steuer2 .byt 13 .byte "\x13\x11\x91\x1d\x9d" adr2 .word mret,mhome,mdown,mup,mright,mleft masksign .byt 102,111,100,104 home lda #0 sta spalte ldy #2 jmp zeilset crson pha lda #0 sta crs1 pla rts crsoff pha lda #2 sta crs2 cwait lda crs3 bne cwait inc crs1 pla rts testchar cmp #" " bcc wrong tax bpl richt cmp #149 bcc wrong cmp #156 bcc richt cmp #160 bcc wrong richt sec wrong rts ret lda #0 sta spalte down lda zeile cmp #24 bcs toobig inc zeile toobig jmp setcr left lda spalte bne normal lda #38 sta spalte up lda zeile cmp #3 bcc toobig dec zeile jmp setcr normal dec spalte rts right lda spalte cmp #38 bcs ret inc spalte rts clr ldx #2 cllp ldy #38 jsr aclrx inx cpx #25 bcc cllp bcs home cout jsr bsout lda spalte cmp #39 bcc ex jmp ret ex rts del ldy spalte beq left dl lda (bild),y dey sta (bild),y iny iny cpy #40 bcc dl lda #32 dey dey sta (bild),y bne left inst ldy #38 lda (bild),y cmp #32 bne ex cpy spalte beq gleich ist dey lda (bild),y iny sta (bild),y dey cpy spalte bne ist gleich lda #32 sta (bild),y rts savepos lda spalte sta merksp lda zeile sta merkze lda crscol sta merkcol rts holpos lda merkcol sta crscol lda merksp sta spalte ldy merkze jmp zeilset retten ldx #14 lda konf sta konfmerk retn jsr rom jsr calcx jsr ram lda bild sta tmp lda bild+1 and #3 ora #>mem sta tmp+1 ldy #39 retn2 lda (bild),y sta (tmp),y dey bpl retn2 inx cpx #25 bcc retn jmp rom holen ldx #14 lda konf sta konfmerk zuru jsr rom jsr calcx jsr ram lda bild sta tmp lda bild+1 and #3 ora #>mem sta tmp+1 ldy #39 zuru2 lda (tmp),y sta (bild),y dey bpl zuru2 inx cpx #25 bcc zuru jmp rom waitkey lda #0 sta key wk cmp key beq wk dec key rts ram lda konf sta konfmerk lda #48 sei sta konf rts rom lda konfmerk sta konf cli rts strout tax lda tmp pha lda tmp+1 pha stx tmp sty tmp+1 sto ldy #0 lda (tmp),y beq ten cmp #"\x03" beq ten cmp #"\x1a" bne nocr lda #13 nocr cmp #"\x19" beq rept cmp #"\x17" beq tab cmp #"\x18" beq flosk jsr bsout dd inc tmp bne sto dc inc tmp+1 bne sto rept iny lda (tmp),y tax iny lda (tmp),y rep jsr bsout dex bne rep lda tmp clc adc #3 sta tmp bcc sto bcs dc ten pla sta tmp+1 pla sta tmp rts tab lda spalte cmp #38 bcs dd jsr space jmp tab flosk lda #erra jsr strout jmp dd colin ldy #0 sty tmp ldx #4 lda #>farbram sta tmp+1 lda crscol clin sta (tmp),y iny bne clin inc tmp+1 dex bne clin rts numbasc ldx #"0" sec numb1 sbc #10 bcc numb2 inx bcs numb1 numb2 adc #"9"+1 rts testmask ldx #4 lda #0 sta geslen sta error ldy #<1104 sty testcode+1 ldy #>1104 sty testcode+2 tm sta maskart,x dex bpl tm jsr testcode ldx #2 tline stx merkze jsr calcx ldy #0 tchar lda (bild),y ldx #3 inc geslen tsuch cmp masksign,x beq ane dex bpl tsuch dec geslen ldx #4 bne kurzen ane lda geslen cmp #-1 bne kurzen inc error kurzen cpx lastcode beq same other txa ldx lastcode inc maskart,x sta lastcode same iny cpy #39 bcc tchar ldx merkze inx cpx #25 bcc tline ldx lastcode inc maskart,x jmp auswert testcode lda !0 ldx #3 tc cmp masksign,x beq two dex bpl tc ldx #4 two stx lastcode rts auswert lda error beq ok1 jsr savepos jsr retten lda #err1 errgo jsr strout jsr waitkey jsr holen inc error jmp holpos ok1 lda maskart bne ok2 jsr savepos jsr retten lda #err2 bne errgo ok2 cmp #1 beq ok3 jsr savepos jsr retten lda #err3 bne errgo ok3 rts settmp lda #erg sta tmp sty tmp+1 rts eval jsr settmp sta anzfe sta gesalen evl ldy #0 lda (tmp),y bne ev1 rts ev1 inc anzfe cmp #1 bne ev2 iny lda (tmp),y sta lenkey lda gesalen sta poskey ev2 ldy #1 lda (tmp),y clc adc gesalen sta gesalen lda tmp clc adc #4 sta tmp bcc evl inc tmp+1 bne evl ober2 ldx #79 lda #0 o2 sta farbram,x dex bpl o2 rts parameter jsr getx stx rvmod rts holpar lda rvmod sta tmp rts maskedit jsr home lda #0 sta maskmode edit lda maskmode bne omo jsr crson jmp getone omo clc jsr outlen getone jsr get beq getone jsr crsoff ldx maskmode bne inmask ldx #adr-steuer-1 such cmp steuer,x beq found dex bpl such bmi notfound found txa asl tax lda adr,x sta goto+1 lda adr+1,x sta goto+2 goto jsr 0 jmp edit notfound jsr testchar bcc edit jsr cout jmp edit finish pla pla jsr testmask lda error bne edit rts inmask ldx #adr2-steuer2-1 such2 cmp steuer2,x beq found2 dex bpl such2 bmi edit found2 txa asl tax lda adr2,x sta goto2+1 lda adr2+1,x sta goto2+2 sec jsr outlen goto2 jsr 0 jmp edit mret jsr skip dec maskmode lda #32 sta keybuf lda #"\x9d" sta keybuf+1 lda #2 sta key rts mright lda len bmi tool lda char cmp #166 beq ri2 inc len tool rts ri2 lda len cmp #16 bcs tool inc len rts mleft lda len cmp #2 bcc tool dec len rts mup lda len cmp #40 bcc tool sec sbc #39 sta len rts mdown lda char cmp #166 beq tool lda len bmi tool clc adc #39 sta len rts mhome lda #1 sta len rts feld1 lda #166 .byt $2c feld2 lda #175 .byt $2c feld3 lda #164 .byt $2c feld4 lda #168 sta char jsr testallw lda #1 sta len inc maskmode rts testallw lda zeile cmp #2 bne testl lda spalte beq darf testl jsr left ldy spalte lda (bild),y pha jsr right pla ldx #3 tl1 cmp masksign,x beq nono dex bpl tl1 bmi darf nono pla pla darf rts skip clc jsr outlen ldx len skp stx tmp jsr right ldx tmp dex bne skp rts outlen php jsr savepos lda len sta tmp lda char plp bcc balken lda #32 balken sta dasout+1 dasout lda #0 jsr cout dec tmp bne dasout jmp holpos help jsr savepos jsr retten lda #helptxt jsr strout jsr waitkey jsr holen jmp holpos inform jsr lenght jsr findvar sta varadr sty varadr+1 jsr frestr ldx #0 stx tmp keylp jsr crson get1 jsr get beq get1 jsr crsoff cmp #13 bne text lda tmp jsr strres ldy #2 setpar lda para,y sta (varadr),y dey bpl setpar iny settxt cpy tmp beq carried lda latch,y sta (para+1),y iny bne settxt carried jmp return text cmp #20 beq dele jsr testchar bcc keylp ldx tmp cpx tmp+1 bcs keylp sta latch,x jsr bsout inc tmp lda #0 sta quote beq keylp lenght jsr getx stx tmp+1 jmp komma dele ldx tmp beq keylp lda #delt jsr strout dec tmp jmp keylp varmem jsr komma jsr frmnum jsr integer sty tmp sta tmp+1 jsr komma jsr frmevl jsr frestr tay transstr dey lda (stradr),y sta (tmp),y tya bne transstr rts irqon lda irqvec+1 cmp #>irqneu beq sat sta oldirq+1 lda irqvec sta oldirq lda #irqneu setirq sei sta irqvec sty irqvec+1 lda #0 sta blank cli sat rts irqoff lda oldirq ldy oldirq+1 bne setirq irqneu lda blank bne wegg lda keyboard cmp #64 beq none lda #0 sta timemsb none lda timemsb cmp bltime bcc offirq lda vic+17 and #239 sta vic+17 lda #1 sta blank bne offirq wegg lda keyboard cmp #64 beq offirq lda vic+17 ora #16 sta vic+17 lda #0 sta timemsb sta blank offirq jmp (oldirq) gettime lda bltime sta 2 rts settime jsr getx stx bltime rts inputf jsr getx jsr chkin jsr getx txa pha jsr kofi sta varadr sty varadr+1 jsr frestr pla jsr strres ldy #2 store lda para,y sta (varadr),y dey bpl store iny fetch jsr basin sta (para+1),y iny cpy para bne fetch jmp clrchn ill jmp illquan posit jsr getx cpx #36 bcs ill txa beq ill jsr numbasc stx track sta track+1 jsr getx txa jsr numbasc stx sektor sta sektor+1 jsr getx txa ldx #"0" sec wa100 sbc #100 bcc wn100 inx bcs wa100 wn100 adc #100 stx byte ldx #"0" sec wa10 sbc #10 bcc wn10 inx bcs wa10 wn10 stx byte+1 adc #"9"+1 sta byte+2 ldx #15 jsr chkout ldx #0 cmdout lda user,x jsr bsout inx cpx #13 bcc cmdout jsr clrchn ldx #15 jsr chkout ldx #0 bufout lda buftxt,x jsr bsout inx cpx #9 bcc bufout jmp clrchn margin ldx #2 mgin jsr calcx jsr farbptr ldy #39 lda vic+32 sta (farb),y lda #160 sta (bild),y inx cpx #25 bcc mgin rts eingabe jsr calcend jsr settmp einfeld ldy #3 lda (tmp),y sta spalte dey lda (tmp),y tay jsr zeilset ldy #1 lda (tmp),y sta prueflen dey sty geslen lda (tmp),y sta char edin jsr crson eded jsr get beq eded jsr crsoff cmp #13 bne wadda jmp readscrn wadda cmp #"\x11" bne nodown lda tmp clc adc #4 sta tmp bcc noi inc tmp+1 noi ldy #0 lda (tmp),y beq eingabe bne einfeld nodown cmp #"\x91" bne noup lda tmp cmp #erg bne doup lda ende sta tmp lda ende+1 sta tmp+1 doup lda tmp sec sbc #4 sta tmp lda tmp+1 sbc #0 sta tmp+1 jmp einfeld noup cmp #"\x13" beq einfeld cmp #"\x93" beq qeingabe cmp #"\x9d" bne noleft lda geslen beq edin jsr left dec geslen jmp edin qeingabe jmp eingabe noleft cmp #"\x1d" bne noright lda geslen cmp prueflen bcs edin jsr right inc geslen jmp edin noright ldx geslen cpx prueflen bcs qedin ldx char cpx #4 beq ziffern jsr testchar bcc qedin outit jsr cout inc geslen qedin jmp edin ziffern cmp #"9"+1 bcs qedin cmp #"0" bcs outit cmp #" " beq outit bne qedin calcend jsr settmp tay suchend lda (tmp),y beq foundend lda tmp clc adc #4 sta tmp bcc suchend inc tmp+1 bne suchend foundend lda tmp sta ende lda tmp+1 sta ende+1 rts readscrn jsr settmp tax stx merkze bo ldy #0 lda (tmp),y bne sowas jmp testein sowas iny lda (tmp),y sta geslen iny lda (tmp),y sta zeile iny lda (tmp),y sta spalte jsr setcr ldx merkze getxt jsr getscn sta inbuf,x txa pha jsr right pla tax inx dec geslen bne getxt stx merkze lda tmp clc adc #4 sta tmp bcc bo inc tmp+1 bne bo getscn ldy spalte lda (bild),y and #$7f cmp #94 bne nopi lda #-1 rts nopi sta char and #$3f asl char bit char bpl plus ora #$80 plus bvs fau ora #$40 fau rts testein lda #0 sta geslen jsr settmp e1 ldy #0 lda (tmp),y bne e2 rts e2 cmp #3 bcs sureok iny lda (tmp),y tay ldx geslen schau lda inbuf,x cmp #32 bne sureok inx dey bne schau jmp einfeld sureok ldy #1 lda geslen clc adc (tmp),y sta geslen lda tmp clc adc #4 sta tmp bcc e1 inc tmp+1 bne e1 loadm jsr getx txa ora #"0" sta b1a lda #"1" sta b1b sta b1+1 lda #>bslatch sta tmp+1 lda #bslatch+$400 bcc tr0 rts savem jsr getx txa ora #"0" sta b1a ldx #"0" stx byte inx stx b1b inx stx b1+1 lda #>bslatch sta tmp+1 lda #bslatch+$400 bcc tr6 rts bslt jsr merk12 lda #4 ldx #>bslatch bne cop ltbs jsr merk12 ldx #4 lda #>bslatch cop sta tmp+1 stx tmp2+1 ldy #0 sty tmp sty tmp2 ldx #4 co lda (tmp),y sta (tmp2),y iny bne co inc tmp+1 inc tmp2+1 dex bne co ldx #79 hol12 lda speicher,x sta 1024,x dex bpl hol12 rts merk12 ldx #79 me12 lda 1024,x sta speicher,x dex bpl me12 rts aw jsr aw2 jmp setcr aw2 ldx #0 stx anzfe dex stx geslen ldy #0 lda #2 sta merkze jsr goofy lda #erg sta tmp2 sty tmp2+1 ldy #bslatch+80 sty testcode+2 jsr testcode ldx #2 aline stx merkze jsr calcx lda bild+1 clc adc #>bslatch-$400 sta bild+1 ldy #0 achar lda (bild),y ldx #3 asuch cmp masksign,x beq aone dex bpl asuch ldx #4 aone inc geslen cpx lastcode beq asame txa pha jsr eintrag pla sta lastcode asame iny cpy #39 bcc achar ldx merkze inx cpx #25 bcc aline jsr eintrag lda #0 write sty merksp ldy #0 sta (tmp2),y inc tmp2 bne nn inc tmp2+1 nn ldy merksp rts eintrag jsr goofy ldx lastcode cpx #4 beq noy inc anzfe inx txa jsr write lda geslen jsr write lda gofxx jsr write lda gofyy jsr write noy lda #0 sta geslen rts goofy lda gofx sta gofxx lda gofy sta gofyy sty gofy lda merkze sta gofx rts memvar jsr komma jsr getadrx lda wrt ldy wrt+1 sta tmp sty tmp+1 txa pha pha jsr kofi sta varadr sty varadr+1 jsr frestr pla jsr strres ldy #2 schieb lda para,y sta (varadr),y dey bpl schieb pla tay copytext dey lda (tmp),y sta (para+1),y tya bne copytext rts clrbuffer lda #32 ldy #0 cb sta inbuf,y iny bne cb rts outbuf jsr ltbs jsr spacing jsr aw jsr margin jsr settmp tax stx merkze ob ldy #0 lda (tmp),y bne nowas rts nowas iny lda (tmp),y sta geslen iny lda (tmp),y sta zeile iny lda (tmp),y sta spalte jsr setcr lda rvmod sta rvs ldx merkze trtext lda inbuf,x inx stx tmp3 jsr cout ldx tmp3 dec geslen bne trtext stx merkze lda tmp clc adc #4 sta tmp bcc ob inc tmp+1 bne ob spacing ldy #0 sty tmp lda #4 sta tmp+1 sta tmp2 spcng lda (tmp),y ldx #3 allsuch cmp masksign,x beq spacean dex bpl allsuch bmi fer spacean lda #160 sta (tmp),y fer iny bne spcng inc tmp+1 dec tmp2 bne spcng rts search jsr kofi sta tmp sty tmp+1 ldy #2 getsuch lda (tmp),y sta suchdes,y dey bpl getsuch lda chrptr pha lda chrptr+1 pha vor jsr chrget cmp #"(" bne vor jsr frmnum jsr integer sty elemnr sta elemnr+1 pla sta chrptr+1 pla sta chrptr jsr kofi sta tmp3 sty tmp3+1 jsr kofi sta ende sty ende+1 lda #0 sta lenflag ldy suchdes sty prueflen dey lda (suchdes+1),y cmp #"*" bne getdes dec lenflag dec prueflen getdes ldy #2 gd1 lda (tmp3),y sta aktdes,y dey bpl gd1 lda prueflen beq positiv cmp aktdes php lda lenflag beq nostern plp bcs nextstr bcc pruefen nostern plp bne nextstr pruefen ldy #0 pr1 lda (suchdes+1),y cmp #"?" beq nextchr cmp (aktdes+1),y bne nextstr nextchr iny cpy prueflen bcc pr1 beq positiv nextstr lda tmp3 clc adc #3 sta tmp3 bcc nocy3 inc tmp3+1 nocy3 inc elemnr bne nocy4 inc elemnr+1 nocy4 lda tmp3+1 cmp ende+1 bcc getdes lda tmp3 cmp ende bcc getdes beq getdes lda #0 sta elemnr sta elemnr+1 positiv jsr kofi lda elemnr+1 ldy #0 sta (intvar),y iny lda elemnr sta (intvar),y rts infind jsr komma jsr frmevl jsr frestr sta len1 lda stradr ldy stradr+1 sta tmp sty tmp+1 jsr komma jsr frmevl jsr frestr sta len2 lda len1 sec sbc len2 bcc negativ adc #0 sta len1 lda #0 sta start vergl ldy #0 verg lda (stradr),y cmp #"?" beq joker cmp (tmp),y bne nextone joker iny cpy len2 bcc verg bcs drinn nextone inc start dec len1 beq negativ inc tmp bne vergl inc tmp+1 bne vergl negativ lda #-1 sta start drinn inc start jsr kofi ldy #0 tya sta (intvar),y iny lda start sta (intvar),y fddsch rts schneider jsr komma jsr frmevl jsr frestr ldx stradr ldy stradr+1 stx tmp sty tmp+1 tay lp1 dey cpy #-1 beq empty lda (tmp),y cmp #" " beq lp1 empty iny sty len1 jsr kofi sta varadr sty varadr+1 jsr frestr lda len1 jsr strres ldy #2 stpar lda para,y sta (varadr),y dey bpl stpar iny sttx cpy len1 beq fddsch lda (tmp),y sta (para+1),y iny bne sttx edruck jsr machspr jsr dhhome jsr eval de jsr crson druke jsr get beq druke jsr crsoff cmp #"\x85" bne nof1 dec vic+21 rts nof1 cmp #"\x93" beq edruck cmp #"\x13" bne nohom lda posx sec sbc spalte sta posx lda #0 sta spalte ldy #2 jsr zeilset jmp de nohom cmp #"\x1d" bne neright dright ldx spalte cpx #39 bcs gro39 inc posx dobs jsr bsout bcc de gro39 lda posx cmp #78 bcs dreturn inc posx wertpos jsr scroll jmp de neright cmp #"\x9d" bne neleft drleft ldx spalte bne qdobs lda posx beq dede dec posx jmp wertpos dede lda #78 sta posx lda #39 sta spalte jsr scroll lda #"\x91" bne drup qdobs dec posx bpl dobs neleft cmp #"\x11" bne nedown drdowm ldx zeile cpx #23 bcs qde bcc dobs nedown cmp #"\x91" bne neup drup ldx zeile cpx #2 bcc qde bne dobs neup cmp #13 bne nocrlf dreturn lda #0 sta posx sta spalte jsr scroll lda #"\x11" bne drdowm qde jmp de nocrlf cmp #"\x8a" bne nof3 jsr clrdruk jmp edruck nof3 cmp #"\x87" bne nof5 ldx #21 dec zeile dec zeile ff5 jsr dcalcx cpx zeile beq ff51 lda tmp sec sbc #80 sta tmp2 lda tmp+1 sbc #0 sta tmp2+1 ldy #79 ff52 lda (tmp2),y sta (tmp),y dey bpl ff52 dex bpl ff5 ff51 ldy #79 lda #32 ff53 sta (tmp),y dey bpl ff53 inc zeile inc zeile jsr scroll jmp de nof5 cmp #"\x8b" bne nof6 ldx zeile dex dex ff6 jsr dcalcx cpx #21 beq ff61 lda tmp clc adc #80 sta tmp2 lda tmp+1 adc #0 sta tmp2+1 ldy #79 ff62 lda (tmp2),y sta (tmp),y dey bpl ff62 inx bne ff6 ff61 ldy #79 lda #32 ff63 sta (tmp),y dey bpl ff63 jsr scroll jmp de nof6 cmp #"\x88" bne nof7 jsr savepos jsr retten lda #helppri jsr strout jsr waitkey jsr holen inc vic+21 jsr holpos jmp de nof7 cmp #20 bne no20 lda #"\x9d" ldy posx beq qdrleft ldx zeile dex dex jsr dcalcx ldy posx nahl lda (tmp),y dey sta (tmp),y iny iny cpy #79 bcc nahl dey lda #" " sta (tmp),y jsr scroll lda #"\x9d" qdrleft jmp drleft no20 cmp #148 bne no148 ldx zeile dex dex jsr dcalcx ldy #78 lda (tmp),y cmp #" " bne qqde cpy posx beq dgleich est dey lda (tmp),y iny sta (tmp),y dey cpy posx bne est dgleich lda #32 sta (tmp),y jsr scroll qqde jmp de nof2 jsr vilfil jsr testchar bcc qqde tax bmi wa4 cmp #$60 bcc wa1 and #$df bne wa2 wa1 and #$3f wa2 jmp wa3 wa4 and #$7f cmp #$7f bne wa5 lda #$5e wa5 ora #$40 wa3 pha ldx zeile dex dex jsr dcalcx ldy posx pla sta (tmp),y jsr scroll lda #"\x1d" jmp dright no148 cmp #"\x89" bne nof2 jsr linechange jmp de dcalcx stx nh lda #0 sta tmp+1 txa asl asl clc adc nh ldy #4 mal16 asl rol tmp+1 dey bne mal16 sta tmp lda tmp+1 clc adc #>drumem sta tmp+1 rts scroll lda posx sec sbc spalte sta geslen ldx #21 zeilp jsr dcalcx jsr calcx lda tmp clc adc geslen sta tmp bcc q inc tmp+1 q ldy #39 lda bild clc adc #80 sta bild bcc spall inc bild+1 spall lda (tmp),y sta (bild),y dey bpl spall dex bpl zeilp lda posline asl asl asl clc adc #73 sta vic+1 jmp setcr dhhome lda #0 sta posx sta spalte lda #2 sta zeile bne scroll clrdruk ldx #21 stx posline cdk jsr dcalcx ldy #78 lda #32 cdd sta (tmp),y dey bpl cdd dex bpl cdk rts machspr ldx #63 lda #0 sta vic+39 msp sta sprspr,x dex bpl msp stx sprspr stx sprspr+1 stx sprspr+2 lda #1 sta vic+21 sta vic+29 lda #11 sta sprptr lda #24 sta vic rts linechange lda vic+39 eor #1 sta vic+39 jsr get cmp #13 bne nod13 lda #0 sta vic+39 rts nod13 cmp #"\x11" bne nod17 ldx posline cpx #21 bcs linechange inc posline jsr scroll jmp linechange nod17 cmp #"\x91" bne linechange ldx posline beq linechange dec posline jsr scroll jmp linechange vilfil ldx anzfe cpx #10 bcc ok11 ldx #9 ok11 dex bmi nomore cmp ctrlnum,x bne ok11 pla pla lda #0 sta tmp+1 txa pha asl rol tmp+1 asl rol tmp+1 sta tmp lda tmp+1 clc adc #>erg sta tmp+1 ldy #1 lda (tmp),y sta tmp3 ldx zeile dex dex jsr dcalcx ldy posx pla clc adc #177 setline sta (tmp),y iny cpy #79 bcs nonomore dec tmp3 bne setline nonomore jsr scroll jmp de nomore cmp #"\x01" bne noct1 lda #250 bne noct3 noct1 cmp #"\x02" bne noct2 lda #191 noct3 tax pla pla txa jmp wa3 noct2 rts harda2 ldx #4 jsr chkout ldx #2 hardli jsr calcx ldy #0 hardch lda (bild),y cmp #34 bne naa34 lda #39 naa34 cmp #162 bne naa162 lda #167 naa162 cmp #128 bcc naa128 and #$7f pha lda #"\x12" jsr bsout pla naa128 cmp #94 bne naa94 lda #-1 bne oud naa94 sta char and #$3f asl char bit char bpl nplus ora #$80 nplus bvs oud ora #$40 oud jsr bsout lda #"\x92" jsr bsout iny cpy #39 bcc hardch jsr return inx cpx #25 bcc hardli jmp clrchn harddata jsr maketable ldx #4 jsr chkout ldx #255 stx look inx stx abort stx sperr haline jsr dcalcx ldy #0 hachar lda (tmp),y cmp #177 bcc supar cmp #186 bcc unnormal supar cmp #250 beq a1 cmp #191 beq a2 sta char and #$3f asl char bit char bpl plastik ora #$80 plastik bvs gaby ora #$40 gaby jsr bsout gaby2 lda #255 sta look lda #0 sta sperr gabi iny cpy #79 bcc hachar jsr return inx cpx posline bcc haline beq haline jmp clrchn a1 lda #0 .byt $2c a2 lda #1 sta abort jmp gaby2 unnormal stx posx sec sbc #177 cmp look beq warm sta look ldx #0 stx sperr tax lda speicher,x sta old warm ldx old inc old lda inbuf,x cmp #" " bne back2 ldx abort beq back2 lda #1 sta sperr bne back1 back2 ldx sperr bne back1 jsr bsout back1 ldx posx bpl gabi maketable jsr settmp tax sta look mata ldy #0 lda (tmp),y bne mata2 rts mata2 lda look sta speicher,x iny clc adc (tmp),y sta look inx lda tmp clc adc #4 sta tmp bcc mata inc tmp+1 bne mata