diff level1/cmds/cobbler_d64.asm @ 172:1cd7548b534f

Moved dragon64 specific commands to have _d64 as part of name, CoCo commands are just command name
author boisy
date Thu, 11 Jul 2002 21:34:55 +0000
parents
children e9ce43cc215e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/cmds/cobbler_d64.asm	Thu Jul 11 21:34:55 2002 +0000
@@ -0,0 +1,224 @@
+********************************************************************
+* Cobbler - Make a bootstrap file
+*
+* $Id$
+*
+* Ed.    Comments                                       Who YY/MM/DD
+* ------------------------------------------------------------------
+*  5     Original Dragon Data distribution version
+
+         nam   Cobbler
+         ttl   Make a bootstrap file
+
+* Disassembled 02/04/03 23:11:02 by Disasm v1.6 (C) 1988 by RML
+
+         ifp1
+         use   defsfile
+         endc
+tylg     set   Prgrm+Objct   
+atrv     set   ReEnt+rev
+rev      set   $01
+         mod   eom,name,tylg,atrv,start,size
+u0000    rmb   1
+DevFd    rmb   3
+BTLSN    rmb   1
+u0005    rmb   2
+BtSiz    rmb   2
+sttbuf   rmb   20
+u001D    rmb   2
+u001F    rmb   10
+u0029    rmb   2
+devnam   rmb   32
+u004B    rmb   16
+u005B    rmb   1
+u005C    rmb   7
+u0063    rmb   682
+size     equ   .
+name     equ   *
+         fcs   /Cobbler/
+         fcb   $05 
+L0015    fcb   C$LF 
+         fcc   "Use: Cobbler </devname>"
+         fcb   C$LF 
+         fcc   "    to create a new system disk"
+         fcb   C$CR 
+L004E    fcb   C$LF 
+         fcc   "Error writing kernel track"
+         fcb   C$CR 
+L006A    fcb   C$LF 
+         fcc   "Warning - Kernel track has"
+         fcb   C$LF 
+         fcc   "not been allocated properly."
+         fcb   C$LF 
+         fcc   "Track not written."
+         fcb   C$CR 
+L00B6    fcb   C$LF 
+         fcc   "Error - OS9boot file fragmented"
+         fcb   C$LF 
+         fcc   " This disk will not bootstrap."
+         fcb   C$CR 
+BfNam    fcc   "OS9Boot "
+         fcb   $FF 
+start    equ   *
+         clrb  
+         lda   #'/
+         cmpa  ,x
+         lbne  Usage
+         os9   F$PrsNam 
+         lbcs  Usage
+         lda   #'/
+         cmpa  ,y
+         lbeq  Usage
+         leay  <devnam,u
+L011A    sta   ,y+
+         lda   ,x+
+         decb  
+         bpl   L011A
+         sty   <u0029
+         lda   #'@
+         ldb   #$20
+         std   ,y++
+         leax  <devnam,u
+         lda   #UPDAT.
+         os9   I$Open   
+         sta   <DevFd
+         lbcs  Usage
+         ldx   <u0029
+         leay  >BfNam,pcr
+         lda   #'/
+L0140    sta   ,x+
+         lda   ,y+
+         bpl   L0140
+         lda   <DevFd
+         pshs  u
+         ldx   #$0000
+         ldu   #$0015   probably DD.BT
+         os9   I$Seek   
+         puls  u
+         lbcs  Exit
+         leax  BTLSN,u
+         ldy   #$0005
+         os9   I$Read    Read bootstrap sector + size = 5 bytes
+         lbcs  Exit
+         ldd   <BtSiz
+         beq   L017B
+         leax  <devnam,u
+         os9   I$Delete 
+         clra  
+         clrb  
+         sta   <BTLSN
+         std   <u0005
+         std   <BtSiz
+         lbsr  UpLSN0
+L017B    lda   #WRITE.
+         ldb   #UPDAT.
+         leax  <devnam,u
+         os9   I$Create 
+         sta   <u0000
+         lbcs  Exit
+         ldd   >$0068
+         subd  >$0066
+         tfr   d,y
+         std   <BtSiz
+         ldx   >$0066
+         lda   <u0000
+         os9   I$Write  
+         lbcs  Exit
+         leax  sttbuf,u
+         ldb   #SS.OPT
+         os9   I$GetStt 
+         lbcs  Exit
+         lda   <u0000
+         os9   I$Close  
+         lbcs  Usage
+         pshs  u
+         ldx   <u001D,u
+         lda   <u001F,u
+         clrb  
+         tfr   d,u
+         lda   <DevFd
+         os9   I$Seek   
+         puls  u
+         lbcs  Exit
+         leax  <u004B,u
+         ldy   #$0100
+         os9   I$Read   
+         lbcs  Exit
+         ldd   <u0063,u
+         lbne  Fragd
+         ldb   <u005B,u
+         stb   <BTLSN
+         ldd   <u005C,u
+         std   <u0005
+         lbsr  UpLSN0
+         lbsr  SkLSN1
+         leax  <u004B,u
+         ldy   #$0100
+         os9   I$Read   
+         bcs   wrerr
+         lda   ,x
+         anda  #$3F
+         eora  #$3F
+         bne   NotAllo
+         lda   $01,x
+         eora  #$FF
+         bne   NotAllo
+         lda   $02,x
+         anda  #$90
+         eora  #$90
+         bne   NotAllo
+         ldx   #$F000    Address of kernel in RAM
+         ldy   #$0F00    Amount to write
+         lda   <DevFd
+         os9   I$Write  
+         bcs   ETrack
+         os9   I$Close  
+         bcs   Exit
+         clrb  
+         bra   Exit
+
+SkLSN1   pshs  u
+         lda   <DevFd
+         ldx   #$0000
+         ldu   #$0100
+         os9   I$Seek   Seek to allocation map at LSN 1
+         puls  pc,u
+
+Usage    leax  >L0015,pcr
+wrerr    pshs  b
+         lda   #$02
+         ldy   #$0100
+         os9   I$WritLn 
+         comb  
+         puls  b
+Exit     os9   F$Exit   
+
+Fragd    leax  >L00B6,pcr
+         clrb  
+         bra   wrerr
+
+ETrack   leax  >L004E,pcr
+         clrb  
+         bra   wrerr
+*
+* Write warning
+NotAllo    leax  >L006A,pcr
+         clrb  
+         bra   wrerr
+*
+* Update the identification sector on LSN 0
+*
+UpLSN0   pshs  u
+         ldx   #$0000
+         ldu   #$0015   probably DD.BT
+         lda   <DevFd
+         os9   I$Seek   
+         puls  u
+         bcs   Exit
+         leax  BTLSN,u
+         ldy   #$0005
+         os9   I$Write  
+         bcs   Exit
+         rts   
+         emod
+eom      equ   *