;:poke56,30000/256:clr ;:sys36864 *= 30000 ;.opt oo vic =53248 spr =704 cint =65409 bsout =$ffd2 sptr =2040 tmp =247 cia =$dd00 oldirq =$ea31 irqvec =788 input =56333 timer =cia+4 float =$bc4f fac =$62 grbit =$cff0 key =198 getkey =65508 guggi =1984 gugcol =guggi+54272 gug =249 contirq =$ea81 zeile1 =241 zeile2 =zeile1+10 irqflg =$dc0d reset =64738 setcr =58732 zeile =214 spalte =211 axout =$bdcd rvs =199 space =$ab3f joyst =56320 sid =54272 fb =646 clrscr =$e544 return =$aad7 cass =832 autopuf =50000 lda #text-1 sta gug sty gug+1 jmp begin mask1 .byte "\x1a\x90\x13 \x19\x07\x11\x12\xb0\x19\x15\xc0\xae\x1a \x12\xad\x19\x15\xc0\xbd\x03" anl1 .byte "\x93\x9e\x19\x0a\x11 \x12stop\x92 = menue\x1a \x12p\x92 = punkt/band\x1a" .byte "\x11 \x12achtung\x92 dieser programmteil kann nicht" .byte "\x1a verlassen werden, solange kein musik-" .byte "\x1a signal kommt ! (nur durch \x12reset\x92)\x03" anl3 .byte "\x11\x11\x05 --> sind sie sicher ? [j/n]\x1a\x03" anl2 .byte "\x93\x9a\x11\x11\x11\x11\x11\x11\x11 hauptmen\x08ue:\x1a \xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7" .byte "\x11\x11\x1a \x12o\x92 = lichtorgel" .byte "\x11\x1a \x12l\x92 = lauflicht" .byte "\x11\x1a \x12d\x92 = dimmer" .byte "\x11\x1a \x12stop\x92 = ende\x1a\x03" anl4 .byte "\x93\x9e\x19\x0a\x11 \x12stop\x92 = menue, \x12p\x92 = programmieren\x1a" .byte " \x12joystick port 2\x92: \x05 NM\x11\x9d\x9d\xa7\xa5\x11\x9d\x9d\x9d\x9dN\xaf\x12\xa9\xdf\x92\xafM" .byte "\x11\x9d\x9d\x9d\x9d\x9d\x9dM\xb7\xdf\xa9\xb7N\x11\x9d\x9d\x9d\x9d\xa7\xa5\x11\x9d\x9dMN\x1a" .byte "\x9e\x11 \x12hoch\x92,\x12runter\x92 = programm-nr.\x1a" .byte " \x12links\x92,\x12rechts\x92 = geschwindigkeit\x1a" .byte " \x12feuer\x92 = \x90start\x9e\x1a" .byte "\x11 \x121\x92 - \x128\x92 = programmierung\x03\x1a" anl5 .byte "\x93\x19\x0a\x11\x9e \x12stop\x92 = menue\x03" anl6a .byte "\x90op \x03" anl6b .byte "\x90art\x03" title .byte "\x1a\x13\x90\x19(\xa4\x12 lichtorgel/lauflicht v1.1 smv pullach" .byte " von nikolaus heusler [c] nss 1987 arr.\x1a\x13\x03" anl7 .byte "\x93\x11\x11\x11\x11 programmierung des lauflichts" anl8 .byte "\x1a\x19\x06 \x12\x03" anl9 .byte "\x13\x9a\x11\x11\x11\x11\x11\x11\x17\x12stop\x92 = ende\x1a" .byte "\x17\x12clr\x92 = loeschen\x1a" .byte "\x17\x12joystick port 2:\x1a" .byte "\x17 \x12feuer\x92 = flip\x1a" .byte "\x17 \x12richtung\x92 = bewegen\x1a" .byte "\x17\x12+\x92/\x12-\x92 = ende-zeiger\x03" markt .byte "\x1a \x05\xb7\xb7\xb7\x9d\x9d\x9d\x91\xb4\x9d\x91\x9dNM\x03" grbit1 .byt 1,2,4,8,$10,$20,$40,$80 grbit2a brk grbit2 .byt 1,3,7,15,31,63,127,255 grbit3 .byt 0,$18,$3c,$7e,$ff grbit4 .byt 0,$80,$40,$20,$10,8,4,2,1,$81,$41 .byt $21,$11,9,5,3,$83,$43,$23,$13,$b,7,$87,$47,$27,$17 .byt $f,$8f,$4f,$2f,$1f,$9f,$5f,$3f,$bf,$7f,$ff grbit5 .byt 0,$81,$42,$24,$18,$24,$42,$81 prganz =20 prgtab .word prg1,prg2,prg3,prg4,prg5,prg6,prg7,prg8 .word prg9,prga,prgb,prgc,prgd,prge,prgf,prgg,prgh .word prgi,prgj,prgk,prgl text .byte "lichtorgel - lauflicht -" .byte " kombination der smv des gymnasiums" .byte " pullach - programmiert von n" .byte "ikolaus heusler, 1/1987, tel. 089/792940" .byte " (c) nig software service n.s.s. 1987" .byte " ich wuensche ein schoenes faschings" .byte "fest, und dass nichts am c 64, der dieses" .byte " programm ausfuehrt, kaputtgeht. - die" .byte " lampen werden ueber ein geeignetes interface" .byte " an port b der" .byte " cia 2 angeschlossen. das musiksignal kommt" .byte " ueber die read" .byte "-leitung des cassettenports (pin 4)." .byte " - wer interesse an d" .byte "iesem programm hat, kann es" .byte " sehr gerne bekommen. wer es schon" .byte " hat, darf es mit gutem gewissen an seine" .byte " freunde weiterkopieren, je mehr leute" .byte " es haben, desto besser. na, wie ge" .byte "faellt dir dieses lichtband ? ich habe" .byte " mir extra die muehe gemacht und einen" .byte " rasterirq programmiert, damit die schrift" .byte " schoen weich rollt. auf eine ton" .byte "ausgabe (musik) habe ich verzichtet, musik" .byte " gibt es hier glaube ich genug..." .byte " ** heee ! hoeren sie ueberhaupt" .byte " noch zu ???? ** und nun noch die" .byte " gruesse: ich gruesse michael (von ihm" .byte " stammt die hardware), andy lietz (mein" .byte " ls-disk lieferant), dieter, dominik," .byte " harald speyer, herrn maurer, und alle," .byte " die wo von meinem programm profitieren" .byte " (gut tanz !!) - und alle, die ich ver" .byte "gessen habe (auch natuerlich den netten" .byte " diskjockey, der dieses programm be" .byte "dient...) heeee, ihr da, in der ecke" .byte " ! was macht -ihr- denn ? hier wird" .byte " getanzt, ihr flaschen !!!! ich" .byte " danke, dass es ueberhaupt jemanden gibt," .byte " der diese botschaft gelesen hat. jetzt" .byte " reichts aber... keep on hackin' for" .byte " peace ! >=- * -=< \x03" typ brk run brk nr brk rst .byt 193 speed .byt 6 spd .byt 1 stick brk pgfl1 brk pgfl2 brk dimmsp brk dir brk pgfl3 brk kx brk ky brk pjob brk gkx brk gky brk comp brk mark .byt 17 setspr lda #0 ldx #63 clrspr sta spr,x dex bpl clrspr stx spr stx spr+3 stx spr+6 stx vic+23 stx vic+29 ldx #7 ldy #0 lda #39 setcor sta vic,y pha iny lda #111 sta vic,y iny lda #1 sta vic+39,x lda #11 sta sptr,x pla clc adc #22 dex bpl setcor lda #mask1 jmp strout setvic jsr cint lda #6 sta vic+32 sta vic+33 rts setcia lda #-1 sta cia+3 sei jsr setraster lda #newirq setirq sta irqvec sty irqvec+1 cli rts setold sei jsr rastoff lda #oldirq bne setirq ciairq lda irqflg cli jsr runn jsr soft lda vic+21 sta cia+1 jmp pirq newirq lda vic+$19 sta vic+$19 and #1 beq ciairq lda vic+$12 cmp #zeile2 bcs second ldy #zeile2 lda rst setpar sta vic+22 sty vic+$12 jmp contirq second ldy #zeile1 lda #192 bne setpar setsid ldx #24 lda #0 clrsid sta sid,x dex bpl clrsid lda #100 sta sid+15 lda #129 sta sid+18 rts strout tax lda tmp pha lda tmp+1 pha stx tmp sty tmp+1 str ldy #0 lda (tmp),y beq fin cmp #"\x03" beq fin cmp #"\x1a" bne nocr lda #13 nocr cmp #"\x19" beq rept cmp #"\x93" beq head cmp #"\x17" bne also lda #20 sta spalte jsr setcr jmp cont also jsr bsout cont inc tmp bne str inc tmp+1 bne str rept iny lda (tmp),y tax iny lda (tmp),y rep jsr bsout dex bne rep lda tmp clc adc #3 sta tmp lda tmp+1 adc #0 sta tmp+1 bne str fin pla sta tmp+1 pla sta tmp rts head jsr clrscr lda #title jsr strout jmp cont testfreq jsr pause lda #0 sta vic+21 ldx #3 lda #-1 settimer sta timer,x dex bpl settimer ldx #$51 ldy #$11 wait1 lda input and #16 bne wait1 stx cia+15 sty cia+14 wait2 lda input and #16 beq wait2 wait3 lda input and #16 bne wait3 ldy #0 sty cia+14 sty cia+15 sec lda timer eor #-1 sbc #11 sta tmp lda timer+1 eor #-1 sbc #0 sta tmp+1 ldx #9 durch32 lsr tmp+1 ror tmp dex bne durch32 ldx tmp cpx #8 bcc kl8 ldx #7 kl8 lda grbit,x sta vic+21 jmp wertaus pause ldx #-1 pse dex bne pse rts wertaus lda key beq testfreq jsr getkey cmp #"\x03" bne noc rts noc cmp #"p" bne nopp lda typ eor #-1 sta typ jsr settyp jmp testfreq settyp lda typ beq e0 lda #<grbit1 ldy #>grbit1 bne e1 e0 lda #<grbit2 ldy #>grbit2 e1 sta tmp sty tmp+1 ldy #7 e2 lda (tmp),y sta grbit,y dey bpl e2 rts nopp jmp testfreq makeguggi ldx #1 shift lda guggi,x sta guggi-1,x inx cpx #40 bcc shift inc gug bne dada inc gug+1 dada ldy #0 lda (gug),y cmp #"\x03" bne goon lda #<text ldy #>text sta gug sty gug+1 lda text goon and #$3f sta guggi+39 lda #15 ldx #39 sugcol eor #3 sta gugcol,x dex bpl sugcol rts setraster lda #zeile1 sta vic+$12 lda vic+$11 and #$7f sta vic+$11 lda #$81 sta $1a+vic rts rastoff lda #0 sta vic+$1a rts soft lda rst sec sbc #193 bpl kll8 lda #199 sta rst bne makeguggi kll8 clc adc #192 sta rst rts parout lda #0 sta rvs sta fb lda #18 sta zeile lda #29 sta spalte jsr setcr ldx nr inx lda #0 jsr axout jsr space inc zeile lda #33 sta spalte jsr setcr ldx speed lda #0 jsr axout jmp space clr lda #0 sta run rts begin jsr setsid jsr clr jsr setvic jsr setcia lda #0 sta typ jsr settyp lda #<anl2 ldy #>anl2 jsr strout men jsr getkey cmp #"o" beq orgel cmp #"d" beq dimm cmp #"l" beq lauf cmp #"\x03" bne men lda #<anl3 ldy #>anl3 jsr strout getjn jsr getkey cmp #"n" beq begin cmp #"j" bne getjn jmp reset dimm2 lda #<anl5 ldy #>anl5 jsr strout jsr setspr ldx #-2 dim1 jsr dimend jsr dimpau dex cpx #1 bne dim1 dim2 jsr dimend jsr dimpau inx cpx #-1 bne dim2 beq dim1 dimpau txa pha eor #-1 tay dim3 lda #-1 sta vic+21 sta cia+1 dex bne dim3 dim4 lda #0 sta vic+21 sta cia+1 dey bne dim4 pla tax rts dimend lda key beq rt radio jsr getkey cmp #"\x03" bne rt pla pla rt rts dimm jsr dimm2 jmp begin orgel lda #<anl1 ldy #>anl1 jsr strout jsr setspr jsr testfreq jmp begin lauf jsr lali jmp begin prg1 lda vic+21 asl adc #0 jmp put prg2 lda vic+21 lsr php lda vic+21 plp ror jmp put prg3 lda vic+21 eor #-1 jmp put prg4 ldx pgfl1 inx cpx #16 bcc l41 ldx #0 l41 stx pgfl1 cpx #9 bcs l42 lda grbit2a,x jmp put l42 txa sec sbc #17 eor #-1 tax lda grbit2a,x jmp put prg5 ldx pgfl1 inx cpx #16 bcc l51 ldx #0 l51 stx pgfl1 cpx #9 bcs l52 lda grbit2a,x jsr dreh jmp put l52 txa sec sbc #17 eor #-1 tax lda grbit2a,x jsr dreh jmp put prg6 ldx pgfl1 inx cpx #8 bcc l61 ldx #0 l61 stx pgfl1 cpx #5 bcc l62 txa sec sbc #9 eor #-1 tax l62 lda grbit3,x put sta vic+21 rts prg7 ldx pgfl1 inx cpx #14 bcc l71 ldx #0 l71 stx pgfl1 cpx #7 bcc l72 l73 jmp prg1 l72 jmp prg2 prg8 ldx pgfl1 inx cpx #37 bcc l81 ldx #0 l81 stx pgfl1 lda grbit4,x jmp put prg9 lda sid+27 bmi l73 bpl l72 prga lda sid+27 eor vic+21 jmp put prgb lda sid+27 and #1 lsr rol vic+21 rts prgc lda sid+27 and #1 lsr ror vic+21 rts prgd lda vic+21 and #15 asl tax and #16 beq ld1 txa eor #17 tax ld1 stx pgfl1 lda vic+21 and #240 lsr tax and #8 beq ld2 txa eor #136 tax ld2 txa ora pgfl1 jmp put prge lda vic+21 and #15 lsr bcc le1 ora #8 le1 sta pgfl1 lda vic+21 and #240 asl bcc le2 ora #16 le2 ora pgfl1 jmp put prgf lda vic+21 jsr dreh jmp put prgg lda vic+21 and #129 cmp #129 beq lg4 lda vic+21 ldx pgfl3 beq lg1 lsr bcc lg3 lg2 txa eor #-1 sta pgfl3 jmp prgg lg3 jmp put lg1 asl bcc lg3 bcs lg2 lg4 rts prgh inc vic+21 rts prgi dec vic+21 rts prgj ldx pgfl1 inx cpx #8 bcc lj1 ldx #0 lj1 stx pgfl1 lda grbit5,x jmp put prgk ldx pgfl1 inx cpx #8 bcc lk1 ldx #0 lk1 stx pgfl1 lda grbit5,x eor #-1 jmp put prgl ldx pgfl1 inx cpx mark bcc ll1 ldx #0 ll1 stx pgfl1 lda autopuf,x jmp put runn lda run bne ann rts an lda nr asl tax lda prgtab,x sta jump+1 lda prgtab+1,x sta jump+2 jump jmp 0 ann dec spd beq annn rts annn lda speed sta spd bne an dreh sta pgfl2 ldx #8 drh lsr pgfl2 rol dex bne drh rts lali lda #0 sta pjob lda #<anl4 ldy #>anl4 jsr strout jsr setspr lda #1 sta vic+21 jsr parout wk jsr getkey beq joy cmp #"\x03" bne nost lda #0 sta run rts nost cmp #"p" bne noup jmp program noup cmp #"1" bcc wk cmp #"9" bcs wk sec sbc #"1" pha lda #0 sta run jsr setrun pla tax lda vic+21 eor grbit1,x sta vic+21 jmp wk setrun beq on lda #<anl6a ldy #>anl6a bne setrun2 on lda #<anl6b ldy #>anl6b setrun2 pha tya pha lda #20 sta zeile lda #12 sta spalte jsr setcr pla tay pla jmp strout joy lda joyst sta stick and #1 bne no1 ldx nr beq no1 dec nr no1 lda stick and #2 bne no2 ldx nr cpx #prganz bcs no2 inc nr no2 lda stick and #4 bne no4 ldx speed cpx #1 beq no4 dec speed no4 lda stick and #8 bne no8 ldx speed cpx #-1 beq no8 inc speed no8 lda stick and #15 cmp #15 beq qwk jsr parout lda joyst and #15 cmp #15 beq qwk ldy #80 quael jsr pause dey bne quael qwk lda joyst and #16 bne qqwk lda run eor #1 sta run jsr setrun ldy #0 dy jsr pause dey bne dy qqwk jmp wk program lda #<anl7 ldy #>anl7 jsr strout ldy #0 sty run lda #1 sta vic+21 sta pjob jsr makepspr plp0 ldy #0 plp1 tya pha lda #<anl8 ldy #>anl8 jsr strout ldx #0 pla tay plp2 lda autopuf,y and grbit1,x beq aus lda #7 aus sta fb lda #"O" jsr bsout inx cpx #8 bcc plp2 iny cpy #17 bcc plp1 lda #<anl9 ldy #>anl9 jsr strout jsr markout ploop jsr getkey cmp #"\x03" bne nostp jmp lali nostp cmp #"\x93" bne noclar jsr clar jmp nene noclar jmp testplmi noclar2 lda joyst and #1 bne noj1 lda ky beq noj1 dec ky noj1 lda joyst and #2 bne noj2 lda ky cmp #16 bcs noj2 inc ky noj2 lda joyst and #4 bne noj4 lda kx beq noj4 dec kx noj4 lda joyst and #8 bne noj8 lda kx cmp #7 bcs noj8 inc kx noj8 lda comp cmp comp beq noj8 noj8a lda gkx cmp vic bne noj8a lda gky cmp vic+1 bne noj8a lda joyst and #16 bne ploop ldy ky lda autopuf,y ldx kx eor grbit1,x sta autopuf,y ldy #100 psse jsr pause dey bne psse jmp nene clar ldy #16 lda #0 clalp sta autopuf,y dey bpl clalp rts markout lda #32 sta 1225 sta 1226 sta 1946 sta 1947 sta 1948 lda mark clc adc #5 sta zeile jsr setcr lda #<markt ldy #>markt jmp strout testplmi cmp #"-" bne nomi lda mark cmp #2 bcc nene dec mark nene lda #5 sta zeile jsr setcr jmp plp0 nomi cmp #"+" bne nopl lda mark cmp #17 bcs nene inc mark bne nene nopl jmp noclar2 pirq lda pjob bne jaa qold jmp oldirq jaa lda kx asl asl asl clc adc #66 sta gkx lda ky asl asl asl clc adc #98 sta gky inc comp lda gkx cmp vic beq samex bcc mustdec inc vic bne samex mustdec dec vic samex lda gky cmp vic+1 beq qold bcs mustinc dec vic+1 bne qold mustinc inc vic+1 bne qold makepspr ldx #31 stx cass stx vic+23 stx vic+29 lda #13 sta sptr lda #17 sta cass+3 sta cass+6 sta cass+9 stx cass+12 rts