<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Thu, 05 Apr 1984 2158:00
From   : Dave Mitton <mitton%elrond.DEC%decwrl.ARPA@csnet-relay.ARPA>
Subject: Rainbow 100-A SETHARD program

For the person with the Rainbow 100 winnie upgrade:
	The following is the program that pokes magic locations in the
Rainbow BIOS to fool the system into thinking it booted off the winchester.
 
 - Get this source on your Rainbow, and edit to taste 
	(I acutally set both boot and default to E:)
 - Assemble and link 
 - copy all files you want onto the winchester
 - make a copy of your bootable floppy system disk
 - delete every thing except SETHARD.CMD, CPM.SYS, and Z80CNF.SYS
 - boot the system off your new disk
 - run SETHARD and it will think that E: is the boot disk
 - you do even better by patching SETHARD into the initial command buffer
   for execution at startup time.
 
 Disclaimer: I use this program, but I am not responsible for it's coding
or functions.  It is based on carnal knowledge of the Rainbow CP/M BIOS
and may break in future releases.
 
	Enjoy,  Dave Mitton, DEC Networks and Communications
 
	TITLE	'SETHARD'	; RESET THE SYSTEM DISK
;+
;  SETHARD - Sets the CP/M bootdrive disk unit to E: and the current
;	default logged in drive to F:
;	Used on Rainbow 100-A's which cannot boot the Winchester directly.
;
;  Based on module by: Juergen Stieger PCSC - ZURICH  
;  Re-coded by: David J. Mitton, Networks and Communications - TWO/E07
;
; V1.0	28-Feb-84	CP/M-86/80 V2.0
;
;-
	CSEG 			; code segment
 
DRIVEA	EQU	0		; Drive A unit number
DRIVEB	EQU	1		; Drive B unit number
DRIVEE	EQU	4		; Drive E unit number
DRIVEF	EQU	5		; Drive F unit number
 
; *** Modify the following three symbols for your configuration
CURRENT	EQU	DRIVEF		; Current disk desired
BOOT	EQU	DRIVEE		; Boot disk desired
SYSTEM	EQU	DRIVEE		; System disk desired
 
 
; *** NOTE: the following 3 locations are DEC CP/M-86/80 V2.0 dependent ****
 
CDISK	EQU	0939H		; Current drive unit number
CURDRSV	EQU	24B7H		; Boot drive unit number
SDISK	EQU	254AH		; Default system drive unit number
 
 
	ORG	100H 		; Org to proper start
 
START:	MOV	AX,40H		;SET ES TO CP/M-CSEG 
	MOV	ES,AX 		; ...
	MOV	AL,CURRENT	;Put drive unit number in AL
	MOV	DI,CDISK	;Put addr of CURRENT DRIVE cell in DI
	STOSB 			;Write unit number into BIOS
 
  	MOV	AL,BOOT		;Put drive unit number in AL
	MOV	DI,CURDRSV	;Put addr of BOOT DRIVE cell in DI
	STOSB 			;Write unit number into BIOS
 
  	MOV	AL,SYSTEM	;Put drive unit number in AL
	MOV	DI,SDISK	;Put addr of SYSTEM DRIVE cell in DI
	STOSB 			;Write unit number into BIOS
 
	MOV	CL,0		;Exit back to system and simulate ^C
	MOV	DL,CL 		;
	INT	224 		;via interrupt
 
 
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>