;:a=30000:poke56,a/256:poke55,aand255:clr ;:sys36864 *= 30000 ;.opt oo bsout =$ffd2 tmp =2 mem =$a000 cint =65409 return =$aad7 vic =$d000 round =$bc1b ascfac =$bcf3 chrgot =$79 ptr =122 latch =$8f00 exp =$61 sgn =$66 input =$ffcf getadr =$b7f7 cr =13 byt =$14 get =65508 irqvec =$314 bim =$8f80 bi =1984 clrx =59903 irqspeed =$dc05 axout =$bdcd spalte =211 space =$ab3f key =198 sid =$d400 repkey =650 setcr =58732 setnam =$ffbd setpar =$ffba open =$ffc0 close =$ffc3 clrchn =$ffcc chkin =$ffc6 chkout =$ffc9 clall =$ffe7 voll =664 konf =1 max =192 intfac =$bc49 fac =$61 floatasc =$bddf buf =$100 adrx =$e9f0 bild =$d1 farbram =$ea24 farb =$f3 frb =166 bld =168 zeile =214 rem =$8e00 crs1 =204 crs2 =207 quf =212 crs3 =205 tmp2 =tmp+2 jsr clrmem jmp qstart strout jmp qstrout title jmp qtitle dl inc $d020 jmp dl irq jsr qirq jmp (irqadr) txt1 .byte "\x8e\x93\x98\x12\xb0\x19&\xc0\xae\x08\xdd\x19\x04 nss - directory - drucker v1.3\x19\x04 \xdd" .byte "\xddprogrammiert von n. heusler 10/11 '86\xdd" .byte "\xdd\x19\x05 (c) nig software service nss\x19\x05 \xdd\xad\x19&\xc0\xbd\x1a\x05\x03" txt2 .byte "\x05\x13\x19\x05\x11\x1amenue:\x1a\x19\x05\xa3" .byte "\x1a\x17directory von disk lesen \x19\x04. \x12f1" .byte "\x1a\x17directory ausgeben \x19\x0a. \x12f3" .byte "\x1a\x17speicher loeschen \x19\x0b. \x12f2" .byte "\x1a\x17bemerkung eingeben \x19\x0a. \x12f5" .byte "\x1a\x17sortieren \x19\x13. \x12f7" .byte "\x1a\x17floskelliste \x19\x10}. \x12f4" .byte "\x1a\x17loeschen \x19\x13.. \x12f6" .byte "\x1a\x17ende \x19\x18. \x12f8\x1a\x11\x9beintraege im speicher: \x03" txt3 .byte " \x02\x09" .byt 20,20 .byte "\x05 \x05\x0e" .byt 20 .byte "\x13\x10}\x12\x05\x03\x08\x05\x0e\x04\x05 " .byt 20 .byte "\x01\x13" .byt 20 .byte "\x05 \x04\x12\x15\x05\x03\x0b\x05\x0e ! " txt4 .byte "\x13\x19\x18\x11\x19\x07 sind sie sicher ? [j/n]\x03" txt5 .byte "\x13\x19\x18\x11 disk einlegen; \x12rtrn\x92 = ok, \x12_\x92 = abbruch\x03" txt6 .byte "\x1a\x17geraetenummer ?\xa0\x18\x03" txt7 .byte "\x1a\x17sek. adresse ? \x18\x03" txt8 .byte "\x1a\x17zeichen/zeile ? \x18\x03" txt9 .byte "\x1a\x17drivenr. 0/1 ?\xa0" txt9a .byte "'\x19\x06 \x19\x07\x9d\x03" txt10 .byte "\x1a\x17dir. maske ? \x18\x03" txt11 .byte "\x1a\x17anhaengen j/n ? j\x9d\x03" txt12 .byte "\x13\x19\x0c\x11\x19\x03 keine daten im speicher ! (taste)\x03" txt13 .byte "\x13\x19\x18\x11\x19\x0e -- menue --\x03" txt14 .byte "\x1a\x1a\x19\x04 eingaben ok ? \x03" txt15 .byte "\x05\x08\x19\x08 U\x19\x15\xc0I\x1a" .byte "\x19\x08 \xddbis bald mal wieder !\xdd\x1a" .byte "\x19\x08 \xab\x19\x15\xc0\xb3\x1a" .byte "\x19\x08 Bneustart ohne daten-\xdd\x1a" .byte "\x19\x08 \xddverlust: \x12sys 30003\x92\xdd\x1a" .byte "\x19\x08 J\x19\x15\xc0K\x1a\x1a\x03" i0 .byte "i0" txt16 .byte "\x19(-disk: \x03" txt17 .byte "\x1a\x19(-\x1a\x03" txt18 .byte "\x19\x04 \x03" txt19 .byte "\x17disk-name: \x12" .byt 34,0 txt20 .byt 34 .byte "\x1a\x17id: \x12\x03" txt21 .byte "\x92 os: \x12\x03" txt22 .byte "\x1a\x17#\x03" txt23 .byte "\x1a\x17typ: \x03" txt24 .byte " blocks \xc0 nr. \x03" txt25 .byte " blks. frei, \x03" txt26 .byte " voll\x1a\x19 (\x12taste\x92)\x03" txt27 .byte "\x1a\x1a\x12\x98\x19( \x1a\x05\x03" txt28 .byte "\x19\x05" .byt 13 .byte " \x12!!! speicher voll !!!\x92 \x11(taste)\x03" txt29 .byte " p r i n t i n g . . .\x03" txt30 .byte "\x1adirectory der disk " .byt 34,0 txt31 .byte "id: \x12\x03" txt32 .byte "\x92 drive: \x12\x03" txt33 .byte " voll - \x03" txt34 .byte " files\x1a\x03" txt35 .byte "\x1a\x17fileeintragsnummer ? \x03" txt36 .byte "\x1a\x1abitte bemerkung fuer " .byt 34,0 txt37 .byte "\x1aeingeben/editieren !\x1a\x1a\x17\x12f1\x92 abbruch" .byte " \x12f3\x92 floskel" .byte "\x1a\x12return\x92 eingabe beenden\x1a" .byte "\x1a\x19(R\x19( \x19(E\x1a\x19\x04\x91\x03" txt38 .byte "\x12nss directorydrucker (c) 1986\x03" txt39 .byte "\x1a\x12nr. typ blk name\x03" txt40 .byte "ordnen. bitte betriebsart waehlen !\x19\x05 \x19\x06\xa3\x1a" .byte "\x17nach namen \x19\x12. \x12f1" .byte "\x1a\x17nach laenge \x19\x11. \x12f3" .byte "\x1a\x17nach bemerkung \x19\x0e. \x12f5" .byte "\x1a\x17nach typ \x19\x13.. \x12f7" .byte "\x11\x1a\x17hauptmenue \x19\x12. \x12_\xc0\x03" txt41 .byte "diese floskeln setzt man ein, indem man" .byte "\x1abei der texteingabe nach dem steuerzei-" .byte "\x1achen '\x12f\x92' das kennzeichen (*) setzt." .byte "\x1a\x19\x0f\x11 \x91^\x11\x9d\xad(*) \x12crsr\x92: scrollen, \x12f1\x92: ende\x19\x0f\x91\x1a\x03" txt42 .byte "loesche\x1a\x19\x07\xa3\x1a" .byte "\x17nach namen \x19\x12. \x12f1" .byte "\x1a\x17nach typ \x19\x13.. \x12f7" .byte "\x11\x1a\x17hauptmenue \x19\x12. \x12_\xc0\x03" txt43 .byte "\x1a\x1azu loeschenden \x03" txt44 .byte "typ\x03" txt45 .byte "namen\x03" txt46 .byte " eingeben !\x1a(joker *,? erlaubt) \x03" char .byte "abcdefghijklmnopqrstuvwxyz0123456789" try brk texte .byte "adventure\x03" .byte "basic\x03" .byte "computer\x03" .byte "disk\x03" .byte "editor\x03" .byte "floppy\x03" .byte "grafik\x03" .byte "hardware\x03" .byte "ideal\x03" .byte "jetzt auch fuer den\x03" .byte "kopier\x03" .byte "load\x03" .byte "maschinensprache\x03" .byte "nachgeladen\x03" .byte "commodore\x03" .byte "programm\x03" .byte "musik\x03" .byte "heiteres spielchen\x03" .byte "spiel\x03" .byte "taste\x03" .byte "utility\x03" .byte "version\x03" .byte "wird nachgeladen von\x03" .byte "load\xa0...,8 start mit run\x03" .byte "load\xa0...,8,1 start mit sys\x03" .byte "zusatz\x03" .byte "compiler\x03" .byte "sound\x03" .byte "demo\x03" .byte "3-dimensional\x03" .byte "drucker\x03" .byte "monitor\x03" .byte "64'er\x03" .byte "(!!)\x03" .byte ",8,1\x03" .byte "n.s.s.\x03\x03" job brk irqadr .word 0 bliz brk cln brk temp brk lastjob brk anz brk floppy .byt 8 printer .byt 3 psa brk cpz .byt 40 job2 brk nextbep brk typbep brk hobep brk tab brk merkde brk entry brk count brk flag brk flag2 brk zaehl brk left brk lastword brk lasthol brk crsr brk first brk von brk enda .word 0 num brk upgr brk mals brk eoi brk keys .byte "\x89\x85\x86\x8c\x87\x88\x8a\x8b" brk keyadr .word loesch,load,show,end,enter,sort,list,clrn name .byte "$0:" mask .byte "*\x03-----------------" dina .byte "----------------" id .word 0 os .word 0 free .word 0 dri =254 tvon .byt 2,0,23,18 sortk .byte "\x85\x86\x87\x88" brk loen .byt 2,18 loek .byte "\x85\x88" brk maln .byt 16,5 seclin .byt 9,11,12,14 qstrout tax lda tmp pha lda tmp+1 pha stx tmp sty tmp+1 l1 ldy #0 lda (tmp),y beq stend cmp #"\x03" beq stend cmp #"\x1a" beq ret cmp #"\x19" beq repeat cmp #"\x18" bne nor lda spalte sta tab lda #0 nor cmp #"\x17" beq tabe jsr bsout next inc tmp bne l1 inc tmp+1 bne l1 stend pla sta tmp+1 pla sta tmp rts ret jsr return jmp next repeat iny lda (tmp),y tax iny lda (tmp),y nneexxtt jsr bsout dex bne nneexxtt lda tmp clc adc #3 sta tmp lda tmp+1 adc #0 sta tmp+1 bne l1 tabe lda #txt18 jsr strout jmp next vicinit jsr cint ldx #12 stx vic+32 dex stx vic+33 rts xoutc lda #0 jsr axout clreol lda spalte cmp #39 bcs okl jsr space jmp clreol sure lda #txt4 jsr strout lda #$80 sta job getjn jsr get cmp #"j" beq yes cmp #"y" beq yes cmp #"n" bne getjn no jsr yes clc okl rts yes lda #$90 sta job jsr waitcl ldx #24 jsr clrx sec rts waitcl lda cln bne waitcl rts liclr lda #32 ldx #39 lc sta rem,x dex bpl lc inx stx crsr rts inse lda #txt5 jsr strout lda #$80 sta job get12 jsr get beq get12 cmp #"_" beq yes bne no holtab lda tab sta spalte jmp setcr irqinit sei ldx #1 stx job stx bliz stx nextbep dex stx cln stx typbep lda #$90 sta job2 jsr speed1 lda irqvec+1 cmp #>irq beq deja sta irqadr+1 lda irqvec sta irqadr lda #irq setirq sta irqvec sty irqvec+1 deja cli rts textrin lda cln bne ach ldx #39 settxt lda txt3,x sta bim,x dex bpl settxt rts irqaus lda irqadr ldy irqadr+1 bne setirq ach jsr tausch jmp textrin speed1 lda #38 .byt $2c speed2 lda #64 sta irqspeed rts clrlatch lda #" " ldx #127 cll sta latch,x dex bpl cll rts nextline lda spalte beq deja jmp return errabr jsr enddisk lda #$80 sta job2 jsr waitkey lda #$90 sta job2 jmp title getnum jsr speed2 lda ptr pha lda ptr+1 pha ldx #0 getnu jsr input cmp #cr beq jacr sta latch,x inx bne getnu jacr lda #0 sta latch,x lda #latch sta ptr sty ptr+1 jsr chrgot jsr ascfac jsr round pla sta ptr+1 pla sta ptr lda sgn bmi err1 lda exp cmp #$91 bcs err1 jsr getadr ldx byt lda byt+1 clc rts err1 sec rts qirq lda job bpl nix cmp lastjob beq gut jsr textrin lda job sta lastjob gut and #$7f bne nixbli dec bliz bne nix lda #70 sta bliz jsr tausch jmp nix nixbli cmp #$10 bne nix lda cln beq nix jsr tausch lda #0 sta job beq nix tausch lda cln eor #-1 sta cln ldx #39 taus lda bi,x pha lda bim,x sta bi,x pla sta bim,x lda #12 sta bi+$d400,x dex bpl taus rts nix lda job2 bpl aus and #$7f bne nixan dec nextbep bne changeto lda typbep eor #-1 sta typbep bne an lda #10 ldx #32 ldy #230 sty hobep setbep sta nextbep stx sid+4 rts an lda #40 ldx #33 bne setbep nixan cmp #$10 bne aus lda #0 ldx #24 clrsid sta sid,x dex bpl clrsid sta job2 lda #15 sta sid+24 lda #9 sta sid+5 lda #240 sta sid+6 lda #230 sta hobep lda #32 sta sid+4 aus rts changeto lda typbep beq aus lda hobep sec sbc #5 sta hobep sta sid+1 rts testdata lda anz beq keine clc rts keine jsr title lda #txt12 jsr strout lda #$80 sta job2 jsr waitkey lda #$90 sta job2 jsr title sec rts askga stx merkde askga2 lda #txt6 jsr strout ldx merkde jsr xoutc jsr holtab jsr getnum bcs err bne err ldx byt rts err jsr up jmp askga2 quote lda #34 .byt $2c up lda #"\x91" jmp bsout open15 lda #15 tay ldx floppy jsr setpar lda #2 ldx #i0 jsr setnam jmp open close4 lda #4 .byt $2c close2 lda #2 .byt $2c close15 lda #15 jmp close diskinit jsr close15 jsr open15 errchan ldx #15 jsr chkin ldx #0 errl1 jsr get cmp #cr beq errl2 sta latch,x inx bne errl1 errl2 lda #0 sta latch,x jsr clrchn lda latch cmp #"0" beq rig1 derr jsr nextline lda #txt16 jsr strout lda #latch jsr strout lda #txt17 jsr strout sec rts rig1 lda latch+1 cmp #"0" bne derr clc rts opendir jsr close2 ldx #0 dirlen lda name,x beq fin cmp #"\x03" beq fin inx bne dirlen fin txa ldx #name jsr setnam ldx floppy lda #2 ldy #0 jsr setpar jmp open in2 ldx #2 jmp chkin waitqu jsr get cmp #34 bne waitqu rts wartwas jsr get cmp #" " beq wartwas nixda rts wait0 jsr get bne wait0 rts enddisk jsr clrchn jsr close2 jmp close15 nss lda printer cmp #3 beq nixda lda #txt38 jsr strout ldx #30 .byt $2c fillline ldx #19 fl jsr space inx cpx cpz bcc fl jmp return adr ldy #0 sty tmp+1 ldx #6 assel asl rol tmp+1 dex bne assel sta tmp lda tmp+1 clc adc #>mem sta tmp+1 rts srom lda #55 .byt $2c sram lda #54 sta konf rts putlatch lda anz cmp #max bcc platz lda #txt28 jsr strout pla pla jmp errabr platz jsr adr ldy #22 trans lda latch,y sta (tmp),y dey bpl trans ldy #23 lda #0 sta (tmp),y inc anz rts xpar jsr adrx jsr farbram lda bild sta bld lda bild+1 sta bld+1 lda farb sta frb lda farb+1 sta frb+1 rts copy39 ldy #39 c39 lda (bild),y sta (bld),y lda (farb),y sta (frb),y dey bpl c39 rts transfl inx tya pha lda tmp pha lda tmp+1 pha jsr flxadr lda tmp sta bld lda tmp+1 sta bld+1 pla sta tmp+1 pla sta tmp ldx upgr ldy #0 traf lda (bld),y cmp #"\x03" beq efl sta rem,x inx iny bne traf efl pla tay iny rts printopen jsr close4 ldx printer lda #4 ldy psa jsr setpar lda #0 jsr setnam jmp open axbuf stx fac+2 sta fac+1 ldx #$90 sec jsr intfac jsr floatasc f1 ldx #-1 test0 inx lda buf,x bne test0 cpx #3 bcs f2 ldx #7 f3 lda buf,x inx sta buf,x dex dex bpl f3 lda #32 sta buf bne f1 f2 rts endprint lda printer cmp #3 bne ende jsr waitkey ende jmp title waitkey lda #0 sta key wk lda key beq wk dec key rts scroll lda printer cmp #3 bne scrend inc zaehl lda zaehl cmp #12 bcc nopaus lda #0 sta zaehl jsr waitkey inc flag2 nopaus lda flag2 beq scrend dec zeile ldx #12 dolp jsr xpar inx jsr adrx jsr farbram jsr copy39 cpx #23 bcc dolp jsr clrx jmp setcr scrend rts textrem ldy #23 ldx #0 stx first txtrem lda (tmp),y cmp #"\x06" beq fls sta rem,x iny inx cpy #64 bcc txtrem bcs remlatch fls iny lda (tmp),y sta try stx upgr ldx #0 fl1 lda char,x cmp try beq fl2 inx bne fl1 fl2 jsr transfl jmp txtrem remlatch ldx #33 ldy #0 r1 stx lastword sty lasthol r2 lda rem,y sta latch,x beq r3 iny inx cmp #" " beq r1 cpx cpz bcc r2 ldy lasthol beq arndt dec lastword jsr rueck fait ldx lastword lda #cr sta left sta latch,x inx lda #0 sta latch,x rts r3 sta left lda #cr sta latch,x inx lda #0 sta latch,x rts arndt ldy first beq fait jsr testlen php stx sub+1 lda cpz sec sbc #1 sec sub sbc #0 tax ldy #0 transit lda rem,y beq transed sta latch,x inx iny bne transit transed jmp weiter rueck ldx #0 r4 lda rem,y sta rem,x beq r5 inx iny bne r4 r5 rts montre jsr return jsr up ldy #0 momo lda #1 sta quf lda rem,y jsr bsout iny cpy #40 bcc momo jsr return jsr up jsr up lda crsr sta spalte jsr setcr jmp up del ldy crsr beq dede dey dede iny lda rem,y dey sta rem,y iny cpy #39 bcc dede lda #32 sta rem,y rts insert ldy #39 inin cpy crsr beq is2 dey lda rem,y iny sta rem,y dey bpl inin is2 lda #" " sta rem,y rts testlen ldx #0 tesln lda rem,x beq ofen cmp #" " beq ofen2 inx bne tesln ofen clc .byt $24 ofen2 sec rts weiter plp bcc gehtso inc sub+1 gehtso ldy sub+1 jsr rueck ldx cpz dex stx lastword jmp fait colline jsr adrx jsr farbram ldy #39 lda #0 schwarz sta (farb),y dey bpl schwarz ok rts security lda anz bne ok ldy #3 secloop sty temp ldx seclin,y jsr colline ldy temp dey bpl secloop rts qstart jsr vicinit jsr title jsr irqinit lda #-1 sta repkey jsr clall me lda #txt2 jsr strout ldx anz jsr xoutc jsr speed1 lda #txt13 jsr strout jsr security lda #$80 sta job wem jsr get beq wem sta temp ldx #0 sk lda keys,x beq wem cmp temp beq found inx bne sk found lda #$90 sta job txa asl tax lda keyadr,x sta goto+1 lda keyadr+1,x sta goto+2 jsr waitcl goto jsr 0 jmp me qtitle lda #txt1 jmp strout end jsr sure bcs sowas rts sowas jsr enddisk jsr irqaus pla pla jsr cint jsr speed2 lda #txt15 jmp strout loesch jsr sure bcs clrmem rts clrmem lda #0 sta anz keidata rts show jsr testdata bcs keidata jsr title ldx printer jsr askga stx printer seka lda #txt7 jsr strout ldx psa jsr xoutc jsr holtab jsr getnum bcs err2 bne err2 ldx byt stx psa jmp zpz err2 jsr up jmp seka zpz lda #txt8 jsr strout ldx cpz jsr xoutc jsr holtab jsr getnum bcs err3 bne err3 ldx byt cpx #40 bcc err3 stx cpz jmp richtig err3 jsr up jmp zpz richtig lda #txt14 jsr strout jsr input cmp #"n" beq show cmp #"y" beq mach cmp #"j" beq mach jsr up jsr bsout jmp richtig mach jsr title lda printer cmp #3 beq drei lda #txt29 jsr strout drei jsr printopen ldx #4 jsr chkout lda #txt30 jsr strout ldx #0 dinaout lda dina,x cmp #"\xa0" beq shiftsp jsr bsout shiftsp inx cpx #16 bcc dinaout jsr quote lda cpz cmp #61 bcc rt lda #" " .byt $2c rt lda #cr jsr bsout lda #txt31 jsr strout lda id jsr bsout lda id+1 jsr bsout lda #txt21 jsr strout lda os jsr bsout lda os+1 jsr bsout lda #txt32 jsr strout lda dri ora #"0" jsr bsout jsr return ldx free lda free+1 jsr axout lda #txt25 jsr strout lda #voll sbc free+1 jsr axout lda #txt33 jsr strout ldx anz lda #0 jsr axout lda #txt34 jsr strout lda #0 sta count sta zaehl sta flag2 lda #txt39 jsr strout jsr fillline main inc count ldx count lda #0 sta flag jsr axbuf jsr clrlatch ldx #2 t1 lda buf,x sta latch,x dex bpl t1 ldx count dex txa jsr adr ldy #18 jsr sram t2 lda (tmp),y sta latch-14,y iny cpy #23 bcc t2 ldy #0 lda (tmp),y iny tax lda (tmp),y pha jsr srom pla jsr axbuf ldx #2 t3 lda buf,x sta 10+latch,x dex bpl t3 lda #34 sta latch+14 jsr sram ldy #2 t4 lda (tmp),y sta latch+13,y cmp #34 bne t5 inc flag t5 iny cpy #18 bcc t4 lda flag bne goon lda #34 sta latch+31 bne goon goon jsr textrem jsr srom inc first outit lda #latch jsr strout jsr scroll lda left beq final jsr clrlatch jsr remlatch jmp outit final lda count cmp anz bcs fertig jmp main fertig jsr nss jsr clrchn jsr close4 jmp endprint load jsr inse bcc lade rts lade jsr title ldx floppy jsr askga stx floppy lda name+1 sta txt9a getdn lda #txt9 jsr strout jsr input cmp #"0" bcs gr0 dnerr jsr up jmp getdn gr0 cmp #"2" bcs dnerr sta name+1 sta i0+1 jsr diskinit bcs over wantmask lda #txt10 jsr strout lda #mask jsr strout jsr holtab ldx #0 holma jsr input cmp #cr beq holed sta mask,x inx cpx #18 bcc holma holed txa bne iswas jsr up jmp wantmask iswas lda #0 sta mask,x lda anz beq noleft wish lda #txt11 jsr strout jsr input cmp #"j" beq noleft cmp #"y" beq noleft cmp #"n" beq nullanz jsr up jmp wish over jmp errabr nullanz lda #0 sta anz noleft lda #txt14 jsr strout jsr input cmp #"n" beq qlade cmp #"y" beq alrig cmp #"j" beq alrig jsr up jsr bsout jmp noleft qlade jmp lade alrig jsr opendir jsr errchan bcs over lda #txt27 jsr strout jsr in2 jsr get jsr get lda #0 sta entry lda #txt19 jsr strout jsr get jsr get jsr get sta dri jsr waitqu ldx #0 getdina jsr get sta dina,x jsr bsout inx cpx #16 bcc getdina lda #txt20 jsr strout jsr get jsr wartwas jsr bsout sta id jsr get sta id+1 jsr bsout jsr get lda #txt21 jsr strout jsr get jsr bsout sta os jsr get sta os+1 jsr bsout jsr return jsr wait0 entryloop jsr errchan bcs qover jsr in2 jsr get jsr get inc entry jsr get sta latch jsr get sta latch+1 jsr wartwas cmp #34 beq guel jmp bfr qover jmp over guel lda #txt22 jsr strout ldx entry lda #0 jsr axout lda #9 sta spalte jsr setcr lda #18 jsr bsout jsr quote ldx #2 getnam jsr get jsr bsout sta latch,x inx cpx #18 bcc getnam lda #txt23 jsr strout ldx #5 lda #32 deltyp sta latch+18,x dex bpl deltyp jsr get jsr wartwas ldx #18 cmp #"*" beq stern inx stern sta latch,x jsr get beq fine inx sta latch,x bne stern fine ldx #18 showtyp lda latch,x jsr bsout inx cpx #24 bcc showtyp lda latch+1 ldx latch jsr axout lda #txt24 jsr strout ldx anz inx jsr xoutc jsr up jsr up jsr putlatch jmp entryloop bfr jsr enddisk ldx #5 retka jsr return dex bne retka lda #txt18 jsr strout lda latch+1 ldx latch sta free+1 stx free jsr axout lda #txt25 jsr strout lda #voll sbc latch+1 jsr axout lda #txt26 jsr strout jsr waitkey jmp title enter jsr testdata bcc jad rts jad jsr title lda #txt35 jsr strout jsr getnum bcs jad ldx byt beq jad cpx anz beq oknr2 bcs jad oknr2 dex txa pha lda #txt36 jsr strout pla jsr adr ldy #2 lda #0 sta flag tt4 jsr sram lda (tmp),y pha jsr srom pla jsr bsout cmp #34 bne tt5 inc flag tt5 iny cpy #18 bcc tt4 lda flag bne goon2 jsr quote jmp goon2 goon2 lda #txt37 jsr strout ldx #39 lda #32 clrrem sta rem,x dex bpl clrrem ldy #23 jsr sram lda #0 sta crsr sta key torem lda (tmp),y beq feddisch sta rem-23,y iny cpy #63 bcc torem feddisch jsr srom jsr montre gek lda #0 sta crs1 ggkk jsr get beq ggkk ldx #1 stx crs3 waa ldx crs2 bne waa inc crs1 cmp #20 bne no20 jsr del bne lft no20 cmp #20+$80 bne no2 jsr insert bne feddisch no2 cmp #"\x13" bne nohome lda #0 sta crsr beq feddisch nohome cmp #"\x93" bne noclr jsr liclr jmp feddisch noclr cmp #"\x85" bne nof1 jmp title nof1 cmp #cr bne noccr jmp takeit noccr cmp #"\x1d" bne nori rgt lda crsr cmp #39 bcs feddisch inc crsr bne feddisch nori cmp #"\x9d" bne nole lft lda crsr beq feddisch dec crsr bpl feddisch nole cmp #"\x86" bne nf3 lda #"\x06" bne ausge nf3 cmp #" " bcc gek cmp #128 bcc ausge cmp #149 bcc gek cmp #156 bcc ausge cmp #160 bcc qgek ausge ldy crsr sta rem,y jmp rgt qgek jmp gek takeit ldy #40 endsu dey lda rem,y cmp #" " beq endsu iny lda #0 sta rem,y ldy #23 trarem lda rem-23,y sta (tmp),y iny cpy #64 bcc trarem jmp title escape lda #$90 sta job jsr waitcl jmp title sort jsr testdata bcc sortan rts sortan jsr title lda #txt40 jsr strout lda #$80 sta job gtk jsr get beq gtk cmp #"_" beq escape sta temp ldx #0 sik lda sortk,x beq gtk cmp temp beq artok inx bne sik artok lda #$90 sta job lda tvon,x sta von jsr sram jsr waitcl lda anz jsr adr lda tmp ldy tmp+1 sta enda sty enda+1 lda #0 jsr adr sm1 lda tmp cmp enda bne ssm1 lda tmp+1 cmp enda+1 bne ssm1 jsr srom jmp title ssm1 lda tmp ldy tmp+1 sta tmp2 sty tmp2+1 sm2 lda tmp2 clc adc #64 sta tmp2 lda tmp2+1 adc #0 sta tmp2+1 lda tmp2 cmp enda bne ssm2 lda tmp2+1 cmp enda+1 bne ssm2 lda tmp clc adc #64 sta tmp lda tmp+1 adc #0 sta tmp+1 bne sm1 ssm2 ldy von ssm3 lda (tmp),y cmp (tmp2),y bcc sm2 bne sm3 iny cpy #64 bcc ssm3 bcs sm2 sm3 ldy #63 ssm4 lda (tmp),y pha lda (tmp2),y sta (tmp),y pla sta (tmp2),y dey bpl ssm4 bmi sm2 list jsr title lda #txt41 jsr strout ldx #1 stx upgr fllp1 jsr flxout inx cpx #14 bcc fllp1 fllp8 jsr get beq fllp8 cmp #"\x85" bne fllp9 jmp title fllp9 cmp #"\x11" beq fllp10 cmp #"\x91" bne fllp8 jsr scrdwn dec upgr jsr testup ldx upgr jsr flxout jmp fllp8 fllp10 jsr scrup inc upgr jsr testup lda upgr clc adc #12 jsr upset tax jsr flxout jmp fllp8 testup lda upgr bne no0 lda #try-char setup sta upgr rtts rts no0 cmp #try-char+1 bcc rtts lda #1 bne setup upset cmp #try-char+1 bcc rtts sec sbc #try-char jmp upset flxadr stx num lda #texte sta tmp sty tmp+1 fllp2 dex bne fllp3 rts fllp3 ldy #0 fllp4 lda (tmp),y cmp #"\x03" beq fllp5 iny bne fllp4 fllp5 iny tya clc adc tmp sta tmp lda tmp+1 adc #0 sta tmp+1 bne fllp2 flxout jsr flxadr jsr space jsr bsout jsr bsout ldx num lda char-1,x jsr bsout lda #"=" jsr bsout lda tmp ldy tmp+1 jsr strout jsr clreol jsr return ldx num rts scrup ldx #10 fllp6 jsr xpar inx jsr adrx jsr farbram jsr copy39 cpx #22 bcc fllp6 bcs setcoor scrdwn ldx #22 fllp7 jsr xpar dex jsr adrx jsr farbram jsr copy39 cpx #10 bne fllp7 setcoor stx zeile lda #0 sta spalte jmp setcr ecape jmp escape clrn jsr testdata bcc cldata rts cldata jsr title lda #txt42 jsr strout lda #$80 sta job gmk jsr get beq gmk cmp #"_" beq ecape sta temp ldx #0 sij lda loek,x beq gmk cmp temp beq armok inx bne sij armok lda #$90 sta job lda loen,x sta von pha lda maln,x sta mals pla clc adc mals sta eoi stx upgr jsr waitcl lda #txt43 jsr strout ldx upgr beq na lda #txt44 bne nat na lda #txt45 nat jsr strout lda #txt46 jsr strout jsr speed2 ldx #0 nai jsr input cmp #cr beq nac sta rem,x inx cpx mals bcc nai nac lda #0 sta rem,x jsr speed1 jsr sure bcs nclrn jmp clrn nclrn lda #0 handle sta count jsr darfich bcc lassen lda count jsr dela dec count lassen inc count lda count cmp anz bcc handle jmp title dela jsr adr lda tmp clc adc #64 sta bld lda tmp+1 adc #0 sta bld+1 dela1 lda bld cmp #vic bne dela2 dec anz jmp srom dela2 jsr sram ldy #63 dela3 lda (bld),y sta (tmp),y dey bpl dela3 lda tmp clc adc #64 sta tmp lda tmp+1 adc #0 sta tmp+1 lda bld clc adc #64 sta bld lda bld+1 adc #0 sta bld+1 bne dela1 darfich jsr adr jsr sram ldy von ldx #0 lda rem,x comp cmp (tmp),y beq same cmp #"?" bne wrong lda (tmp),y cmp #34 beq wrong same inx iny lda rem,x beq zero cmp #"*" beq fund bne comp zero cpy eoi bcs fund lda (tmp),y cmp #34 bne wrong fund sec .byt $24 wrong clc php jsr srom plp rts