;:sys58451:sys36864 ;.opt oo *= $c000 basvec =776 nmivec =792 stopvec =$328 oldnmi =$fe56 orgpitch =9852 ; 1/100 sekunde strout =$ab1e chrget =115 chrgot =121 chr =122 oldbef =$a7e7 addy =$a8fb inter =$a7ae axout =$bdcd crlf =$aad7 frmnum =$ad8a integer =$b7f7 print =65490 initbas =58451 initnmi =65418 illquan =$b248 lo =$14 hi =lo+1 cia =$dd00 icr =cia+13 timera =cia+4 timerb =cia+6 cra =cia+14 crb =cra+1 undefd =$a8e3 getzei =$a96b getadr =$a613 komma =$aefd stacktest =$a3fb stopold =$f6ed lineadr =$5f lineno =$39 gosub =$8d irqoff =$febc unfunc =$b3ae jmp visit hello .byt 13 .byte "visit ver.1 installed" .byt 13 .byte "by n.heusler, 8 muc 71" .byt 13,0 pa1 .byt 13 .byte "params are" .byt 13 .byte " visit o" brk pa2 .byt 13 .byte " line-# " brk pa3 .byt 13 .byte " time " brk pa4 .byt 13 .byte " pitch " brk flag brk pitch .word 0 befnr brk spring .byt 76 goto .word 0 onoff brk perline .word 0 period .word 0 peradr .word 0 beftab .byte "visit" brk .byte "cancel" brk .byte "pitch" brk .byte "off" brk .byte "param" brk .byte "again" brk brk befadr .word bvisit,bcancel,bpitch,boff,bparam .word bagain .byte "\x03\x03\x03\x03visit v1" .byte " nikolaus heusler, zwengauerweg 18" .byte ", 8000 muenchen 71\x03\x03\x03\x03" visit lda #neubef sta basvec sty basvec+1 jsr bcancel lda #orgpitch sta pitch sty pitch+1 lda #hello jmp strout neubef jsr chrget ldx #0 stx befnr dex bef1 ldy #-1 bef2 iny inx lda beftab,x beq bef3 cmp (chr),y beq bef2 inc befnr bef4 inx lda beftab,x bne bef4 beq bef1 bef3 tya bne bef5 jsr chrgot jmp oldbef bef5 ldx befnr txa asl tax lda befadr,x sta goto lda befadr+1,x sta goto+1 jsr addy jsr spring jmp inter bvisit jsr frmnum jsr integer ora lo bne fritz jmp illquan fritz sty timerb lda hi sta timerb+1 sty period sta period+1 jsr komma jsr getzei lda lo ldy hi sta perline sty perline+1 nochmal jsr getadr bcs found jmp undefd found lda lineadr sec sbc #1 sta peradr lda lineadr+1 sbc #0 sta peradr+1 lda pitch ldy pitch+1 sta timera sty timera+1 lda #$11 sta cra lda #$51 sta crb lda icr lda #$82 sta icr lda #neustop sta stopvec sty stopvec+1 lda #neunmi sta nmivec sty nmivec+1 inc onoff rts neunmi pha txa pha tya pha lda icr tay and #2 bne zeitnmi jmp oldnmi zeitnmi sta flag jmp irqoff neustop lda flag bne routine jmp stopold routine pla pla lda #0 sta flag lda #3 jsr stacktest lda chr+1 pha lda chr pha lda lineno+1 pha lda lineno pha lda #gosub pha lda peradr ldy peradr+1 sta chr sty chr+1 jmp inter+3 bpitch jsr frmnum jsr integer sty pitch sta pitch+1 rts boff jsr initbas bcancel lda #0 sta onoff lda #127 sta icr jmp initnmi bparam lda #pa1 jsr strout lda onoff bne ison lda #"f" jsr print .byt $2c ison lda #"n" jsr print lda #pa2 jsr strout ldx perline lda perline+1 jsr axout lda #pa3 jsr strout ldx period lda period+1 jsr axout lda #pa4 jsr strout ldx pitch lda pitch+1 jsr axout jmp crlf bagain ldy period tya ora period+1 bne geht jmp unfunc geht lda period+1 sty timerb sta timerb+1 lda perline ldy perline+1 sta lo sty hi jmp nochmal