home *** CD-ROM | disk | FTP | other *** search
- ; ASSEMBLY OF TBMSBIOS
- ; ====================
- ;
- ; TBMSBIOS is configured to assemble with SLR's Z80ASM assembler. It must
- ; be assembled to a HEX file and overlaid onto the appropriate TurboROM SYS
- ; file, as described below. Minor changes to the code will doubtless allow
- ; it be be assembled by ZASM or M80. It may be overlaid onto a SYS file
- ; using MLOAD, or by the more cumbersome method of using DDT or ZSID and
- ; SAVEing the resulting image. If you have Z80ASM (highly recommended) you
- ; may use MAKEBIOS.SUB to automate assembly. This script file should run
- ; under either ZEX or SUBMIT. The syntax for MAKEBIOS.SUB is:
- ;
- ; MAKEBIOS insys outsys
- ;
- ; Insys is the name of the file over which to overlay TBMSBIOS and outsys is
- ; the name you wish to give to the resulting file. Do not include the .SYS
- ; filename extension. The script will take care of it.
-
-
- ; USER DEFINABLE EQUATES FOR TBMSBIOS
- ; ==================================
-
- ; Runtime BIOS location
- ; ---------------------
- ;
- ; You must determine the runtime location of this BIOS and the size of the
- ; system with which it is to be integrated. Run the peek program supplied
- ; with TurboROM and find the first scratch address. The assembler will use
- ; that address to assist you in optimizing your system size. The correct
- ; "system size" as provided to MOVTURBO will be displayed in the assembly
- ; stats. If it is different from that of the current system you will have
- ; to use MOVTURBO to create a new system image over which to overlay this
- ; BIOS.
- ;
- scratch equ 0f7e9h ; First Scratch address returned by peek.
- ; If you wish to reserve additional high
- ; memory, set scratch to the lowest address
- ; of your reserved area.
-
-
- ; The first assembly of TBMSBIOS will provide you with the runtime location
- ; of the BIOS for an optimized system, along with the necessary system size
- ; of the SYS file over which it will be overlaid. If the suggested bios
- ; location differs from biosloc, you may set biosloc to the suggested value
- ; and reassemble TBMSBIOS go generate the highest possible system.
- ;
- ;
- biosloc equ 0f400h ; Runtime location of BIOS
-
-
- ; Graphics Character Display
- ; --------------------------
- ;
- ; The grafbyte allows ZCPR to toggle Kaypro graphics on and off. If you
- ; wish to take advantage of this feature, set grafbt to the ADDRESS you wish
- ; the BIOS to check to determine whether or not to output graphics char-
- ; acters. A non zero value at this address will supress graphics character
- ; output. This address may be in high memory or in the Z3 environment if
- ; the address of the latter remains constant. If you don't want this
- ; feature, leave grafbt null. '83 Kaypro 10 should have grafbt = 0.
- ;
- grafbt equ 0 ; 0 for '83 machines
-
-
- ; Stack Location
- ; --------------
- ;
- ; If you wish to include the BIOS stack space in the code (recommended
- ; unless you modify the code and increase it's size beyond the maximum
- ; SYS file size) leave bstack null. If you wish to set another stack
- ; address, set bstack to the BOTTOM address of this 64 byte stack space.
-
- bstack equ 0 ; bios stack, 0 if internal
-
-
- ; Initial Disk and User
- ; ---------------------
- ;
- ; You may specify the default disk and user following a cold boot. If
- ; a startup command is used, this should be the directory containing
- ; any files needed for startup, if other than a0:.
- ;
- droot equ 0 ; Initial default disk. 0 = A, 1 = B, etc.
- uroot equ 15
-
-
- ; Cold Boot Command Line
- ; ----------------------
- ;
- ; As a convenient minor bonus, you may specify an initial cold boot command
- ; line for the SYS image you will be creating. This is a ZCPR, not a BIOS
- ; function, however the hex file generated by assembling this BIOS may be
- ; conveniently used to overly a command line into the SYS image of the CCP
- ; at the same time that the BIOS is overlaid. Your SYS file must include
- ; ZCPR1 as provided by Advent, or another configuration of ZCPR1 which
- ; contains a command line buffer at ccp+7.
- ;
- usecold equ true ; True if specifing a cold boot command
- ; False to omit this feature
- ;
- coldcmd macro
- defb cmdend - cmdstrt
- cmdstrt: defb 'NZCOM TBSTART' ; Startup command of your choice
- cmdend: defb 0
- endm
-
-
- ; Logical Disk Assignment for Ramdisk
- ; -----------------------------------
- ;
- ; TurboROM does not support the MicroSphere ramdisk. All support routines
- ; for the ramdisk are contained within this BIOS. You cannot use TURBOMAP
- ; to assign the ramdisk to a logical drive. You must use rdnum to assign a
- ; fixed logical disk drive to the ramdisk which will take precedence over
- ; any assignments made with TURBOMAP or by the TurboROM to other physical
- ; drives. Be careful to avoid potential conflicts.
- ;
- rdnum equ 4 ; Logical drive for MicroSphere RAM disk
- ; 0 = A, 1 = B, etc.
-
-
- ; Function Key Definition
- ; =======================
- ;
- ; Some computers are capable of generating characters with the high bit set
- ; from special function keys or unsupported keys. The Kaypro has several
- ; key switch positions under the metal keyboard cover which may be put into
- ; use for purposes such as executing a print buffer pause or halt. These
- ; keys generally return values in the range of b0h to ffh. The BIOS constat
- ; routine will return the value of such keys in the L register while
- ; returining status false (zero flag, a=0). Standard keys return status
- ; true and L=0. If you use an IOP module you may intercept the values
- ; returned in L by constat and process them accordingly. You may specify
- ; the maximum value for your standard keys. Any value lower than this will
- ; be treated as coming from normal character producing key while anything
- ; above this value will be handled as described above. Remember, if you
- ; have a Kaypro, that the TurboROM supports the arrow and number pad keys
- ; and returns values in the range of 80h to 91h for these keys. Unless
- ; you want to fundamentally redefine these keys you should select a value
- ; for maxkey greater than 91h
- ;
- maxkey equ 92h ; Maximum "regular" key
-
-
- ; Signon Version Number
- ; ---------------------
- ;
- ; The cold boot signon message identifies the version of the BIOS currently
- ; up and running. You may select your own version number and beta release
- ; letter (or other character).
- ;
- bvers equ 20 ; BIOS version number
- beta equ 'B' ; beta release
-
-
-
- ; Ramdisk Disk Parameter Block
- ; ----------------------------
-
- ; TBMSBIOS contains the ramdisk parameter blocks from the original Micro-
- ; Sphere RDISK source code. The only change I have made is to set the
- ; number of pre-directory tracks to 0 since to the best of my knowledge
- ; system tracks on the MicroSphere ramdisk are like tits on a bull. Choose
- ; one of the following, depending on the size of your MicroSphere ramdisk.
- ; If you decline to choose one of the preset dpb's, you may configure your
- ; own dpb below.
- ;
- ; Select the size of ramdisk (or set all false to customize below)
-
- Rd256 equ false ; 256K ramdisk
- Rd512 equ false ; 512K ramdisk
- Rd768 equ false ; 768K ramdisk
- Rd1024 equ true ; 1 meg ramdisk
-
-
- ; Select the size of your printer buffer
- ;
- pb4 equ false ; 4K print buffer
- pb32 equ false ; 32K print buffer
- pb64 equ true ; 64K print buffer
-
-
- ; If you did not select one of the ramdisk size options above, you may
- ; configure the ramdisk parameter block as you choose. The values shown
- ; below are optimized for a disk with many small files. No operating system
- ; tracks are set aside. Block size is 2K. "The Programmers CP/M Handbood"
- ; by Johnson/Laird has a good discussion of the elements of dpb. Don't
- ; alter the values below unless you know what you are doing.
- ;
- if not (rd256 or rd512 or rd768 or rd1024)
- ; RAM disk DPB
- ;
- spt equ 40
- bsh equ 4
- blm equ 15
- exm equ 0
- dsm equ 466 ;465 for 64K print buffer, 480 for 32K buffer
- drm equ 255 ;drm equ 495 for 4K buffer
- al0 equ 0f0h
- al1 equ 0
- cks equ 0
- offtrk equ 0
- endif
-
-
-
- ; ADDITIONAL INFORMATION
- ; ======================
- ;
- ; In the Advent system image (.sys file) the system components
- ; appear at the following addresses (assuming 0100h at start of
- ; file):
- ;
- ; cold boot code 0900h
- ; CCP or ZCPR 0B00h
- ; BDOS or ZRDOS 1300h
- ; BIOS 2100h
- ; end of image 24FFh
- ;
- ; This version of the BIOS does not support the Plu*Perfect
- ; datestamper.
- ;
- ; * END OF TBMSBIOS.HDR *