;:poke56,128:clr ;:sys36864 ;.opt oo *= 32768 vicinit =$ff81 tmp =2 tmp2 =tmp+2 bsout =$ffd2 konf =1 page =$288 vic =$d000 ciapage =$dd00 vicpage =vic+24 cr =13 plus05 =$b849 memmult =$ba28 facasc =$bddf int =$bccc text =$c000 afac =$bc3c ay01 =$bf0c setcr =$e50c getin =$ffe4 crs1 =$cc crs2 =$cf crs3 =$cd stack =$c100 spalte =$d3 zeile =$d6 space =$ab3f axout =$bdcd clrx =$e9ff clrscr =$e544 farbe =646 farbram =$ea24 farb =$f3 calc =$e9f0 return =$aad7 rvs =199 setc =58732 open =$ffc0 setpar =$ffba setnam =$ffbd close =$ffc3 chkout =$ffc9 chkin =$ffc6 clrchn =$ffcc key =198 latch =$c100 stat =$90 latch2 =$c200 repflg =$28a run jmp main off jmp qoff chrsatz =* .byt 100 .byt %00000000 .byt %00000000 .byt %00000000 .byt %00011000 .byt %00011000 .byt %00000000 .byt %00000000 .byt %00000000 .byt 114 .byt %00000000 .byt %00100000 .byt %01100000 .byt %11111100 .byt %11111100 .byt %01101100 .byt %00101100 .byt %00001100 .byt 96 .byt %00000000 .byt %00000000 .byt %00000000 .byt %00000000 .byt %00000000 .byt %00000000 .byt %01100110 .byt %00111100 .byt 112 .byt %01100110 .byt %00011000 .byt %00111100 .byt %01100110 .byt %01111110 .byt %01100110 .byt %01100110 .byt %00000000 .byt 120 .byt %01100110 .byt %00000000 .byt %01100110 .byt %01100110 .byt %01100110 .byt %01100110 .byt %00111100 .byt %00000000 .byt 121 .byt %01100110 .byt %00000000 .byt %00111100 .byt %01100110 .byt %01100110 .byt %01100110 .byt %00111100 .byt %00000000 .byt 107 .byt %00000011 .byt %00000110 .byt %00001100 .byt %00001100 .byt %00001100 .byt %00000110 .byt %00000011 .byt %00000000 .byt 115 .byt %11000000 .byt %01100000 .byt %00110000 .byt %00110000 .byt %00110000 .byt %01100000 .byt %11000000 .byt %00000000 .byt 124 .byt %00111100 .byt %01000010 .byt %10011001 .byt %10100001 .byt %10100001 .byt %10011001 .byt %01000010 .byt %00111100 .byt 113 .byt %00000000 .byt %00000000 .byt %00000000 .byt %00000000 .byt %00000000 .byt %00000000 .byt %00000000 .byt %11111111 .byt 108 .byt %11111111 .byt %11111111 .byt %11111111 .byt %11111111 .byt %11111111 .byt %11111111 .byt %11111110 .byt %11111100 .byt 123 .byt %11111111 .byt %11111111 .byt %11111100 .byt %11111100 .byt %11111111 .byt %11111111 .byt %01111111 .byt %00111111 .byt 127 .byt %11111100 .byt %11111110 .byt %11111111 .byt %11111110 .byt %11111110 .byt %11111110 .byt %11111110 .byt %11111111 .byt 126 .byt %00111111 .byt %01111111 .byt %11111111 .byt %01111111 .byt %01111111 .byt %01111111 .byt %01111111 .byt %11111111 .byt 0 hello .byte "\x13\x9a\x08\x12\x19\x0a disk - mailbox v1.0\x19\x0a \x1a\x1eO\x19%\xb7P\x1a" .byte "\xb4\x19%\x1d\xaa\x1a\xb4\x19%\x1d\xa7\x1a" .byte "\xb4\x19%\x1d\xaa\x1a" .byte "\xb4\x19%\x1d\xaa\x1a" .byte "\xb4\x19%\x1d\xaa\x1aL\x19%\xaf\xba\x1a\x12\x9a\x19' \x1a" .byt 0 cop .byte "\x1a\x99programmiert von n. heusler 180886" .byte "\x1a\xbc nig software service n.s.s." .byte "\x1a\x11 \x12 f1 \x92 => menue" .byt 0 men .byte "\x92\x97\x91\x19'\xb1\x1a\x12options disk in/out weiter \x1a" .byte "\x19\x0a\x11w\xb0hlen mit den crsr tasten, best\xb0tigen" .byte "\x1amit \x12return\x92." .byt 0 me2 .byte "\x18 directory \x18 befehl\x19\x04 \x18 status\x19\x04 \x18 _\xc0\x19\x08 " .byt 0 me3 .byte "\x18 lesen\x19\x05 \x18 schreiben \x18 vergl.\x19\x04 \x18 drucken" .byte " \x18 leertest \x18 _\xc0\x19\x08 " .byt 0 me1 .byte "\x18 ende\x19\x06 \x18 neustart \x18 l\xb9schen \x18 ersetzen" .byte " \x18 devicenr. \x18 schrifts. \x18 cursor\x19\x04 \x18 _\xc0\x19\x08 " .byt 0 direct .byt "#" user .byte "ux 3 0 18 0" .byt 0 point .byte "b-p 3 171" .byt 0 i0 .byte "i0" dirnam .byte "$0" please .byte "\x1a \x9bweiter mit taste !" .byt 0 surt .byte "\x1a\x9bsind sie sicher ? -j/n-" .byt 0 bet .byte "\x1a\x9bdisk befehl: >" .byt 0 det .byte "\x1a\x9bbitte nr. einstellen mit \x12+\x92,\x12-\x92,\x12return\x1a" .byt 0 uewa .byte "\x1a\x91 nr.:\x19\x08 \x19\x07\x9d" .byt 0 wei .byte "\x1a weiter mit \x12stop\x92 oder \x12return" .byt 0 ers1 .byte "\x1a\x9bsuchen nach ? " .byt 0 ers2 .byte "\x1aersetzen durch ? " .byt 0 setset .byte "welchen schriftsatz ?" .byte "\x1a\x11 \x121\x92 gross/grafik\x1a \x122\x92 klein/gross" .byt 0 auch .byte "\x1a\x9bauch disk-daten drucken ? -j/n-" .byt 0 dd1 .byte "\x1a\x1adisk - name: " .byt 0 dd2 .byte "\x1a id: " .byt 0 dd3 .byte "\x1a os: " .byt 0 ins .byte "\x1a\x9e --- diskette einlegen ---" .byt 0 cut .byte "\x1a\x9bcursor automatisch nach rechts ? -j/n-" .byt 0 vt1 .byte "\x11\x1a\x19\x05 gleich: " .byt 0 vt2 .byte "\x1a\x19\x04 versch.: " .byt 0 kei .byte "\x9bkeine " .byt 0 wol .byte "\x9bdaten vorhanden !" .byt 0 diskette .byte "\x13\x1a\x11\x19$\x1d\xac\xbb\x11\x9d\x9d\xbf\xbe" .byt 0 flp .byt $81,$16,$96,$96,$97 mal17 .byt 0,17,34,51,68 metze .word me1,me2,me3 max .byt 7,3,5 mm1 .word prgend,neustart,loesch,replace,dev,satz,cursor mm2 .word cat,befehl,status mm3 .word lese,schr,vergl,druck,leertest my .word mm1,mm2,mm3 spa .byt 0 zei .byt 0 sp .byt 0 flg .byt 0 wert .byt 0 stspa .byt 0 wert2 .byt 0 maxlen .byt 0 device .byt 8 dirline .byt 0 cuflag .byt 0 vf1 .byt 0 vf2 .byt 0 chrset sei lda #49 sta konf ldy #0 sty tmp sty tmp2 ldx #8 set lda #0 sta tmp+1 lda #$e0 sta tmp2+1 copychar lda (tmp),y sta (tmp2),y iny bne copychar inc tmp+1 inc tmp2+1 dex bne copychar lda #55 sta konf cli lda #24 sta vicpage lda #$f8 sta ciapage lda #196 sta page lda #chrsatz sta tmp sty tmp+1 zeichlp ldy #0 lda (tmp),y beq fnshch sty tmp2+1 asl rol tmp2+1 asl rol tmp2+1 asl rol tmp2+1 sta tmp2 lda tmp2+1 clc adc #$e0 sta tmp2+1 chcp iny lda (tmp),y dey sta (tmp2),y eor #-1 pha lda tmp2+1 clc adc #4 sta tmp2+1 pla sta (tmp2),y lda tmp2+1 sec sbc #4 sta tmp2+1 iny cpy #8 bcc chcp lda tmp clc adc #9 sta tmp lda tmp+1 adc #0 sta tmp+1 bcc zeichlp fnshch rts strout tax lda tmp pha lda tmp+1 pha stx tmp sty tmp+1 ldy #0 str ldy #0 lda (tmp),y beq strend cmp #"\x1a" bne noz lda #cr noz cmp #"\x19" beq repeat cmp #"\x18" beq spalt jsr bsout next inc tmp bne str inc tmp+1 bne str repeat iny lda (tmp),y tax iny lda (tmp),y rept dex bmi repend jsr bsout bcc rept repend lda tmp clc adc #3 sta tmp lda tmp+1 adc #0 sta tmp+1 bne str spalt jsr return ldy stspa ldx zeile jsr setcr lda #1 sta rvs jmp next strend pla sta tmp+1 pla sta tmp rts e jmp e qoff lda #4 sta page lda #$97 sta ciapage jmp vicinit clr lda #hello jsr strout lda #0 ldx #84 clp sta text,x dex bpl clp jmp show free jsr savecr ldx #85 stx tmp lda #10 sta farbe frlp dex bmi fren lda text,x beq frlp dec tmp jmp frlp fren lda tmp jsr afac lda #flp jsr memmult jsr plus05 jsr int jsr facasc lda #0 sta $103 lda $101 bne no101 lda $100 sta $102 lda #" " sta $100 sta $101 no101 lda $102 bne no102 lda $101 sta $102 lda $100 sta $101 lda #" " sta $100 no102 ldx #2 ldy #1 jsr setcr jsr ay01 jsr strout lda #"%" jsr bsspa jsr space jmp loadcr savecr ldx sp lda spalte sta stack,x lda zeile sta stack+1,x inc sp inc sp rts loadcr dec sp dec sp ldx sp lda stack,x tay lda stack+1,x tax jmp setcr pos jsr savecr ldy #1 ldx #4 jsr setcr lda #10 sta farbe lda #"s" jsr bsspa ldx spa jsr x0out jsr space ldy #1 ldx #5 jsr setcr lda #"z" jsr bsspa ldx zei jsr x0out jmp loadcr bsspa jsr bsout jmp space get lda #0 sta crs1 wk jsr getin beq wk pha lda #2 sta crs3 wc lda crs2 bne wc lda #1 sta crs1 pla rts calcpos ldx zei lda mal17,x clc adc spa tax rts clrmen ldx #9 cl1 jsr clrx inx cpx #25 bcc cl1 ldx #10 lda #8 sta farbe setzei ldy #0 jmp setcr getjn lda #0 sta key jn jsr getin cmp #"j" beq jja cmp #"n" bne jn clc rts jja sec rts insert jsr disk1 jsr clrmen lda #ins jsr strout jmp gettaste diropen jsr insert ldx device lda #3 ldy #0 jsr setpar lda #2 ldx #dirnam jsr setnam jmp open priopen ldx #4 lda #3 ldy #0 jsr setpar lda #0 jsr setnam jmp open home ldy #0 sty zei sty spa setcur lda spa clc adc #11 tay ldx zei inx inx jmp setcr unhome ldy #4 sty zei ldy #16 sty spa bne setcur init jsr vicinit lda #0 sta sp sta flg sta vic+32 sta vic+33 lda #128 sta repflg jsr setbig jsr clrscr jsr clr jsr cloall disk0 lda #2 .byt $2c disk1 lda #13 sta farbe jsr savecr lda #diskette jsr strout jmp loadcr incol11 lda #11 incol ldy #39 goon2 sta (farb),y dey bpl goon2 rts test cmp #32 bcc steuerz cmp #128 bcc zeichen cmp #160 bcc steuerz zeichen clc rts steuerz sec rts show jsr savecr ldx #1 stx zeile dex lda #6 sta farbe sl ldy #4 txa cmp #85 bcs fit sll cmp mal17,y beq sie dey bpl sll bmi nc sie stx tmp inc zeile lda #11 sta spalte jsr setc ldx tmp nc lda text,x jsr test bcc uk lda #"\xa4" uk jsr bsout inx bne sl fit jsr free jmp loadcr gettaste lda #please jsr strout lda #0 sta key gh lda key beq gh lda #0 sta key jsr bup ldx zeile jsr clrx inx jmp clrx bup lda #"\x91" jmp bsout getsure jsr clrmen lda #surt jsr strout jmp getjn inform ldx #0 if stx tmp jsr get ldx tmp jsr test bcc chr cmp #cr beq eoi cmp #20 bne if cpx #0 beq if dex jsr bsout bcc if eoi lda #0 sta latch,x rts chr cpx maxlen bcs if sta latch,x jsr bsout inx bne if main jsr init edit jsr clrmen lda #cop jsr strout jsr home editloop jsr free jsr pos lda #1 sta farbe jsr get ldx #6 stx farbe jsr test bcs steuern jmp qzeichen steuern cmp #"\x13" bne no1 jsr home jmp editloop no1 cmp #"\x93" bne no2 jsr unhome jmp editloop no2 cmp #"\x11" bne no3 down lda zei cmp #4 bcs du1 inc zei crsr jsr setcur jmp editloop du1 lda #0 sta zei beq crsr no3 cmp #"\x91" bne no4 up lda zei beq du2 dec zei bpl crsr du2 lda #4 sta zei bne crsr no4 cmp #"\x1d" bne no5 right lda spa cmp #16 bcs retu inc spa bne crsr retu lda #0 sta spa beq down no5 cmp #"\x9d" bne no6 lda spa beq du3 dec spa bpl crsr du3 lda #16 sta spa bne up no6 cmp #13 beq retu cmp #cr+128 bne no7 lda #-1 sta flg lda #"\xb2" bne qzeichen no7 cmp #"\x85" bne no8 jmp menue no8 cmp #20 bne no9 lda spa beq du4 dec spa bpl crsr2 du4 lda #16 sta spa lda zei beq du5 dec zei bpl crsr2 du5 lda #4 sta zei crsr2 jsr calcpos lda #0 sta text,x jsr setcur lda #"\xa4" jsr bsout bcc auto no9 jmp editloop qzeichen pha jsr bsout jsr calcpos pla sta text,x lda flg bne rs lda cuflag bne auto jmp right rs lda #0 sta flg jmp retu auto lda #"\x9d" jsr bsout jmp editloop menue jsr disk0 jsr clrmen lda #men jsr strout lda #3 sta wert ldx #10 ldy #15 jsr setcr lda #1 sta rvs lda #"\xab" jsr bsout ldx device jsr x0out lda #"\xb3" jsr bsout ldx #10 jsr calc jsr farbram men1 lda wert asl asl asl adc wert adc wert sta stspa tay lda #12 ldx #8 colin sta (farb),y iny dex bpl colin me jsr getin cmp #cr beq wahl cmp #"\x1d" beq mep cmp #"\x9d" bne me dec wert bpl goon lda #3 sta wert goon jsr incol11 bmi men1 mep inc wert lda wert cmp #4 bcc goon lda #0 sta wert beq goon wahl jsr incol11 lda wert cmp #3 bne menwahl jmp edit menwahl ldy #0 ldx #10 jsr setcr lda wert asl tax lda metze+1,x tay lda metze,x jsr strout ldx wert lda max,x sta wert2 sta tmp men2 lda wert2 clc adc #11 tax jsr calc jsr farbram lda #12 jsr incol m1 jsr getin cmp #cr beq wahl2 cmp #"\x91" beq mem cmp #"\x11" bne m1 inc wert2 lda tmp cmp wert2 bcs goon3 lda #0 sta wert2 goon3 jsr incol11 bmi men2 mem dec wert2 bpl goon3 ldx wert lda max,x sta wert2 bne goon3 wahl2 lda tmp cmp wert2 bne wm jmp menue wm lda wert asl tax lda my+1,x sta tmp+1 lda my,x sta tmp lda wert2 asl tay lda (tmp),y sta jump+1 iny lda (tmp),y sta jump+2 jsr return jump jsr 0 jmp menue prgend pla pla jmp off neustart pla pla jmp run rt pla pla rts diskmach lda #15 ldx device tay jsr setpar lda #2 ldx #i0 jsr setnam jsr open lda #3 tay ldx device jsr setpar lda #1 ldx #direct jsr setnam jmp open senduser sta user+1 jsr out15 lda #user jsr strout jsr clrchn jsr out15 lda #point jsr strout jmp clrchn out15 ldx #15 jmp chkout in15 ldx #15 jmp chkin in3 ldx #3 jmp chkin out3 ldx #3 jmp chkout cloall jsr clrchn lda #3 jsr close lda #15 jmp close open15 lda #15 ldx device tay jsr setpar lda #0 jsr setnam jmp open lese jsr insert jsr diskmach lda #"1" jsr senduser jsr in3 ldx #0 gettxt jsr getin sta text,x inx cpx #85 bcc gettxt jsr cloall jmp show vergl jsr insert qvergl jsr diskmach lda #"1" jsr senduser lda #0 sta vf1 sta vf2 jsr in3 ldx #0 stx spa stx zei vertxt inc vf1 jsr getin cmp text,x beq equal dec vf1 inc vf2 stx tmp ldx zei inx inx jsr calc jsr farbram lda spa clc adc #11 tay lda #1 sta (farb),y ldx tmp equal inc spa lda spa cmp #17 bcc nix inc zei lda #0 sta spa nix inx cpx #85 bcc vertxt jsr cloall jsr auswert jsr gettaste jmp show auswert lda #vt1 jsr strout ldx vf1 jsr x0out lda #vt2 jsr strout ldx vf2 jsr x0out jmp return x0out lda #0 jmp axout schr jsr insert jsr diskmach lda #"1" jsr senduser jsr out3 ldx #0 wrtxt lda text,x jsr bsout inx cpx #85 bcc wrtxt lda #"2" jsr senduser jsr cloall jmp qvergl leertest jsr insert jsr diskmach lda #"1" jsr senduser lda #0 sta vf1 jsr in3 ldx #0 stx spa stx zei nultst jsr getin tay beq null inc vf1 stx tmp ldx zei inx inx jsr calc jsr farbram lda spa clc adc #11 tay lda #1 sta (farb),y ldx tmp null inc spa lda spa cmp #17 bcc nix2 inc zei lda #0 sta spa nix2 inx cpx #85 bcc nultst jsr cloall jsr return lda vf1 bne data lda #kei jsr strout data lda #wol jsr strout jsr gettaste jmp show loesch jsr getsure bcc na jmp clr na rts befehl jsr disk1 ldx #25 stx maxlen jsr clrmen lda #bet jsr strout jsr inform jsr open15 jsr out15 lda #latch jsr strout jsr clrchn jsr return qstatus lda #">" jsr bsout jsr in15 dst jsr getin jsr bsout cmp #cr bne dst jsr cloall jmp gettaste status jsr disk1 jsr clrmen jsr open15 jmp qstatus dev jsr clrmen lda #det jsr strout num lda #uewa jsr strout ldx device jsr x0out nuu jsr getin cmp #cr beq aus cmp #"+" beq hoch cmp #"-" bne nuu dec device store lda device and #$f sta device bpl num hoch inc device bne store aus rts cat jsr diropen jsr in3 jsr getin bit stat bne ex jsr getin dipage jsr return lda #0 sta dirline jsr clrmen gett ldx #5 jsr box jsr getin jsr getin beq ex jsr getin tax jsr getin jsr axout jsr space line jsr getin beq eol ldy stat bne ex jsr bsout bcc line eol jsr return inc dirline lda dirline cmp #12 bcc gett lda #wei jsr strout jsr clrchn lda #0 sta key watnu jsr getin beq watnu cmp #"\x03" beq ed jsr in3 bcc dipage ex jsr ed jmp gettaste ed jmp cloall box jsr space dex bne box rts replace jsr clrmen lda #ers1 jsr strout lda #22 sta maxlen jsr inform stx maxlen txa beq warnichts lda #ers2 jsr strout jsr latch12 jsr inform cpx maxlen beq warwas warnichts rts warwas ldx #-1 dec maxlen es1 ldy #-1 stx tmp es2 iny inx lda latch2,y cmp text,x beq es3 es5 inc tmp ldx tmp cpx #85 bcc es1 jmp show es3 cpy maxlen bcc es2 ldy #0 ldx tmp inx es4 lda latch,y cmp #"\xa4" bne papa lda #0 papa sta text,x inx iny cpy maxlen bcc es4 beq es4 bne es5 latch12 ldy #0 es6 lda latch,y cmp #"\xa4" bne es7 lda #0 es7 sta latch2,y dey bne es6 rts setbig lda #>vic .byt $2c setsmall lda #$d8 sta set+1 jmp chrset satz jsr clrmen lda #setset jsr strout nueize jsr getin cmp #"1" beq setbig cmp #"2" beq setsmall bne nueize druck jsr aauch jsr priopen jsr out3 ldx #0 sl2 ldy #4 txa cmp #85 bcs out2 sll2 cmp mal17,y beq sie2 dey bpl sll2 bmi nc2 sie2 stx tmp jsr return ldx #20 jsr box ldx tmp nc2 lda text,x jsr test bcc uk2 lda #"\xa4" uk2 jsr bsout inx bne sl2 out2 jsr return jmp cloall aauch jsr clrmen lda #auch jsr strout jsr getjn bcs sel rts sel jsr diropen jsr in3 ldx #7 jsr skip ldx #0 getpar jsr getin sta latch,x inx cpx #24 bcc getpar jsr cloall jsr priopen jsr out3 lda #dd2 jsr strout ldx #0 namout lda latch,x jsr bsout inx cpx #18 bcc namout lda #dd2 jsr strout lda latch+19 jsr bsout lda latch+20 jsr bsout lda #dd3 jsr strout lda latch+22 jsr bsout lda latch+23 jsr bsout jsr return jmp cloall skip jsr getin dex bne skip rts cursor jsr clrmen lda #cut jsr strout jsr getjn bcs caus lda #-1 .byt $2c caus lda #0 sta cuflag rts