changeset 240:7c673ea162ca

That's the lot. Devicedrivers and device descriptors from Dragon
author roug
date Thu, 18 Jul 2002 20:25:06 +0000
parents 8b71b12c468f
children 16748cbd3fd5
files level1/modules/clock_d64.asm level1/modules/ddisk.asm level1/modules/makefile level1/modules/p1_sc6551dragon.asm level1/modules/sc6551dragon.asm level1/modules/t1_d64.asm level1/modules/term_d64.asm
diffstat 7 files changed, 1113 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/modules/clock_d64.asm	Thu Jul 18 20:25:06 2002 +0000
@@ -0,0 +1,153 @@
+********************************************************************
+* progname - program module
+*
+* $Id$
+*
+* Ed.    Comments                                       Who YY/MM/DD
+* ------------------------------------------------------------------
+*  -     Original Dragon Data distribution version
+*
+*
+
+         nam   Clock
+         ttl   os9 system module    
+
+* Disassembled 02/04/21 22:37:44 by Disasm v1.6 (C) 1988 by RML
+
+         ifp1
+         use   defsfile
+         endc
+tylg     set   Systm+Objct   
+atrv     set   ReEnt+rev
+rev      set   $01
+         mod   eom,name,tylg,atrv,start,size
+u0000    rmb   0
+size     equ   .
+name     equ   *
+         fcs   /Clock/
+         fcb   $02 
+L0013    fcb   $15 
+         fcb   $00 
+         fcb   $82 
+         fcb   $80 
+         fcb   $00 
+         fcb   $1F 
+         fcb   $1C 
+         fcb   $1F 
+         fcb   $1E 
+         fcb   $1F 
+         fcb   $1E 
+         fcb   $1F 
+         fcb   $1F 
+         fcb   $1E 
+         fcb   $1F 
+         fcb   $1E 
+         fcb   $1F 
+L0024    fcb   $4F O
+         fcb   $1F 
+         fcb   $8B 
+         fcb   $0A 
+         fcb   $59 Y
+         fcb   $26 &
+         fcb   $46 F
+         fcb   $DC \
+         fcb   $57 W
+         fcb   $5C \
+         fcb   $C1 A
+         fcb   $3C <
+         fcb   $25 %
+         fcb   $39 9
+         fcb   $4C L
+         fcb   $81 
+         fcb   $3C <
+         fcb   $25 %
+         fcb   $33 3
+         fcb   $DC \
+         fcb   $55 U
+         fcb   $5C \
+         fcb   $C1 A
+         fcb   $18 
+         fcb   $25 %
+         fcb   $29 )
+         fcb   $4C L
+         fcb   $30 0
+u0040    fcb   $8D 
+         fcb   $FF 
+         fcb   $D4 T
+         fcb   $D6 V
+         fcb   $54 T
+         fcb   $C1 A
+         fcb   $02 
+         fcb   $26 &
+u0048    fcb   $09 
+         fcb   $D6 V
+         fcb   $53 S
+         fcb   $27 '
+         fcb   $05 
+         fcb   $C4 D
+         fcb   $03 
+         fcb   $26 &
+u0050    fcb   $01 
+         fcb   $4A J
+         fcb   $D6 V
+u0053    fcb   $54 T
+         fcb   $A1 !
+u0055    fcb   $85 
+         fcb   $23 #
+u0057    fcb   $0E 
+         fcb   $DC \
+u0059    fcb   $53 S
+u005A    fcb   $5C \
+u005B    fcb   $C1 A
+         fcb   $0D 
+         fcb   $25 %
+         fcb   $03 
+         fcb   $4C L
+         fcb   $C6 F
+         fcb   $01 
+         fcb   $DD ]
+         fcb   $53 S
+         fcb   $86 
+         fcb   $01 
+         fcb   $5F _
+         fcb   $DD ]
+         fcb   $55 U
+         fcb   $4F O
+         fcb   $5F _
+         fcb   $DD ]
+         fcb   $57 W
+         fcb   $96 
+         fcb   $5A Z
+         fcb   $97 
+         fcb   $59 Y
+         fcb   $6E n
+         fcb   $9F 
+         fcb   $00 
+         fcb   $81 
+start    equ   *
+         pshs  dp,cc
+         clra  
+         tfr   a,dp
+         lda   #$32
+         sta   <u005A
+         sta   <u0059
+         lda   #$05
+         sta   <u005B
+         sta   <u0048
+         orcc  #$50
+         leax  >L0024,pcr
+         stx   >$006B
+         leay  >L0013,pcr
+         os9   F$SSvc   
+         puls  pc,dp,cc
+         ldx   $04,u
+         ldd   <u0053
+         std   ,x
+         ldd   <u0055
+         std   $02,x
+         ldd   <u0057
+         std   $04,x
+         clrb  
+         rts   
+         emod
+eom      equ   *
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/modules/ddisk.asm	Thu Jul 18 20:25:06 2002 +0000
@@ -0,0 +1,402 @@
+********************************************************************
+* progname - program module
+*
+* $Id$
+*
+* Ed.    Comments                                       Who YY/MM/DD
+* ------------------------------------------------------------------
+*  -     Original Dragon Data distribution version
+*
+*
+
+         nam   DDisk
+         ttl   os9 device driver    
+
+* Disassembled 02/04/21 22:37:46 by Disasm v1.6 (C) 1988 by RML
+
+         ifp1
+         use   defsfile
+         endc
+tylg     set   Drivr+Objct   
+atrv     set   ReEnt+rev
+rev      set   $01
+         mod   eom,name,tylg,atrv,start,size
+u0000    rmb   3
+u0003    rmb   2
+u0005    rmb   1
+u0006    rmb   2
+u0008    rmb   7
+u000F    rmb   19
+u0022    rmb   1
+u0023    rmb   29
+u0040    rmb   3
+u0043    rmb   5
+u0048    rmb   95
+u00A7    rmb   2
+u00A9    rmb   1
+u00AA    rmb   1
+u00AB    rmb   1
+u00AC    rmb   1
+u00AD    rmb   2
+size     equ   .
+         fcb   $FF 
+name     equ   *
+         fcs   /DDisk/
+         fcb   $03 
+start    equ   *
+         lbra  L0026
+         lbra  L006C
+         lbra  L0122
+         lbra  L006A
+         lbra  L02B2
+         lbra  L006A
+L0026    clra  
+         sta   >$006F
+         sta   >$FF48
+         ldx   #$FF40
+         lda   #$D0
+         sta   ,x
+         lbsr  L02AB
+         lda   ,x
+         lda   #$FF
+         ldb   #$04
+         leax  u000F,u
+L003F    sta   ,x
+         sta   <$15,x
+         leax  <$26,x
+         decb  
+         bne   L003F
+         leax  >L0172,pcr
+         stx   >$010A
+         lda   #$7E
+         sta   >$0109
+         ldd   #$0100
+         pshs  u
+         os9   F$SRqMem 
+         tfr   u,x
+         puls  u
+         bcs   L0069
+         stx   >u00AD,u
+         clrb  
+L0069    rts   
+L006A    clrb  
+         rts   
+L006C    lda   #$91
+         cmpx  #$0000
+         bne   L0096
+         bsr   L0096
+         bcs   L008C
+         ldx   $08,y
+         pshs  y,x
+         ldy   >u00A7,u
+         ldb   #$14
+L0082    lda   b,x
+         sta   b,y
+         decb  
+         bpl   L0082
+         clrb  
+         puls  pc,y,x
+L008C    rts   
+L008D    bcc   L0096
+         pshs  x,b,a
+         lbsr  L02E9
+         puls  x,b,a
+L0096    pshs  x,b,a
+         bsr   L00A1
+         puls  x,b,a
+         bcc   L008C
+         lsra  
+         bne   L008D
+L00A1    lbsr  L01BC
+         bcs   L008C
+         ldx   $08,y
+         pshs  y,dp,cc
+         ldb   #$88
+         bsr   L00C6
+L00AE    lda   <u0023
+         bmi   L00BE
+         leay  -$01,y
+         bne   L00AE
+         bsr   L0107
+         puls  y,dp,cc
+         lbra  L0288
+L00BD    sync  
+L00BE    lda   <u0043
+         ldb   <u0022
+         sta   ,x+
+         bra   L00BD
+L00C6    lda   #$FF
+         tfr   a,dp
+         lda   <u0006
+         sta   >u00AC,u
+         anda  #$FE
+         sta   <u0006
+         bita  #$40
+         beq   L00DE
+L00D8    lda   <u0005
+         bita  #$10
+         beq   L00D8
+L00DE    orcc  #$50
+         lda   <u0003
+         sta   >u00AB,u
+         lda   #$34
+         sta   <u0003
+         lda   <u0006
+         anda  #$FE
+         sta   <u0006
+         lda   <u0023
+         ora   #$03
+         sta   <u0023
+         lda   <u0022
+         ldy   #$FFFF
+         lda   #$24
+         ora   >u00A9,u
+         stb   <u0040
+         sta   <u0048
+         rts   
+L0107    lda   >u00A9,u
+         ora   #$04
+         sta   <u0048
+         lda   >u00AB,u
+         sta   <u0003
+         lda   <u0023
+         anda  #$FC
+         sta   <u0023
+         lda   >u00AC,u
+         sta   <u0006
+         rts   
+L0122    lda   #$91
+L0124    pshs  x,b,a
+         bsr   L0148
+         puls  x,b,a
+         bcs   L0138
+         tst   <$28,y
+         bne   L0136
+         lbsr  L0184
+         bcs   L0138
+L0136    clrb  
+         rts   
+L0138    lsra  
+         lbeq  L027C
+         bcc   L0124
+         pshs  x,b,a
+         lbsr  L02E9
+         puls  x,b,a
+         bra   L0124
+L0148    lbsr  L01BC
+         lbcs  L008C
+         ldx   $08,y
+         pshs  y,dp,cc
+         ldb   #$A8
+L0155    lbsr  L00C6
+         lda   ,x+
+L015A    ldb   <u0023
+         bmi   L016C
+         leay  -$01,y
+         bne   L015A
+         bsr   L0107
+         puls  y,dp,cc
+         lbra  L027C
+L0169    lda   ,x+
+         sync  
+L016C    sta   <u0043
+         ldb   <u0022
+         bra   L0169
+L0172    leas  $0C,s
+         bsr   L0107
+         puls  y,dp,cc
+         ldb   >$FF40
+         bitb  #$04
+         lbne  L0288
+         lbra  L025A
+L0184    pshs  x,b,a
+         ldx   $08,y
+         pshs  x
+         ldx   >u00AD,u
+         stx   $08,y
+         ldx   $04,s
+         lbsr  L00A1
+         puls  x
+         stx   $08,y
+         bcs   L01BA
+         lda   #$20
+         pshs  u,y,a
+         ldy   >u00AD,u
+         tfr   x,u
+L01A6    ldx   ,u
+         cmpx  ,y
+         bne   L01B6
+         leau  u0008,u
+         leay  $08,y
+         dec   ,s
+         bne   L01A6
+         bra   L01B8
+L01B6    orcc  #$01
+L01B8    puls  u,y,a
+L01BA    puls  pc,x,b,a
+L01BC    clr   >u00AA,u
+         bsr   L022F
+         tstb  
+         bne   L01D6
+         tfr   x,d
+         ldx   >u00A7,u
+         cmpd  #$0000
+         beq   L01FB
+         cmpd  $01,x
+         bcs   L01DA
+L01D6    comb  
+         ldb   #$F1
+         rts   
+L01DA    clr   ,-s
+         bra   L01E0
+L01DE    inc   ,s
+L01E0    subd  #$0012
+         bcc   L01DE
+         addb  #$12
+         puls  a
+         cmpa  #$10
+         bls   L01FB
+         pshs  a
+         lda   >u00A9,u
+         ora   #$10
+         sta   >u00A9,u
+         puls  a
+L01FB    incb  
+L01FC    stb   >$FF42
+         lbsr  L02AB
+         cmpb  >$FF42
+         bne   L01FC
+L0207    ldb   <$15,x
+         stb   >$FF41
+         tst   >u00AA,u
+         bne   L0218
+         cmpa  <$15,x
+         beq   L022D
+L0218    sta   <$15,x
+         sta   >$FF43
+         ldb   #$12
+         bsr   L028C
+         pshs  x
+         ldx   #$222E
+L0227    leax  -$01,x
+         bne   L0227
+         puls  x
+L022D    clrb  
+         rts   
+L022F    lbsr  L0305
+         lda   <$21,y
+         cmpa  #$04
+         bcs   L023D
+         comb  
+         ldb   #$F0
+         rts   
+L023D    pshs  x,b,a
+         sta   >u00A9,u
+         leax  u000F,u
+         ldb   #$26
+         mul   
+         leax  d,x
+         cmpx  >u00A7,u
+         beq   L0258
+         stx   >u00A7,u
+         com   >u00AA,u
+L0258    puls  pc,x,b,a
+L025A    bitb  #$F8
+         beq   L0272
+         bitb  #$80
+         bne   L0274
+         bitb  #$40
+         bne   L0278
+         bitb  #$20
+         bne   L027C
+         bitb  #$10
+         bne   L0280
+         bitb  #$08
+         bne   L0284
+L0272    clrb  
+         rts   
+L0274    comb  
+         ldb   #$F6
+         rts   
+L0278    comb  
+         ldb   #$F2
+         rts   
+L027C    comb  
+         ldb   #$F5
+         rts   
+L0280    comb  
+         ldb   #$F7
+         rts   
+L0284    comb  
+         ldb   #$F3
+         rts   
+L0288    comb  
+         ldb   #$F4
+         rts   
+L028C    bsr   L02A9
+L028E    ldb   >$FF40
+         bitb  #$01
+         beq   L02B1
+         lda   #$F0
+         sta   >$006F
+         bra   L028E
+L029C    lda   #$04
+         ora   >u00A9,u
+         sta   >$FF48
+         stb   >$FF40
+         rts   
+L02A9    bsr   L029C
+L02AB    lbsr  L02AE
+L02AE    lbsr  L02B1
+L02B1    rts   
+L02B2    ldx   $06,y
+         ldb   $02,x
+         cmpb  #$03
+         beq   L02E9
+         cmpb  #$04
+         beq   L02C2
+         comb  
+         ldb   #$D0
+L02C1    rts   
+L02C2    lbsr  L022F
+         lda   $09,x
+         cmpa  #$10
+         bls   L02D5
+         ldb   >u00A9,u
+         orb   #$10
+         stb   >u00A9,u
+L02D5    ldx   >u00A7,u
+         lbsr  L0207
+         bcs   L02C1
+         ldx   $06,y
+         ldx   $04,x
+         ldb   #$F0
+         pshs  y,dp,cc
+         lbra  L0155
+L02E9    lbsr  L022F
+         ldx   >u00A7,u
+         clr   <$15,x
+         lda   #$05
+L02F5    ldb   #$42
+         pshs  a
+         lbsr  L028C
+         puls  a
+         deca  
+         bne   L02F5
+         ldb   #$02
+         bra   L028C
+L0305    pshs  x,b,a
+         lda   >$006F
+         bne   L031A
+         lda   #$04
+         sta   >$FF48
+         ldx   #$A000
+L0314    nop   
+         nop   
+         leax  -$01,x
+         bne   L0314
+L031A    lda   #$F0
+         sta   >$006F
+         puls  pc,x,b,a
+         emod
+eom      equ   *
--- a/level1/modules/makefile	Thu Jul 18 19:53:53 2002 +0000
+++ b/level1/modules/makefile	Thu Jul 18 20:25:06 2002 +0000
@@ -9,7 +9,7 @@
 CLOCKS		= clock.60hz clock.50hz
 FMGRS		= scf.mn rbf.mn pipeman.mn
 DRIVERS		= aciapak.dr cchdisk.dr ccdisk.dr modpak.dr nildrv.dr \
