# HG changeset patch # User robertgault # Date 1316005956 0 # Node ID 538be58c2c2dea8adba39459162fa3e4c23ac224 # Parent 2e7092ed1e104b635d5e08ddcc31c2530bf62518 Support for DD.BIT has been added. The buffer for the bit map is calculated on the fly instead of being hard coded. To prevent parameter corruption by memory expansion, the parameters are copied into the data area. The above means very large disks can be supported. R.Gault diff -r 2e7092ed1e10 -r 538be58c2c2d level1/cmds/os9gen.asm --- a/level1/cmds/os9gen.asm Wed Sep 14 13:10:54 2011 +0000 +++ b/level1/cmds/os9gen.asm Wed Sep 14 13:12:36 2011 +0000 @@ -28,12 +28,24 @@ * * 12 2006/05/09 Christopher R. Hawks * Weren't clearing -e option, so all os9boot files were extended. +* +* 13 2011/09/13 Robert Gault +* A flexible buffer is now used to hold the FAT map. +* The boot file name is now copied into the data space for which +* 160 bytes are reserved. F$Mem trashes parameter space. +* DD.BIT can now be used to obtain a reasonably sized FAT with large drives. +* Added error message if not enough room for bit map. +* Replace sectbuff with bitmbuff for all FAT (DD.MAP) work. +* Moved common code in ABMClear & ABMSet to subroutine. nam OS9Gen ttl OS-9 bootfile generator * Disassembled 02/07/06 13:11:11 by Disasm v1.6 (C) 1988 by RML +*Needed for stand alone compile +*LEVEL equ 2 + IFP1 use defsfile ENDC @@ -76,6 +88,7 @@ sngldrv rmb 1 bootdev rmb 32 lsn0 rmb 26 +btfstr rmb 160 u007B rmb 2 u007D rmb 1 sectbuff rmb 1024 @@ -83,6 +96,8 @@ u048E rmb 1 u048F rmb 7 u0496 rmb 7018 + +bitmbuf equ . size equ . name fcs /OS9Gen/ @@ -107,6 +122,12 @@ ErrWrit fcb C$LF fcc "Error writing kernel track" fcb C$CR +MemErr fcb C$LF + fcc "Not enough memory for bit map" + fcb C$CR +TrkErr fcb C$LF + fcc "Can't read data" + fcb C$CR IFEQ DOHD HDGen fcb C$LF fcc "Error - cannot gen to hard disk" @@ -179,8 +200,8 @@ leas >u047E,u point stack pointer to u047e pshs u tfr y,d copy pointer to top of our mem in D - subd ,s++ D = Y-u047e - subd #u047E + subd ,s++ D = Y-u047e = 7039 + subd #u047E D = 5889 = $1701 What is it? R.G. clrb std