oldvec = &0070  byte = &0072  shift = &0073 ( delayl = &0074 2 delayh = &0075 < ptr1 = &0076 F ptr2 = &0077 P status = &0078 Z d hours = &0080 n minutes= &0081 x seconds= &0082  fifty = &0083  oldeve = &0084  memptr = &0086   irqv2 = &0204  eventv = &0220   buffer = &0900   orirb = &FE60  ddrb = &FE62  t2lo = &FE68  t2hi = &FE69  acr = &FE6B  pcr = &FE6C  ifr = &FE6D " ier = &FE6E , 6 osnewl = &FFE7 @ osrdch = &FFE0 J osasci = &FFE3 T oswrch = &FFEE ^ osbyte = &FFF4 h r I=0 2 2 | P%=&1400  [OPT I   .revector  SEI  LDA irqv2  STA oldvec  LDA irqv2+1  STA oldvec+1  LDA #&00  STA ddrb  STA shift  STA ptr1  STA ptr2  LDA acr  #&DF  STA acr & LDA #(introutine 256) 0 STA irqv2 : LDA #(introutine 256) D STA irqv2+1 N JSR init X CLI b RTS l v .resetirq  SEI  LDA oldvec  STA irqv2  LDA oldvec+1  STA irqv2+1  LDA #&7F  STA ier  CLI  RTS   .init  LDA pcr  #&EF  STA pcr  LDA #&7F  STA ier  LDA #&90 * STA ier 4 RTS > H .introutine R LDA &FC \ PHA f TXA p PHA z TYA  PHA  LDA ifr  ier  #&30  BEQ intexit  #&20  BNE timer2  LDA orirb  LDA pcr  #&10  STA pcr  #&10  BEQ intexit  LDA delayh  LSR A  STA t2hi $ LDA delayl . ROL A 8 STA t2lo B LDA #&A0 L STA ier V LDA #&04 ` STA byte j .intexit t PLA ~ TAY  PLA  TAX  PLA  STA &FC  JMP (oldvec)   .timer2  LDA #&10  STA ier  LDA delayl  STA t2lo  LDA delayh  STA t2hi   LDA orirb  LSR A  ROL byte ( BCC intexit 2 JSR init < F LDA byte P CMP #&02 Z BEQ crlf d CMP #&08 n BEQ crlf x CMP #&1B  BEQ setfig  CMP #&1F  BEQ setlet  A shift  TAX  LDA chartab,X  JSR send  CMP #&20  BNE intexit  BIT status  BMI setlet  BPL intexit  .crlf  LDA #&0D  JSR send  .setlet " LDA #&00 , BEQ set 6 .setfig @ LDA #&20 J .set T STA shift ^ JMP intexit h r .send | LDX ptr1  STA buffer,X  INC ptr1  RTS   .chartab ; EQUS (0)+"T/O HNM^LRGIPCVEZDBSYFXAWJ"+(0)+"UQK"+(0) @ EQUS (0)+"5/9 ',.^)4@80:=3+#?!6%/-2"+(7)+(0)+"71("+(00)   .clock  LDA eventv  STA oldeve  LDA eventv+1  STA oldeve+1  LDA #(clockroutine 256)  STA eventv  LDA #(clockroutine 256) & STA eventv+1 0 LDA #&0E : LDX #&04 D LDY #&00 N JSR osbyte X LDA #&00 b STA fifty l RTS v  .resetclock  LDA oldeve  STA eventv  LDA oldeve+1  STA eventv+1  LDA #&0D  LDX #&04  LDY #&00  JMP osbyte   .clockroutine  PHA  CMP #&04  BNE clockexit   INC fifty  LDA fifty  CMP #50 * BEQ clockit 4 .clockexit > PLA H RTS R .clockit \ TXA f PHA p TYA z PHA  LDA #0  STA fifty  INC seconds  LDA seconds  CMP #60  BNE cprint  LDA #0  STA seconds  INC minutes  LDA minutes  CMP #60  BNE cprint  LDA #0  STA minutes  INC hours  LDA hours $ CMP #24 . BNE cprint 8 LDA #0 B STA hours L .cprint V' LDA #((&3000+4*&280+64*&08) 256) ` STA memptr j' LDA #((&3000+4*&280+64*&08) 256) t STA memptr+1 ~ LDA hours  JSR decout LDA #&0A  JSR ourprint  LDA minutes  JSR decout LDA #&0A  JSR ourprint  LDA seconds  JSR decout  PLA  TAY  PLA  TAX  PLA  RTS  .decout ( LDY #&00 2 .dloop < CMP #&0A F BCC dprint P SBC #&0A Z INY d BNE dloop n .dprint x PHA  TYA  JSR ourprint  PLA  .ourprint  PHA  TXA  PHA  TYA  PHA  TSX  LDA &103,X ASL A ASL A  ASL A  TAX  LDY #&00 " .ploop , LDA charset,X 6 STA (memptr),Y @ INX J INY T CPY #&08 ^ BNE ploop h CLC r LDA memptr | ADC #&08  STA memptr  LDA memptr+1 ADC #&00  STA memptr+1  PLA  TAY  PLA  TAX  PLA  RTS .charset  EQUD &7E6E663C  EQUD &3C6676  EQUD &18183818  EQUD &7E1818  EQUD &C06663C & EQUD &7E3018 0 EQUD &1C06663C : EQUD &3C6606 D EQUD &6C3C1C0C N EQUD &C0C7E X EQUD &67C607E b EQUD &3C6606 l EQUD &7C60301C v EQUD &3C6666  EQUD &180C067E  EQUD &303030  EQUD &3C66663C  EQUD &3C6666  EQUD &3E66663C  EQUD &380C06  EQUD &18180000  EQUD &181800 ]   A%=revector B%=clock  C%=resetirq  D%=resetclock  "RTTYI-2"