;:poke56,128:clr ;:open2,8,2,"code,p,w ;:sys36864 *= $8000 hui =* ;.opt o2 tmp =2 tmp2 =4 vic =$d000 cint =65409 bank =56576 page =648 konf =1 char =$e000 tmp3 =247 calc =$e9f0 farbram =$ea24 farb =$f3 bild =$d1 return =$aad7 stack =$8f00 bsout =$ffd2 sid =$d400 key =198 get =65508 sendnam =$f3d5 setpar =$ffba setnam =$ffbd fa =$ba sa =$b9 status =$90 iecin =$ffa5 axout =$bdcd talk =$ffb4 sectalk =$ff96 space =$ab3f clsfil =$f642 getx =$b7f1 untalk =$ffab listen =$ffb1 seclist =$ff93 unlist =$ffae iecout =$ffa8 input =$ffcf ligne =50536 irqvec =788 oldirq =$ea31 farbl =ligne+5120 ioinit =$fd15 picmem =$a000 fram =$d800 clrscr =$e544 joystick =56320 sprptr =51192 sprmem =51200 sel =vic+21 zeile =214 spalte =211 setcr =58732 shift =653 clrx =59903 keyrep =650 col =646 rand =162 kbuf =631 scr =50176 endscr =scr+960 saver =$ffd8 ioflg =157 loadr =$ffd5 fam =$400 gra =$2000 open =$ffc0 close =$ffc3 clrchn =$ffcc chkout =$ffc9 buffer =$cf00 jsr clrmem jmp losgehts chartab .byt 107,0,$78,$fc,$cf,$cf,$fc,$78,0 .byt 126,0,0,224,$70,$18,$c,$c,6 .byt 114,$3c,$7e,$66,$66,$7e,$3c,$18,$18 .byt 127,6,$c,$c,$18,$70,224,0,0 .byt 113,$18,$18,$db,$7e,$3c,$18,0,0 .byt 118,-1,129,129,129,129,129,129,-1 .byt 95,32,48,$18,$fc,$fc,$18,48,32 .byt 108,48,48,48,$f0,$f0,48,48,48 .byt 92,$18,$18,48,224,224,48,$18,$18 .byt 104,48,48,48,48,48,48,48,48 .byt 123,0,0,$3f,48,48,48,48,48 .byt 124,48,48,48,48,48,$3f,0,0 .byt 102,6,6,3,3,3,3,6,6 .byt 120,0,0,$f0,$1c,$c,6,7,3 .byt 98,3,7,6,$c,$1c,$f0,0,0 .byt 121,$c0,$e0,$70,$30,$18,$1c,$e,6 .byt 111,6,$e,$1c,$18,$30,$70,$e0,$c0 .byt 117,$c0,$e0,$70,$f0,$f8,$1c,$e,6 .byt 97,6,$e,$1c,$f8,$f0,$70,$e0,$c0 .byt 115,$18,$18,$18,-1,-1,6,6,6 .byt 105,6,6,6,-1,-1,$18,$18,$18 .byt 106,$18,$18,48,48,0,0,0,0 .byt 116,0,0,0,0,48,48,$18,$18 .byt 78,$3c,$3f,$3f,$3f,$3c,$3c,$3c,0 .byt 77,$3c,$3c,$fc,$fc,$fc,$3c,$3c,0 .byt 83,$f,$3c,$3c,$f,0,$3c,$f,0 .byt 68,$f0,$3c,0,$f0,$3c,$3c,$f0,0 .byt 85,$38,$7c,$f0,$e0,$f0,$7c,$38,$44 .byt 73,$38,$7c,$fe,$e0,$fe,$7c,$38,$28 .byt 74,$38,$7c,$1e,$e,$1e,$7c,$38,$28 .byt 75,$38,$7c,$fe,$e,$fe,$7c,$38,$44 .byt 122,0,0,0,$3c,0,0,0,0 .byt 94,0,4,6,$3f,$3f,$36,$34,$30 .byt 81,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0 brk bitt brk speed brk x brk y brk dir brk stpt brk irqflg brk menspd .byt 1 mendir brk menpos brk menart brk edscr brk sphi brk hellart brk hellohn .byt 1 momspd brk odir brk sti brk wahl brk awahl brk mode brk foundz brk mx brk my brk me1 brk me2 brk sft brk oldrnd .byt 5 oldrnd2 .byt 123 schonf brk worth brk use .word 0 mask brk flg .word 0 xk .word 0 yk brk offx brk axk .word 0 xtab .word 0,0,0,0 ytab .word 0,0,0,0 fname .byte "dcs/" name .byte " " bldtab .byt 93,64,95,113,110,109,112,125,92,66,67,91,108 .byt 115,105 adrtab .word p93,p64,p95,p113,p110,p109,p112,p125,p92,p93,p64 .word p91,p108,p115,p105 hell .byt 6,11,12,15,1,15,12,11,-1 mark .byt 114,107,113,95 leg .byt 1,40,40,1 logtab .byte "aoep" plazun .byt 21,21,21,23 plazre .byt 37,37,36,38 symtab .word tand,tor logtyp .byt 0,0,1,-1 tand .byt 123,120,32,108,32,121,104,32,102,108,32,111 .byt 124,98,32 tor .byt 123,120,32,115,64,117,102,32,102,105,64,97 .byt 124,98,32 abadr .byt 0,1,2,40,41,42,80,81,82,120,121,122,160,161,162 menchr .byte "xndketgf" menmen .word prgend,prgneu,catja,command,editor,extest .word setspeed,file sidtab .byt 1,4,0,2,65,240,251,0,4,0,2,65,240,251,32 .byt 89,166,76,174,167,0,0,20,243,31 grbit .byt 1,2,4,8,$10,$20,$40,$80,0 sevtab .byt 80,0,16,27,8 mulh .byt 0,1,2,3,5,6,7,8,10,11,12,13,15,16 .byt 17,18,20,21,22,23,25,26,27,28,30,31 mull .byt 0,$40,$80,$c0 filtab .byte "_\x86\x85\x87" filadr .word menue,file1,file2,file3 title .byte "\x93\x98\x12\x08\x8e\x19) \x19&\x1d \x92\x19\x04 digi - construktion - set v1.0" .byte "\x19\x04 \x12 \x92\x19\x04\x1d\x19\x1e\xa3\x19\x04\x1d\x12 \x92\x19\x07 (c) nicki heusler 3/1" .byte "987\x19\x07 \x12 \x19&\x1d \x92\x19\x09 ein N" .byte "MSDSD programm\x19\x09 \x12 \x19&\x1d\x19) \x1a\x9a\x03" mentxt .byte "\x12\x05\x19) \x19&\x1d \x92\x19\x0e hauptmenue\x19\x0e\x1d\x12 \x19&\x1d \x1d e" .byte " \x92 - editor\x19\x08\x1d\x12 t \x92 - austesten\x12\x1d\x1d \x19&\x1d \x1d x \x92 -" .byte " programmende\x1d\x1d\x12 n \x92 - neustart \x12 \x19&\x1d" .byte " \x1d d \x92 - directory\x19\x05\x1d\x12 k \x92 - kommando\x1d\x1d\x1d\x12 \x19&\x1d" .byte " \x1d g \x92 - geschwind.\x19\x04\x1d\x12 f \x92 - file\x19\x07\x1d\x12 \x19&\x1d" .byte "\x19) \x03" bye .byte "\x1a\x19\x10}\x1d\x11\x11servus\x11\x19\x06\x9d\x19\x06\xa3\x1a\x1a\x19\x09\x1dneustart: sys 32771\x1a\x1a\x03" keyy .byte "\x1a\x90(bitte\x05 taste\x90 druecken)\x03" dirnam .byte "$0" warnt .byte "\x1a\x13\x19\x17\x11w a r n u n g ! datenverlust !!!\x03" usurt .byte "\x17\x91" surt .byte "\x1asind sie sicher ? [j/n]\x03" editt .byte "\x1a\x93\x19\x05\x11\x19\x09\x1d...editor coming up..." .byte "\x1a\x11\x19\x09\x1djoystick bitte port #2" .byte "\x1a\x11\x19\x09\x1d\x12 f1 \x92 - hilfsbildschirm\x1a\x19\x09\x1d\x11\x03" help .byte "\x13\x1a\x93\x9a\x19\x07 hilfsbildschirm\x1a" .byte "\x05\x1a\x12 m \x92 - marker\x19\x07 \x12 x \x92 - menue\x1a" .byte "\x1a\x12 1-9 \x92 - seite\x19\x06 \x12 clr \x92 - loeschen\x1a" .byte "\x1a\x12 v \x92 - verteiler\x19\x04 \x12 shift \x92 - moduswahl\x1a\x1a" .byte "\x1a\x12 a \x92 - und\x19\x0a \x12 o \x92 - oder\x1a" .byte "\x1a\x12 e \x92 - ex\xbaoder\x19\x06 \x12 p \x92 - puffer\x1a" .byte "\x1a (mit \x12shift\x92: invertierend)\x1a\x03" statt .byte "\x17\x9b\x12seite \x05*\x9b modus \x05d**\x9b\x19\x16 \x03" modt .byt 151,146,140,133 chostxt .byte "\x05\x11bitte waehlen sie eine seite !" .byte "\x9b\x1a\x1a\x19\x0a 1 2 3 4 5 6 7 8 9 ~menue\x1a" .byte "\x1a\x1a\x05waehlen mit \x12crsr\x92, \x12home\x92 u. \x12return\x03" moegl .byte "\x05\x11bitte waehlen sie eine betriebsart !\x1a\x1a\x9b" .byte " \x12 f1 \x92 konfiguration eingeben\x1a\x1a" .byte " \x12 f3 \x92 alles durchprobieren\x1a\x1a" .byte " \x12 f5 \x92 zurueck\x03" setin .byte "\x17\x05\x120,1\x92 - zustand \x12stop\x92 - ende \x12+\x92 - weiter\x03" wodenn .byte "\x17\x96??? kein marker gefunden (taste)\x03" nomal .byte "\x17\x05nochmal ? [j/n]\x03" toomuch .byte "\x17\x96??? zu viele marker [max.8] (taste)\x03" prot .byte "\x17\x05\x12 w \x92 - eiter, \x12 a \x92 - bbruch\x03" spdtxt .byte "\x05\x11bitte stellen sie die geschwindigkeit\x1a" .byte "ein ! (\x12crsr\x92, \x12return\x92)\x1a" .byte "\x19(\xa4\x1a\x19(\xa3\x03" filet .byte "\x05\x11file - menue: bitte waehlen:\x1a" .byte "\x1a\x1d\x12 f1 \x92 - bild laden\x1a" .byte "\x1a\x1d\x12 f3 \x92 - bild speichern\x1a" .byte "\x1a\x1d\x12 f5 \x92 - bild drucken (mps 801)\x1a" .byte "\x1a\x1d\x12 _\xc0 \x92 - zurueck\x03" file1t .byte "\x05\x92\x17dieses bild speichern ? [j/n]\x03" filent .byte "\x05\x11filename ? \x03" file2t .byte "\x05\x92\x17in dieses bild laden ? [j/n]\x03" file3t .byte "\x05\x92\x17dieses bild drucken ? [j/n]\x03" init jsr cint lda #6 sta vic+32 sta vic+33 lda #148 sta bank lda #128 sta keyrep lda #0 sta ioflg lda #196 sta page lda #24 sta vic+24 ldx #8 sei lda #51 sta konf ldy #0 sty tmp sty tmp2 lda #>vic sta tmp+1 lda #>char sta tmp2+1 copych lda (tmp),y sta (tmp2),y dey bne copych inc tmp+1 inc tmp2+1 dex bne copych lda #55 sta konf cli lda #chartab sta tmp sty tmp+1 s1 ldy #0 sty stpt lda (tmp),y bne s2 jmp fuetter s2 sty tmp2+1 asl rol tmp2+1 asl rol tmp2+1 asl rol tmp2+1 sta tmp2 sta tmp3 lda #>char clc adc tmp2+1 sta tmp2+1 clc adc #4 sta tmp3+1 ldy #7 inc tmp bne s3 inc tmp+1 s3 lda (tmp),y sta (tmp2),y eor #-1 sta (tmp3),y dey bpl s3 lda tmp clc adc #8 sta tmp lda tmp+1 adc #0 sta tmp+1 bne s1 fuetter ldx #0 fuet lda sidtab,x sta sid,x inx cpx #25 bcc fuet lda #neuirq sei sta irqvec sty irqvec+1 cli lda #8 sta sprptr ldx #63 lda #0 clrspr sta sprmem,x dex bpl clrspr lda #-1 sta sprmem sta sprmem+27 lda #192 sta sprmem+1 sta sprmem+28 ldx #7 ldy #3 setsek lda #128 sta sprmem,y iny lsr sta sprmem,y iny iny dex bpl setsek rts clrmem ldx #36 ldy #0 sty tmp lda #>picmem sta tmp+1 lda #32 cmem sta (tmp),y dey bne cmem inc tmp+1 dex bne cmem rts calckxy ldx y jsr calc lda x clc adc bild sta bild lda #0 tay adc bild+1 sta bild+1 jmp farbram strout0 jsr strout ldx #0 stx key rts setvic sta bank stx vic+17 rts tost ldx stpt sta stack,x inc stpt bne stok sec rts stok clc rts frst dec stpt ldx stpt lda stack,x cpx #-1 bne stok sec rts wait ldx speed beq fast ldy #-1 slow dey bne slow dex bne slow fast rts pause ldy #0 pse dey bne pse dex bne pse rts apres ldy #0 lda bitt sta (farb),y rts titout lda #title strout tax lda tmp pha lda tmp+1 pha stx tmp sty tmp+1 st ldy #0 lda (tmp),y beq tfin cmp #"\x03" beq tfin cmp #"\x1a" bne nocr lda #13 nocr cmp #"\x19" beq repeat cmp #"\x17" beq unters jsr bsout scont inc tmp bne st inc tmp+1 bne st repeat iny lda (tmp),y tax iny lda (tmp),y rep jsr bsout dex bne rep clc lda #3 adc tmp sta tmp lda #0 adc tmp+1 sta 1+tmp bne st tfin pla sta tmp+1 pla sta tmp rts unters ldx #24 stx zeile jsr clrx lda #0 sta spalte jsr setcr jmp scont getkey lda #<keyy ldy #>keyy gkey jsr strout gky lda #0 sta key gk lda key beq gk dec key rts neuirq jsr irq jsr spirq jmp oldirq irq lda irqflg bne menan rts menan dec menspd beq spd0 rts spd0 lda #14 sta menspd lda #32 ldx menpos sta ligne,x lda mendir beq rechts dec menpos bne nod0 jsr chdir nod0 ldy #74 lda #75 bne awdr rechts inc menpos lda menpos cmp #39 bne nod39 jsr chdir nod39 ldy #85 lda #73 awdr ldx menart beq eins tya eins ldx menpos sta ligne,x lda #7 sta farbl,x lda menart eor #-1 sta menart rts chdir lda mendir eor #-1 sta mendir berdir ldx #39 bedir lda #122 sta ligne,x lda #15 sta farbl,x dex bpl bedir rts spirq lda sel bne span rts span lda #0 sta sphi lda x asl rol sphi asl rol sphi asl rol sphi clc adc #23 sta vic lda sphi adc #0 sta vic+16 lda y asl asl asl adc #49 sta vic+1 dec hellohn beq gehtso rts gehtso lda #4 sta hellohn inc hellart ldx hellart lda hell,x bpl pluss ldx #0 stx hellart lda hell pluss sta vic+39 lda edscr clc adc #177 sta $c000+1990 lda shift and #1 asl tax ldy #1 showmod lda modt,x sta $c000+1999,y inx dey bpl showmod rts adra ldy #0 sty tmp sty tmp2 asl asl clc adc #>picmem sta tmp+1 lda page sta tmp2+1 ldx #4 rts holscr jsr adra jsr ram hollp lda (tmp),y sta (tmp2),y dey bne hollp inc tmp+1 inc tmp2+1 dex bne hollp jsr rom jmp colin ram lda #48 sei sta konf rts rom lda #55 sta konf cli rts colin ldy #0 sty tmp lda #>fram sta tmp+1 ldx #4 lda #12 clin sta (tmp),y dey bne clin inc tmp+1 dex bne clin rts putscr pha sei ldx #24 jsr clrx pla jsr adra putlp lda (tmp2),y sta (tmp),y dey bne putlp inc tmp+1 inc tmp2+1 dex bne putlp cli rts choose jsr titout lda #<chostxt ldy #>chostxt jsr strout lda #10 sta awahl lhome lda edscr sta wahl anz ldx #14 jsr calc jsr farbram lda awahl asl clc adc #10 tay lda #32 sta (bild),y lda wahl asl clc adc #10 tay lda #0 sta (farb),y lda #30 sta (bild),y lda wahl sta awahl getlr jsr get cmp #13 beq crlf cmp #"\x11" beq left cmp #"\x9d" beq left cmp #"\x1d" beq right cmp #"\x13" beq lhome bne getlr crlf lda wahl rts left ldx wahl beq getlr dec wahl bpl anz right ldx wahl cpx #9 bcs getlr inc wahl bne anz testueberh ldx #4 lda page sta tmp+1 lda #0 sta tmp sta foundz suche ldy #0 lda (tmp),y cmp #107 beq h107 cmp #114 beq h114 goons inc tmp bne suche inc tmp+1 dex bne suche lda foundz bne daiswas lda #<wodenn ldy #>wodenn jsr strout jmp gky daiswas rts h114 iny .byt $2c h107 ldy #40 awert lda (tmp),y cmp #118 bne goons inc foundz jmp goons editor lda #<editt ldy #>editt jsr strout lda #<keyy+1 ldy #>keyy+1 jsr gkey jsr clrscr lda edscr jsr holscr ldx #0 stx key stx x stx y inx stx sel lda #100 sta momspd neuf lda #<statt ldy #>statt jsr strout lda #160 sta 51175 lda col sta 56295 eded jsr calckxy lda dir sta odir lda key beq qjoyan jsr get cmp #"x" bne edgoon lda edscr jsr putscr dec sel jmp menue qjoyan jmp joyan edgoon cmp #"\x85" bne nof1 lda edscr jsr putscr dec sel lda #<help ldy #>help jsr strout jsr getkey inc sel lda edscr jsr holscr jmp neuf nof1 cmp #"m" bne nom ldx dir ldy leg,x cpy #1 beq rec lda y cmp #23 bcs eded bcc setmrk rec lda x cmp #39 bcs eded setmrk lda #118 sta (bild),y lda mark,x ldy #0 sta (bild),y beq eded nom cmp #"1" bcc er cmp #"9"+1 bcs er pha lda edscr jsr putscr pla sec sbc #"1" sta edscr jsr holscr jmp neuf er cmp #"\x93" bne noclr dec sel lda #<usurt ldy #>usurt jsr strout jsr gsure bcc spinner jsr clrscr spinner inc sel jmp neuf noclr cmp #"v" bne nov lda dir cmp #3 bne qeded lda y beq qeded cmp #23 bcs qeded ldy #0 lda #92 sta (bild),y inc y dec dir qeded jmp eded nov ldx #3 and #127 suchlog cmp logtab,x beq fundlog dex bpl suchlog bmi qeded fundlog lda y beq qeded cmp plazun,x bcs qeded lda x jsr hoeh cmp plazre,x bcs qeded lda dir cmp #3 bne qeded jsr putlog jmp eded joyan lda joystick and #15 sta sti cmp #15 bne joyakt lda #100 sta momspd jmp eded joyakt and #1 bne jon1 jsr ric1 ldy y beq jon1 dec y jon1 lda sti and #2 bne jon2 jsr ric2 ldy y cpy #23 bcs jon2 inc y jon2 lda sti and #4 bne jon4 jsr ric4 ldy x beq jon4 dec x jon4 lda sti and #8 bne jon8 jsr ric8 ldy x cpy #39 bcs jon8 inc x jon8 ldx momspd jsr pause lda momspd cmp #25 bcc endfast sec sbc #2 sta momspd endfast jsr setdel jmp eded ric1 lda #0 sta dir cmp odir bne wec0 ct1 ldy #0 lda (bild),y cmp #64 beq kruz cmp #32 bne nox lda #93 setchr pha lda joystick and #16 beq naalso pla rts naalso pla ldy #0 sta (bild),y rts wec0 ldx odir dex beq wec01 dex beq wec02 lda #125 .byt $2c wec01 lda #109 .byt $2c wec02 lda #93 jmp setchr ric4 lda #1 sta dir cmp odir bne wec1 ct2 ldy #0 lda (bild),y cmp #93 beq kruz cmp #32 bne nox lda #64 bne setchr kruz lda #91 bne setchr wec1 ldx odir beq wec10 dex dex beq wec12 lda #64 .byt $2c wec10 lda #110 .byt $2c wec12 lda #125 jmp setchr nox rts ric2 lda #2 sta dir cmp odir beq ct1 ldx odir beq wec20 dex beq wec21 lda #110 .byt $2c wec20 lda #93 .byt $2c wec21 lda #112 jmp setchr ric8 lda #3 sta dir cmp odir beq ct2 ldx odir beq wec30 dex beq wec31 lda #109 .byt $2c wec30 lda #112 .byt $2c wec31 lda #64 jmp setchr setdel lda shift and #1 bne aechs rts aechs lda joystick and #16 beq wegdamit rts wegdamit lda #32 ldy #0 sta (bild),y rts putlog lda bild sec sbc #40 sta bild lda bild+1 sbc #0 sta bild+1 lda logtyp,x beq andor bpl exor ldy #0 lda #123 sta (bild),y iny lda #126 sta (bild),y ldy #40 lda #108 sta (bild),y lda #102 iny sta (bild),y ldy #80 lda #124 sta (bild),y lda #127 iny sta (bild),y inc x inc x lda sft beq puffset ldy #42 invset inc x lda #107 sta (bild),y puffset rts andor txa asl tax lda symtab,x sta holadr+1 lda symtab+1,x sta holadr+2 ldx #0 holadr lda !0,x ldy abadr,x sta (bild),y inx cpx #14 bcc holadr inc x inc x inc x inc y lda sft beq puffset ldy #83 bne invset exor ldy #0 lda #116 sta (bild),y iny lda #123 sta (bild),y lda #120 iny sta (bild),y ldy #40 lda #115 sta (bild),y iny sta (bild),y lda #64 iny sta (bild),y lda #117 iny sta (bild),y ldy #80 lda #103 sta (bild),y iny lda #102 sta (bild),y iny iny sta (bild),y ldy #120 lda #105 sta (bild),y iny sta (bild),y iny lda #64 sta (bild),y iny lda #97 sta (bild),y ldy #160 lda #106 sta (bild),y iny lda #124 sta (bild),y iny lda #98 sta (bild),y inc x inc x inc x inc x inc y lda sft beq eorset ldy #84 jmp invset eorset rts hoeh tay lda shift and #1 sta sft beq nosft iny nosft tya rts losgehts jsr init menue jsr titout lda #<mentxt ldy #>mentxt jsr strout0 dex stx irqflg jsr berdir getmen jsr get beq getmen ldx #menmen-menchr-1 sucmen cmp menchr,x beq funmen dex bpl sucmen bmi getmen funmen txa asl tax lda menmen,x sta tmp lda menmen+1,x sta tmp+1 inc irqflg jmp (tmp) prgend lda #4 sta page lda #151 sta bank jsr cint lda #0 ldx #24 clrsid sta sid,x dex bpl clrsid sei jsr ioinit cli lda #<bye ldy #>bye jmp strout prgneu dec irqflg lda #<warnt ldy #>warnt jsr strout jsr getsure bcc uff jmp hui uff jmp menue getsure lda #<surt ldy #>surt jsr strout gsure lda #0 sta key getjn jsr get cmp #"j" beq ja cmp #"n" bne getjn clc ja rts command jsr titout lda #">" jsr bsout lda #8 sta fa jsr listen lda #$6f sta sa jsr seclist cmdout jsr input cmp #13 beq endcmd jsr iecout jmp cmdout endcmd jsr unlist jsr return lda fa jsr talk lda sa jsr sectalk errin jsr iecin jsr bsout cmp #13 bne errin jsr untalk jmp dl5 catja jsr titout lda #2 ldx #<dirnam ldy #>dirnam jsr setnam ldx #8 ldy #$60 jsr setpar jsr sendnam lda fa jsr talk lda sa jsr sectalk lda #0 sta status ldy #3 dl1 sty tmp jsr iecin sta tmp+1 ldy status bne dl4 jsr iecin ldy status bne dl4 ldy tmp dey bne dl1 ldx tmp+1 jsr axout jsr space dl3 jsr iecin ldx status bne dl4 tax beq dl2 jsr bsout bcc dl3 dl2 jsr return ldy #2 bne dl1 dl4 jsr clsfil dl5 jsr getkey jmp menue setspeed jsr titout lda #<spdtxt ldy #>spdtxt jsr strout lda speed eor #-1 sta speed jsr anzg getchsp jsr get cmp #13 beq sat cmp #"\x1d" beq ink cmp #"\x11" beq dek cmp #"\x9d" bne getchsp dek lda speed cmp #4 bcs sub4 lda #4 sub4 sec sbc #4 sspp sta speed jsr anzg jmp getchsp sat lda speed eor #-1 sta speed jmp menue ink lda speed cmp #252 bcc add4 lda #251 add4 clc adc #4 bne sspp anzg pha ldx #14 jsr calc pla lsr lsr lsr php clc ldy #4 tax lda #160 anzl1 dex bmi rest1 sta (bild),y iny bne anzl1 rest1 plp bcc nocyy lda #81 .byt $2c nocyy lda #32 sta (bild),y rts goxy jsr calckxy lda (bild),y cmp #107 beq l10 cmp #114 beq l11 rts l10 lda #3 ldy #40 bne satpar l11 lda #2 ldy #1 satpar sta dir lda (bild),y cmp #118 bne norandom jsr random norandom and #1 sta bitt qqrun jsr run lda stpt beq exit jsr frst bcs exit sta bitt jsr frst bcs exit sta dir jsr frst bcs exit sta y jsr frst bcs exit sta x jmp qqrun exit rts run jsr calckxy lda bitt sta (farb),y ldx dir beq sp0 dex beq sp1 dex beq sp2 inc x bne spx sp2 inc y bne spx sp1 dec x jmp spx sp0 dec y spx lda x bpl xok1 lda #0 sta x xok1 cmp #40 bcc xok2 lda #39 sta x xok2 lda y bpl yok1 lda #0 sta y yok1 cmp #25 bcc yok2 lda #24 sta y yok2 jsr calckxy lda (bild),y ldx #adrtab-bldtab-1 suchobj cmp bldtab,x beq fundobj dex bpl suchobj rts fundobj txa asl tax lda adrtab,x sta goto+1 lda adrtab+1,x sta goto+2 goto jsr 0 bcc qrun rts qrun jsr wait jmp run random sty me1 lda #"0" ldx #0 ldy #0 rnd sty me2 ldy me1 eor #1 sta (bild),y ldy me2 dey bne rnd dex bne rnd ldy me1 jsr mrand and #1 clc adc #"0" sta (bild),y rts mrand eor oldrnd inc oldrnd eor rand lsr eor #-1 sbc oldrnd2 sta oldrnd2 adc oldrnd sta oldrnd lsr eor rand sbc rand rts p64 lda dir awdir and #1 beq csec clc rts csec sec rts p93 lda dir eor #1 jmp awdir p113 ldy #40 .byt $2c p95 ldy #1 lda bitt pha ora #"0" sta (bild),y pla ldy #0 sta (farb),y sec p91 rts p110 lda dir beq ok110 cmp #3 bne errd ok110 eor #1 bne sdir p109 lda dir cmp #1 beq ok109 cmp #2 beq ok109 errd sec rts ok109 eor #1 sdir sta dir clc rts p112 lda dir beq ok112 cmp #1 bne errd ok112 eor #3 bne sdir p125 lda dir cmp #2 beq ok125 cmp #3 bne errd ok125 eor #3 jmp sdir p92 lda dir cmp #3 bne errd lda x jsr tost bcs ex lda y jsr tost bcs ex lda #2 jsr tost bcs ex lda bitt jsr tost bcs ex lda #0 beq sdir ex rts p108 ldy #1 lda (bild),y cmp #102 bne aand jsr apres inc x jsr calckxy ldy #1 lda (bild),y cmp #107 bne puffer lda bitt eor #1 sta bitt sta (farb),y inc x puffer clc rts aand jsr apres ldy #40 lda (bild),y cmp #124 beq aunten lda #$2d dubob sta aoku ldy #80 lda (farb),y tax lda #43 pha txa inc y andlp and #15 cmp #2 bcc aoku pla rts aoku and bitt andfort sta bitt inc x inc x pla tay lda (bild),y cmp #107 bne eand lda bitt eor #1 sta bitt inc x eand clc rts aunten lda #$2d dubun sta aoku lda farb sec sbc #80 sta farb lda farb+1 sbc #0 sta farb+1 ldy #0 lda (farb),y tax lda bild sec sbc #37 sta bild lda bild+1 sbc #0 sta bild+1 lda #0 pha txa dec y jmp andlp p115 jsr apres iny sta (farb),y ldy #40 lda (bild),y cmp #102 bne xorob lda #$d jmp dubob p105 jsr apres iny sta (farb),y lda bild sec sbc #40 sta bild lda bild+1 sbc #0 sta bild+1 ldy #0 lda (bild),y cmp #102 bne xorun jsr calckxy lda #$d jmp dubun xorob ldy #80 lda (farb),y tax lda #44 pha txa inc y xorlp and #$f cmp #2 bcc xrok pla rts xrok eor bitt inc x jmp andfort xorun jsr calckxy lda farb sec sbc #80 sta farb lda farb+1 sbc #0 sta farb+1 ldy #0 lda (farb),y tax lda bild sec sbc #36 sta bild lda bild+1 sbc #0 sta bild+1 lda #0 pha txa dec y jmp xorlp extest jsr choose cmp #9 bcc nomen jmp menue qauto jmp auto nomen jsr holscr ldx #23 stx zeile jsr setcr jsr getkey jsr titout lda #<moegl ldy #>moegl jsr strout0 getmgl jsr get cmp #"\x87" beq extest cmp #"\x85" beq m1 cmp #"\x86" bne getmgl lda #-1 .byt $2c m1 lda #0 sta mode lda wahl jsr holscr jsr testueberh beq extest lda mode bne qauto hand lda #<setin ldy #>setin jsr strout smkit lda page sta tmp+1 lda #0 sta tmp edsuch ldy #0 lda (tmp),y cmp #107 beq m107 cmp #114 beq m114 follw inc tmp bne edsuch inc tmp+1 lda tmp+1 cmp #200 bcc edsuch bcs smkit m114 iny .byt $2c m107 ldy #40 lda (tmp),y cmp #118 beq jja cmp #"1" beq jja cmp #"0" bne follw jja tya clc adc tmp sta tmp2 pha lda tmp+1 adc #0 sta tmp2+1 sta bild+1 pla sta bild jsr farbram ldy #0 lda #1 sta (farb),y geteded jsr get cmp #"+" beq qfollw cmp #"\x03" beq edfin cmp #"1" beq mansch cmp #"0" bne geteded mansch ldy #0 sta (tmp2),y beq geteded qfollw ldy #0 lda #12 sta (farb),y jmp follw edfin ldy #0 lda #12 sta (farb),y jmp exec auto lda foundz cmp #9 bcc kl9 lda #<toomuch ldy #>toomuch jsr strout o jsr gky jmp extest kl9 lda #0 sta x sta y sta schonf ausuch jsr calckxy lda (bild),y cmp #107 beq a107 cmp #114 beq a114 auoll inc x lda x cmp #40 bcc ausuch lda #0 sta x inc y bne ausuch a114 iny .byt $2c a107 ldy #40 lda (bild),y cmp #118 bne auoll ldx schonf inc schonf cpy #40 beq down lda x clc adc #1 sta xtab,x lda y sta ytab,x jmp augoon down lda x sta xtab,x lda y clc adc #1 sta ytab,x augoon lda schonf cmp foundz bcc auoll nulle lda #0 sta worth probloop lda #0 sta schonf prolp2 ldx schonf cpx foundz beq readyset lda xtab,x sta x lda ytab,x sta y jsr calckxy ldx schonf lda grbit,x and worth beq aus lda #1 aus ora #"0" sta (bild),y inc schonf bne prolp2 readyset jsr exec lda #<prot ldy #>prot jsr strout0 getaw jsr get cmp #"a" beq abbr cmp #"w" bne getaw jsr colin inc worth ldx foundz lda worth cmp grbit,x bcc probloop bcs nulle abbr jmp extest exec lda #0 sta x sta y exsuch jsr calckxy lda (bild),y cmp #107 beq e107 cmp #114 beq e114 exoll inc x lda x cmp #40 bcc exsuch lda #0 sta x inc y lda y cmp #24 bcc exsuch jmp fertig e114 iny .byt $2c e107 ldy #40 lda (bild),y cmp #118 beq jjja cmp #"1" beq jjja cmp #"0" bne exoll jjja lda x sta mx lda y sta my jsr goxy lda mx sta x lda my sta y jmp exoll fertig lda mode bne moden0 lda #<nomal ldy #>nomal jsr strout jsr gsure bcs noal jmp extest noal lda wahl jsr holscr jmp hand moden0 rts file jsr titout lda #<filet ldy #>filet jsr strout0 gfmen jsr get beq gfmen ldx #3 nopf cmp filtab,x beq filfnd dex bpl nopf bmi gfmen filfnd txa asl tax lda filadr,x sta gofil+1 lda filadr+1,x sta gofil+2 gofil jmp 0 file1 jsr choose cmp #9 bcs file jsr holscr lda #<file1t ldy #>file1t jsr strout0 jsr gsure bcc file1 jsr filename bcs file lda wahl jsr holscr ldx #<endscr ldy #>endscr lda #<scr sta tmp lda #>scr sta tmp+1 lda #tmp jsr saver jmp file file2 jsr choose cmp #9 bcs file jsr holscr lda #<file2t ldy #>file2t jsr strout0 jsr gsure bcc file2 jsr filename bcs file lda wahl jsr holscr ldx #<scr ldy #>scr lda #0 jsr loadr lda wahl jsr putscr jmp file filename jsr titout lda #<filent ldy #>filent jsr strout lda #2 sta key lda #34 sta kbuf lda #20 sta kbuf+1 ldx #0 gname jsr input cmp #13 beq ncr sta name,x inx cpx #12 bcc gname ncr cpx #0 bne tats rts tats txa clc adc #4 ldx #<fname ldy #>fname jsr setnam ldx #8 ldy #1 clc jmp setpar file3 jsr choose cmp #9 bcc go9 jmp file go9 jsr holscr lda #<file3t ldy #>file3t jsr strout0 jsr gsure bcc file3 ldx #24 jsr clrx lda #151 ldx #59 jsr setvic lda #198 ldy #0 sty tmp ldx #>fam stx tmp+1 colein sta (tmp),y dey bne colein inc tmp+1 dex bne colein lda #0 sta tmp sta tmp3 lda #>scr sta tmp3+1 lda #>gra sta tmp+1 sei lda #48 sta konf tl3 lda #0 sta tmp2 lda #>char sta tmp2+1 ldy #0 lda (tmp3),y tax beq tl1 tl2 lda tmp2 clc adc #8 sta tmp2 lda tmp2+1 adc #0 sta tmp2+1 dex bne tl2 tl1 ldy #7 tl5 lda (tmp2),y sta (tmp),y dey bpl tl5 lda tmp clc adc #8 sta tmp lda tmp+1 adc #0 sta tmp+1 inc tmp3 bne tl8 inc tmp3+1 lda tmp3+1 cmp #>scr+$400 bcs tl0 tl8 jmp tl3 tl0 lda #55 sta konf cli lda #0 jsr setnam lda #4 tax iny jsr setpar jsr open ldx #4 jsr chkout lda #-1 sta mask lda #7 sta use lda #28 sta flg lda #0 sta me1 sev1 lda #40 sta flg+1 ldx #4 sev11 lda sevtab,x jsr bsout dex bpl sev11 lda #0 sta xk sta xk+1 sev2 lda me1 sta yk lda #0 sta use+1 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 lda #0 ldy #7 sev4 ldx use sev5 asl buffer,x rol dex bpl sev5 and mask ora #$80 jsr bsout dey bpl sev4 lda xk clc adc #8 sta xk bcc sev6 inc xk+1 sev6 dec flg+1 bne sev2 jsr return lda me1 clc adc #7 sta me1 dec flg beq sev81 sev8 jmp sev1 sev81 lda #4 cmp use beq sev7 sta use lda #1 sta flg lda #$f sta mask bne sev8 sev7 lda #15 jsr bsout jsr clrchn lda #4 jsr close lda #148 ldx #27 jsr setvic jmp file hposn sta axk stx axk+1 tya lsr lsr lsr tax lda mulh,x sta tmp+1 txa and #3 tax lda mull,x sta tmp tya and #7 clc adc tmp sta tmp lda axk and #$f8 sta offx lda #>gra ora tmp+1 sta tmp+1 clc lda tmp adc offx sta tmp lda tmp+1 adc axk+1 sta tmp+1 rts