;:sys36864 ;.opt oo frmevl =$ad9e chrgot =$79 adr =$22 ilquan =$b248 chkcom =$aefd frestr =$b6a3 strich =1904 color =646 video =$288 irq =$314 pnt =$fb irqvec =$ea31 farbe =56176 zehntel =$dc08 sekunde =zehntel+1 minute =sekunde+1 stunde =minute +1 trigger =stunde+3 set =trigger+1 konf =1 memkonf =$fdd6 z22a =$e55f z23a =$e508 z23b =$e6d0 z23c =$e882 z22b =$e904 z23d =$e8c5 z22c =$e970 z23e =$e98e z21a =$e9aa mem =$f7 ramtas =$fd67 top =$33 bot =$31 prg =157 line =$39 switch =1023 errvec =$300 olderr =$e38b zeile =214 spalte =211 data =$3f clrscr =$e544 quot =212 chr =122 fnadr =$bb fnlen =$b7 shift =$28d memirq1 =$fd30 memirq2 =$fd9f brklin =$3b key =203 *= $c800 jmp i goirq lda switch beq alt jsr neuirq alt lda key cmp lastkey beq nof1 sta lastkey cmp #4 bne nof1 lda switch eor #255 sta switch nof1 jmp irqvec prot txa bmi ready stx old ready jmp olderr i lda trigger ora #$80 sta trigger lda set and #$7f sta set jsr chrgot beq chgirq jsr chkcom jsr frmevl jsr frestr cmp #6 beq lenok ill jmp ilquan lastkey .byt 0 tmp .byt 0 ziffer .byt!0 liste .word 1,10,100,1000,10000 old .byt 0 count .byt 0 lenok ldy #0 lda (adr),y sec sbc #"0" cmp #3 bcs ill asl asl asl asl sta tmp iny lda (adr),y sec sbc #"0" cmp #10 bcs ill ora tmp bne nonull lda #$92 bne setstd nonull cmp #$24 bcs ill cmp #$13 bcc setstd sec sed sbc #$12 cld ora #$80 setstd sta stunde jsr get59 sta minute jsr get59 sta sekunde lda #1 sta zehntel sta count chgirq lda #prot sta errvec sty errvec+1 lda #0 sta old sei lda #goirq sta irq+1 cli jmp system get59 iny lda (adr),y sec sbc #"0" cmp #6 bcs ill2 asl asl asl asl sta tmp iny lda (adr),y sec sbc #"0" cmp #10 bcs ill2 ora tmp rts ill2 jmp ilquan neuirq lda pnt pha lda pnt+1 pha lda mem pha lda mem+1 pha jsr faerb jsr time jsr dataline jsr ort jsr flag jsr fehler jsr cursor jsr char dec count bne nofir lda #30 sta count jsr po1 jsr filename jsr free jsr keys jsr break nofir pla sta mem+1 pla sta mem pla sta pnt+1 pla sta pnt rts po1 lda #152 .byt $2c po2 lda #192 sta pnt pointer lda video clc adc #3 sta pnt+1 rts time jsr po2 ldy #0 lda stunde cmp #$12 beq nulluhr cmp #$80 bcc stdout and #$7f cmp #$12 beq stdout sed clc adc #$12 cld bne stdout nulluhr lda #0 stdout jsr print lda minute jsr print lda sekunde jsr print lda zehntel ora #"0" jsr print1 rts print pha and #$f0 lsr lsr lsr lsr clc adc #"0" jsr print1 pla and #$f clc adc #"0" jsr print1 lda #":" print1 sta (pnt),y iny rts numout stx mem sta mem+1 ldx #8 nxt lda #"0" sta ziffer vergl lda mem+1 cmp liste+1,x bcc ausg bne abz lda mem cmp liste,x bcc ausg abz sec lda mem sbc liste,x sta mem lda mem+1 sbc liste+1,x sta mem+1 inc ziffer bne vergl ausg lda ziffer sta (pnt),y iny dex dex bpl nxt rts free iny lda top sec sbc bot tax lda top+1 sbc bot+1 jmp numout ort iny ldx line lda line+1 jmp numout flag lda prg and #128 beq prog lda #"\x04" .byt $2c prog lda #"\x10}" iny jsr print1 lda quot beq norm lda #"\x11" .byt $2c norm lda #"\x0e" jmp print1 fehler lda old zwei sta mem lda #0 sta mem+1 iny ldx #2 jmp nxt cursor lda zeile jsr zwei lda spalte jmp zwei system lda #55 sta konf jsr clrscr lda #160 jsr put lda #224 jsr put jsr better lda #53 sta konf sta memkonf rts put sta adr+1 ldy #0 sty adr ldx #32 ad lda (adr),y sta (adr),y iny bne ad inc adr+1 dex bne ad rts better ldx #20 stx z21a inx stx z22a stx z22b stx z22c inx stx z23a stx z23b stx z23c stx z23d stx z23e lda #160 sta ramtas sta ramtas+1 lda #162 sta ramtas+2 lda #0 sta ramtas+3 lda #76 sta ramtas+4 lda #$8d sta ramtas+5 lda #$fd sta ramtas+6 lda irq ldy irq+1 sta memirq1 sta memirq2 sty memirq1+1 sta memirq2+1 rts faerb ldy #119 lda color fil sta farbe,y dey bpl fil ldy #39 lda #100 st sta strich,y dey bpl st rts dataline lda data+1 ldx data iny jmp numout char iny ldx chr lda chr+1 jmp numout filename ldy fnlen k16 cpy #17 bcc laenge dey bne k16 laenge sty mem fnget dey bmi end lda (fnadr),y bpl unt128 and #127 cmp #127 bne nopi lda #$5e nopi cmp #32 bcc steu jmp e691 steu ora #$40 jmp e697 unt128 cmp #32 bcc e697 cmp #$60 bcc e73d and #$df bne e73f e73d and #$3f e73f jmp e693 e691 ora #$40 e693 jmp e699 e697 ora #$80 e699 sta (pnt),y jmp fnget end lda #" " ldy mem fill cpy #17 beq yet jsr print1 jmp fill yet dey rts keys lda shift iny and #1 beq nosft lda #"\x13" jsr print1 lda #"\x06" jsr print1 lda #20 jsr print1 jmp cbm nosft lda #32 ldx #2 lp1 jsr print1 dex bpl lp1 cbm iny lda shift and #2 beq nocbm lda #"\x03" jsr print1 lda #"=" jsr print1 jmp ctrl nocbm lda #32 ldx #1 lp2 jsr print1 dex bpl lp2 ctrl iny lda shift and #4 beq noctrl lda #"\x03" jsr print1 lda #20 jsr print1 lda #"\x12" jsr print1 lda #"\x0c" jsr print1 rts noctrl lda #32 ldx #3 lp3 jsr print1 dex bpl lp3 rts break lda brklin+1 ldx brklin iny jmp numout