-		piper.dr printer.dr rs232.dr sscpak.dr ccio.dr
+		piper.dr printer.dr rs232.dr sscpak.dr ccio.dr ddisk.dr
 IOSUBS		= co32.io co80.io grfo.io
 DESCS		= dd.dd d0.dd d1.dd d2.dd d3.dd h0_15.dd h1_15.dd h0_35.dd \
 		h1_35.dd m1.dd m2.dd nil.dd p.dd pipe.dd ssc.dd t1.dd \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/modules/p1_sc6551dragon.asm	Thu Jul 18 20:25:06 2002 +0000
@@ -0,0 +1,61 @@
+********************************************************************
+* progname - program module
+*
+* $Id$
+*
+* Ed.    Comments                                       Who YY/MM/DD
+* ------------------------------------------------------------------
+*  -     Original Dragon Data distribution version
+*
+*
+
+         nam   P1
+         ttl   Serial port used as printer device descriptor
+
+* Disassembled 02/04/21 22:38:15 by Disasm v1.6 (C) 1988 by RML
+
+         ifp1
+         use   defsfile
+         endc
+tylg     set   Devic+Objct   
+atrv     set   ReEnt+rev
+rev      set   $01
+         mod   eom,name,tylg,atrv,mgrnam,drvnam
+         fcb   $03 mode byte
+         fcb   $FF extended controller address
+         fdb   $FF04  physical controller address
+         fcb   initsize-*-1  initilization table size
+         fcb   $00 device type:0=scf,1=rbf,2=pipe,3=scf
+         fcb   $00 case:0=up&lower,1=upper only
+         fcb   $00 backspace:0=bsp,1=bsp then sp & bsp
+         fcb   $00 delete:0=bsp over line,1=return
+         fcb   $00 echo:0=no echo
+         fcb   $01 auto line feed:0=off
+         fcb   $00 end of line null count
+         fcb   $00 pause:0=no end of page pause
+         fcb   $42 lines per page
+         fcb   $00 backspace character
+         fcb   $00 delete line character
+         fcb   $00 end of record character
+         fcb   $00 end of file character
+         fcb   $00 reprint line character
+         fcb   $00 duplicate last line character
+         fcb   $00 pause character
+         fcb   $00 interrupt character
+         fcb   $00 quit character
+         fcb   $00 backspace echo character
+         fcb   $00 line overflow character (bell)
+         fcb   $00 init value for dev ctl reg
+         fcb   $03 baud rate
+         fdb   name copy of descriptor name address
+         fcb   $11 acia xon char
+         fcb   $13 acia xoff char
+initsize equ   *
+name     equ   *
+         fcs   /P1/
+mgrnam   equ   *
+         fcs   /scf/
+drvnam   equ   *
+         fcs   /acia51/
+         emod
+eom      equ   *
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/modules/sc6551dragon.asm	Thu Jul 18 20:25:06 2002 +0000
@@ -0,0 +1,375 @@
+********************************************************************
+* progname - program module
+*
+* $Id$
+*
+* Ed.    Comments                                       Who YY/MM/DD
+* ------------------------------------------------------------------
+*  -     Original Dragon Data distribution version
+*
+*
+
+         nam   ACIA51
+         ttl   Serial port device driver    
+
+* Disassembled 02/04/21 22:37:41 by Disasm v1.6 (C) 1988 by RML
+
+         ifp1
+         use   defsfile
+         endc
+tylg     set   Drivr+Objct   
+atrv     set   ReEnt+rev
+rev      set   $01
+         mod   eom,name,tylg,atrv,start,size
+u0000    rmb   1
+u0001    rmb   2
+u0003    rmb   1
+u0004    rmb   1
+u0005    rmb   1
+u0006    rmb   3
+u0009    rmb   2
+u000B    rmb   1
+u000C    rmb   1
+u000D    rmb   1
+u000E    rmb   1
+u000F    rmb   1
+u0010    rmb   13
+u001D    rmb   1
+u001E    rmb   1
+u001F    rmb   1
+u0020    rmb   1
+u0021    rmb   1
+u0022    rmb   1
+u0023    rmb   1
+u0024    rmb   2
+u0026    rmb   1
+u0027    rmb   36
+u004B    rmb   44
+u0077    rmb   9
+u0080    rmb   46
+u00AE    rmb   85
+size     equ   .
+         fcb   $03 
+name     equ   *
+         fcs   /ACIA51/
+         fcb   $04 
+start    equ   *
+         lbra  L002A
+         lbra  L0086
+         lbra  L00FE
+         lbra  L012F
+         lbra  L0146
+         lbra  L0173
+L0027    neg   <u0080
+         dec   <u00AE
+         fcb   $41 A
+         stb   $01,x
+         ldb   #$02
+         stb   <u0022,u
+         ldd   <$26,y
+         andb  #$0F
+         leax  <L007C,pcr
+         ldb   b,x
+         anda  #$F0
+         sta   u0006,u
+         ldx   u0001,u
+         std   $02,x
+         lda   ,x
+         lda   ,x
+         tst   $01,x
+         lbmi  L00D2
+         clra  
+         clrb  
+         std   <u001D,u
+         std   <u0020,u
+         sta   <u0023,u
+         sta   <u001F,u
+         std   <u0024,u
+         ldd   u0001,u
+         addd  #$0001
+         leax  >L0027,pcr
+         leay  >L0194,pcr
+         os9   F$IRQ    
+         bcs   L007B
+         ldx   u0001,u
+         ldb   u0006,u
+         orb   #$01
+         stb   $02,x
+         clrb  
+L007B    rts   
+L007C    sync  
+         lbra  L1798
+         orcc  #$1C
+         exg   x,f
+L0084    bsr   L00D6
+L0086    lda   <u0023,u
+         ble   L00A1
+         ldb   <u001F,u
+         cmpb  #$0A
+         bhi   L00A1
+         ldb   u000F,u
+         orb   #$80
+         stb   <u0023,u
+         ldb   u0006,u
+         orb   #$05
+         ldx   u0001,u
+         stb   $02,x
+L00A1    tst   <u0024,u
+         bne   L00D2
+         ldb   <u001E,u
+         leax  <u0027,u
+         orcc  #$50
+         cmpb  <u001D,u
+         beq   L0084
+         abx   
+         lda   ,x
+         dec   <u001F,u
+         incb  
+         cmpb  #$4F
+         bls   L00BF
+         clrb  
+L00BF    stb   <u001E,u
+         clrb  
+         ldb   u000E,u
+         beq   L00CF
+         stb   <$3A,y
+         clr   u000E,u
+         comb  
+         ldb   #$F4
+L00CF    andcc #$AF
+         rts   
+L00D2    comb  
+         ldb   #$F6
+         rts   
+L00D6    pshs  x,b,a
+         lda   u0004,u
+         sta   u0005,u
+         andcc #$AF
+         ldx   #$0000
+         os9   F$Sleep  
+         ldx   <u004B
+         ldb   <$36,x
+         beq   L00EF
+         cmpb  #$03
+         bls   L00F8
+L00EF    clra  
+         lda   $0D,x
+         bita  #$02
+         bne   L00F8
+         puls  pc,x,b,a
+L00F8    leas  $06,s
+         coma  
+         rts   
+L00FC    bsr   L00D6
+L00FE    leax  <u0077,u
+         ldb   <u0020,u
+         abx   
+         sta   ,x
+         incb  
+         cmpb  #$8B
+         bls   L010D
+         clrb  
+L010D    orcc  #$50
+         cmpb  <u0021,u
+         beq   L00FC
+         stb   <u0020,u
+         lda   <u0022,u
+         beq   L012B
+         anda  #$FD
+         sta   <u0022,u
+         bne   L012B
+         lda   u0006,u
+         ora   #$05
+         ldx   u0001,u
+         sta   $02,x
+L012B    andcc #$AF
+L012D    clrb  
+         rts   
+L012F    cmpa  #$01
+         bne   L013E
+         ldb   <u001F,u
+         beq   L00D2
+         ldx   $06,y
+         stb   $02,x
+L013C    clrb  
+         rts   
+L013E    cmpa  #$06
+         beq   L012D
+L0142    comb  
+         ldb   #$D0
+         rts   
+L0146    cmpa  #$1A
+         bne   L0161
+         lda   $05,y
+         ldx   $06,y
+         ldb   $05,x
+         orcc  #$50
+         tst   <u001F,u
+         bne   L015C
+         std   <u0024,u
+         bra   L012B
+L015C    andcc #$AF
+         lbra  L01F8
+L0161    cmpa  #$1B
+         bne   L0142
+         lda   $05,y
+         cmpa  <u0024,u
+         bne   L013C
+         clr   <u0024,u
+         rts   
+L0170    lbsr  L00D6
+L0173    ldx   <u004B
+         lda   ,x
+         sta   u0004,u
+         sta   u0003,u
+         ldb   <u0020,u
+         orcc  #$50
+         cmpb  <u0021,u
+         bne   L0170
+         lda   u0006,u
+         ldx   u0001,u
+         sta   $02,x
+         andcc #$AF
+         ldx   #$0000
+         os9   F$IRQ    
+         rts   
+L0194    ldx   u0001,u
+         tfr   a,b
+         andb  #$60
+         cmpb  <u0026,u
+         beq   L01AB
+         stb   <u0026,u
+         bitb  #$60
+         lbne  L02AE
+         lbra  L029C
+L01AB    bita  #$08
+         bne   L01FD
+         lda   <u0023,u
+         bpl   L01C4
+         anda  #$7F
+         sta   ,x
+         eora  u000F,u
+         sta   <u0023,u
+         lda   <u0022,u
+         bne   L01EA
+         clrb  
+         rts   
+L01C4    leay  <u0077,u
+         ldb   <u0021,u
+         cmpb  <u0020,u
+         beq   L01E2
+         clra  
+         lda   d,y
+         incb  
+         cmpb  #$8B
+         bls   L01D8
+         clrb  
+L01D8    stb   <u0021,u
+         sta   ,x
+         cmpb  <u0020,u
+         bne   L01F0
+L01E2    lda   <u0022,u
+         ora   #$02
+         sta   <u0022,u
+L01EA    ldb   u0006,u
+         orb   #$01
+         stb   $02,x
+L01F0    ldb   #$01
+         lda   u0005,u
+L01F4    beq   L01FB
+         clr   u0005,u
+L01F8    os9   F$Send   
+L01FB    clrb  
+         rts   
+L01FD    bita  #$07
+         beq   L0213
+         tfr   a,b
+         tst   ,x
+         anda  #$07
+         ora   u000E,u
+         sta   u000E,u
+         lda   $02,x
+         sta   $01,x
+         sta   $02,x
+         bra   L01FB
+L0213    lda   ,x
+         beq   L022E
+         cmpa  u000B,u
+         beq   L028B
+         cmpa  u000C,u
+         beq   L028F
+         cmpa  u000D,u
+         beq   L0283
+         cmpa  u000F,u
+         beq   L029C
+         cmpa  <u0010,u
+         lbeq  L02AE
+L022E    leax  <u0027,u
+         ldb   <u001D,u
+         abx   
+         sta   ,x
+         incb  
+         cmpb  #$4F
+         bls   L023D
+         clrb  
+L023D    cmpb  <u001E,u
+         bne   L024A
+         ldb   #$04
+         orb   u000E,u
+         stb   u000E,u
+         bra   L01F0
+L024A    stb   <u001D,u
+         inc   <u001F,u
+         tst   <u0024,u
+         beq   L025D
+         ldd   <u0024,u
+         clr   <u0024,u
+         bra   L01F8
+L025D    lda   <u0010,u
+         beq   L01F0
+         ldb   <u001F,u
+         cmpb  #$46
+         bcs   L01F0
+         ldb   <u0023,u
+         bne   L01F0
+         anda  #$7F
+         sta   <u0010,u
+         ora   #$80
+         sta   <u0023,u
+         ldb   u0006,u
+         orb   #$05
+         ldx   u0001,u
+         stb   $02,x
+         lbra  L01F0
+L0283    ldx   u0009,u
+         beq   L022E
+         sta   $08,x
+         bra   L022E
+L028B    ldb   #$03
+         bra   L0291
+L028F    ldb   #$02
+L0291    pshs  a
+         lda   u0003,u
+         lbsr  L01F4
+         puls  a
+         bra   L022E
+L029C    lda   <u0022,u
+         anda  #$FE
+         sta   <u0022,u
+         bne   L02AC
+         lda   u0006,u
+         ora   #$05
+         sta   $02,x
+L02AC    clrb  
+         rts   
+L02AE    lda   <u0022,u
+         bne   L02B9
+         ldb   u0006,u
+         orb   #$01
+         stb   $02,x
+L02B9    ora   #$01
+         sta   <u0022,u
+         clrb  
+         rts   
+         emod
+eom      equ   *
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/modules/t1_d64.asm	Thu Jul 18 20:25:06 2002 +0000
@@ -0,0 +1,60 @@
+********************************************************************
+* progname - program module
+*
+* $Id$
+*
+* Ed.    Comments                                       Who YY/MM/DD
+* ------------------------------------------------------------------
+*  -     Original Dragon Data distribution version
+*
+
+         nam   T1
+         ttl   Serial port device descriptor
+
+* Disassembled 02/04/21 22:38:40 by Disasm v1.6 (C) 1988 by RML
+
+         ifp1
+         use   defsfile
+         endc
+tylg     set   Devic+Objct   
+atrv     set   ReEnt+rev
+rev      set   $01
+         mod   eom,name,tylg,atrv,mgrnam,drvnam
+         fcb   $03 mode byte
+         fcb   $FF extended controller address
+         fdb   $FF04  physical controller address
+         fcb   initsize-*-1  initilization table size
+         fcb   $00 device type:0=scf,1=rbf,2=pipe,3=scf
+         fcb   $00 case:0=up&lower,1=upper only
+         fcb   $01 backspace:0=bsp,1=bsp then sp & bsp
+         fcb   $00 delete:0=bsp over line,1=return
+         fcb   $01 echo:0=no echo
+         fcb   $01 auto line feed:0=off
+         fcb   $00 end of line null count
+         fcb   $01 pause:0=no end of page pause
+         fcb   $18 lines per page
+         fcb   $08 backspace character
+         fcb   $18 delete line character
+         fcb   $0D end of record character
+         fcb   $1B end of file character
+         fcb   $04 reprint line character
+         fcb   $01 duplicate last line character
+         fcb   $17 pause character
+         fcb   $03 interrupt character
+         fcb   $05 quit character
+         fcb   $08 backspace echo character
+         fcb   $07 line overflow character (bell)
+         fcb   $00 init value for dev ctl reg
+         fcb   $03 baud rate
+         fdb   name copy of descriptor name address
+         fcb   $11 acia xon char
+         fcb   $13 acia xoff char
+initsize equ   *
+name     equ   *
+         fcs   /T1/
+mgrnam   equ   *
+         fcs   /scf/
+drvnam   equ   *
+         fcs   /acia51/
+         emod
+eom      equ   *
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/modules/term_d64.asm	Thu Jul 18 20:25:06 2002 +0000
@@ -0,0 +1,61 @@
+********************************************************************
+* progname - program module
+*
+* $Id$
+*
+* Ed.    Comments                                       Who YY/MM/DD
+* ------------------------------------------------------------------
+*  -     Original Dragon Data distribution version
+*
+*
+
+         nam   TERM
+         ttl   Console device descriptor (32 cols, uppercase)
+
+* Disassembled 02/04/21 22:38:40 by Disasm v1.6 (C) 1988 by RML
+
+         ifp1
+         use   defsfile
+         endc
+tylg     set   Devic+Objct   
+atrv     set   ReEnt+rev
+rev      set   $01
+         mod   eom,name,tylg,atrv,mgrnam,drvnam
+         fcb   $03 mode byte
+         fcb   $FF extended controller address
+         fdb   $C000  physical controller address
+         fcb   initsize-*-1  initilization table size
+         fcb   $00 device type:0=scf,1=rbf,2=pipe,3=scf
+         fcb   $01 case:0=up&lower,1=upper only
+         fcb   $01 backspace:0=bsp,1=bsp then sp & bsp
+         fcb   $00 delete:0=bsp over line,1=return
+         fcb   $01 echo:0=no echo
+         fcb   $01 auto line feed:0=off
+         fcb   $00 end of line null count
+         fcb   $01 pause:0=no end of page pause
+         fcb   $10 lines per page
+         fcb   $08 backspace character
+         fcb   $18 delete line character
+         fcb   $0D end of record character
+         fcb   $1B end of file character
+         fcb   $04 reprint line character
+         fcb   $01 duplicate last line character
+         fcb   $17 pause character
+         fcb   $03 interrupt character
+         fcb   $05 quit character
+         fcb   $08 backspace echo character
+         fcb   $07 line overflow character (bell)
+         fcb   $00 init value for dev ctl reg
+         fcb   $00 baud rate
+         fdb   name copy of descriptor name address
+         fcb   $00 acia xon char
+         fcb   $00 acia xoff char
+initsize equ   *
+name     equ   *
+         fcs   /TERM/
+mgrnam   equ   *
+         fcs   /SCF/
+drvnam   equ   *
+         fcs   /KBVDIO/
+         emod
+eom      equ   *