changeset 1044:66e53c0a3eea

Moved drvr51 in MODULES
author boisy
date Sun, 16 Mar 2003 14:18:45 +0000
parents 938ec7bd301f
children 3ebe2a5977d9
files level1/cmds/drvr51.asm level1/modules/drvr51.asm
diffstat 2 files changed, 1439 insertions(+), 1439 deletions(-) [+]
line wrap: on
line diff
--- a/level1/cmds/drvr51.asm	Sun Mar 16 13:52:31 2003 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1439 +0,0 @@
-********************************************************************
-* drvr51 - Driver for The 51 column by 24 line video display
-*
-* $Id$
-*
-* Ed.    Comments                                       Who YY/MM/DD
-* ------------------------------------------------------------------
-*   1    Original Dragon distribution version
-
-
-         nam   drvr51
-         ttl   Driver for The 51 column by 24 line video display
-
-* Disassembled 02/07/06 21:17:23 by Disasm v1.6 (C) 1988 by RML
-
-         ifp1
-         use   defsfile
-         endc
-
-tylg     set   Drivr+Objct   
-atrv     set   ReEnt+rev
-rev      set   $01
-edition  set   1
-
-         mod   eom,name,tylg,atrv,start,size
-
-         org   0
-u0000    rmb   1
-u0001    rmb   1
-u0002    rmb   1
-u0003    rmb   1
-u0004    rmb   1
-u0005    rmb   1
-u0006    rmb   1
-u0007    rmb   1
-u0008    rmb   1
-u0009    rmb   1
-u000A    rmb   1
-u000B    rmb   1
-u000C    rmb   1
-u000D    rmb   1
-u000E    rmb   1
-u000F    rmb   8
-u0017    rmb   4
-u001B    rmb   2
-u001D    rmb   1
-u001E    rmb   1
-u001F    rmb   1
-u0020    rmb   1
-u0021    rmb   1
-u0022    rmb   2
-u0024    rmb   1
-u0025    rmb   1
-u0026    rmb   1
-u0027    rmb   1
-u0028    rmb   1
-u0029    rmb   1
-u002A    rmb   1
-u002B    rmb   1
-u002C    rmb   1
-u002D    rmb   1
-u002E    rmb   1
-u002F    rmb   1
-u0030    rmb   1
-u0031    rmb   1
-u0032    rmb   1
-u0033    rmb   1
-u0034    rmb   1
-u0035    rmb   1
-u0036    rmb   1
-u0037    rmb   1
-u0038    rmb   1
-u0039    rmb   1
-u003A    rmb   6
-u0040    rmb   2
-u0042    rmb   2
-u0044    rmb   6
-u004A    rmb   1
-u004B    rmb   5
-u0050    rmb   5
-u0055    rmb   9
-u005E    rmb   2
-u0060    rmb   9
-u0069    rmb   6
-u006F    rmb   1
-u0070    rmb   1
-u0071    rmb   7
-u0078    rmb   6
-u007E    rmb   2
-u0080    rmb   8
-u0088    rmb   6
-u008E    rmb   2
-u0090    rmb   6
-u0096    rmb   3
-u0099    rmb   1
-u009A    rmb   3
-u009D    rmb   1
-size     equ   .
-
-         fcb   UPDAT.
-
-name     fcs   /drvr51/
-         fcb   edition
-
-start    lbra  Init
-         lbra  Read
-         lbra  Write
-         lbra  GetStat
-         lbra  SetStat
-         lbra  Term+1
-
-Init     pshs  u,a
-         ldu   <u001D,u
-         ldd   #$0200
-         os9   F$SRtMem
-         ldu   $01,s
-         tst   <u002C,u
-         beq   L0044
-         ldu   <u002D,u
-         ldd   #$1800
-         os9   F$SRtMem 
-         ldu   $01,s
-L0044    ldb   #$81
-         leax  <u001D,u
-L0049    clr   ,x+
-         decb  
-         bne   L0049
-         ldd   #$1900
-         os9   F$SRqMem 
-         bcs   L009C
-         tfr   u,d
-         ldu   $01,s
-         tfr   d,x
-         bita  #$01
-         beq   L0066
-         leax  >$0100,x
-         bra   L0068
-L0066    adda  #$18
-L0068    stx   <u0022,u
-         tfr   d,u
-         ldd   #$0100
-         os9   F$SRtMem 
-         ldu   $01,s
-         lda   #$10
-         sta   <u0037,u
-         pshs  cc
-         orcc  #IntMasks
-         leay  >L00AD,pcr
-         sty   >D.IRQ
-         ldx   #$FF00
-         lda   $03,x
-         ora   #$01
-         sta   $03,x
-         inc   >Term,pcr
-         puls  cc
-         lbsr  L0475
-         lbsr  L02C3
-         clrb  
-L009C    puls  pc,u,a
-Term     fcb   $00
-         pshs  cc
-         orcc  #IntMasks
-         ldx   >D.AltIRQ
-         stx   >D.IRQ
-         puls  cc
-         clrb  
-         rts   
-L00AD    ldu   >D.KbdSta
-         ldx   #$FF00
-         lda   $03,x
-         bmi   L00BB
-         jmp   [>D.SvcIRQ]
-L00BB    lda   $02,x
-         lda   >D.DskTmr
-         beq   L00CB
-         deca  
-         sta   >D.DskTmr
-         bne   L00CB
-         sta   >$FF48
-L00CB    lbsr  L04E5
-         jmp   [>D.AltIRQ]
-L00D2    pshs  x,b
-         lda   u0004,u
-         sta   u0005,u
-         ldx   #$0000
-         os9   F$Sleep  
-         ldx   <u004B
-         ldb   <$36,x
-         beq   L00EC
-         cmpb  #$03
-         bhi   L00EC
-         coma  
-         puls  pc,x,a
-
-L00EC    puls  x,b
-Read     tst   >Term,pcr
-         bne   L00F9
-         lbsr  Init
-         bcs   L011C
-L00F9    leax  <u003A,u
-         orcc  #IRQMask
-         ldb   <u001D,u
-         cmpb  <u001E,u
-         beq   L00D2
-         lda   b,x
-         incb  
-         cmpb  #$64
-         bcs   L010E
-         clrb  
-L010E    stb   <u001D,u
-         andcc #^(IRQMask+Carry)
-         tst   u000E,u
-         beq   L011C
-         clr   u000E,u
-         comb  
-         ldb   #$F4
-L011C    rts   
-
-Write    tst   >Term,pcr
-         bne   L012C
-         pshs  a
-         lbsr  Init
-         puls  a
-         bcs   L0139
-L012C    ldb   <u001F,u
-         bne   L0165
-         cmpa  #$1B
-         bne   L013A
-         inc   <u001F,u
-         clrb  
-L0139    rts   
-L013A    cmpa  #$20
-         bcs   L0144
-         cmpa  #$7F
-         bcc   L0144
-         bra   L0173
-L0144    leax  >L066E,pcr
-L0148    tst   ,x
-         bne   L0150
-L014C    clr   <u001F,u
-         rts   
-L0150    cmpa  ,x+
-         bne   L0161
-         ldd   ,x
-         leax  >L066E,pcr
-         leax  d,x
-         stx   <u0020,u
-         jmp   ,x
-L0161    leax  $02,x
-         bra   L0148
-L0165    inc   <u001F,u
-         leax  >L0681,pcr
-         cmpb  #$01
-         beq   L0148
-         jmp   [<u0020,u]
-L0173    inc   <u0032,u
-         bsr   L01B3
-         tst   <u0039,u
-         beq   L0185
-         lda   #$F8
-         leay  <-$40,y
-         lbsr  L0236
-L0185    lda   <u0024,u
-         inca  
-         cmpa  #$33
-         bcs   L01A2
-         clr   <u0024,u
-         lda   <u0025,u
-         inca  
-         cmpa  #$18
-         bcs   L019D
-         lbsr  L033E
-         bra   L01A5
-L019D    sta   <u0025,u
-         bra   L01A5
-L01A2    sta   <u0024,u
-L01A5    clr   <u0033,u
-         ldd   <u0024,u
-         std   <u0030,u
-         dec   <u0032,u
-         clrb  
-         rts   
-L01B3    tfr   a,b
-         subb  #$20
-         clra  
-         leax  >L06A0,pcr
-         lslb  
-         rola  
-         lslb  
-         rola  
-         leax  d,x
-         ldb   #$05
-         lda   <u0024,u
-         mul   
-         pshs  b
-         lsra  
-         rorb  
-         lsra  
-         rorb  
-         lsra  
-         rorb  
-         puls  a
-         anda  #$07
-         pshs  b
-         sta   <u0026,u
-         tst   <u0034,u
-         bne   L01FF
-         tfr   a,b
-         lda   #$F8
-         tstb  
-         beq   L01FA
-L01E5    lsra  
-         decb  
-         bhi   L01E5
-         bne   L01EE
-         rorb  
-         bra   L01FA
-L01EE    pshs  b
-         ldb   #$80
-L01F2    lsra  
-         rorb  
-         dec   ,s
-         bne   L01F2
-         leas  $01,s
-L01FA    coma  
-         comb  
-         std   <u0035,u
-L01FF    ldy   <u0022,u
-         lda   <u0025,u
-         ldb   ,s+
-         leay  d,y
-         lda   #$04
-         pshs  a
-         inc   <u0032,u
-L0211    lda   ,x
-         anda  #$F0
-         bsr   L0236
-         lda   ,x+
-         anda  #$0F
-         bsr   L0227
-         dec   ,s
-         bne   L0211
-         dec   <u0032,u
-         clrb  
-         puls  pc,b
-L0227    ldb   <u0026,u
-         subb  #$04
-         bhi   L023B
-         beq   L0250
-L0230    lsla  
-         incb  
-         bne   L0230
-         bra   L0250
-L0236    ldb   <u0026,u
-         beq   L0250
-L023B    lsra  
-         decb  
-         bhi   L023B
-         bne   L0244
-         rorb  
-         bra   L0250
-L0244    pshs  b
-         ldb   #$80
-L0248    lsra  
-         rorb  
-         dec   ,s
-         bne   L0248
-         leas  $01,s
-L0250    tst   <u0034,u
-         bne   L0273
-         tst   <u0038,u
-         beq   L0262
-         coma  
-         comb  
-         eora  <u0035,u
-         eorb  <u0036,u
-L0262    pshs  b,a
-         ldd   <u0035,u
-         anda  ,y
-         andb  $01,y
-         addd  ,s++
-L026D    std   ,y
-         leay  <$20,y
-         rts   
-L0273    eora  ,y
-         eorb  $01,y
-         bra   L026D
-         ldx   #$FF20
-         ldb   #$64
-L027E    lda   ,x
-         eora  #$C0
-         sta   ,x
-         lda   #$19
-L0286    deca  
-         nop   
-         nop   
-         bne   L0286
-         decb  
-         bne   L027E
-         lbra  L014C
-         dec   <u0024,u
-         bpl   L02A6
-         lda   #$32
-         sta   <u0024,u
-         dec   <u0025,u
-         bpl   L02A6
-         clr   <u0025,u
-         lbsr  L035E
-L02A6    lbsr  L0484
-         lbra  L014C
-L02AC    lda   <u0025,u
-         inca  
-         cmpa  #$18
-         bcs   L02B9
-         lbsr  L033E
-         bra   L02BC
-L02B9    sta   <u0025,u
-L02BC    bra   L02A6
-         clr   <u0024,u
-         bra   L02A6
-L02C3    ldy   <u0022,u
-         leay  >$0080,y
-         lda   #$18
-         pshs  a
-         inc   <u0032,u
-L02D2    bsr   L0314
-         dec   ,s
-         bne   L02D2
-         leas  $01,s
-         clra  
-         clrb  
-         sta   <u0033,u
-         std   <u0030,u
-         std   <u0024,u
-         dec   <u0032,u
-         ldx   #$FF20
-         lda   $02,x
-         ora   #$F0
-         sta   $02,x
-         ldx   #$FFC0
-         lda   #$06
-         ldb   #$03
-         bsr   L0305
-         lda   <u0022,u
-         lsra  
-         ldb   #$07
-         bsr   L0305
-         lbra  L014C
-L0305    lsra  
-         bcc   L030E
-         leax  $01,x
-         sta   ,x+
-         bra   L0310
-L030E    sta   ,x++
-L0310    decb  
-         bne   L0305
-         rts   
-L0314    lda   #$10
-L0316    pshs  a
-         lda   <u0038,u
-         tfr   a,b
-L031D    std   <-$80,y
-         std   <-$60,y
-         std   <-$40,y
-         std   <-$20,y
-         std   <$20,y
-         std   <$40,y
-         std   <$60,y
-         std   ,y++
-         dec   ,s
-         bne   L031D
-         leay  >$00E0,y
-         puls  pc,b
-L033E    ldy   <u0022,u
-         inc   <u0032,u
-         pshs  u
-         leau  >$0100,y
-         lda   #$10
-         bsr   L037C
-         puls  u
-         dec   <u0031,u
-L0354    leay  >$0080,y
-         bsr   L0314
-         dec   <u0032,u
-         rts   
-L035E    ldy   <u0022,u
-         leay  >$17F0,y
-         inc   <u0032,u
-         pshs  u
-         leau  >-$0100,y
-         lda   #$F0
-         bsr   L037C
-         leay  ,u
-         puls  u
-         inc   <u0031,u
-         bra   L0354
-L037C    ldb   #$17
-         pshs  b
-L0380    ldb   #$10
-L0382    ldx   ,u
-         stx   ,y
-         ldx   u0002,u
-         stx   $02,y
-         ldx   u0004,u
-         stx   $04,y
-         ldx   u0006,u
-         stx   $06,y
-         ldx   u0008,u
-         stx   $08,y
-         ldx   u000A,u
-         stx   $0A,y
-         ldx   u000C,u
-         stx   $0C,y
-         ldx   u000E,u
-         stx   $0E,y
-         leay  a,y
-         leau  a,u
-         decb  
-         bne   L0382
-         dec   ,s
-         bne   L0380
-         puls  pc,b
-         inc   <u0032,u
-         bsr   L03BA
-         dec   <u0032,u
-         lbra  L014C
-L03BA    clr   <u0033,u
-         ldb   <u0024,u
-         pshs  b
-         bitb  #$07
-         bne   L03CB
-         lda   #$05
-         mul   
-         bra   L03F3
-L03CB    lda   #$01
-         pshs  a
-L03CF    lda   #$20
-         lbsr  L01B3
-         lda   <u0024,u
-         inca  
-         sta   <u0024,u
-         cmpa  #$33
-         bcs   L03E3
-         leas  $01,s
-         bra   L040D
-L03E3    dec   ,s
-         bpl   L03CF
-         lda   <u0024,u
-         ldb   #$05
-         mul   
-         bitb  #$08
-         bne   L03CF
-         leas  $01,s
-L03F3    lsrb  
-         lsrb  
-         lsrb  
-         ldy   <u0022,u
-         lda   <u0025,u
-         leay  d,y
-         leay  >$0080,y
-         lda   #$20
-         pshs  b
-         suba  ,s+
-         lsra  
-         lbsr  L0316
-L040D    puls  a
-         sta   <u0024,u
-         rts   
-         inc   <u0032,u
-         bsr   L03BA
-         lda   #$17
-         suba  <u0025,u
-         bls   L042A
-         pshs  a
-L0421    lbsr  L0314
-         dec   ,s
-         bne   L0421
-         leas  $01,s
-L042A    dec   <u0032,u
-         lbra  L014C
-         clr   <u0024,u
-         clr   <u0025,u
-         lbra  L02A6
-         ldb   <u001F,u
-         subb  #$02
-         bne   L0442
-         clrb  
-         rts   
-L0442    decb  
-         bne   L0450
-         cmpa  #$33
-         bcs   L044B
-         lda   #$32
-L044B    sta   <u0024,u
-         clrb  
-         rts   
-L0450    cmpa  #$18
-         bcs   L0456
-         lda   #$17
-L0456    sta   <u0025,u
-L0459    lbra  L02A6
-         inc   <u0024,u
-         lda   <u0024,u
-         cmpa  #$33
-         bcs   L0459
-         clr   <u0024,u
-         lbra  L02AC
-         lda   #$FF
-         coma  
-L046F    sta   <u0038,u
-         lbra  L014C
-L0475    lda   #$FF
-         bra   L046F
-         lda   #$FF
-L047B    sta   <u0039,u
-         lbra  L014C
-         clra  
-         bra   L047B
-L0484    ldd   <u0024,u
-         inc   <u0032,u
-         tst   <u0033,u
-         bne   L0494
-         std   <u0030,u
-         bra   L04B9
-L0494    pshs  b,a
-         ldd   <u0030,u
-         inc   <u0034,u
-         tstb  
-         bmi   L04AB
-         cmpb  #$18
-         bcc   L04AB
-         std   <u0024,u
-         lda   #$7F
-         lbsr  L01B3
-L04AB    puls  b,a
-         std   <u0024,u
-         std   <u0030,u
-         clr   <u0033,u
-         dec   <u0034,u
-L04B9    dec   <u0032,u
-         clrb  
-         rts   
-
-GetStat  cmpa  #$01
-         bne   L04D0
-         lda   <u001D,u
-         cmpa  <u001E,u
-         beq   L04CC
-L04CA    clrb  
-         rts   
-L04CC    comb  
-         ldb   #$F6
-         rts   
-L04D0    cmpa  #$06
-         beq   L04CA
-         cmpa  #$02
-         bne   SetStat
-         ldx   $06,y
-         ldd   <u0022,u
-         std   $04,x
-         clrb  
-         rts   
-
-SetStat  comb  
-         ldb   #$D0
-         rts   
-
-L04E5    tst   <u0032,u
-         bne   L0512
-         dec   <u0037,u
-         bne   L0512
-         lda   #$10
-         sta   <u0037,u
-         inc   <u0034,u
-         ldd   <u0024,u
-         pshs  b,a
-         ldd   <u0030,u
-         std   <u0024,u
-         lda   #$7F
-         lbsr  L01B3
-         puls  b,a
-         std   <u0024,u
-         com   <u0033,u
-         dec   <u0034,u
-L0512    ldx   #$FF00
-         lda   #$FF
-         sta   $02,x
-         bsr   L053B
-         anda  #$03
-         bne   L0526
-         clra  
-         sta   $02,x
-         bsr   L053B
-         bne   L052D
-L0526    clr   <u0027,u
-         clr   <u0028,u
-         rts   
-L052D    tst   <u0028,u
-         bne   L0541
-         sta   <u0028,u
-L0535    clrb  
-         rts   
-L0537    clrb  
-         stb   $02,x
-         rts   
-L053B    lda   ,x
-         coma  
-         anda  #$7F
-         rts   
-L0541    cmpa  <u0028,u
-         bne   L0526
-         clr   <u002A,u
-         clr   <u002B,u
-         clr   <u002C,u
-         clr   <u002D,u
-         clr   <u002E,u
-         ldb   #$01
-L0557    comb  
-         stb   $02,x
-         bsr   L053B
-         beq   L05A1
-         bita  #$40
-         beq   L0583
-         cmpb  #$7F
-         bne   L056B
-         inc   <u002D,u
-         bra   L057F
-L056B    cmpb  #$FD
-         bne   L0574
-         inc   <u002E,u
-         bra   L057F
-L0574    tst   <u002C,u
-         bne   L0537
-         stb   <u002C,u
-         com   <u002C,u
-L057F    anda  #$3F
-         beq   L05A1
-L0583    pshs  b,a
-         clrb  
-L0586    lsra  
-         bcc   L058A
-         incb  
-L058A    tsta  
-         bne   L0586
-         cmpb  #$01
-         puls  b,a
-         bne   L0537
-         tst   <u002A,u
-         bne   L0537
-         sta   <u002A,u
-         stb   <u002B,u
-         com   <u002B,u
-L05A1    comb  
-         lslb  
-         bne   L0557
-         stb   $02,x
-         ldb   <u002C,u
-         beq   L05B5
-         tst   <u002A,u
-         bne   L0535
-         lda   #$40
-         bra   L05BF
-L05B5    ldb   <u002B,u
-         lda   <u002A,u
-         lbeq  L0526
-L05BF    pshs  b
-         tst   <u0027,u
-         beq   L05D0
-         dec   <u0027,u
-         beq   L05D4
-         puls  b
-         lbra  L0665
-L05D0    ldb   #$32
-         bra   L05D6
-L05D4    ldb   #$05
-L05D6    stb   <u0027,u
-         lbsr  L0667
-         lslb  
-         lslb  
-         lslb  
-         puls  a
-         pshs  b
-         lbsr  L0667
-         orb   ,s+
-         stb   <u0029,u
-         leax  >L0820,pcr
-         lda   b,x
-         tst   <u002E,u
-         beq   L05FE
-         leax  >L0886,pcr
-         lda   b,x
-         bra   L0609
-L05FE    tst   <u002D,u
-         beq   L0612
-         leax  >L0853,pcr
-         lda   b,x
-L0609    cmpa  #$1F
-         bne   L0621
-         com   <u002F,u
-         bra   L0665
-L0612    tst   <u002F,u
-         beq   L0621
-         cmpa  #$61
-         bcs   L0621
-         cmpa  #$7A
-         bhi   L0621
-         suba  #$20
-L0621    leax  <u003A,u
-         ldb   <u001E,u
-         sta   b,x
-         incb  
-         cmpb  #$64
-         bcs   L062F
-         clrb  
-L062F    cmpb  <u001D,u
-         bne   L0638
-         inc   u000E,u
-         bra   L063B
-L0638    stb   <u001E,u
-L063B    tsta  
-         beq   L065A
-         cmpa  u000D,u
-L0640    bne   L064A
-         ldx   u0009,u
-         beq   L065A
-L0646    sta   $08,x
-         bra   L065A
-L064A    ldb   #$03
-         cmpa  u000B,u
-         beq   L0656
-         ldb   #$02
-         cmpa  u000C,u
-         bne   L065A
-L0656    lda   u0003,u
-         bra   L065E
-L065A    ldb   #S$Wake
-         lda   u0005,u
-L065E    beq   L0663
-         os9   F$Send   
-L0663    clr   u0005,u
-L0665    clrb  
-         rts   
-L0667    clrb  
-L0668    incb  
-         lsra  
-         bne   L0668
-         decb  
-         rts   
-
-L066E  fcb $07
-       fcb $FC
-       fcb $0B
-       fcb $08
-       fcb $FC
-       fcb $23
-       fcb $0A
-       fcb $FC
-       fcb $3E
-       fcb $0D
-       fcb $FC
-       fcb $50
-       fcb $0C
-       fcb $FC
-       fcb $55
-       fcb $0B
-       fcb $FD
-       fcb $C2
-       fcb $00
-L0681  fcb $41
-       fcb $FD
-       fcb $CB
-       fcb $42
-       fcb $FD
-       fcb $41
-       fcb $43
-       fcb $FD
-       fcb $EE
-       fcb $44
-       fcb $FC
-       fcb $2D
-       fcb $45
-       fcb $FC
-       fcb $3E
-       fcb $46
-       fcb $FD
-       fcb $FE
-       fcb $47
-       fcb $FE
-       fcb $07
-       fcb $48
-       fcb $FE
-       fcb $0B
-       fcb $49
-       fcb $FE
-       fcb $13
-       fcb $4A
-       fcb $FD
-       fcb $A5
-       fcb $00
-L06A0  fcb $00
-       fcb $00
-       fcb $00
-       fcb $00
-       fcb $44
-       fcb $40
-       fcb $40
-       fcb $00
-       fcb $55
-       fcb $00
-       fcb $00
-       fcb $00
-       fcb $6F
-       fcb $6F
-       fcb $60
-       fcb $00
-       fcb $27
-       fcb $86
-       fcb $1E
-       fcb $20
-       fcb $91
-       fcb $24
-       fcb $89
-       fcb $00
-       fcb $4A
-       fcb $4A
-       fcb $D0
-       fcb $00
-       fcb $44
-       fcb $00
-       fcb $00
-       fcb $00
-       fcb $24
-       fcb $44
-       fcb $20
-       fcb $00
-       fcb $42
-       fcb $22
-       fcb $40
-       fcb $00
-       fcb $96
-       fcb $F6
-       fcb $90
-       fcb $00
-       fcb $44
-       fcb $E4
-       fcb $40
-       fcb $00
-       fcb $00
-       fcb $02
-       fcb $24
-       fcb $00
-       fcb $00
-       fcb $F0
-       fcb $00
-       fcb $00
-       fcb $00
-       fcb $06
-       fcb $60
-       fcb $00
-       fcb $01
-       fcb $24
-       fcb $80
-       fcb $00
-       fcb $69
-       fcb $BD
-       fcb $60
-       fcb $00
-       fcb $26
-       fcb $22
-       fcb $70
-       fcb $00
-       fcb $69
-       fcb $2C
-       fcb $F0
-       fcb $00
-       fcb $E1
-       fcb $61
-       fcb $E0
-       fcb $00
-       fcb $26
-       fcb $AF
-       fcb $20
-       fcb $00
-       fcb $F8
-       fcb $E1
-       fcb $E0
-       fcb $00
-       fcb $78
-       fcb $E9
-       fcb $60
-       fcb $00
-       fcb $F1
-       fcb $24
-       fcb $40
-       fcb $00
-       fcb $69
-       fcb $69
-       fcb $60
-       fcb $00
-       fcb $69
-       fcb $71
-       fcb $60
-       fcb $00
-       fcb $00
-       fcb $40
-       fcb $40
-       fcb $00
-       fcb $00
-       fcb $20
-       fcb $24
-       fcb $00
-       fcb $24
-       fcb $84
-       fcb $20
-       fcb $00
-       fcb $0F
-       fcb $0F
-       fcb $00
-       fcb $00
-       fcb $42
-       fcb $12
-       fcb $40
-       fcb $00
-       fcb $69
-       fcb $22
-       fcb $02
-       fcb $00
-       fcb $69
-       fcb $BB
-       fcb $87
-       fcb $00
-       fcb $69
-       fcb $F9
-       fcb $90
-       fcb $00
-       fcb $E9
-       fcb $E9
-       fcb $E0
-       fcb $00
-       fcb $78
-       fcb $88
-       fcb $70
-       fcb $00
-       fcb $E9
-       fcb $99
-       fcb $E0
-       fcb $00
-       fcb $F8
-       fcb $E8
-       fcb $F0
-       fcb $00
-       fcb $F8
-       fcb $E8
-       fcb $80
-       fcb $00
-       fcb $78
-       fcb $B9
-       fcb $70
-       fcb $00
-       fcb $99
-       fcb $F9
-       fcb $90
-       fcb $00
-       fcb $E4
-       fcb $44
-       fcb $E0
-       fcb $00
-       fcb $F2
-       fcb $2A
-       fcb $40
-       fcb $00
-       fcb $9A
-       fcb $CA
-       fcb $90
-       fcb $00
-       fcb $88
-       fcb $88
-       fcb $F0
-       fcb $00
-       fcb $FD
-       fcb $D9
-       fcb $90
-       fcb $00
-       fcb $9D
-       fcb $B9
-       fcb $90
-       fcb $00
-       fcb $69
-       fcb $99
-       fcb $60
-       fcb $00
-       fcb $E9
-       fcb $E8
-       fcb $80
-       fcb $00
-       fcb $69
-       fcb $9B
-       fcb $70
-       fcb $00
-       fcb $E9
-       fcb $EA
-       fcb $90
-       fcb $00
-       fcb $78
-       fcb $61
-       fcb $E0
-       fcb $00
-       fcb $E4
-       fcb $44
-       fcb $40
-       fcb $00
-       fcb $99
-       fcb $99
-       fcb $60
-       fcb $00
-       fcb $99
-       fcb $96
-       fcb $60
-       fcb $00
-       fcb $99
-       fcb $DD
-       fcb $F0
-       fcb $00
-       fcb $99
-       fcb $69
-       fcb $90
-       fcb $00
-       fcb $99
-       fcb $71
-       fcb $E0
-       fcb $00
-       fcb $F1
-       fcb $68
-       fcb $F0
-       fcb $00
-       fcb $E8
-       fcb $88
-       fcb $E0
-       fcb $00
-       fcb $08
-       fcb $42
-       fcb $10
-       fcb $00
-       fcb $71
-       fcb $11
-       fcb $70
-       fcb $00
-       fcb $69
-       fcb $00
-       fcb $00
-       fcb $00
-       fcb $00
-       fcb $00
-       fcb $0F
-       fcb $00
-       fcb $22
-       fcb $00
-       fcb $00
-       fcb $00
-       fcb $07
-       fcb $99
-       fcb $70
-       fcb $00
-       fcb $8E
-       fcb $99
-       fcb $E0
-       fcb $00
-       fcb $07
-       fcb $88
-       fcb $70
-       fcb $00
-       fcb $17
-       fcb $99
-       fcb $70
-       fcb $00
-       fcb $07
-       fcb $AC
-       fcb $70
-       fcb $00
-       fcb $34
-       fcb $F4
-       fcb $40
-       fcb $00
-       fcb $06
-       fcb $99
-       fcb $71
-       fcb $E0
-       fcb $8E
-       fcb $99
-       fcb $90
-       fcb $00
-       fcb $40
-       fcb $44
-       fcb $40
-       fcb $00
-       fcb $20
-       fcb $22
-       fcb $22
-       fcb $C0
-       fcb $8A
-       fcb $CA
-       fcb $90
-       fcb $00
-       fcb $44
-       fcb $44
-       fcb $40
-       fcb $00
-       fcb $0E
-       fcb $DD
-       fcb $90
-       fcb $00
-       fcb $0E
-       fcb $99
-       fcb $90
-       fcb $00
-       fcb $06
-       fcb $99
-       fcb $60
-       fcb $00
-       fcb $0E
-       fcb $99
-       fcb $E8
-       fcb $80
-       fcb $07
-       fcb $99
-       fcb $71
-       fcb $10
-       fcb $07
-       fcb $88
-       fcb $80
-       fcb $00
-       fcb $07
-       fcb $C3
-       fcb $E0
-       fcb $00
-       fcb $4F
-       fcb $44
-       fcb $30
-       fcb $00
-       fcb $09
-       fcb $99
-       fcb $70
-       fcb $00
-       fcb $09
-       fcb $96
-       fcb $60
-       fcb $00
-       fcb $09
-       fcb $DD
-       fcb $60
-       fcb $00
-       fcb $09
-       fcb $66
-       fcb $90
-       fcb $00
-       fcb $09
-       fcb $99
-       fcb $71
-       fcb $E0
-       fcb $0F
-       fcb $24
-       fcb $F0
-       fcb $00
-       fcb $34
-       fcb $C4
-       fcb $30
-       fcb $00
-       fcb $44
-       fcb $04
-       fcb $40
-       fcb $00
-       fcb $C2
-       fcb $32
-       fcb $C0
-       fcb $00
-       fcb $05
-       fcb $A0
-       fcb $00
-       fcb $00
-       fcb $FF
-       fcb $FF
-       fcb $FF
-       fcb $F0
-L0820  fcb $30
-       fcb $31
-       fcb $32
-       fcb $33
-       fcb $34
-       fcb $35
-       fcb $36
-       fcb $37
-       fcb $38
-       fcb $39
-       fcb $3A
-       fcb $3B
-       fcb $2C
-       fcb $2D
-       fcb $2E
-       fcb $2F
-       fcb $40
-       fcb $61
-       fcb $62
-       fcb $63
-       fcb $64
-       fcb $65
-       fcb $66
-       fcb $67
-       fcb $68
-       fcb $69
-       fcb $6A
-       fcb $6B
-       fcb $6C
-       fcb $6D
-       fcb $6E
-       fcb $6F
-       fcb $70
-       fcb $71
-       fcb $72
-       fcb $73
-       fcb $74
-       fcb $75
-       fcb $76
-       fcb $77
-       fcb $78
-       fcb $79
-       fcb $7A
-       fcb $0C
-       fcb $0A
-       fcb $08
-       fcb $09
-       fcb $20
-       fcb $0D
-       fcb $00
-       fcb $05
-L0853  fcb $30
-       fcb $21
-       fcb $22
-       fcb $23
-       fcb $24
-       fcb $25
-       fcb $26
-       fcb $27
-       fcb $28
-       fcb $29
-       fcb $2A
-       fcb $2B
-       fcb $3C
-       fcb $3D
-       fcb $3E
-       fcb $3F
-       fcb $7C
-       fcb $41
-       fcb $42
-       fcb $43
-       fcb $44
-       fcb $45
-       fcb $46
-       fcb $47
-       fcb $48
-       fcb $49
-       fcb $4A
-       fcb $4B
-       fcb $4C
-       fcb $4D
-       fcb $4E
-       fcb $4F
-       fcb $50
-       fcb $51
-       fcb $52
-       fcb $53
-       fcb $54
-       fcb $55
-       fcb $56
-       fcb $57
-       fcb $58
-       fcb $59
-       fcb $5A
-       fcb $1C
-       fcb $1A
-       fcb $18
-       fcb $19
-       fcb $20
-       fcb $0D
-       fcb $00
-       fcb $03
-L0886  fcb $1F
-       fcb $7C
-       fcb $00
-       fcb $7E
-       fcb $00
-       fcb $00
-       fcb $00
-       fcb $5E
-       fcb $5B
-       fcb $5D
-       fcb $00
-       fcb $00
-       fcb $7B
-       fcb $5F
-       fcb $7D
-       fcb $5C
-       fcb $00
-       fcb $01
-       fcb $02
-       fcb $03
-       fcb $04
-       fcb $05
-       fcb $06
-       fcb $07
-       fcb $08
-       fcb $09
-       fcb $0A
-       fcb $0B
-       fcb $0C
-       fcb $0D
-       fcb $0E
-       fcb $0F
-       fcb $10
-       fcb $11
-       fcb $12
-       fcb $13
-       fcb $14
-       fcb $15
-       fcb $16
-       fcb $17
-       fcb $18
-       fcb $19
-       fcb $1A
-       fcb $13
-       fcb $12
-       fcb $10
-       fcb $11
-       fcb $20
-       fcb $0D
-       fcb $00
-       fcb $1B
-
-         emod
-eom      equ   *
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/modules/drvr51.asm	Sun Mar 16 14:18:45 2003 +0000
@@ -0,0 +1,1439 @@
+********************************************************************
+* drvr51 - Driver for The 51 column by 24 line video display
+*
+* $Id$
+*
+* Ed.    Comments                                       Who YY/MM/DD
+* ------------------------------------------------------------------
+*   1    Original Dragon distribution version
+
+
+         nam   drvr51
+         ttl   Driver for The 51 column by 24 line video display
+
+* Disassembled 02/07/06 21:17:23 by Disasm v1.6 (C) 1988 by RML
+
+         ifp1
+         use   defsfile
+         endc
+
+tylg     set   Drivr+Objct   
+atrv     set   ReEnt+rev
+rev      set   $01
+edition  set   1
+
+         mod   eom,name,tylg,atrv,start,size
+
+         org   0
+u0000    rmb   1
+u0001    rmb   1
+u0002    rmb   1
+u0003    rmb   1
+u0004    rmb   1
+u0005    rmb   1
+u0006    rmb   1
+u0007    rmb   1
+u0008    rmb   1
+u0009    rmb   1
+u000A    rmb   1
+u000B    rmb   1
+u000C    rmb   1
+u000D    rmb   1
+u000E    rmb   1
+u000F    rmb   8
+u0017    rmb   4
+u001B    rmb   2
+u001D    rmb   1
+u001E    rmb   1
+u001F    rmb   1
+u0020    rmb   1
+u0021    rmb   1
+u0022    rmb   2
+u0024    rmb   1
+u0025    rmb   1
+u0026    rmb   1
+u0027    rmb   1
+u0028    rmb   1
+u0029    rmb   1
+u002A    rmb   1
+u002B    rmb   1
+u002C    rmb   1
+u002D    rmb   1
+u002E    rmb   1
+u002F    rmb   1
+u0030    rmb   1
+u0031    rmb   1
+u0032    rmb   1
+u0033    rmb   1
+u0034    rmb   1
+u0035    rmb   1
+u0036    rmb   1
+u0037    rmb   1
+u0038    rmb   1
+u0039    rmb   1
+u003A    rmb   6
+u0040    rmb   2
+u0042    rmb   2
+u0044    rmb   6
+u004A    rmb   1
+u004B    rmb   5
+u0050    rmb   5
+u0055    rmb   9
+u005E    rmb   2
+u0060    rmb   9
+u0069    rmb   6
+u006F    rmb   1
+u0070    rmb   1
+u0071    rmb   7
+u0078    rmb   6
+u007E    rmb   2
+u0080    rmb   8
+u0088    rmb   6
+u008E    rmb   2
+u0090    rmb   6
+u0096    rmb   3
+u0099    rmb   1
+u009A    rmb   3
+u009D    rmb   1
+size     equ   .
+
+         fcb   UPDAT.
+
+name     fcs   /drvr51/
+         fcb   edition
+
+start    lbra  Init
+         lbra  Read
+         lbra  Write
+         lbra  GetStat
+         lbra  SetStat
+         lbra  Term+1
+
+Init     pshs  u,a
+         ldu   <u001D,u
+         ldd   #$0200
+         os9   F$SRtMem
+         ldu   $01,s
+         tst   <u002C,u
+         beq   L0044
+         ldu   <u002D,u
+         ldd   #$1800
+         os9   F$SRtMem 
+         ldu   $01,s
+L0044    ldb   #$81
+         leax  <u001D,u
+L0049    clr   ,x+
+         decb  
+         bne   L0049
+         ldd   #$1900
+         os9   F$SRqMem 
+         bcs   L009C
+         tfr   u,d
+         ldu   $01,s
+         tfr   d,x
+         bita  #$01
+         beq   L0066
+         leax  >$0100,x
+         bra   L0068
+L0066    adda  #$18
+L0068    stx   <u0022,u
+         tfr   d,u
+         ldd   #$0100
+         os9   F$SRtMem 
+         ldu   $01,s
+         lda   #$10
+         sta   <u0037,u
+         pshs  cc
+         orcc  #IntMasks
+         leay  >L00AD,pcr
+         sty   >D.IRQ
+         ldx   #$FF00
+         lda   $03,x
+         ora   #$01
+         sta   $03,x
+         inc   >Term,pcr
+         puls  cc
+         lbsr  L0475
+         lbsr  L02C3
+         clrb  
+L009C    puls  pc,u,a
+Term     fcb   $00
+         pshs  cc
+         orcc  #IntMasks
+         ldx   >D.AltIRQ
+         stx   >D.IRQ
+         puls  cc
+         clrb  
+         rts   
+L00AD    ldu   >D.KbdSta
+         ldx   #$FF00
+         lda   $03,x
+         bmi   L00BB
+         jmp   [>D.SvcIRQ]
+L00BB    lda   $02,x
+         lda   >D.DskTmr
+         beq   L00CB
+         deca  
+         sta   >D.DskTmr
+         bne   L00CB
+         sta   >$FF48
+L00CB    lbsr  L04E5
+         jmp   [>D.AltIRQ]
+L00D2    pshs  x,b
+         lda   u0004,u
+         sta   u0005,u
+         ldx   #$0000
+         os9   F$Sleep  
+         ldx   <u004B
+         ldb   <$36,x
+         beq   L00EC
+         cmpb  #$03
+         bhi   L00EC
+         coma  
+         puls  pc,x,a
+
+L00EC    puls  x,b
+Read     tst   >Term,pcr
+         bne   L00F9
+         lbsr  Init
+         bcs   L011C
+L00F9    leax  <u003A,u
+         orcc  #IRQMask
+         ldb   <u001D,u
+         cmpb  <u001E,u
+         beq   L00D2
+         lda   b,x
+         incb  
+         cmpb  #$64
+         bcs   L010E
+         clrb  
+L010E    stb   <u001D,u
+         andcc #^(IRQMask+Carry)
+         tst   u000E,u
+         beq   L011C
+         clr   u000E,u
+         comb  
+         ldb   #$F4
+L011C    rts   
+
+Write    tst   >Term,pcr
+         bne   L012C
+         pshs  a
+         lbsr  Init
+         puls  a
+         bcs   L0139
+L012C    ldb   <u001F,u
+         bne   L0165
+         cmpa  #$1B
+         bne   L013A
+         inc   <u001F,u
+         clrb  
+L0139    rts   
+L013A    cmpa  #$20
+         bcs   L0144
+         cmpa  #$7F
+         bcc   L0144
+         bra   L0173
+L0144    leax  >L066E,pcr
+L0148    tst   ,x
+         bne   L0150
+L014C    clr   <u001F,u
+         rts   
+L0150    cmpa  ,x+
+         bne   L0161
+         ldd   ,x
+         leax  >L066E,pcr
+         leax  d,x
+         stx   <u0020,u
+         jmp   ,x
+L0161    leax  $02,x
+         bra   L0148
+L0165    inc   <u001F,u
+         leax  >L0681,pcr
+         cmpb  #$01
+         beq   L0148
+         jmp   [<u0020,u]
+L0173    inc   <u0032,u
+         bsr   L01B3
+         tst   <u0039,u
+         beq   L0185
+         lda   #$F8
+         leay  <-$40,y
+         lbsr  L0236
+L0185    lda   <u0024,u
+         inca  
+         cmpa  #$33
+         bcs   L01A2
+         clr   <u0024,u
+         lda   <u0025,u
+         inca  
+         cmpa  #$18
+         bcs   L019D
+         lbsr  L033E
+         bra   L01A5
+L019D    sta   <u0025,u
+         bra   L01A5
+L01A2    sta   <u0024,u
+L01A5    clr   <u0033,u
+         ldd   <u0024,u
+         std   <u0030,u
+         dec   <u0032,u
+         clrb  
+         rts   
+L01B3    tfr   a,b
+         subb  #$20
+         clra  
+         leax  >L06A0,pcr
+         lslb  
+         rola  
+         lslb  
+         rola  
+         leax  d,x
+         ldb   #$05
+         lda   <u0024,u
+         mul   
+         pshs  b
+         lsra  
+         rorb  
+         lsra  
+         rorb  
+         lsra  
+         rorb  
+         puls  a
+         anda  #$07
+         pshs  b
+         sta   <u0026,u
+         tst   <u0034,u
+         bne   L01FF
+         tfr   a,b
+         lda   #$F8
+         tstb  
+         beq   L01FA
+L01E5    lsra  
+         decb  
+         bhi   L01E5
+         bne   L01EE
+         rorb  
+         bra   L01FA
+L01EE    pshs  b
+         ldb   #$80
+L01F2    lsra  
+         rorb  
+         dec   ,s
+         bne   L01F2
+         leas  $01,s
+L01FA    coma  
+         comb  
+         std   <u0035,u
+L01FF    ldy   <u0022,u
+         lda   <u0025,u
+         ldb   ,s+
+         leay  d,y
+         lda   #$04
+         pshs  a
+         inc   <u0032,u
+L0211    lda   ,x
+         anda  #$F0
+         bsr   L0236
+         lda   ,x+
+         anda  #$0F
+         bsr   L0227
+         dec   ,s
+         bne   L0211
+         dec   <u0032,u
+         clrb  
+         puls  pc,b
+L0227    ldb   <u0026,u
+         subb  #$04
+         bhi   L023B
+         beq   L0250
+L0230    lsla  
+         incb  
+         bne   L0230
+         bra   L0250
+L0236    ldb   <u0026,u
+         beq   L0250
+L023B    lsra  
+         decb  
+         bhi   L023B
+         bne   L0244
+         rorb  
+         bra   L0250
+L0244    pshs  b
+         ldb   #$80
+L0248    lsra  
+         rorb  
+         dec   ,s
+         bne   L0248
+         leas  $01,s
+L0250    tst   <u0034,u
+         bne   L0273
+         tst   <u0038,u
+         beq   L0262
+         coma  
+         comb  
+         eora  <u0035,u
+         eorb  <u0036,u
+L0262    pshs  b,a
+         ldd   <u0035,u
+         anda  ,y
+         andb  $01,y
+         addd  ,s++
+L026D    std   ,y
+         leay  <$20,y
+         rts   
+L0273    eora  ,y
+         eorb  $01,y
+         bra   L026D
+         ldx   #$FF20
+         ldb   #$64
+L027E    lda   ,x
+         eora  #$C0
+         sta   ,x
+         lda   #$19
+L0286    deca  
+         nop   
+         nop   
+         bne   L0286
+         decb  
+         bne   L027E
+         lbra  L014C
+         dec   <u0024,u
+         bpl   L02A6
+         lda   #$32
+         sta   <u0024,u
+         dec   <u0025,u
+         bpl   L02A6
+         clr   <u0025,u
+         lbsr  L035E
+L02A6    lbsr  L0484
+         lbra  L014C
+L02AC    lda   <u0025,u
+         inca  
+         cmpa  #$18
+         bcs   L02B9
+         lbsr  L033E
+         bra   L02BC
+L02B9    sta   <u0025,u
+L02BC    bra   L02A6
+         clr   <u0024,u
+         bra   L02A6
+L02C3    ldy   <u0022,u
+         leay  >$0080,y
+         lda   #$18
+         pshs  a
+         inc   <u0032,u
+L02D2    bsr   L0314
+         dec   ,s
+         bne   L02D2
+         leas  $01,s
+         clra  
+         clrb  
+         sta   <u0033,u
+         std   <u0030,u
+         std   <u0024,u
+         dec   <u0032,u
+         ldx   #$FF20
+         lda   $02,x
+         ora   #$F0
+         sta   $02,x
+         ldx   #$FFC0
+         lda   #$06
+         ldb   #$03
+         bsr   L0305
+         lda   <u0022,u
+         lsra  
+         ldb   #$07
+         bsr   L0305
+         lbra  L014C
+L0305    lsra  
+         bcc   L030E
+         leax  $01,x
+         sta   ,x+
+         bra   L0310
+L030E    sta   ,x++
+L0310    decb  
+         bne   L0305
+         rts   
+L0314    lda   #$10
+L0316    pshs  a
+         lda   <u0038,u
+         tfr   a,b
+L031D    std   <-$80,y
+         std   <-$60,y
+         std   <-$40,y
+         std   <-$20,y
+         std   <$20,y
+         std   <$40,y
+         std   <$60,y
+         std   ,y++
+         dec   ,s
+         bne   L031D
+         leay  >$00E0,y
+         puls  pc,b
+L033E    ldy   <u0022,u
+         inc   <u0032,u
+         pshs  u
+         leau  >$0100,y
+         lda   #$10
+         bsr   L037C
+         puls  u
+         dec   <u0031,u
+L0354    leay  >$0080,y
+         bsr   L0314
+         dec   <u0032,u
+         rts   
+L035E    ldy   <u0022,u
+         leay  >$17F0,y
+         inc   <u0032,u
+         pshs  u
+         leau  >-$0100,y
+         lda   #$F0
+         bsr   L037C
+         leay  ,u
+         puls  u
+         inc   <u0031,u
+         bra   L0354
+L037C    ldb   #$17
+         pshs  b
+L0380    ldb   #$10
+L0382    ldx   ,u
+         stx   ,y
+         ldx   u0002,u
+         stx   $02,y
+         ldx   u0004,u
+         stx   $04,y
+         ldx   u0006,u
+         stx   $06,y
+         ldx   u0008,u
+         stx   $08,y
+         ldx   u000A,u
+         stx   $0A,y
+         ldx   u000C,u
+         stx   $0C,y
+         ldx   u000E,u
+         stx   $0E,y
+         leay  a,y
+         leau  a,u
+         decb  
+         bne   L0382
+         dec   ,s
+         bne   L0380
+         puls  pc,b
+         inc   <u0032,u
+         bsr   L03BA
+         dec   <u0032,u
+         lbra  L014C
+L03BA    clr   <u0033,u
+         ldb   <u0024,u
+         pshs  b
+         bitb  #$07
+         bne   L03CB
+         lda   #$05
+         mul   
+         bra   L03F3
+L03CB    lda   #$01
+         pshs  a
+L03CF    lda   #$20
+         lbsr  L01B3
+         lda   <u0024,u
+         inca  
+         sta   <u0024,u
+         cmpa  #$33
+         bcs   L03E3
+         leas  $01,s
+         bra   L040D
+L03E3    dec   ,s
+         bpl   L03CF
+         lda   <u0024,u
+         ldb   #$05
+         mul   
+         bitb  #$08
+         bne   L03CF
+         leas  $01,s
+L03F3    lsrb  
+         lsrb  
+         lsrb  
+         ldy   <u0022,u
+         lda   <u0025,u
+         leay  d,y
+         leay  >$0080,y
+         lda   #$20
+         pshs  b
+         suba  ,s+
+         lsra  
+         lbsr  L0316
+L040D    puls  a
+         sta   <u0024,u
+         rts   
+         inc   <u0032,u
+         bsr   L03BA
+         lda   #$17
+         suba  <u0025,u
+         bls   L042A
+         pshs  a
+L0421    lbsr  L0314
+         dec   ,s
+         bne   L0421
+         leas  $01,s
+L042A    dec   <u0032,u
+         lbra  L014C
+         clr   <u0024,u
+         clr   <u0025,u
+         lbra  L02A6
+         ldb   <u001F,u
+         subb  #$02
+         bne   L0442
+         clrb  
+         rts   
+L0442    decb  
+         bne   L0450
+         cmpa  #$33
+         bcs   L044B
+         lda   #$32
+L044B    sta   <u0024,u
+         clrb  
+         rts   
+L0450    cmpa  #$18
+         bcs   L0456
+         lda   #$17
+L0456    sta   <u0025,u
+L0459    lbra  L02A6
+         inc   <u0024,u
+         lda   <u0024,u
+         cmpa  #$33
+         bcs   L0459
+         clr   <u0024,u
+         lbra  L02AC
+         lda   #$FF
+         coma  
+L046F    sta   <u0038,u
+         lbra  L014C
+L0475    lda   #$FF
+         bra   L046F
+         lda   #$FF
+L047B    sta   <u0039,u
+         lbra  L014C
+         clra  
+         bra   L047B
+L0484    ldd   <u0024,u
+         inc   <u0032,u
+         tst   <u0033,u
+         bne   L0494
+         std   <u0030,u
+         bra   L04B9
+L0494    pshs  b,a
+         ldd   <u0030,u
+         inc   <u0034,u
+         tstb  
+         bmi   L04AB
+         cmpb  #$18
+         bcc   L04AB
+         std   <u0024,u
+         lda   #$7F
+         lbsr  L01B3
+L04AB    puls  b,a
+         std   <u0024,u
+         std   <u0030,u
+         clr   <u0033,u
+         dec   <u0034,u
+L04B9    dec   <u0032,u
+         clrb  
+         rts   
+
+GetStat  cmpa  #$01
+         bne   L04D0
+         lda   <u001D,u
+         cmpa  <u001E,u
+         beq   L04CC
+L04CA    clrb  
+         rts   
+L04CC    comb  
+         ldb   #$F6
+         rts   
+L04D0    cmpa  #$06
+         beq   L04CA
+         cmpa  #$02
+         bne   SetStat
+         ldx   $06,y
+         ldd   <u0022,u
+         std   $04,x
+         clrb  
+         rts   
+
+SetStat  comb  
+         ldb   #$D0
+         rts   
+
+L04E5    tst   <u0032,u
+         bne   L0512
+         dec   <u0037,u
+         bne   L0512
+         lda   #$10
+         sta   <u0037,u
+         inc   <u0034,u
+         ldd   <u0024,u
+         pshs  b,a
+         ldd   <u0030,u
+         std   <u0024,u
+         lda   #$7F
+         lbsr  L01B3
+         puls  b,a
+         std   <u0024,u
+         com   <u0033,u
+         dec   <u0034,u
+L0512    ldx   #$FF00
+         lda   #$FF
+         sta   $02,x
+         bsr   L053B
+         anda  #$03
+         bne   L0526
+         clra  
+         sta   $02,x
+         bsr   L053B
+         bne   L052D
+L0526    clr   <u0027,u
+         clr   <u0028,u
+         rts   
+L052D    tst   <u0028,u
+         bne   L0541
+         sta   <u0028,u
+L0535    clrb  
+         rts   
+L0537    clrb  
+         stb   $02,x
+         rts   
+L053B    lda   ,x
+         coma  
+         anda  #$7F
+         rts   
+L0541    cmpa  <u0028,u
+         bne   L0526
+         clr   <u002A,u
+         clr   <u002B,u
+         clr   <u002C,u
+         clr   <u002D,u
+         clr   <u002E,u
+         ldb   #$01
+L0557    comb  
+         stb   $02,x
+         bsr   L053B
+         beq   L05A1
+         bita  #$40
+         beq   L0583
+         cmpb  #$7F
+         bne   L056B
+         inc   <u002D,u
+         bra   L057F
+L056B    cmpb  #$FD
+         bne   L0574
+         inc   <u002E,u
+         bra   L057F
+L0574    tst   <u002C,u
+         bne   L0537
+         stb   <u002C,u
+         com   <u002C,u
+L057F    anda  #$3F
+         beq   L05A1
+L0583    pshs  b,a
+         clrb  
+L0586    lsra  
+         bcc   L058A
+         incb  
+L058A    tsta  
+         bne   L0586
+         cmpb  #$01
+         puls  b,a
+         bne   L0537
+         tst   <u002A,u
+         bne   L0537
+         sta   <u002A,u
+         stb   <u002B,u
+         com   <u002B,u
+L05A1    comb  
+         lslb  
+         bne   L0557
+         stb   $02,x
+         ldb   <u002C,u
+         beq   L05B5
+         tst   <u002A,u
+         bne   L0535
+         lda   #$40
+         bra   L05BF
+L05B5    ldb   <u002B,u
+         lda   <u002A,u
+         lbeq  L0526
+L05BF    pshs  b
+         tst   <u0027,u
+         beq   L05D0
+         dec   <u0027,u
+         beq   L05D4
+         puls  b
+         lbra  L0665
+L05D0    ldb   #$32
+         bra   L05D6
+L05D4    ldb   #$05
+L05D6    stb   <u0027,u
+         lbsr  L0667
+         lslb  
+         lslb  
+         lslb  
+         puls  a
+         pshs  b
+         lbsr  L0667
+         orb   ,s+
+         stb   <u0029,u
+         leax  >L0820,pcr
+         lda   b,x
+         tst   <u002E,u
+         beq   L05FE
+         leax  >L0886,pcr
+         lda   b,x
+         bra   L0609
+L05FE    tst   <u002D,u
+         beq   L0612
+         leax  >L0853,pcr
+         lda   b,x
+L0609    cmpa  #$1F
+         bne   L0621
+         com   <u002F,u
+         bra   L0665
+L0612    tst   <u002F,u
+         beq   L0621
+         cmpa  #$61
+         bcs   L0621
+         cmpa  #$7A
+         bhi   L0621
+         suba  #$20
+L0621    leax  <u003A,u
+         ldb   <u001E,u
+         sta   b,x
+         incb  
+         cmpb  #$64
+         bcs   L062F
+         clrb  
+L062F    cmpb  <u001D,u
+         bne   L0638
+         inc   u000E,u
+         bra   L063B
+L0638    stb   <u001E,u
+L063B    tsta  
+         beq   L065A
+         cmpa  u000D,u
+L0640    bne   L064A
+         ldx   u0009,u
+         beq   L065A
+L0646    sta   $08,x
+         bra   L065A
+L064A    ldb   #$03
+         cmpa  u000B,u
+         beq   L0656
+         ldb   #$02
+         cmpa  u000C,u
+         bne   L065A
+L0656    lda   u0003,u
+         bra   L065E
+L065A    ldb   #S$Wake
+         lda   u0005,u
+L065E    beq   L0663
+         os9   F$Send   
+L0663    clr   u0005,u
+L0665    clrb  
+         rts   
+L0667    clrb  
+L0668    incb  
+         lsra  
+         bne   L0668
+         decb  
+         rts   
+
+L066E  fcb $07
+       fcb $FC
+       fcb $0B
+       fcb $08
+       fcb $FC
+       fcb $23
+       fcb $0A
+       fcb $FC
+       fcb $3E
+       fcb $0D
+       fcb $FC
+       fcb $50
+       fcb $0C
+       fcb $FC
+       fcb $55
+       fcb $0B
+       fcb $FD
+       fcb $C2
+       fcb $00
+L0681  fcb $41
+       fcb $FD
+       fcb $CB
+       fcb $42
+       fcb $FD
+       fcb $41
+       fcb $43
+       fcb $FD
+       fcb $EE
+       fcb $44
+       fcb $FC
+       fcb $2D
+       fcb $45
+       fcb $FC
+       fcb $3E
+       fcb $46
+       fcb $FD
+       fcb $FE
+       fcb $47
+       fcb $FE
+       fcb $07
+       fcb $48
+       fcb $FE
+       fcb $0B
+       fcb $49
+       fcb $FE
+       fcb $13
+       fcb $4A
+       fcb $FD
+       fcb $A5
+       fcb $00
+L06A0  fcb $00
+       fcb $00
+       fcb $00
+       fcb $00
+       fcb $44
+       fcb $40
+       fcb $40
+       fcb $00
+       fcb $55
+       fcb $00
+       fcb $00
+       fcb $00
+       fcb $6F
+       fcb $6F
+       fcb $60
+       fcb $00
+       fcb $27
+       fcb $86
+       fcb $1E
+       fcb $20
+       fcb $91
+       fcb $24
+       fcb $89
+       fcb $00
+       fcb $4A
+       fcb $4A
+       fcb $D0
+       fcb $00
+       fcb $44
+       fcb $00
+       fcb $00
+       fcb $00
+       fcb $24
+       fcb $44
+       fcb $20
+       fcb $00
+       fcb $42
+       fcb $22
+       fcb $40
+       fcb $00
+       fcb $96
+       fcb $F6
+       fcb $90
+       fcb $00
+       fcb $44
+       fcb $E4
+       fcb $40
+       fcb $00
+       fcb $00
+       fcb $02
+       fcb $24
+       fcb $00
+       fcb $00
+       fcb $F0
+       fcb $00
+       fcb $00
+       fcb $00
+       fcb $06
+       fcb $60
+       fcb $00
+       fcb $01
+       fcb $24
+       fcb $80
+       fcb $00
+       fcb $69
+       fcb $BD
+       fcb $60
+       fcb $00
+       fcb $26
+       fcb $22
+       fcb $70
+       fcb $00
+       fcb $69
+       fcb $2C
+       fcb $F0
+       fcb $00
+       fcb $E1
+       fcb $61
+       fcb $E0
+       fcb $00
+       fcb $26
+       fcb $AF
+       fcb $20
+       fcb $00
+       fcb $F8
+       fcb $E1
+       fcb $E0
+       fcb $00
+       fcb $78
+       fcb $E9
+       fcb $60
+       fcb $00
+       fcb $F1
+       fcb $24
+       fcb $40
+       fcb $00
+       fcb $69
+       fcb $69
+       fcb $60
+       fcb $00
+       fcb $69
+       fcb $71
+       fcb $60
+       fcb $00
+       fcb $00
+       fcb $40
+       fcb $40
+       fcb $00
+       fcb $00
+       fcb $20
+       fcb $24
+       fcb $00
+       fcb $24
+       fcb $84
+       fcb $20
+       fcb $00
+       fcb $0F
+       fcb $0F
+       fcb $00
+       fcb $00
+       fcb $42
+       fcb $12
+       fcb $40
+       fcb $00
+       fcb $69
+       fcb $22
+       fcb $02
+       fcb $00
+       fcb $69
+       fcb $BB
+       fcb $87
+       fcb $00
+       fcb $69
+       fcb $F9
+       fcb $90
+       fcb $00
+       fcb $E9
+       fcb $E9
+       fcb $E0
+       fcb $00
+       fcb $78
+       fcb $88
+       fcb $70
+       fcb $00
+       fcb $E9
+       fcb $99
+       fcb $E0
+       fcb $00
+       fcb $F8
+       fcb $E8
+       fcb $F0
+       fcb $00
+       fcb $F8
+       fcb $E8
+       fcb $80
+       fcb $00
+       fcb $78
+       fcb $B9
+       fcb $70
+       fcb $00
+       fcb $99
+       fcb $F9
+       fcb $90
+       fcb $00
+       fcb $E4
+       fcb $44
+       fcb $E0
+       fcb $00
+       fcb $F2
+       fcb $2A
+       fcb $40
+       fcb $00
+       fcb $9A
+       fcb $CA
+       fcb $90
+       fcb $00
+       fcb $88
+       fcb $88
+       fcb $F0
+       fcb $00
+       fcb $FD
+       fcb $D9
+       fcb $90
+       fcb $00
+       fcb $9D
+       fcb $B9
+       fcb $90
+       fcb $00
+       fcb $69
+       fcb $99
+       fcb $60
+       fcb $00
+       fcb $E9
+       fcb $E8
+       fcb $80
+       fcb $00
+       fcb $69
+       fcb $9B
+       fcb $70
+       fcb $00
+       fcb $E9
+       fcb $EA
+       fcb $90
+       fcb $00
+       fcb $78
+       fcb $61
+       fcb $E0
+       fcb $00
+       fcb $E4
+       fcb $44
+       fcb $40
+       fcb $00
+       fcb $99
+       fcb $99
+       fcb $60
+       fcb $00
+       fcb $99
+       fcb $96
+       fcb $60
+       fcb $00
+       fcb $99
+       fcb $DD
+       fcb $F0
+       fcb $00
+       fcb $99
+       fcb $69
+       fcb $90
+       fcb $00
+       fcb $99
+       fcb $71
+       fcb $E0
+       fcb $00
+       fcb $F1
+       fcb $68
+       fcb $F0
+       fcb $00
+       fcb $E8
+       fcb $88
+       fcb $E0
+       fcb $00
+       fcb $08
+       fcb $42
+       fcb $10
+       fcb $00
+       fcb $71
+       fcb $11
+       fcb $70
+       fcb $00
+       fcb $69
+       fcb $00
+       fcb $00
+       fcb $00
+       fcb $00
+       fcb $00
+       fcb $0F
+       fcb $00
+       fcb $22
+       fcb $00
+       fcb $00
+       fcb $00
+       fcb $07
+       fcb $99
+       fcb $70
+       fcb $00
+       fcb $8E
+       fcb $99
+       fcb $E0
+       fcb $00
+       fcb $07
+       fcb $88
+       fcb $70
+       fcb $00
+       fcb $17
+       fcb $99
+       fcb $70
+       fcb $00
+       fcb $07
+       fcb $AC
+       fcb $70
+       fcb $00
+       fcb $34
+       fcb $F4
+       fcb $40
+       fcb $00
+       fcb $06
+       fcb $99
+       fcb $71
+       fcb $E0
+       fcb $8E
+       fcb $99
+       fcb $90
+       fcb $00
+       fcb $40
+       fcb $44
+       fcb $40
+       fcb $00
+       fcb $20
+       fcb $22
+       fcb $22
+       fcb $C0
+       fcb $8A
+       fcb $CA
+       fcb $90
+       fcb $00
+       fcb $44
+       fcb $44
+       fcb $40
+       fcb $00
+       fcb $0E
+       fcb $DD
+       fcb $90
+       fcb $00
+       fcb $0E
+       fcb $99
+       fcb $90
+       fcb $00
+       fcb $06
+       fcb $99
+       fcb $60
+       fcb $00
+       fcb $0E
+       fcb $99
+       fcb $E8
+       fcb $80
+       fcb $07
+       fcb $99
+       fcb $71
+       fcb $10
+       fcb $07
+       fcb $88
+       fcb $80
+       fcb $00
+       fcb $07
+       fcb $C3
+       fcb $E0
+       fcb $00
+       fcb $4F
+       fcb $44
+       fcb $30
+       fcb $00
+       fcb $09
+       fcb $99
+       fcb $70
+       fcb $00
+       fcb $09
+       fcb $96
+       fcb $60
+       fcb $00
+       fcb $09
+       fcb $DD
+       fcb $60
+       fcb $00
+       fcb $09
+       fcb $66
+       fcb $90
+       fcb $00
+       fcb $09
+       fcb $99
+       fcb $71
+       fcb $E0
+       fcb $0F
+       fcb $24
+       fcb $F0
+       fcb $00
+       fcb $34
+       fcb $C4
+       fcb $30
+       fcb $00
+       fcb $44
+       fcb $04
+       fcb $40
+       fcb $00
+       fcb $C2
+       fcb $32
+       fcb $C0
+       fcb $00
+       fcb $05
+       fcb $A0
+       fcb $00
+       fcb $00
+       fcb $FF
+       fcb $FF
+       fcb $FF
+       fcb $F0
+L0820  fcb $30
+       fcb $31
+       fcb $32
+       fcb $33
+       fcb $34
+       fcb $35
+       fcb $36
+       fcb $37
+       fcb $38
+       fcb $39
+       fcb $3A
+       fcb $3B
+       fcb $2C
+       fcb $2D
+       fcb $2E
+       fcb $2F
+       fcb $40
+       fcb $61
+       fcb $62
+       fcb $63
+       fcb $64
+       fcb $65
+       fcb $66
+       fcb $67
+       fcb $68
+       fcb $69
+       fcb $6A
+       fcb $6B
+       fcb $6C
+       fcb $6D
+       fcb $6E
+       fcb $6F
+       fcb $70
+       fcb $71
+       fcb $72
+       fcb $73
+       fcb $74
+       fcb $75
+       fcb $76
+       fcb $77
+       fcb $78
+       fcb $79
+       fcb $7A
+       fcb $0C
+       fcb $0A
+       fcb $08
+       fcb $09
+       fcb $20
+       fcb $0D
+       fcb $00
+       fcb $05
+L0853  fcb $30
+       fcb $21
+       fcb $22
+       fcb $23
+       fcb $24
+       fcb $25
+       fcb $26
+       fcb $27
+       fcb $28
+       fcb $29
+       fcb $2A
+       fcb $2B
+       fcb $3C
+       fcb $3D
+       fcb $3E
+       fcb $3F
+       fcb $7C
+       fcb $41
+       fcb $42
+       fcb $43
+       fcb $44
+       fcb $45
+       fcb $46
+       fcb $47
+       fcb $48
+       fcb $49
+       fcb $4A
+       fcb $4B
+       fcb $4C
+       fcb $4D
+       fcb $4E
+       fcb $4F
+       fcb $50
+       fcb $51
+       fcb $52
+       fcb $53
+       fcb $54
+       fcb $55
+       fcb $56
+       fcb $57
+       fcb $58
+       fcb $59
+       fcb $5A
+       fcb $1C
+       fcb $1A
+       fcb $18
+       fcb $19
+       fcb $20
+       fcb $0D
+       fcb $00
+       fcb $03
+L0886  fcb $1F
+       fcb $7C
+       fcb $00
+       fcb $7E
+       fcb $00
+       fcb $00
+       fcb $00
+       fcb $5E
+       fcb $5B
+       fcb $5D
+       fcb $00
+       fcb $00
+       fcb $7B
+       fcb $5F
+       fcb $7D
+       fcb $5C
+       fcb $00
+       fcb $01
+       fcb $02
+       fcb $03
+       fcb $04
+       fcb $05
+       fcb $06
+       fcb $07
+       fcb $08
+       fcb $09
+       fcb $0A
+       fcb $0B
+       fcb $0C
+       fcb $0D
+       fcb $0E
+       fcb $0F
+       fcb $10
+       fcb $11
+       fcb $12
+       fcb $13
+       fcb $14
+       fcb $15
+       fcb $16
+       fcb $17
+       fcb $18
+       fcb $19
+       fcb $1A
+       fcb $13
+       fcb $12
+       fcb $10
+       fcb $11
+       fcb $20
+       fcb $0D
+       fcb $00
+       fcb $1B
+
+         emod
+eom      equ   *