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 / CPM / CPM3 / CCP105P.ARK / CCPPSTRT.ASM < prev    next >
Assembly Source File  |  1986-10-17  |  2KB  |  38 lines

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