;:poke56,11000/256:clr ;:sys36864 ;.opt oo *= 11000 feld =15000 numb =665 ss =$3ab7 tmp =166 xmk =170 ymk =8 zei =181 mea =15046 mem2 =51776 mem1 =40960 fld =2 buf =823 bre =156 spa =151 xxmk =820 dp =195 lg =196 an =191 typ1 =189 typ2 =190 flp1 =704 flp2 =flp1+5 jmp start t1 .byte "\x0e\x08\x12\x93Tabula-Print Vers.1 fuer Tabula Rasa" .byte "von Nikolaus Heusler nh 11.91" .byt 13,13 .byte "Bitte Kenndaten eingeben!" .byt 13,13 .byt 13 .byte " Dateiname ? tr/" brk name .byte "tr/ " t2 .byt 13 .byte "\x11 linker Druckrand ? 5\x9d" brk lira .byte " " lr =247 t3 .byt 13 .byte "\x11 von Zeile ? 1\x9d" brk z1 =248 t4 .byt 13 .byte "\x11 bis Zeile ? 16 \x9d\x9d\x9d" brk z2 =249 t5 .byt 13 .byte "\x11 von Spalte ? " brk s1 =250 t6 .byt 13 .byte "\x11 bis Spalte ? " brk s2 =251 t7 .byt 13 .byte "\x11 Schmalschrift ? [j/n]\x9d\x9d\x9d\x9d\x9d" brk sch =252 t8 .byt 13 .byte "\x11 Formeln/Werte ? [f/w]\x9d\x9d\x9d\x9d\x9d" brk fw =253 not .byt 13 .byte "\x12Bitte Drucker bereitmachen, " brk pt1 .byt 13 .byt 13 .byte "Tabula Rasa C64 von Nikolaus H" .byte "eusler (c) 1991 " brk uml1 .byt $a1,$a2,$a3,$a4,$a5,$a6,$ae,$40,$ff,$7b,$7d uml2 .byt $84,$8e,$94,$99,$81,$9a,$e1,$63,$e3,$5b,$5d print stx xxmk cmp #13 beq return pha inc numb lda sch bne eng inc numb eng lda numb cmp #142 bcc druck lda #200 sta numb pla rts druck pla cmp #$41 bcc gut cmp #$5f bcs evtl ora #32 bne gut evtl cmp #$c1 bcc gut cmp #$de bcs gut and #$7f gut ldx #10 suchuml cmp uml1,x beq gotuml dex bpl suchuml bmi nouml gotuml lda uml2,x nouml jsr $ffd2 ldx xxmk rts return lda #13 jsr $ffd2 lda #0 sta numb ldx lr beq nora lda #32 rand jsr print dex bne rand nora ldx xxmk lda #13 rts bar lda $3ab7 bne bbar rts bbar lda #$7c bne print noprt jsr $ffcc lda #not jsr $ab1e lda #0 sta 198 wak cmp 198 beq wak sta 198 jmp led calc sei lda #48 sta 1 lda mem2,x sta tmp lda mem2+208,x sta tmp+1 tya asl tay lda (tmp),y sta fld iny lda (tmp),y sta fld+1 ldy #55 sty 1 cli tay rts xout stx $63 lda #0 sta $62 ldx #144 sec jsr $bc49 jsr $bddf ldx #0 x0 lda $100,x beq x1 jsr print inx bne x0 x1 rts start lda #0 sta 157 lda #t1 jsr $ab1e ldx #3 getnam jsr $ffcf cmp #13 beq cr sta name,x inx cpx #16 bcc getnam cr txa ldx #name jsr $ffbd err1 lda #t2 jsr $ab1e ldx #0 stx lr getlin jsr $ffcf cmp #13 beq cr2 pha lda lr asl sta lr asl asl adc lr sta lr pla and #15 cmp #10 bcs err1 adc lr sta lr inx cpx #3 bcc getlin cr2 dec lr lda lr cmp #70 bcs err1 err2 lda #t3 jsr $ab1e ldx #0 stx z1 getz1 jsr $ffcf cmp #13 beq cr3 pha lda z1 asl sta z1 asl asl adc z1 sta z1 pla and #15 cmp #10 bcs err2 adc z1 sta z1 inx cpx #3 bcc getz1 cr3 lda z1 beq err2 cmp #209 bcs err2 err3 lda #t4 jsr $ab1e ldx #0 stx z2 getz2 jsr $ffcf cmp #13 beq cr4 pha lda z2 asl sta z2 asl asl adc z2 sta z2 pla and #15 cmp #10 bcs err3 adc z2 sta z2 inx cpx #3 bcc getz2 cr4 lda z2 cmp #209 bcs err3 cmp z1 bcc err2 lda #t5 jsr $ab1e err4 jsr 65508 cmp #"a" bcc err4 cmp #"z"+1 bcs err4 sta s2 jsr $ffd2 sbc #"@"-1 sta s1 lda #t6 jsr $ab1e err5 jsr 65508 cmp s2 bcc err5 cmp #"z"+1 bcs err5 jsr $ffd2 sbc #"@"-1 sta s2 lda #t7 jsr $ab1e err6 jsr 65508 tax cmp #"j" beq ok cmp #"n" bne err6 ldx #0 ok stx sch jsr $ffd2 ldx #4 sp jsr $ab3f dex bne sp lda #t8 jsr $ab1e err7 jsr 65508 tax cmp #"f" beq ok2 cmp #"w" bne err7 ldx #0 ok2 stx fw jsr $ffd2 ldx #4 sp2 jsr $ab3f dex bne sp2 jsr $aad7 ldx #8 ldy #0 jsr $ffba lda #0 ldx #feld jsr $ffd5 bcc led jmp $e0f9 led lda #4 jsr $ffc3 ldx #4 ldy #1 lda #4 jsr $ffba lda #0 jsr $ffbd jsr $ffc0 ldx #4 jsr $ffc9 lda 144 beq dok jmp noprt dok lda sch beq breit lda #15 jsr $ffd2 breit lda #27 jsr $ffd2 lda #"2" jsr $ffd2 ldx #0 pt1o lda pt1,x beq pt1i jsr print inx bne pt1o pt1i ldx #0 dato lda $3ab8,x beq dati jsr print inx cpx #15 bcc dato dati jsr return lda #"-" ldx #64 strich jsr print dex bpl strich jsr return jsr print lda #"#" jsr print jsr print jsr print jsr bar ldx s1 dex ou3 inx lda $3a97,x tay clc adc #1 lsr sta tmp ou4 dec tmp bne ou5 txa ora #192 .byt $2c ou5 lda #32 stx xmk sty ymk jsr print ldy ymk ldx xmk dey bne ou4 jsr bar ldx xmk cpx s2 bcc ou3 jsr return lda #mem1 sta tmp sty tmp+1 ldx #208 ldy #0 nw2 lda tmp sta mem2,y lda tmp+1 sta mem2+208,y iny lda tmp clc adc #52 sta tmp bcc nw6 inc tmp+1 nw6 dex bne nw2 ldx #0 vd1 lda mem2,x sta tmp lda mem2+208,x sta tmp+1 ldy #51 lda #0 vd2 sta (tmp),y dey bpl vd2 inx cpx #208 bcc vd1 lda #mea sta zei sty zei+1 vd3 ldy #0 lda (zei),y beq zeile vd4 tax dex lda mem2,x sta tmp lda mem2+208,x sta tmp+1 iny lda (zei),y sec sbc #1 asl tay lda zei sta (tmp),y iny lda zei+1 sta (tmp),y ldy #8 vd5 iny lda (zei),y bne vd5 iny tya clc adc zei sta zei bcc vd3 inc zei+1 bne vd3 zeile ldx z1 cpx #100 bcs pot lda #32 jsr print cpx #10 bcs pot jsr print pot jsr xout jsr bar ldy s1 spalt sty spa dey lda 15000,y sta bre ldx z1 dex jsr calc bne noua jmp oua noua lda fw bne oug ldy #7 lda (fld),y bmi ouf oug ldy #8 ldx #-1 sa1 inx iny lda (fld),y sta buf,x bne sa1 beq oui ouf jsr werts ldx #-1 ouj inx oui cpx bre bcs ouk lda buf,x bne ouj ldy #8 lda (fld),y and #%110000 beq oun cmp #%10000 beq oul lda #32 oum sta buf,x inx cpx bre bcc oum bcs ouk oul ldy bre ouo lda buf,x sta buf,y dey dex bpl ouo lda #32 oup sta buf,y dey bpl oup bmi ouk oun txa clc adc bre lsr tay pha ouq lda buf,x sta buf,y dey dex bpl ouq lda #32 our sta buf,y dey bpl our pla tay dey lda #32 ous iny cpy bre bcs ouk sta buf,y bcc ous ouk ldx #0 ouu lda buf,x jsr print inx cpx bre bcc ouu bcs ouh oua lda #32 ldx bre oub jsr print dex bne oub ouh jsr bar ldy spa cpy s2 bcc qou9 lda z1 cmp z2 bcs ende inc z1 jsr return jmp zeile qou9 iny jmp spalt ende jsr return jsr print jsr $ffcc lda #4 jmp $ffc3 werts and #64 bne ws1 lda #"?" sta buf lda #0 sta buf+1 rts ws1 ldy #7 lda (fld),y sta typ1 iny lda (fld),y and #192 sta typ2 lda fld clc adc #2 tax lda fld+1 adc #0 tay txa jsr $bba2 lda typ2 bne ws4 jsr $bccc jmp ws3 ws4 cmp #64 beq ws3 ldx #flp1 jsr $bbd4 lda typ1 and #31 sta an jsr $bc3c lda #$f9 ldy #$ba jsr $ba8c lda $61 jsr $bf7b ldx #flp2 jsr $bbd4 lda #flp1 jsr $ba28 jsr $b849 jsr $bccc jsr $bc0c lda #flp2 jsr $bba2 jsr $bb12 ws3 ldy #0 bit $66 bpl ws6 iny ws6 jsr $bddf ldx #-1 lda typ2 cmp #64 beq ws55 wsx inx lda $100,x beq wsy cmp #"e" bne wsx beq ws55 wsy ldx #-1 ws7 inx lda $100,x beq ws8 cmp #"." bne ws7 beq ws9 ws55 jmp ws00 ws8 sta $101,x lda #"." sta $100,x ws9 stx dp lda typ1 and #32 beq wsa lda #"," sta $100,x wsa ldy #-1 wsb inx iny lda $100,x bne wsb wbc cpy an beq wbd lda #"0" sta $100,x iny inx bne wbc wbd lda #0 sta $100,x ldx #-1 wbe inx lda $100,x bne wbe stx lg lda dp beq wbg cmp #1 bne wbf lda $100 cmp #"-" bne wbf wbg inc lg ldx lg wbi lda !$ff,x sta $100,x dex cpx dp bne wbi wbj lda #"0" sta $100,x inc dp wbf lda typ1 and #32 beq ws0 lda #3 sta tmp ldy dp nu2 dey bmi ws0 dec tmp bpl nu2 lda #3 sta tmp iny sty tmp+1 ldy lg nu4 lda $100,y sta $101,y dey cpy tmp+1 bcs nu4 inc lg iny lda #"." sta $100,y bne nu2 ws0 lda an bne ws00 ldx lg lda !$ff,x cmp #"." beq ws000 cmp #"," bne ws00 ws000 lda #0 sta !$ff,x ws00 ldx #-1 ws5 inx lda $100,x sta buf,x bne ws5 rts