;:rem freezer-quellprogramm ;:: ;:rem (c)1987 by patrick urban ;:: ;:: ;:sys32768 ;.opt oo *= $f72c vic = 53248 sid = 54272 tastatur = $ea87 save = $ffd8 setnam = $ffbd setfls = $ffba anf1 = $0800 end1 = $a000 la1 = 2 la2 = 2 anf2 = $2000 end2 = $9803 load = $ffd5 la3 = 2 anf3 = $d000 end3 = $d019 open = $ffc0 close = $ffc3 chkout = $ffc9 clrch = $ffcc adr = 8192 print = $ffd2 reg0 = 1000 reg1 = 1005 reg2 = reg1 + 1 reg3 = reg2 + 1 reg4 = reg3 + 1 z = reg4 + 1 h1 = z + 1 h2 = h1 + 1 flag1 = h2 + 1 irq lda $d019 and #1 bne irq2 jmp $ea31 irq2 sta $d019 pla tay pla tax pla rti ende ldx 323 ldy 324 lda 322 cli rti name1 .byte "f1" name2 .byte "f2" name3 .byte "f3" anfang1 sta 322 lda #$7f sta $dd0d lda $dd0d stx 323 sty 324 lda #255 sta 56322 sta 317 loop jsr tastatur lda 203 cmp #13 bne lo1 jmp speichern lo1 cmp #42 bne lo2 jmp laden lo2 cmp #17 bne lo3 jmp reset lo3 cmp #41 bne lo4 jmp drucken lo4 cmp #14 bne lo5 jmp restore lo5 cmp #33 bne lo6 jmp invers lo6 cmp #22 bne lo7 jmp $fe66 lo7 cmp #60 bne loop jmp ende restore lda 322 ldx 323 ldy 324 jmp ($0318) invers inc 317 jmp drucken speichern lda 788 sta 319 lda 789 sta 320 lda #>irq sta 789 lda #name1 jsr setnam lda $fb pha lda $fc pha lda #anf1 sta $fc lda $9d bpl spe1 lda #0 sta $9d spe1 lda #$fb ldx #end1 jsr save pla sta $fc pla sta $fb lda #0 sta $b8 sta $b9 sta $bb lda #$20 sta $bc ldy #0 ldx #0 spe2 lda ($b8),y sta ($bb),y iny bne spe2 inc $b9 inc $bc inx cpx #8 bne spe2 lda #kopier sta $b9 lda #$10 sta $bc ldx #0 ldy #0 spe3 lda ($b8),y sta ($bb),y iny bne spe3 inc $b9 inc $bc inx cpx #1 bne spe3 jmp $1000 spe4 lda #$88 sta $bc lda #$d0 sta $b9 ldy #0 ldx #0 spe5 lda ($b8),y sta ($bb),y iny bne spe5 inc $b9 inc $bc inx cpx #16 bne spe5 ldx #8 jsr setfls lda #la2 ldx #name2 jsr setnam tsx stx $9802 lda #anf2 sta $fc lda #$fb ldx #end2 jsr save ldx #8 jsr setfls lda #la3 ldx #name3 jsr setnam lda #anf3 sta $fc lda #$fb ldx #end3 jsr save jmp reset kopier sei lda 1 pha lda #52 sta 1 lda #0 sta $b8 lda #1 sta $bb lda #$28 sta $bc lda #$a0 sta $b9 ldy #0 ldx #0 kop1 lda ($b8),y sta ($bb),y iny bne kop1 inc $b9 inc $bc inx cpx #96 bne kop1 pla sta 1 cli jmp spe4 laden ldx #8 ldy #1 jsr setfls lda #la2 ldx #name2 jsr setnam lda #0 jsr load lda #$8c sta $bc lda #$d4 sta $b9 lda #0 sta $b8 lda #1 sta $bb ldy #0 lad1 lda ($bb),y sta ($b8),y lda $bb clc adc #1 sta $bb lda $bc adc #0 sta $bc lda $b8 clc adc #1 sta $b8 lda $b9 adc #0 sta $b9 cmp #>56325 bne lad1 lda $b8 cmp #<56325 bne lad1 lda $b8 clc adc #241 sta $b8 lda $b9 adc #0 sta $b9 lda $bb clc adc #241 sta $bb lda $bc adc #0 sta $bc lad2 lda ($bb),y sta ($b8),y lda $bb clc adc #1 sta $bb lda $bc adc #0 sta $bc lda $b8 clc adc #1 sta $b8 lda $b9 adc #0 sta $b9 cmp #224 bne lad2 lda #copier sta $b9 lda #$10 sta $bc lda #0 sta $bb ldx #0 ldy #0 lad3 lda ($b8),y sta ($bb),y iny bne lad3 inc $b9 inc $bc inx cpx #1 bne lad3 jsr $e5a0 jmp $1000 lad4 ldy #0 fuell lda $881b,y sta 295,y iny cpy #21 bne fuell lda 321 ldx #8 ldy #1 jsr setfls lda $9d bpl lad8 lda #0 sta $9d lad8 lda #la1 ldx #name1 jsr setnam lda #0 jsr load sei ldx 321 lda 320 sta 789 lda 319 sta 788 cli ldx #8 ldy #1 jsr setfls lda #la3 ldx #name3 jsr setnam lda #0 jsr load ldy #0 fuell2 lda 295,y sta $d01a,y iny cpy #21 bne fuell2 jmp ende reset ldx #255 sei txs cld ldx #5 jmp $fcef copier sei lda 1 pha lda #52 sta 1 lda #0 sta $b8 lda #1 sta $bb lda #$28 sta $bc lda #$a0 sta $b9 ldy #0 ldx #0 cop1 lda ($bb),y sta ($b8),y iny bne cop1 inc $b9 inc $bc inx cpx #96 bne cop1 pla sta 1 lda #0 sta $b9 sta $bb lda #$20 sta $bc ldy #0 ldx #0 cop2 lda ($bb),y sta ($b8),y iny cpy #184 bne cop2 iny iny iny iny iny cop3 lda ($bb),y sta ($b8),y iny bne cop3 inc $b9 inc $bc inx cpx #8 bne cop3 ldx $9802 txs cli jmp lad4 drucken lda #1 jsr close lda #0 sta flag1 lda #1 ldx #4 ldy #0 jsr setfls lda #0 jsr setnam jsr open ldx #1 jsr chkout jsr drucker druck1 lda vic+22 and #16 cmp #16 bne druck2 inc flag1 druck2 lda 56576 and #3 eor #3 tax inx lda #0 sta $fb sta $fc druck3 dex beq druck4 lda $fc clc adc #64 sta $fc jmp druck3 druck4 lda vic+17 and #32 cmp #32 beq druck41 jmp zeichen druck41 lda vic+24 and #8 cmp #8 bne druck5 lda $fc clc adc #32 sta $fc druck5 lda $fc clc adc #31 sta reg4 ldx #0 druck0 lda move,x sta 970,x inx cpx #25 bne druck0 ldx #0 stx 2 laap lda #27 jsr print lda #"k" jsr print lda #128 jsr print lda #2 jsr print lda #0 sta $fd loop2 ldy #0 ldx #3 jsr 970 lda #0 sta $fe loop3 clc lda $fe bne le2 sec le2 ror sta $fe lda #0 sta z ldx #0 lei1 ldy #1 lei2 lda reg0,x and $fe beq lei3 lda #1 lei3 sta h1 sty h2 dec h2 lda h2 stx h2 clc adc h2 adc h2 sta h2 inc h2 lei4 dec h2 lda h2 beq lei5 lda h1 asl sta h1 jmp lei4 lei5 lda h1 ora z sta z iny cpy #3 bne lei2 inx cpx #4 bne lei1 lda 317 bne einf lda z eor #255 sta z einf lda z jsr print ldx flag1 beq lei6 jmp multi lei6 jsr print lda $fe cmp #1 bne loop3 weite lda $fb clc adc #8 sta $fb lda $fc adc #0 jmp weite1 lda $c2 sta $ad lda $c1 sta $ac rts lda #$08 sta $a3 lda #$00 sta $a4 sta $a8 sta $9b sta $a9 rts weite1 sta $fc inc $fd lda $fd cmp #40 bcs weit jmp loop2 weit lda #13 jsr print inc 2 lda 2 cmp #1 bne weit2 dec $fc lda $fb sec sbc #60 sta $fb lda $fc sbc #0 sta $fc jmp weit3 weit2 lda #0 sta 2 lda $fb sec sbc #4 sta $fb lda $fc sbc #0 sta $fc weit3 lda $fc cmp reg4 bcc weit4 lda $fb cmp #62 bcs end weit4 jmp laap end jsr clrch lda #1 jsr close jmp ende multi inc reg1 lda reg1 and #1 cmp #1 bne mul2 lda z sta reg2 jmp loop3 mul1 .byte "p.u.1987" mul2 lda reg2 jsr print lda z jmp lei6 move sei lda 1 pha lda #52 sta 1 le1 lda ($fb),y sta reg0,x dex iny cpy #4 bne le1 pla sta 1 cli rts zeichen lda vic+24 and #%11110000 lsr lsr lsr lsr tax inx zeich3 dex beq zeich4 lda $fc clc adc #4 sta $fc jmp zeich3 zeich4 lda $fc clc adc #3 sta reg4 ldy #0 sty reg2 zeich5 ldx #0 zeich8 lda ($fb),y iny bne zeich6 inc $fc zeich6 and #127 cmp #32 bcs zeich7 adc #64 zeich7 jsr print inx cpx #40 bne zeich8 lda #13 jsr print inc reg2 lda reg2 cmp #25 bne zeich5 jsr clrch lda #1 jsr close jmp ende drucker ldx #0 drucker1 lda das,x jsr print inx cpx #1 bne drucker1 rts das .byte 13