;:sys36864 ;.opt oo *= 49152 ziel =2049 ser1 =1 ; versionsnummer ser2 =5 ; sekundaer cint =65409 open =$ffc0 close =$ffc3 chkout =$ffc9 clrchn =$ffcc print =$ffd2 get =$ffe4 ptr =2 clall =$ffe7 axout =$bdcd strout =$ab1e anzprg =4 gr =5 setnam =$ffbd dn =$b8 namlen =183 sa =$b9 len =251 return =$aad7 tsys =158 bank =1 tmp =166 crs1 =$cc crs2 =$cd crs3 =$cf name =820 zeile =214 space =$ab3f vic =$d000 bild =$d1 namber =$cd00 ; 45 files a 17 zeichen calc =$e9f0 tmp2 =181 scradr =648 scrmem =$d000 clrscr =$e544 sendnam =$f3d5 talk =$ffb4 sectalk =$ff96 iecin =$ffa5 status =$90 clsfil =$f642 fa =$ba key =198 clrx =59903 alle =139 lfd =140 chkin =$ffc6 fehler =704 ; fehlerkanal real =141 last =142 aktlen =170 lenpos =178 memend =$bf00 save =$ffd8 ioflag =157 reset =65532 sum =253 laenge =254 spalte =211 cursor =58732 base jmp losgehts help .byte "\x11 bitte geben sie die filenamen der max." .byt 13 .byte " 45 einzelfiles ein. '$': dir. anzeigen" .byt 13 .byte " '*': fertig" .byt 13 .byte " '?': korrektur" .byt 13 .byte " ':': dir. lesen" .byt 13,0 holnam1 .byt 13 .byte " name des " brk holnam2 .byte ". files ? " brk taste .byt 13 .byte " - weiter mit taste -" brk also .byte "\x13\x11\x11\x11\x11\x11 es wurden " brk also2 .byte " files erfasst." .byt 13 .byte " sind die alle auf einer diskette ? " brk gesask .byt 13 .byte "\x11 gesamtfile - name ? " brk autotxt .byte "\x13\x11\x11\x11\x11\x11 files aus directory einlesen." .byt 13 .byte "\x11 (j) file uebernehmen" .byt 13 .byte " (n) file ueberspringen" .byt 13 .byte " (*) fertig" .byt 13 .byte " (d) diskette wechseln" .byt 13 .byte " (a) arc neu starten" brk oha .byte "\x13\x11\x11\x11\x11\x11 bearbeite file nr. " brk ohu .byt 13 .byte " name: " brk ohe .byt 13 .byte "\x11\x11\x11\x11 - bitte diskette einlegen -" brk csu .byte "\x13\x11\x11\x11\x11\x11\x11\x11\x11\x11 diskfehler: " brk spd .byte "\x11 (v) nochmal versuchen" hope .byt 13 .byte " (n) naechstes file" .byt 13 .byte " (e) ende" brk dahin .byt 13 .byte " ladeadresse : " brk loada .byte "\x13\x11\x11\x11\x11\x11\x11\x11\x11\x11 startadresse: " brk full .byt 13 .byte "\x11\x11 file zu lang - speicher voll !!\x11" brk jetzt .byte "\x13\x11\x11\x11\x11\x11 gesamtfile wird gespeichert" .byt 13 .byte "\x11 - bitte diskette einlegen -" brk jetzned .byte "\x13\x11\x11\x11\x11\x11 alle files uebersprungen !" brk alk .byt 13 .byte "\x11 speicherung beendet. alles okay.\x11" bob .byt 13 .byte " programm nochmal starten ? [j/n]" brk watnu .byt 13 .byte " (v) nochmal versuchen" .byt 13 .byte " (e) ende\x11\x11" brk auzer1 .byte "stand: " brk anzer2 .byte " von max. 45 files erfasst." brk auzer3 .byte "diskette einlegen!" brk auzer4 .byte "disketten-name: " brk dirne .byte "$0" auzer5 .byte "file: " brk auzlen .byte "block-summe: " brk anz2 .byt 13 .byte "\x11 frei: " brk momanz .byte "laenge: " brk kopf =* bas =* .word endp,1990 .byt tsys .byte "2061" brk endp =*-bas+ziel .word 0 jsr cint jsr clall lda #6 sta vic+32 sta vic+33 lda fa cmp #8 bcc set8b cmp #15 bcc okayb set8b lda #8 sta fa okayb lda #genb sta ptr sty ptr+1 jsr hol sta anzprg sty gr lda #txt1 jsr strout fileloop inc gr lda #txt2 jsr strout ldx gr lda #0 jsr axout lda #txt3 jsr strout ldx anzprg lda #0 jsr axout ldx ptr ldy ptr+1 jsr setnam jsr hol bne gon lda #txt4 jsr strout jsr clall ldx gr dex lda #0 jsr axout jmp return gon iny sty namlen sty sa sty dn getnam jsr hol beq hates inc namlen bne getnam qfileloop bcc fileloop hates lda #54 sta bank jsr open inc bank ldx #1 jsr chkout jsr hol jsr print jsr hol jsr print jsr hol sta len jsr hol sta len+1 saveprg lda len bne nochwas lda len+1 beq fertig dec len+1 nochwas dec len jsr hol jsr print clc bcc saveprg fertig jsr clrchn lda #1 jsr close clc bcc qfileloop hol =*-bas+ziel lda #54 sta bank ldy #0 lda (ptr),y inc ptr bne loop1 inc ptr+1 loop1 inc bank and #$ff rts txt1 =*-bas+ziel atxt1 .byte "\x05\x08\x8e\x93\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4" .byte "\x12archive v" .byt ser1+48,".",ser2+48,32 mode .byte "gen von nikolaus heusler" .byte "(c) nh-071290-arr ein nss programm" .byt 13 art .byte "\x11die files werden erzeugt...\x11\x11" brk txt2 =*-bas+ziel .byt 13 .byte "\x91file " brk txt3 =*-bas+ziel .byt 13 .byte "\x91\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1dvon " brk txt4 =*-bas+ziel .byt 13 .byte "\x91fertig !! files generiert\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d" brk endkopf =* genb =*-bas+ziel memlen =memend-genb memblk =>memlen schieb =endkopf-kopf-256 copydown ldy #0 copy1 lda kopf,y sta ziel,y lda kopf+schieb,y sta ziel+schieb,y iny bne copy1 rts clrpag ldx #5 cpg jsr clrx inx cpx #24 bcc cpg rts getname jsr delber ldx #0 stx len keylp lda #0 sta crs1 wk jsr get beq wk ldx #2 stx crs2 wx ldx crs3 bne wx inc crs1 cmp #13 bne text ldx len beq keylp rts text cmp #20 bne nodel ldx len beq keylp jsr print dec len bpl keylp nodel cmp #32 bcs ok1 wrong jmp keylp ok1 tax bpl ok cmp #149 bcc wrong cmp #156 bcc ok cmp #160 bcc wrong ok ldx len cpx #16 bcs keylp sta name,x jsr print inc len bne keylp delber ldx #16 lda #"\xa0" d1 jsr print dex bne d1 ldx #16 lda #"\x9d" d2 jsr print dex bne d2 rts cax dex stx tmp2 lda #0 sta tmp+1 txa ldx #4 cax1 asl rol tmp+1 dex bne cax1 adc tmp2 sta tmp lda tmp+1 adc #>namber sta tmp+1 rts scroll ldx #11 scr1 jsr calc lda bild sta tmp lda bild+1 sta tmp+1 inx jsr calc ldy #39 scr2 lda (bild),y sta (tmp),y dey bpl scr2 cpx #23 bcc scr1 up lda #"\x91" jmp print put ldy #0 sta (ptr),y inc ptr bne raus inc ptr+1 raus rts close9 jsr clrchn lda #9 jmp close dir ldy #0 sty tmp sty tmp2 lda scradr sta tmp+1 lda #>scrmem sta tmp2+1 ldx #48 sei stx bank ldx #4 lda zeile pha copy3 lda (tmp),y sta (tmp2),y dey bne copy3 inc tmp+1 inc tmp2+1 dex bne copy3 ldx #55 stx bank cli jsr clrscr ldx #name lda len jsr setnam lda #$60 sta sa jsr sendnam lda fa jsr talk lda sa jsr sectalk lda #0 sta status ldy #3 l1 sty tmp jsr iecin sta tmp+1 ldy status bne l4 jsr iecin ldy status bne l4 ldy tmp dey bne l1 ldx tmp+1 jsr axout jsr space l3 jsr iecin ldx status bne l4 tax beq l2 jsr print bcc l3 l2 jsr return ldy #2 bne l1 l4 jsr clsfil lda #taste jsr strout jsr waitkey lda #1 sta vic+33 jsr clrscr lda #6 sta vic+33 pla sta zeile ldx #48 sei stx bank ldx #4 lda #>scrmem sta tmp+1 ldy #0 sty tmp sty tmp2 lda scradr sta tmp2+1 copy2 lda (tmp),y sta (tmp2),y dey bne copy2 inc tmp+1 inc tmp2+1 dex bne copy2 ldx #55 stx bank cli rts waitkey lda #0 sta key wkk cmp key beq wkk dec key rts losgehts jsr cint jsr clall lda #6 sta vic+32 sta vic+33 lda fa cmp #8 bcc set8 cmp #15 bcc okay set8 lda #8 sta fa okay lda #0 sta ioflag sta art sta anzprg lda #32 sta mode sta mode+1 sta mode+2 lda #atxt1 jsr strout lda #17 sta art lda #"g" sta mode lda #"e" sta mode+1 lda #"n" sta mode+2 lda #help jsr strout eing1 inc anzprg eing2 lda #holnam1 jsr strout ldx anzprg jsr xtab lda #holnam2 jsr strout jsr getname lda name cmp #"*" bne noend lda anzprg cmp #2 bcs jaend1 stop jsr up bcc eing2 noend cmp #"?" bne nokor lda zeile cmp #12 bcc stop dec anzprg jsr up bcc stop nokor cmp #"$" bne nodir jsr dir jmp stop nodir cmp #":" bne noaut jmp getauto noaut ldx anzprg cpx #46 bcs stop jsr cax ldy len lda #0 sta (tmp),y dey transnam lda name,y sta (tmp),y dey bpl transnam lda zeile cmp #23 bcc eing1 jsr scroll jmp eing1 jaend1 dec anzprg jaend2 jsr clrpag lda #also jsr strout ldx anzprg jsr xout lda #also2 jsr strout lda #0 sta key wjn jsr get cmp #"j" beq off cmp #"n" bne wjn off jsr print sec sbc #"j" sta alle lda #gesask jsr strout jsr getname lda name cmp #"*" beq jaend2 cmp #"?" beq jaend2 lda #0 sta lfd sta real jsr copydown lda #genb sta ptr sty ptr+1 jsr put ldy #15 sty sa sty dn lda #0 sta namlen jsr open main inc lfd ldx lfd dex cpx anzprg bne sleep jmp ende sleep ldx #5 lda ptr sta last lda ptr+1 sta last+1 clrp2 jsr clrx inx cpx #19 bcc clrp2 lda #oha jsr strout lda #0 ldx lfd jsr xout lda #ohu jsr strout ldx lfd jsr cax lda tmp ldy tmp+1 jsr strout lda alle bmi weiter lda #ohe jsr strout jsr waitkey ldx #11 jsr clrx lda alle bne weiter lda #-1 sta alle weiter ldy #-1 wtr iny lda (tmp),y sty tmp2 jsr put ldy tmp2 tax bne wtr tya ldx tmp ldy tmp+1 jsr setnam lda #0 sta sa lda #9 sta dn jsr open ldx #15 jsr chkin ldx #-1 geterr inx jsr get sta fehler,x cmp #13 bne geterr lda #0 sta fehler+1,x jsr clrchn lda fehler cmp #"0" beq aechtz jsr close9 lda #csu jsr strout lda #fehler jsr strout lda #spd jsr strout gti jsr get cmp #"e" bne noe halt lda last sta ptr lda last+1 sta ptr+1 jmp ende noe cmp #"v" bne nov dec lfd qmain lda last sta ptr lda last+1 sta ptr+1 jmp main nov cmp #"n" bne gti beq qmain aechtz ldx #9 jsr chkin jsr get jsr put pha jsr get jsr put pha lda #loada jsr strout pla tay pla tax tya jsr axout lda ptr sta lenpos lda ptr+1 sta lenpos+1 lda #0 sta aktlen sta aktlen+1 jsr put jsr put lda #dahin jsr strout ldx ptr lda ptr+1 jsr axout loadloop jsr iecin tax lda status lsr lsr bcs abort txa jsr put inc aktlen bne noinc inc aktlen+1 noinc lda ptr+1 cmp #>memend bcc loadloop jsr close9 lda #full jsr strout lda #hope jsr strout lda #0 sta key getne jsr get cmp #"e" beq qhalt cmp #"n" bne getne jmp qmain qhalt jmp halt abort jsr close9 ldy #0 lda aktlen sta (lenpos),y iny lda aktlen+1 sta (lenpos),y inc real jmp main ende lda #0 jsr put end ldx #5 clrpg3 jsr clrx inx cpx #19 bcc clrpg3 lda real beq nixdrin sta genb lda #jetzt jsr strout jsr waitkey ldx #7 jsr clrx lda len ldx #name jsr setnam lda #54 sta bank ldx ptr ldy ptr+1 lda #ziel sta tmp+1 lda #tmp jsr save inc bank ldx #15 jsr chkin ldx #-1 geterr2 inx jsr get sta fehler,x cmp #13 bne geterr2 lda #0 sta fehler+1,x jsr clrchn lda fehler cmp #"0" beq aechtz2 jsr close9 lda #csu jsr strout lda #fehler jsr strout lda #watnu jsr strout lda #0 sta key wat jsr get cmp #"e" beq fort cmp #"v" bne wat jmp end nixdrin lda #jetzned jsr strout aechtz2 lda #15 jsr close lda #alk sout jsr strout lda #0 sta key erwjn jsr get cmp #"n" bne live jmp (reset) live cmp #"j" bne erwjn neustart jmp (base+1) fort lda #bob bne sout getauto jsr clrpag lda #autotxt jsr strout lda #0 sta sum eil1 jsr blockout ldx #19 jsr linx lda #auzer1 jsr strout ldx anzprg dex jsr xtab lda #anzer2 jsr strout ldx #16 jsr clrx ldx #14 jsr clrx jsr linx lda #auzer3 jsr strout diskw jsr waitkey inc key jsr get cmp #"a" beq neustart ldx #dirne lda #2 jsr setnam lda #$60 sta sa jsr sendnam lda fa jsr talk lda sa jsr sectalk lda #0 sta status ldy #8 jsr skip bcc d vnodisk jmp nodisk d ldx #14 jsr linx lda #auzer4 jsr strout lda #34 jsr print namout jsr iecin ldx status bne vnodisk jsr print cmp #34 bne namout such0 jsr iecin ldx status bne vnodisk tax bne such0 ldy #2 jsr skip qnodisk bcs vnodisk jsr iecin pha jsr iecin pla sta laenge suchfn jsr iecin ldx status bne nodisk cmp #34 bne suchfn ldx #16 jsr linx lda #auzer5 jsr strout lda #34 jsr print ldx #0 otto stx len jsr iecin ldx status bne nodisk ldx len cmp #34 beq endnam sta name,x inx bne otto endnam lda #0 sta name,x lda #name jsr strout lda #34 jsr print lda #28 sta spalte lda #momanz jsr strout ldx laenge jsr xout wahl jsr get cmp #"a" beq qneustart cmp #"*" bne nofini lda anzprg cmp #2 bcc wahl jsr clsfil jmp jaend1 qneustart jmp neustart nofini cmp #"d" bne nonew nodisk jsr clsfil jmp eil1 nonew cmp #"n" beq nextone cmp #"J" beq shftj cmp #"j" bne wahl lda #memblk cmp sum bcc wahl sbc sum cmp laenge bcc wahl shftj ldx anzprg cpx #46 bcs wahl jsr cax ldy len transnm lda name,y sta (tmp),y dey bpl transnm inc anzprg lda laenge clc adc sum bcc bcarry lda #-1 bcarry sta sum jsr blockout nextone ldx #16 jsr clrx ldx #19 jsr linx lda #auzer1 jsr strout ldx anzprg dex jsr xtab lda #anzer2 jsr strout jmp such0 skip sty tmp jsr iecin lda status beq okst sec rts okst ldy tmp dey bne skip clc rts blockout ldx #21 jsr linx lda #auzlen jsr strout ldx sum jsr xhun lda #anz2 jsr strout lda #memblk cmp sum bcc zerofre sbc sum .byt $2c zerofre lda #0 tax xhun cpx #100 bcs xout jsr space xtab cpx #10 bcs xout jsr space xout lda #0 jmp axout linx lda #1 sta spalte stx zeile jmp cursor