home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
ENTERPRS
/
CPM
/
UTILS
/
A
/
CCP105P.ARC
/
CCPPSTRT.ASM
< prev
next >
Wrap
Assembly Source File
|
1986-10-17
|
2KB
|
38 lines
; 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