;:sys36864 ;.opt oo *= 51000 vic =$d000 strout =$ab1e nmivec =$318 nmiposs =$dd0d rs232nmi =$fe72 endnmi =$febc qscan =$ff9f konf =1 numbkey =198 milli =$eeb3 tmp =166 clrchn =$ffcc fa =125 close =$ffc3 keybuf =630 grafik =$a000 latch =$d000 bs =$8400 tmp2 =tmp+2 bank =$dd00 getkey =$f142 shift =$28d farbram =$d800 rept =650 tmp3 =247 tmp4 =249 ffa =184 seka =185 da =186 namlen =183 chkout =65481 open =65472 qciout =$ffa8 buffer =690 jmp setup hallo .byt 13 .byte " ; universal - print mps 803 v1.1" .byt 13 .byte " ; von nikolaus heusler" .byt 13 .byte " ; tel. 089/792940" .byt 13 .byte " ; (c) nss 020987\x11" brk runflag brk nmiflag brk stackptr brk colmerk brk konfmerk brk keymerk brk tmpmerk .word 0 tmp2merk .word 0 counter brk repmerk brk bmerk brk font brk screen brk backgn brk expx brk expy brk snum brk x1 .word 0 yy brk xx .word 0 hiba brk tmp3merk .word 0 tmp4merk .word 0 si brk sm brk sa brk x .word 0 y brk data brk offx brk offy .word 0 maske brk use .word 0 flg brk zwis brk flg2 brk xk .word 0 yk brk xmerk brk grafflg brk anzahl brk gbit .byt 1,2,4,8,$10,$20,$40,$80 mult .word $0000,$0140,$0280,$03c0 .word $0500,$0640,$0780,$08c0 .word $0a00,$0b40,$0c80,$0dc0 .word $0f00,$1040,$1180,$12c0 .word $1400,$1540,$1680,$17c0 .word $1900,$1a40,$1b80,$1cc0 .word $1e00 acht .byt 0,80,60 sevtab .byt 0,0,16,27,8 mull .byt 0,$40,$80,$c0 mulh .byt 0,1,2,3,5,6,7,8,10,11,12,13,15,16,17,18,20,21 .byt 22,23,25,26,27,28,30,31 setup lda #neunmi sta nmivec sty nmivec+1 lda #0 sta runflag sta nmiflag sta grafflg lda #hallo jmp strout pause jsr milli dex bne pause rts scan jsr qscan sei jsr getkey sei rts rueck rts copy4 ldy #4 copy sta tmp+1 stx tmp2+1 tya tax ldy #0 sty tmp sty tmp2 php sei lda konf pha lda #48 sta konf cop lda (tmp),y sta (tmp2),y dey bne cop inc tmp+1 inc tmp2+1 dex bne cop pla sta konf plp rts savetmp lda tmp ldy tmp+1 sta tmpmerk sty tmpmerk+1 lda tmp2 ldy tmp2+1 sta tmp2merk sty tmp2merk+1 lda tmp3 ldy tmp3+1 sta tmp3merk sty tmp3merk+1 lda tmp4 ldy tmp4+1 sta tmp4merk sty tmp4merk+1 rts loadtmp lda tmpmerk ldy tmpmerk+1 sta tmp sty tmp+1 lda tmp2merk ldy tmp2merk+1 sta tmp2 sty tmp2+1 lda tmp3merk ldy tmp3merk+1 sta tmp3 sty tmp3+1 lda tmp4merk ldy tmp4merk+1 sta tmp4 sty tmp4+1 rts getform jsr scan cmp #"\x03" bne nos pla pla endfk dec vic+32 jmp master nos cmp #"1" bcc getform cmp #"4" bcs getform sec sbc #"1" tax lda acht,x sta sevtab rts ciout jsr qciout sei rts neunmi sei pha txa pha tya pha lda runflag bne dejago lda nmiflag beq cango jmp endnmi dejago jmp dejaon cango inc nmiflag tsx stx stackptr lda #$7f sta nmiposs lda nmiposs bpl nors232 jmp rs232nmi nors232 lda konf sta konfmerk lda #55 sta konf lda vic+33 and #$f sta backgn lda rept sta repmerk lda #64 sta rept lda numbkey sta keymerk ldx #15 jsr pause jsr savetmp ldx vic+32 stx colmerk lda shift bne start ldy #0 sty tmp lda #>grafik sta tmp+1 tya ldx #32 clear sta (tmp),y dey bne clear inc tmp+1 dex bne clear start inc vic+32 lda bank and #3 eor #3 asl asl asl asl asl asl sta hiba master jsr scan beq master cmp #137 bne nostop lda colmerk sta vic+32 lda keymerk sta numbkey lda #0 sta nmiflag sta runflag lda repmerk sta rept jsr loadtmp lda konfmerk sta konf ldx stackptr txs jmp endnmi dejaon lda #15 jsr out jsr clrchn lda #fa jsr close sei lda #0 sta runflag jmp endfk nostop cmp #136 bne nof7 lda #>bs ldx #>latch jsr copy4 ldx #4 lda #>bs sta tmp+1 lda #1 clin sta (tmp),y iny bne clin inc tmp+1 dex bne clin lda bank pha lda vic+17 pha lda vic+24 pha lda vic+22 pha lda vic+21 pha lda #0 sta vic+21 lda #1 sta bank lda #59 sta vic+17 lda #29 sta vic+24 lda #200 sta vic+22 gky jsr scan beq gky pla sta vic+21 pla sta vic+22 pla sta vic+24 pla sta vic+17 pla sta bank lda #>latch ldx #>bs jsr copy4 jmp master nof7 cmp #135 bne nof5 inc vic+32 php sei lda konf pha lda #48 sta konf ldy #0 sty tmp lda #>grafik sta tmp+1 ldx #32 inv lda (tmp),y eor #-1 sta (tmp),y iny bne inv inc tmp+1 dex bne inv pla sta konf plp jmp endfk nof5 cmp #139 bne nof6 ldx #32 ldy #0 sty tmp lda #>grafik sta tmp+1 inc vic+32 lda #8 sta counter php sei lda konf pha lda #48 sta konf grid lda (tmp),y eor #1 sta (tmp),y dec counter bne noc lda #8 sta counter lda (tmp),y eor #-2 sta (tmp),y noc iny bne grid inc tmp+1 dex bne grid pla sta konf plp dec vic+32 nof6 cmp #133 beq jaf1 jmp nof1 jaf1 inc vic+32 lda vic+17 and #32 bne graphik jmp text graphik lda vic+24 and #8 asl asl ora hiba ldx #>grafik ldy #32 jsr copy eot jmp endfk text lda bank and #3 eor #3 sta bmerk lda vic+24 and #14 asl asl ldx #48 cmp #$10 beq sonder cmp #$18 bne usual sonder ldy bmerk cpy #1 beq usual cpy #3 beq usual ldx #51 clc adc #$c0 bne goon usual ora hiba goon sta font lda vic+24 and #$f0 lsr lsr ora hiba sta screen php sei lda konf pha stx konf lda #4 sta counter lda #0 sta tmp3 sta tmp lda screen sta tmp3+1 lda #>grafik sta tmp+1 loop0 lda #0 sta tmp2 lda font sta tmp2+1 jsr allwtest beq nix lda (tmp3),y tax beq loop1 loop2 lda tmp2 clc adc #8 sta tmp2 bcc loop4 inc tmp2+1 loop4 dex bne loop2 loop1 ldy #7 loop5 lda (tmp2),y sta (tmp),y dey bpl loop5 nix lda tmp clc adc #8 sta tmp bcc loop7 inc tmp+1 loop7 inc tmp3 bne loop0 inc tmp3+1 dec counter bne loop0 pla sta konf plp jmp eot allwtest lda tmp3 sta tmp4 lda tmp3+1 and #3 ora #>farbram sta tmp4+1 ldy #0 ldx konf lda #55 sta konf lda (tmp4),y and #$f stx konf cmp backgn rts nof1 cmp #134 beq jaf3 jmp nof3 jaf3 lda #7 sta snum inc vic+32 sp0 lda vic+21 ldx snum and gbit,x bne sp1 jmp sp2 tobi jmp sp2 sp1 lda vic+39,x and #$f cmp backgn beq tobi lda vic+23 and gbit,x sta expy lda vic+29 and gbit,x sta expx lda vic+16 and gbit,x beq t lda #1 t pha txa asl tax lda vic,x sec sbc #24 sta x1 pla sbc #0 sta x1+1 lda vic+1,x sec sbc #50 sta yy lda vic+24 and #$f0 lsr lsr ora hiba clc adc #3 sta tmp4+1 lda #$f8 sta tmp4 ldy snum lda (tmp4),y ldx #6 sta tmp3 lda #0 sta tmp3+1 mal64 asl tmp3 rol tmp3+1 dex bne mal64 lda tmp3+1 ora hiba sta tmp3+1 lda #0 sta si sp3 lda #0 sta sm lda x1 sta xx lda x1+1 sta xx+1 sp4 php sei lda konf pha lda #48 sta konf ldy #0 lda (tmp3),y sta data pla sta konf plp lda #7 sta sa sp5 lda data ldx sa and gbit,x beq sp6 jsr qplot sp6 inc xx bne sp6a inc xx+1 sp6a lda expx beq sp6aa inc xx bne sp6aa inc xx+1 sp6aa dec sa bpl sp5 inc tmp3 bne sp7 inc tmp3+1 sp7 inc sm lda sm cmp #3 bcc sp4 inc yy lda expy beq sp7a inc yy sp7a inc si lda si cmp #21 bcc sp3 sp2 dec snum bmi eos jmp sp0 eos jmp endfk plot ldx yy cpx #200 bcc gut rts gut lda xx+1 cmp #1 bcc okay beq test2 rts test2 lda xx cmp #64 bcc okay rts okay txa lsr lsr lsr asl tay lda mult,y sta offy lda mult+1,y sta offy+1 txa and #7 clc adc offy sta offy lda xx and #$f8 sta offx clc lda #0 adc offy sta tmp lda #>grafik adc offy+1 sta tmp+1 clc lda tmp adc offx sta tmp lda tmp+1 adc xx+1 sta tmp+1 php sei lda konf pha lda #48 sta konf lda xx and #7 eor #7 tax lda gbit,x ldy #0 ora (tmp),y sta (tmp),y pla sta konf plp rts qqplot jsr plot lda expx beq noex inc xx bne v2 inc xx+1 v2 jsr plot lda xx bne v2a dec xx+1 v2a dec xx noex rts qplot jsr qqplot lda expy beq noex inc yy jsr qqplot dec yy rts nof3 cmp #140 beq print jmp nof8 print inc vic+32 jsr getform inc runflag lda #0 sta namlen lda #4 sta da lda #0 sta seka lda #fa sta ffa jsr open ldx #fa jsr chkout lda #-1 sta maske lda #7 sta use lda #28 sta flg lda #0 sta zwis sev1 lda #40 sta flg2 ldx #4 sev11 lda sevtab,x jsr out dex bpl sev11 lda #0 sta xk sta xk+1 sev2 lda zwis sta yk lda #0 sta use+1 php sei lda konf pha lda #48 sta konf sev3 lda xk ldx xk+1 ldy yk jsr hposn ldy #0 lda (tmp),y ldx use+1 sta buffer,x inc yk inx stx use+1 cpx use bne sev3 pla sta konf plp lda #0 ldy #7 sev4 ldx use sev5 asl buffer,x rol dex bpl sev5 and maske ora #128 jsr out dey bpl sev4 lda xk clc adc #8 sta xk bcc sev4a inc xk+1 sev4a dec flg2 bne sev2 lda #$d jsr out lda zwis clc adc #7 sta zwis dec flg beq sev81 sev8 jmp sev1 sev81 lda #4 cmp use beq sev7 sta use lda #1 sta flg lda #$f sta maske bne sev8 sev7 jmp dejaon hposn tya lsr lsr lsr asl tax lda mult+1,x ora #>grafik sta tmp+1 txa and #6 tax lda mult,x sta tmp tya and #7 clc adc tmp sta tmp lda xk and #$f8 clc adc tmp sta tmp lda tmp+1 adc xk+1 sta tmp+1 rts out stx xmerk ldx grafflg bne graon cmp #8 bne leider ldx #0 stx anzahl stx data sta grafflg leider jsr ciout return ldx xmerk ret rts graon cmp #15 bne naoff jsr dele lda #0 sta grafflg lda #15 bne leider naoff tax bmi grabi cmp #60 bne no60 lda #160 no60 pha jsr dele lda #0 sta data sta anzahl pla jmp leider grabi cmp data bne neu inc anzahl bne return dec anzahl neu pha jsr dele pla sta data lda #1 sta anzahl bne return dele cmp #13 bne nocr lda data cmp #128 beq ret nocr ldx anzahl beq ret cpx #3 bcs lohnt outloop lda data jsr ciout dex bne outloop rts lohnt lda #26 jsr ciout lda anzahl jsr ciout lda data jmp ciout nof8 cmp #138 beq frame jmp master frame inc vic+32 lda #200 sta yy yfr dec yy lda #0 sta xx sta xx+1 jsr plot inc xx+1 lda #63 sta xx jsr plot lda yy bne yfr dec xx+1 lda #0 sta xx xfr lda #0 sta yy jsr plot lda #199 sta yy jsr plot inc xx bne xxf inc xx+1 xxf lda xx+1 beq xfr lda xx cmp #64 bcc xfr jmp endfk