;:poke56,128:clr ;:sys36864 ;.opt oo ; ; sprite list superversion ; strout = $ab1e axout = $bdcd getkey = $ffe4 vic = $d000 select = vic+21 mobx = vic moby = vic+1 cint = $ff81 expx = vic+29 expy = vic+23 mul = vic+28 mob = 704 pointer = 2040 nummer = 2 memory = 4 frame = vic+32 screen = vic+33 clrx = $e9ff setcr = $e56c spalte = $d3 zeile = $d6 return = $aad7 home = $e566 konfig = 1 farb1 = vic+39 farb2 = vic+37 farb3 = vic+38 repeat = 650 msave = $f5ea von = $c1 bis = $ae mload = $ffd5 sa = $b9 input = $ffcf latch = 680 fnadr = $bb fnlen = $b7 ga = $ba disk = 8 drucker = 4 open = $ffc0 close = open+3 chkout = $ffc9 clrchn = $ffcc fa = $b8 tmp = 6 ; *= $8000 jmp init txt1 .byte "\x93\x98\x08\xa6\xa6\xa6\xa6\xa6\xa6\xa6\xa6\xa6\xa6\xa6\xa6 nss spritelist \xa6\xa6\xa6\xa6\xa6\xa6\xa6\xa6\xa6\xa6\xa6\xa6" .byte "\x11 \x12 f1 \x92 weiter \x12 f3 \x92 zurueck" .byt 13 .byte " \x12 f2 \x92 plus 10 \x12 f4 \x92 minus 10" .byt 13 .byte " \x12 f5 \x92 multicolor \x12 f7 \x92 expand" .byt 13 .byte " \x12 f6 \x92 neustart \x12 f8 \x92 ende" .byt 13 .byte " \x12 i \x92 invertieren \x12 t \x92 zuruecktransfer." .byt 13 .byt 0 txt4 .byte " \x12 + \x92 plus 100 \x12 - \x92 minus 100" .byt 13 .byte " \x12 1 \x92 farbe (1) \x12 s \x92 save" .byt 13 .byte " \x12 2 \x92 farbe 2 \x12 l \x92 load" .byt 13 .byte " \x12 3 \x92 farbe 3 \x12 d \x92 daten drucken" .byt 13 .byte " \x12 h \x92 wieder holen" .byt 13 .byt 0 txt2 .byte "nummer " .byt 0 txt3 .byte "bereich " .byt 0 nametxt .byte "\x13\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11filename ? " .byt 0 paper .byte "\x13\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11papier einlegen, drucker anschalten" .byt 13 .byte "dann \x12return\x92 (druck) oder \x12_\xc0\x92 (stop)" .byt 0 ddat .byt 13 .byte "spritedaten:" .byt 13,13,0 data ldx #23 jsr clrx inx jsr clrx lda #0 sta spalte lda #23 sta zeile jsr setcr lda #txt2 jsr strout ldx nummer lda nummer+1 jsr axout jsr return lda #txt3 jsr strout ldx memory lda memory+1 jsr axout jmp home data2 lda #0 sta spalte lda #23 sta zeile jsr setcr lda #txt2 jsr strout ldx nummer lda nummer+1 jsr axout jmp home init jsr cint lda #0 sta frame sta screen ldx #3 z2025 sta nummer,x dex bpl z2025 lda #1 sta select lda #128 sta repeat lda #200 sta mobx lda #200 sta moby lda #txt1 jsr strout lda #txt4 jsr strout lda #11 sta pointer loop2 jsr trans1 jsr testnr jsr data loop jsr getkey cmp #"\x8c" bne z2210 rts z2210 cmp #"\x85" bne z2215 jsr plus jmp loop2 z2215 cmp #"\x86" bne z2220 jsr minus jmp loop2 z2220 cmp #"\x89" bne z2225 jsr plu10 jmp loop2 z2225 cmp #"+" bne z2230 jsr plu100 jmp loop2 z2230 cmp #"\x8a" bne z2235 jsr min10 jmp loop2 z2235 cmp #"-" bne z2240 jsr min100 jmp loop2 z2240 cmp #"i" bne z2245 jsr invert jmp loop z2245 cmp #"\x88" bne z2250 jsr expand jmp loop z2250 cmp #"\x87" bne z2255 jsr multi jmp loop z2255 cmp #"\x8b" bne z2260 jmp init z2260 cmp #"1" bne z2265 inc farb1 jmp loop z2265 cmp #"2" bne z2270 inc farb2 jmp loop z2270 cmp #"3" bne z2272 inc farb3 jmp loop z2272 cmp #"d" bne z2275 jsr druck jmp loop z2275 cmp #"h" bne z2280 jmp loop2 z2280 cmp #"t" bne z2282 jsr trans2 jmp loop z2282 cmp #"l" bne z2285 jsr load jmp loop z2285 cmp #"s" bne z2286 jsr save jmp loop z2286 jmp loop plus lda memory clc adc #64close sta memory bne z3010 inc memory+1 z3010 inc nummer bne z3020 inc nummer+1 z3020 rts minus lda memory sec sbc #64 sta memory lda memory+1 sbc #0 sta memory+1 lda nummer sec sbc #1 sta nummer lda nummer+1 sbc #0 sta nummer+1 rts trans1 ldy #63 lda konfig pha lda #48 sei sta konfig z3070 lda (memory),y sta mob,y dey bpl z3070 pla sta konfig cli rts testnr lda nummer+1 cmp #4 bcc z3020 beq z3110 ldx #255 lda #3 bne z3120 z3110 lda #0 tax z3120 stx nummer sta nummer+1 rts plu10 ldx #10 .byt $2c plu100 ldx #100 z3150 txa pha jsr plus jsr testnr jsr data2 pla tax dex bne z3150 rts min10 ldx #10 .byt $2c min100 ldx #100 z3200 txa pha jsr minus jsr testnr jsr data2 pla tax dex bne z3200 rts invert ldy #63 z3240 lda mob,y eor #255 sta mob,y dey bpl z3240 rts expand lda expx beq z3260 lda #0 beq z3270 z3260 lda #1 z3270 sta expx sta expy rts multi lda mul beq z3290 lda #0 beq z3300 z3290 lda #1 z3300 sta mul rts trans2 ldy #63 lda konfig pha lda #48 sei sta konfig z3320 lda mob,y sta (memory),y dey bpl z3320 pla sta konfig cli rts getpara lda #disk sta ga lda #nametxt jsr strout lda #1 sta sa ldx #0 z3340 jsr input cmp #13 beq z3355 sta latch,x inx cpx #16 bcc z3340 z3355 cpx #0 beq back stx fnlen lda #latch sta fnadr sty fnadr+1 clc rts back sec rts save jsr getpara bcs abort lda #mob sta von sty von+1 lda #<(mob+63) ldy #>(mob+63) sta bis sty bis+1 jsr msave abort ldx #13 jsr clrx inx jsr clrx inx jmp clrx load jsr getpara bcs abort ldx #mob lda #0 sta sa jsr mload jmp abort druck lda #paper jsr strout z3610 jsr getkey cmp #"_" beq abort cmp #13 bne z3610 lda #0 sta sa lda #drucker sta ga sta fa jsr open ldx #drucker jsr chkout lda #ddat jsr strout ldx #0 z3650 stx tmp lda mob,x tax lda #0 jsr axout jsr return ldx tmp inx cpx #63 bcc z3650 jsr clrchn lda #drucker jsr close jmp abort