changeset 29:0ce5deea3954

Renamed boot_tcc.asm to boot_tc3.asm to reflect true name of device
author boisy
date Sat, 06 Apr 2002 17:20:06 +0000
parents c0db600b15e8
children 336479d0e308
files level2/modules/boot_tc3.asm level2/modules/boot_tcc.asm level2/modules/makefile
diffstat 3 files changed, 298 insertions(+), 298 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level2/modules/boot_tc3.asm	Sat Apr 06 17:20:06 2002 +0000
@@ -0,0 +1,297 @@
+********************************************************************
+* Boot - Cloud-9 TC3 Boot module
+*
+* $Id$
+*
+* This module allows booting from a hard drive that uses RGB-DOS
+* and is controlled by a Cloud-9 TC3 SCSI controller.
+*
+* Ed.    Comments                                       Who YY/MM/DD
+* ------------------------------------------------------------------
+* 1      Original Roger Krupski distribution version
+* 1b     Added code to allow booting from any sector    BGP 96/??/??
+*        size hard drive
+
+
+         nam   Boot
+         ttl   Cloud-9 TC3 Boot module
+
+         ifp1
+         use   defsfile
+         use   rbfdefs
+         endc
+
+tylg     set   Systm+Objct
+atrv     set   ReEnt+rev
+rev      set   2
+edition  set   1
+
+* Hard Disk Interface registers for the TC3
+dataport equ   $FF76
+status   equ   dataport+1
+select   equ   dataport+1
+
+* Status register equates
+req      equ   1
+busy     equ   2
+msg      equ   4
+cmd      equ   8
+inout    equ   $10
+ack      equ   $20
+sel      equ   $40
+rst      equ   $80
+
+*SCSI common command set
+c$rstr   equ   1
+c$rdet   equ   3
+c$rblk   equ   8
+c$wblk   equ   10
+
+* Optional command
+c$ststop equ   $1b                     park head
+
+* misc
+errsta   equ   2
+bsybit   equ   8
+
+****************************************************
+bootdrv  equ   0
+****************************************************
+
+         mod   eom,name,tylg,atrv,start,size
+
+* Data equates; subroutines must keep data in stack
+v$cmd    rmb   1
+v$addr0  rmb   1
+v$addr1  rmb   2
+v$blks   rmb   1
+v$opts   rmb   1
+v$error  rmb   4
+
+blockloc rmb   2                       pointer to memory requested
+blockimg rmb   2                       duplicate of the above
+bootloc  rmb   3                       sector pointer; not byte pointer
+bootsize rmb   2                       size in bytes
+size     equ   .
+
+name     fcs   /Boot/
+         fcb   edition
+
+start    clra
+         ldb   #size
+clean    pshs  a
+         decb
+         bne   clean
+         tfr   s,u                     get pointer to data area
+         pshs  u                       save pointer to data area
+
+         lda   #$d0                    forced interrupt; kill floppy activity
+         sta   $FF48                   command register
+         clrb
+pause    decb
+         bne   pause
+         lda   $FF48                   clear controller
+         clr   $FF40                   make sure motors are turned off
+         sta   $FFD9                   fast clock
+
+* Recalibrate hard drive
+         lbsr  restore
+
+* Request memory for LSN0
+         ldd   #1
+         os9   F$SRqMem                request one page of RAM
+         bcs   error
+         bsr   getpntr
+
+* Get LSN0 into memory
+         clrb                          MSB sector
+         ldx   #0                      LSW sector
+         bsr   mread
+         bcs   error
+         ldd   bootsize,u
+         beq   error
+         pshs  d
+
+* Return memory
+         ldd   #$100
+         ldu   blockloc,u
+         os9   F$SRtMem
+         puls  d
+         os9   F$BtMem
+         bcs   error
+         bsr   getpntr
+         std   blockimg,u
+
+* Get os9boot into memory
+         ldd   bootsize,u
+         leas  -2,s                    same as a PSHS D
+getboot  std   ,s
+         ldb   bootloc,u               MSB sector location
+         ldx   bootloc+1,u             LSW sector location
+         bsr   mread
+         ldd   bootloc+1,u             update sector location by one to 24bit word
+         addd  #1
+         std   bootloc+1,u
+         ldb   bootloc,u
+         adcb  #0
+         stb   bootloc,u
+         inc   blockloc,u              update memory pointer for upload
+         ldd   ,s                      update size of file left to read
+         subd  #$100                   file read one sector at a time
+         bhi   getboot
+
+         leas  4+size,s                reset the stack    same as PULS U,D
+         ldd   bootsize,u
+         ldx   blockimg,u              pointer to start of os9boot in memory
+         andcc #^Carry                 clear carry
+         rts                           back to os9p1
+
+error    leas  2+size,s
+         ldb   #E$NotRdy               drive not ready
+         rts
+
+getpntr  tfr   u,d                     save pointer to requested memory
+         ldu   2,s                     recover pointer to data stack
+         std   blockloc,u
+         rts
+
+mread    tstb
+         bne   read10
+         cmpx  #0
+         bne   read10
+         bsr   read10
+         bcc   readlsn0
+         rts
+
+readlsn0 pshs  a,x,y
+         ldy   blockloc,u
+         lda   DD.Bt,y                 os9boot pointer
+         ldx   DD.Bt+1,y               LSW of 24 bit address
+         sta   bootloc,u
+         stx   bootloc+1,u
+         ldx   DD.BSZ,y                os9boot size in bytes
+         stx   bootsize,u
+         clrb
+         puls  a,x,y,pc
+
+* Generic read
+read10   lda   #c$rblk
+         bsr   setup
+         bra   command
+
+setup    pshs  b
+         sta   v$cmd,u
+         stb   v$addr0,u
+         stx   v$addr1,u
+         ldb   #1
+         stb   v$blks,u
+         clr   v$opts,u
+         puls  b,pc
+
+wakeup   ldx   #0
+wake     lda   status
+         bita  #busy+sel
+         beq   wake1
+         leax  -1,x
+         bne   wake
+         bra   wake4
+wake1    bsr   wake3
+         lda   #1
+         sta   dataport
+         bsr   wake3
+         sta   select
+         ldx   #0
+wake2    lda   status
+         bita  #busy
+         bne   wake3
+         leax  -1,x
+         bne   wake2
+wake4    leas  2,s
+         comb
+         ldb   #E$NotRdy
+wake3    rts
+
+command  bsr   wakeup
+         leax  v$cmd,u
+         bsr   send
+         bsr   waitrq
+         bita  #cmd
+         bne   getsta
+         ldx   blockloc,u
+         bsr   read
+getsta   bsr   instat
+         bita  #bsybit
+         bne   command
+         bita  #errsta
+         beq   done
+         comb
+done     rts
+
+send     bsr   waitrq
+         bita  #cmd
+         beq   done
+         bita  #inout
+         bne   done
+         lda   ,x+
+         sta   dataport
+         bra   send
+
+waitrq   pshs  b,x
+wait10   lda   status
+         bita  #req
+         beq   wait10
+         puls  b,x,pc
+
+* Patch to allow booting from sector sizes > 256 bytes - BGP 08/16/97
+* We ignore any bytes beyond byte 256, but continue to read them from
+* the dataport until the CMD bit is set.
+read
+* next 2 lines added
+         clrb                          +++ use B as counter
+read2
+         bsr   waitrq
+         bita  #cmd
+         bne   done
+         lda   dataport
+         sta   ,x+
+* next line commented out and next 8 lines added
+* bra read
+         incb                          +++
+         bne   read2                   +++
+read3
+         bsr   waitrq                  +++
+         bita  #cmd                    +++
+         bne   done                    +++
+         lda   dataport                +++
+         bra   read3                   +++
+
+instat   bsr   waitrq
+         lda   dataport
+         anda  #%00001111
+         pshs  a
+         bsr   waitrq
+         clra
+         sta   dataport
+         puls  a,pc
+
+restore  lda   #c$rstr
+         clrb
+         ldx   #0
+         lbsr  setup
+         clr   v$blks,u
+         bra   command
+
+* Fillers to get to $1D0
+         fcc   /9999999999/
+         fcc   /9999999999/
+         fcc   /9999999999/
+         fcc   /9999999999/
+         fcc   /9999999999/
+         fcc   /9999999999/
+         fcc   /9999999999/
+         fcc   /9999999999/
+         fcc   /99999999/
+
+         emod
+
+eom      equ   *
--- a/level2/modules/boot_tcc.asm	Sat Apr 06 15:31:29 2002 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,297 +0,0 @@
-********************************************************************
-* Boot - TCC Boot module
-*
-* $Id$
-*
-* This module allows booting from a hard drive that uses RGB-DOS
-* and is controlled by a TCC SCSI controller.
-*
-* Ed.    Comments                                       Who YY/MM/DD
-* ------------------------------------------------------------------
-* 1      Original Roger Krupski distribution version
-* 1b     Added code to allow booting from any sector    BGP 96/??/??
-*        size hard drive
-
-
-         nam   Boot
-         ttl   TCC Boot module
-
-         ifp1
-         use   defsfile
-         use   rbfdefs
-         endc
-
-tylg     set   Systm+Objct
-atrv     set   ReEnt+rev
-rev      set   2
-edition  set   1
-
-* Hard Disk Interface registers for the TCC
-dataport equ   $FF76
-status   equ   dataport+1
-select   equ   dataport+1
-
-* Status register equates
-req      equ   1
-busy     equ   2
-msg      equ   4
-cmd      equ   8
-inout    equ   $10
-ack      equ   $20
-sel      equ   $40
-rst      equ   $80
-
-*SCSI common command set
-c$rstr   equ   1
-c$rdet   equ   3
-c$rblk   equ   8
-c$wblk   equ   10
-
-* Optional command
-c$ststop equ   $1b                     park head
-
-* misc
-errsta   equ   2
-bsybit   equ   8
-
-****************************************************
-bootdrv  equ   0
-****************************************************
-
-         mod   eom,name,tylg,atrv,start,size
-
-* Data equates; subroutines must keep data in stack
-v$cmd    rmb   1
-v$addr0  rmb   1
-v$addr1  rmb   2
-v$blks   rmb   1
-v$opts   rmb   1
-v$error  rmb   4
-
-blockloc rmb   2                       pointer to memory requested
-blockimg rmb   2                       duplicate of the above
-bootloc  rmb   3                       sector pointer; not byte pointer
-bootsize rmb   2                       size in bytes
-size     equ   .
-
-name     fcs   /Boot/
-         fcb   edition
-
-start    clra
-         ldb   #size
-clean    pshs  a
-         decb
-         bne   clean
-         tfr   s,u                     get pointer to data area
-         pshs  u                       save pointer to data area
-
-         lda   #$d0                    forced interrupt; kill floppy activity
-         sta   $FF48                   command register
-         clrb
-pause    decb
-         bne   pause
-         lda   $FF48                   clear controller
-         clr   $FF40                   make sure motors are turned off
-         sta   $FFD9                   fast clock
-
-* Recalibrate hard drive
-         lbsr  restore
-
-* Request memory for LSN0
-         ldd   #1
-         os9   F$SRqMem                request one page of RAM
-         bcs   error
-         bsr   getpntr
-
-* Get LSN0 into memory
-         clrb                          MSB sector
-         ldx   #0                      LSW sector
-         bsr   mread
-         bcs   error
-         ldd   bootsize,u
-         beq   error
-         pshs  d
-
-* Return memory
-         ldd   #$100
-         ldu   blockloc,u
-         os9   F$SRtMem
-         puls  d
-         os9   F$BtMem
-         bcs   error
-         bsr   getpntr
-         std   blockimg,u
-
-* Get os9boot into memory
-         ldd   bootsize,u
-         leas  -2,s                    same as a PSHS D
-getboot  std   ,s
-         ldb   bootloc,u               MSB sector location
-         ldx   bootloc+1,u             LSW sector location
-         bsr   mread
-         ldd   bootloc+1,u             update sector location by one to 24bit word
-         addd  #1
-         std   bootloc+1,u
-         ldb   bootloc,u
-         adcb  #0
-         stb   bootloc,u
-         inc   blockloc,u              update memory pointer for upload
-         ldd   ,s                      update size of file left to read
-         subd  #$100                   file read one sector at a time
-         bhi   getboot
-
-         leas  4+size,s                reset the stack    same as PULS U,D
-         ldd   bootsize,u
-         ldx   blockimg,u              pointer to start of os9boot in memory
-         andcc #^Carry                 clear carry
-         rts                           back to os9p1
-
-error    leas  2+size,s
-         ldb   #E$NotRdy               drive not ready
-         rts
-
-getpntr  tfr   u,d                     save pointer to requested memory
-         ldu   2,s                     recover pointer to data stack
-         std   blockloc,u
-         rts
-
-mread    tstb
-         bne   read10
-         cmpx  #0
-         bne   read10
-         bsr   read10
-         bcc   readlsn0
-         rts
-
-readlsn0 pshs  a,x,y
-         ldy   blockloc,u
-         lda   DD.Bt,y                 os9boot pointer
-         ldx   DD.Bt+1,y               LSW of 24 bit address
-         sta   bootloc,u
-         stx   bootloc+1,u
-         ldx   DD.BSZ,y                os9boot size in bytes
-         stx   bootsize,u
-         clrb
-         puls  a,x,y,pc
-
-* Generic read
-read10   lda   #c$rblk
-         bsr   setup
-         bra   command
-
-setup    pshs  b
-         sta   v$cmd,u
-         stb   v$addr0,u
-         stx   v$addr1,u
-         ldb   #1
-         stb   v$blks,u
-         clr   v$opts,u
-         puls  b,pc
-
-wakeup   ldx   #0
-wake     lda   status
-         bita  #busy+sel
-         beq   wake1
-         leax  -1,x
-         bne   wake
-         bra   wake4
-wake1    bsr   wake3
-         lda   #1
-         sta   dataport
-         bsr   wake3
-         sta   select
-         ldx   #0
-wake2    lda   status
-         bita  #busy
-         bne   wake3
-         leax  -1,x
-         bne   wake2
-wake4    leas  2,s
-         comb
-         ldb   #E$NotRdy
-wake3    rts
-
-command  bsr   wakeup
-         leax  v$cmd,u
-         bsr   send
-         bsr   waitrq
-         bita  #cmd
-         bne   getsta
-         ldx   blockloc,u
-         bsr   read
-getsta   bsr   instat
-         bita  #bsybit
-         bne   command
-         bita  #errsta
-         beq   done
-         comb
-done     rts
-
-send     bsr   waitrq
-         bita  #cmd
-         beq   done
-         bita  #inout
-         bne   done
-         lda   ,x+
-         sta   dataport
-         bra   send
-
-waitrq   pshs  b,x
-wait10   lda   status
-         bita  #req
-         beq   wait10
-         puls  b,x,pc
-
-* Patch to allow booting from sector sizes > 256 bytes - BGP 08/16/97
-* We ignore any bytes beyond byte 256, but continue to read them from
-* the dataport until the CMD bit is set.
-read
-* next 2 lines added
-         clrb                          +++ use B as counter
-read2
-         bsr   waitrq
-         bita  #cmd
-         bne   done
-         lda   dataport
-         sta   ,x+
-* next line commented out and next 8 lines added
-* bra read
-         incb                          +++
-         bne   read2                   +++
-read3
-         bsr   waitrq                  +++
-         bita  #cmd                    +++
-         bne   done                    +++
-         lda   dataport                +++
-         bra   read3                   +++
-
-instat   bsr   waitrq
-         lda   dataport
-         anda  #%00001111
-         pshs  a
-         bsr   waitrq
-         clra
-         sta   dataport
-         puls  a,pc
-
-restore  lda   #c$rstr
-         clrb
-         ldx   #0
-         lbsr  setup
-         clr   v$blks,u
-         bra   command
-
-* Fillers to get to $1D0
-         fcc   /9999999999/
-         fcc   /9999999999/
-         fcc   /9999999999/
-         fcc   /9999999999/
-         fcc   /9999999999/
-         fcc   /9999999999/
-         fcc   /9999999999/
-         fcc   /9999999999/
-         fcc   /99999999/
-
-         emod
-
-eom      equ   *
--- a/level2/modules/makefile	Sat Apr 06 15:31:29 2002 +0000
+++ b/level2/modules/makefile	Sat Apr 06 17:20:06 2002 +0000
@@ -3,7 +3,7 @@
 DEPENDS		= ./Makefile
 THIRDPARTY	= ../../3rdparty
 
-BOOTERS		= boot_1773 boot_rom boot_kenton boot_tcc boot_rampak boot_wd1002 boot_ide
+BOOTERS		= boot_1773 boot_rom boot_kenton boot_tc3 boot_rampak boot_wd1002 boot_ide
 KERNELS		= os9p1 os9p2
 SYSMODS		= rel rominfo rom_vectors ioman init pakrom
 CLOCKS		= clock clock2_soft clock2_disto clock2_146818