;:rem open4,8,15,"s:streichholz":close4 ;:rem open1,8,2,"streichholz,p,w ;:sys36864;** version number 4 ;;.opt o1 *= $402 pattern =$c139 tbox =$c19f mouseon =$c18a icon =$c15a input =$c1ba r0 =2 r1 =4 r2 =6 r3 =8 r4 =10 r5 =12 r6 =14 r7 =16 r8 =18 r9 =20 r10 =22 r11 =24 keyvec =$84a3 multiwowo =$c166 divwowo =$c169 desktop =$c22c menueon =$c151 freemenue =$c193 tprint =$c1ae save =$c1ed close =$c277 open =$c274 recappend =$c289 print =$c148 killrec =$c283 setrecord =$c280 maxrec =$8497 page =$2f rec =$c127 trec =$c1a2 clrmouse =$c19b clrallmen =$c157 window =$c256 rev =$8850 reset =$9185 vline =$c121 re =6 charout =$c145 hline =$c118 get =$c2a7 fe jsr trec .byt 34,180 .word 20,256 .byt -1 lda #7 jsr pattern jsr tbox .byt 47,179 .word 21,255 lda #9 jsr pattern jsr tbox .byt 35,46 .word 21,255 jsr tprint .word 101 .byt 42 .byte "\x1b streichholzspiel v1 " brk lda #1 jsr pattern jsr tbox .byt 60,84 .word 60,236 lda #0 jsr pattern jsr tbox .byt 52,76 .word 52,228 jsr trec .byt 52,76 .word 52,228 .byt -1 jsr tprint .word 64 .byt 69 .byte "\x1bstreichholz-ziehen aus \x18" .byt re+48 .byte "\x1b\xa0reihen" brk lda #windtab sta r0 sty r0+1 jsr window ldx r0 dex beq ok dex ldy #0 wait dex bne wait dey bne wait jmp desktop ok lda #7 jsr pattern jsr tbox .byt 47,179 .word 21,255 lda #windtab2 sta r0 sty r0+1 jsr window lda r0 sec sbc #4 sta beginner ok2 lda #0 jsr pattern jsr tbox .byt 47,179 .word 21,255 lda #-1 ldx #0 stx r4+1 ldx #138 stx r4 ldx #48 stx r3 ldx #178 stx r3+1 ldx #$80 stx page jsr vline lda #113 sta r11 lda #0 sta r3+1 sta r4+1 lda #254 sta r4 lda #140 sta r3 lda #128 sta page lda #-1 jsr hline lda #146 sta r11 lda #-1 jsr hline ldy #re-1 lda #re setup sta row,y sec sbc #1 dey bpl setup jmp main feldout lda #0 jsr pattern jsr tbox .byt 48,179 .word 21,137 ldy #0 loop1 sty zeile lda #128 sta page lda #25 sta r11 lda #0 sta r11+1 lda zeile sta r1 asl asl adc r1 sta r1 lda zeile asl asl asl asl adc r1 adc #60 sta r1+1 lda #"\x18" jsr charout lda zeile adc #48 jsr charout lda #34 sta r11 ldy zeile lda row,y beq nix loop2 pha lda #"i" jsr charout lda #" " jsr charout lda #" " jsr charout pla sec sbc #1 bne loop2 nix ldy zeile iny cpy #re bcc loop1 lda #"\x1b" jmp charout qcomputer jmp computer main jsr feldout lda beginner beq qcomputer lda #0 jsr pattern jsr tbox .byt 114,145 .word 139,255 jsr tprint .word 140 .byt 122 .byte "welche zeile ? \x18" brk get1 jsr get cmp #"1" bcc get1 cmp #"1"+re bcs get1 tay sec sbc #"1" tax lda row,x beq get1 clc adc #"1" sta anzahl stx zeile tya jsr charout jsr tprint .word 140 .byt 136 .byte "\x1bwieviele ? \x18" brk get2 jsr get cmp #"1" bcc get2 cmp anzahl bcs get2 pha jsr charout pla sec sbc #"0" sta anzahl ldx zeile lda row,x sec sbc anzahl sta row,x ldx #0 stx r1 count lda r1 clc adc row,x sta r1 inx cpx #re bcc count lda r1 beq qcompwin cmp #1 beq qspiwin inc beginner jmp main qcompwin jmp compwin qspiwin jmp spiwin computer lda #0 jsr pattern jsr tbox .byt 147,179 .word 139,255 ldx #re-1 lda #0 sta r1 sta r2 sta a dec beginner comp1 lda row,x tay beq comp2 clc adc a sta a inc r1 dey beq comp2 inc r2 comp2 dex bpl comp1 lda r2 beq comp3 lda r1 lsr asl cmp r1 bcc comp4 ldx #re comp5 stx r4 dex lda row,x cmp #2 bcs comp6 txa bne comp5 beq comp3 comp6 ldx r4 stx zeile lda row-1,x sta anzahl bpl comp9 comp4 ldx #0 comp4a lda row,x cmp #2 bcs comp7 inx cpx #re bcc comp4a bcs comp3 comp7 ldy row,x dey sty anzahl inx stx zeile bpl comp9 comp3 ldx #0 comp3a lda row,x bne comp8 inx bne comp3a comp8 lda #1 sta anzahl inx stx zeile comp9 jsr tprint .word 140 .byt 155 .byte "\x1bich nehme \x18" brk lda anzahl ora #"0" jsr charout ldx anzahl dex beq eins lda #mehrtxt bne outtxt eins lda #einstxt outtxt sta r0 sty r0+1 jsr print jsr tprint .word 140 .byt 169 .byte "aus der \x18" brk lda zeile ora #"0" jsr charout lda #zeiltxt sta r0 sty r0+1 jsr print ldx zeile lda row-1,x sec sbc anzahl sta row-1,x lda a sec sbc anzahl beq spiwin cmp #1 beq compwin jmp main spiwin jsr feldout jsr tprint .word 145 .byt 54 .byte "\x18\x19sehr gut !\x1b" brk inc spsi jsr tprint .word 139 .byt 66 .byte "sie haben gewonnen." brk jmp gon compwin jsr feldout jsr tprint .word 148 .byt 54 .byte "\x18\x19sorry...\x1b" brk inc cosi jsr tprint .word 139 .byt 66 .byte "ich habe gewonnen." brk gon jsr tprint .word 148 .byt 78 .byte "(space taste)" brk jsr tprint .word 150 .byt 90 .byte "spieler: " brk lda spsi jsr numout jsr tprint .word 150 .byt 102 .byt 128 .byte " 64: " brk lda cosi jsr numout gets jsr get cmp #" " bne gets jmp fe numout ldx #"0" co100 cmp #100 bcc kl100 inx sbc #100 jmp co100 kl100 stx zahl ldx #"0" co10 cmp #10 bcc kl10 inx sbc #10 bpl co10 kl10 ora #"0" sta zahl+2 stx zahl+1 lda zahl cmp #"0" bne fini lda #" " sta zahl cpx #"0" bne fini lda #" " sta zahl+1 fini lda #"\x18" jsr charout lda zahl jsr charout lda zahl+1 jsr charout lda zahl+2 jsr charout lda #"\x1b" jmp charout windtab .byt 1,80,158 .word 52,228 .byt $b,4,11 .word text1 .byt $b,4,24 .word text2 .byt $b,4,37 .word text3 .byt $b,4,50 .word text4 .byt 2,16,58,1,1,58 brk windtab2 .byt 1,80,118 .word 52,228 .byt $b,4,11 .word text5 .byt 4,16,18,3,1,18 brk text1 .byte "sie koennen pro zug aus einer zeile" brk text2 .byte "beliebig viele hoelzer ziehen, aber" brk text3 .byte "\x18nicht\x1b mehr als in der zeile vor-" brk text4 .byte "handen sind !" brk text5 .byte "wollen \x18sie\x1b beginnen ?" brk einstxt .byte "\x1b streichholz" brk mehrtxt .byte "\x1b hoelzer" brk zeiltxt .byte "\x1b. zeile" brk beginner =$a000 row .word 0,0,0 a brk zeile brk anzahl brk cosi brk spsi brk zahl .byte "..."