home *** CD-ROM | disk | FTP | other *** search
- ; EXECST.ASM for the Osborne Executive George Peace - 2/85
- ; This program should be placed on the "A" drive in user zero if the
- ; expanded CP/M Plus CCP (CCP+) is on the boot diskette.
- ; This program (or at least the code presented) must be executed prior to
- ; the first execution of the CCP on the first warm boot. Osborne - in its
- ; usual short-sighted wisdom - forgot to count the number of sectors
- ; available on the boot disk for the CCP.COM file. There are 4 physical
- ; sectors of 1024 bytes available (32 sectors) on the disk. The cold boot
- ; code loads all 32 to bank 0, address 0. The warm boot transfers only the
- ; first 25 from bank zero to bank 1. This never appeared as a problem
- ; until someone decided to expand the CCP beyond 25 sectors (i.e. CCP+).
- ; This code takes advantage of the first-pass warm boot logic in the
- ; Executive to allow BIOS modification immediately prior to first transfer
- ; of the CCP to the TPA. It simply changes a 0Ch to 0Fh to allow a greater
- ; number of bytes to be transferred from bank 0 to bank 1.
- ;
- ORG 100H
-
- START:
- LHLD 1 ;get warm boot vector address
- INX H ;move up to routine start address
- MOV A,M ;get low order byte of address
- ADI 41H ;add offset into WBOOT routine
- MOV E,A ;save low order byte
- INX H ;increment to high order byte
- MOV D,M ;save high order byte
- XCHG ;move the computed address to from DE to HL
- MOV A,M ;get the high order byte of the CCPLEN value
- CPI 0CH ;is it 0Ch?
- JNZ 0 ;nope - take no chances
- MVI A,0FH ;yup - load up register A with 0Fh
- MOV M,A ;and replace the byte in BIOS
- JP 0 ;now do a warm boot and (hopefully) load CCP
-
- END
- up register A with 0Fh
- MOV M,A ;and replace the byte in BIOS
- JP 0 ;now do a warm boot and (hopefully) load