mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
Reintegrate dwg -> trunk
This commit is contained in:
@@ -1,111 +0,0 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; btromwbw.inc 2/17/2013 dwg - boot up CP/M, RomWBW Style ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Unlike the Monahan style of booting, the RomWBW loading ;
|
||||
; is performed by reading in the metadata sector and using ;
|
||||
; the three words at the end of the sector to determine the ;
|
||||
; loading address and starting location. ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;-------------- BOOT UP CPM FROM HARD DISK ON S100COMPUTERS IDR BOARD ----------------
|
||||
|
||||
;BOOT UP THE 8255/IDE Board HARD DISK/Flash Memory Card
|
||||
;NOTE CODE IS ALL HERE IN CASE A 2716 IS USED
|
||||
|
||||
HBOOTWBW:
|
||||
POP HL ;CLEAN UP STACK
|
||||
|
||||
CALL INITILIZE_IDE_BOARD ;Initilze the 8255 and drive (again just in case)
|
||||
|
||||
LD D,11100000B ;Data for IDE SDH reg (512bytes, LBA mode,single drive)
|
||||
LD E,REGshd ;00001110,(0EH) CS0,A2,A1,
|
||||
CALL IDEwr8D ;Write byte to select the MASTER device
|
||||
|
||||
LD B,0FFH ;Delay time to allow a Hard Disk to get up to speed
|
||||
WaitInitX:
|
||||
LD E,REGstatus ;Get status after initilization
|
||||
CALL IDErd8D ;Check Status (info in [D])
|
||||
BIT 7,D
|
||||
JR Z,SECREADX ;Zero, so all is OK to write to drive
|
||||
;Delay to allow drive to get up to speed
|
||||
PUSH BC
|
||||
LD BC,0FFFFH
|
||||
DXLAY2X: LD D,2 ;May need to adjust delay time to allow cold drive to
|
||||
DXLAY1X: DEC D ;to speed
|
||||
JR NZ,DXLAY1X
|
||||
DEC BC
|
||||
LD A,C
|
||||
OR B
|
||||
JR NZ,DXLAY2X
|
||||
POP BC
|
||||
DJNZ WaitInitX ;If after 0FFH, 0FEH, 0FDH... 0, then drive initilization problem
|
||||
IDErrorX:
|
||||
LD HL,DRIVE_NR_ERR ;Drive not ready
|
||||
JP ABORT_ERR_MSG
|
||||
|
||||
SECREADX: ;Note CPMLDR will ALWAYS be on TRK 0,SEC 1,Head 0
|
||||
CALL IDEwaitnotbusy ;Make sure drive is ready
|
||||
JR C,IDErrorX ;NC if ready
|
||||
LD D,1 ;Load track 0,sec 1, head 0
|
||||
LD E,REGsector ;Send info to drive
|
||||
CALL IDEwr8D
|
||||
|
||||
LD D,0 ;Send Low TRK#
|
||||
LD E,REGcyLSB
|
||||
CALL IDEwr8D
|
||||
|
||||
LD D,0 ;Send High TRK#
|
||||
LD E,REGcyMSB
|
||||
CALL IDEwr8D
|
||||
|
||||
LD D,SEC_COUNT ;Count of CPM sectors we wish to read
|
||||
LD E,REGcnt
|
||||
CALL IDEwr8D
|
||||
|
||||
LD D,CMDread ;Send read CMD
|
||||
LD E,REGCMD
|
||||
CALL IDEwr8D ;Send sec read CMD to drive.
|
||||
CALL IDEwdrq ;Wait until it's got the data
|
||||
|
||||
LD HL,CPM_ADDRESS ;DMA address where the CPMLDR resides in RAM
|
||||
LD B,0 ;256X2 bytes
|
||||
LD C,SEC_COUNT ;Count of sectors X 512
|
||||
MoreRD16X:
|
||||
LD A,REGdata ;REG regsiter address
|
||||
OUT (IDECport),A
|
||||
|
||||
OR IDErdline ;08H+40H, Pulse RD line
|
||||
OUT (IDECport),A
|
||||
|
||||
IN A,(IDEAport) ;read the LOWER byte
|
||||
LD (HL),A
|
||||
INC HL
|
||||
IN A,(IDEBport) ;read the UPPER byte
|
||||
LD (HL),A
|
||||
INC HL
|
||||
|
||||
LD A,REGdata ;Deassert RD line
|
||||
OUT (IDECport),A
|
||||
DJNZ MoreRD16X
|
||||
DEC C
|
||||
JR NZ,MoreRD16X
|
||||
|
||||
LD E,REGstatus ;Check the R/W status when done
|
||||
CALL IDErd8D
|
||||
BIT 0,D
|
||||
JR NZ,IDEerr1X ;Z if no errors
|
||||
LD HL,STARTCPM
|
||||
LD A,(HL)
|
||||
CP 31H ;EXPECT TO HAVE 31H @80H IE. LD SP,80H
|
||||
JP Z,STARTCPM ;AS THE FIRST INSTRUCTION. IF OK JP to 100H in RAM
|
||||
JP ERR_LD1 ;Boot Sector Data incorrect
|
||||
|
||||
IDEerr1X:
|
||||
LD HL,IDE_RW_ERROR ;Drive R/W Error
|
||||
JP ABORT_ERR_MSG
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;
|
||||
; eof - btromwbw.inc ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
;
|
||||
;==================================================================================================
|
||||
; ROMWBW 2.X CONFIGURATION FOR N8 5/8/2012
|
||||
;==================================================================================================
|
||||
;
|
||||
; BUILD CONFIGURATION OPTIONS
|
||||
;
|
||||
CPUFREQ .EQU 20 ; IN MHZ, USED TO COMPUTE DELAY FACTORS
|
||||
;
|
||||
|
||||
;
|
||||
DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, CIODEV_VDU, DIODEV_PRPCON
|
||||
ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED)
|
||||
DEFVDA .EQU VDADEV_N8V ; DEFAULT VDA (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_7220, V\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
||||
DEFEMU .EQU EMUTYP_TTY ; DEFAULT EMULATION TYPE (EMUTYP_TTY, EMUTYP_ANSI, ...)
|
||||
;
|
||||
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!!
|
||||
|
||||
CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA)
|
||||
;
|
||||
DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DM_PPPSD
|
||||
;
|
||||
DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE)
|
||||
;
|
||||
UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE)
|
||||
UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY)
|
||||
UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!)
|
||||
;
|
||||
VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT
|
||||
CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT
|
||||
UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT
|
||||
N8VENABLE .EQU TRUE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT
|
||||
;
|
||||
DEFIOBYTE .EQU $00 ; DEFAULT INITIAL VALUE FOR CP/M IOBYTE, $00=TTY, $01=CRT (MUST HAVE CRT HARDWARE)
|
||||
ALTIOBYTE .EQU DEFIOBYTE ; ALT INITIAL VALUE (USED WHEN CONFIG JUMPER SHORTED)
|
||||
WRTCACHE .EQU TRUE ; ENABLE WRITE CACHING IN CBIOS (DE)BLOCKING ALGORITHM
|
||||
DSKTRACE .EQU FALSE ; ENABLE TRACING OF CBIOS DISK FUNCTION CALLS
|
||||
;
|
||||
FDENABLE .EQU FALSE ; TRUE FOR FLOPPY SUPPORT
|
||||
FDMODE .EQU FDMODE_N8 ; FDMODE_DIO, FDMODE_ZETA, FDMODE_DIDE, FDMODE_N8, FDMODE_DIO3
|
||||
FDTRACE .EQU 1 ; 0=SILENT, 1=FATAL ERRORS, 2=ALL ERRORS, 3=EVERYTHING (ONLY RELEVANT IF FDENABLE = TRUE)
|
||||
;;
|
||||
FDMEDIA .EQU FDM144 ; FDM720, FDM144, FDM360, FDM120 (ONLY RELEVANT IF FDENABLE = TRUE)
|
||||
FDMEDIAALT .EQU FDM720 ; ALTERNATE MEDIA TO TRY, SAME CHOICES AS ABOVE (ONLY RELEVANT IF FDMAUTO = TRUE)
|
||||
FDMAUTO .EQU TRUE ; SELECT BETWEEN MEDIA OPTS ABOVE AUTOMATICALLY
|
||||
;
|
||||
IDEENABLE .EQU FALSE ; TRUE FOR IDE SUPPORT
|
||||
IDEMODE .EQU IDEMODE_DIO ; IDEMODE_DIO, IDEMODE_DIDE
|
||||
IDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
|
||||
IDE8BIT .EQU FALSE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!)
|
||||
IDECAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
|
||||
;
|
||||
PPIDEENABLE .EQU FALSE ; TRUE FOR PPIDE SUPPORT (DO NOT COMBINE WITH DSKYENABLE)
|
||||
PPIDEMODE .EQU PPIDEMODE_STD ; PPIDEMODE_STD, PPIDEMODE_DIO3
|
||||
PPIDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPIDEENABLE = TRUE)
|
||||
PPIDE8BIT .EQU FALSE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!)
|
||||
PPIDECAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
|
||||
PPIDESLOW .EQU FALSE ; ADD DELAYS TO HELP PROBLEMATIC HARDWARE (TRY THIS IF PPIDE IS UNRELIABLE)
|
||||
;
|
||||
SDENABLE .EQU FALSE ; TRUE FOR SD SUPPORT
|
||||
SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
|
||||
SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
|
||||
SDCSIO .EQU TRUE ; TRUE IF USING THE CSIO PORT (N8 ONLY)
|
||||
SDCSIOFAST .EQU FALSE ; TRUE IF USING THE LOOKUP TABLE RATHER THAN SHIFTS AND ROTATES (N8 ONLY)
|
||||
PPISD .EQU FALSE ; TRUE IF USING PPISD MINI-BOARD (DO NOT COMBINE WITH PPIDE)
|
||||
S2ISD .EQU FALSE ; TRUE IF USING SCSI2IDE BOARD (DO NOT COMBINE WITH PPISD)
|
||||
;
|
||||
PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!)
|
||||
PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!)
|
||||
PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE)
|
||||
PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
|
||||
PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO)
|
||||
;
|
||||
PPPENABLE .EQU FALSE ; TRUE FOR PARPORTPROP SUPPORT
|
||||
PPPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!)
|
||||
PPPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPPENABLE = TRUE)
|
||||
PPPSDCAPACITY .EQU 64 ; CAPACITY OF PPP SD DEVICE (IN MB)
|
||||
PPPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO)
|
||||
;
|
||||
HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
|
||||
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
|
||||
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
|
||||
;
|
||||
PPKENABLE .EQU TRUE ; TRUE FOR PARALLEL PORT KEYBOARD
|
||||
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
|
||||
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242
|
||||
KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE)
|
||||
;
|
||||
TTYENABLE .EQU TRUE ; INCLUDE TTY EMULATION SUPPORT
|
||||
ANSIENABLE .EQU TRUE ; INCLUDE ANSI EMULATION SUPPORT
|
||||
ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABLE = TRUE)
|
||||
;
|
||||
BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS)
|
||||
BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE
|
||||
BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT
|
||||
;
|
||||
|
||||
BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200
|
||||
|
||||
TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2
|
||||
;
|
||||
; Z180_CLKDIV .EQU 1 ; 0=XTAL/2, 1=XTAL/1
|
||||
;; Z180_MEMWAIT .EQU 0 ; MEMORY WAIT STATES TO INSERT (0-3)
|
||||
;; Z180_IOWAIT .EQU 3 ; IO WAIT STATES TO INSERT (0-3)
|
||||
;; Z180_CNTLB0 .EQU 20H ; SERIAL PORT 0 DIV, SEE Z180 CLOCKING DOCUMENT
|
||||
;; Z180_CNTLB1 .EQU 20H ; SERIAL PORT 1 DIV, SEE Z180 CLOCKING DOCUMENT
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; EOF - CONFG_S100.ASM ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,6 +0,0 @@
|
||||
; ~/RomWBW/branches/s100/Source/s100cpu.inc 1/17/2013 dwg -
|
||||
|
||||
; S100COMPUTERS.COM Z80 Master CPU Board Schema
|
||||
|
||||
#DEFINE IC_Z80
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
; ~/RomWBW/branches/s100/Source/s100dide.inc 1/17/2013 dwg -
|
||||
|
||||
; S100COMPUTERS.COM Dual IDE Board Schema
|
||||
|
||||
;#DEFINE IC_SCC_8530
|
||||
|
||||
;#DEFINE IC_PPI_8255
|
||||
|
||||
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
; ~/RomWBW/branches/s100/Source/s100iob.inc 1/17/2013 dwg -
|
||||
|
||||
; S100COMPUTERS.COM Input Output Board Schema
|
||||
|
||||
#DEFINE IC_SCC_8530
|
||||
|
||||
#DEFINE IC_PPI_8255
|
||||
|
||||
;
|
||||
;==================================================================
|
||||
; WBW: STUFF BELOW IS TEMPORARY TO ALLOW S100 TO BUILD WITHOUT ERROR
|
||||
;==================================================================
|
||||
;
|
||||
; PPI 82C55 I/O IS DECODED TO PORT 60-67
|
||||
;
|
||||
PPIBASE .EQU 60H
|
||||
PPIA .EQU PPIBASE + 0 ; PORT A
|
||||
PPIB .EQU PPIBASE + 1 ; PORT B
|
||||
PPIC .EQU PPIBASE + 2 ; PORT C
|
||||
PPIX .EQU PPIBASE + 3 ; PPI CONTROL PORT
|
||||
;
|
||||
; 16C550 SERIAL LINE UART
|
||||
;
|
||||
SIO_BASE .EQU 68H
|
||||
SIO_RBR .EQU SIO_BASE + 0 ; DLAB=0: RCVR BUFFER REG (READ ONLY)
|
||||
SIO_THR .EQU SIO_BASE + 0 ; DLAB=0: XMIT HOLDING REG (WRITE ONLY)
|
||||
SIO_IER .EQU SIO_BASE + 1 ; DLAB=0: INT ENABLE REG
|
||||
SIO_IIR .EQU SIO_BASE + 2 ; INT IDENT REGISTER (READ ONLY)
|
||||
SIO_FCR .EQU SIO_BASE + 2 ; FIFO CONTROL REG (WRITE ONLY)
|
||||
SIO_LCR .EQU SIO_BASE + 3 ; LINE CONTROL REG
|
||||
SIO_MCR .EQU SIO_BASE + 4 ; MODEM CONTROL REG
|
||||
SIO_LSR .EQU SIO_BASE + 5 ; LINE STATUS REG
|
||||
SIO_MSR .EQU SIO_BASE + 6 ; MODEM STATUS REG
|
||||
SIO_SCR .EQU SIO_BASE + 7 ; SCRATCH REGISTER
|
||||
SIO_DLL .EQU SIO_BASE + 0 ; DLAB=1: DIVISOR LATCH (LS)
|
||||
SIO_DLM .EQU SIO_BASE + 1 ; DLAB=1: DIVISOR LATCH (MS)
|
||||
;
|
||||
;==================================================================
|
||||
@@ -1,10 +0,0 @@
|
||||
; ~/RomWBW/branches/s100/Source/s100rrf.inc 1/17/2013 dwg -
|
||||
|
||||
; S100COMPUTERS.COM Ram Rom Flash Board Schema
|
||||
|
||||
;#DEFINE IC_SCC_8530
|
||||
|
||||
;#DEFINE IC_PPI_8255
|
||||
|
||||
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
; std-s100.inc 1/19/2013 dwg -
|
||||
;
|
||||
;===============================================================================
|
||||
;
|
||||
; CHARACTER DEVICES
|
||||
;
|
||||
CIODEV_UART .EQU $00
|
||||
CIODEV_N8V .EQU $50
|
||||
CIODEV_PRPCON .EQU $60
|
||||
CIODEV_PPPCON .EQU $70
|
||||
CIODEV_CRT .EQU $D0
|
||||
CIODEV_BAT .EQU $E0
|
||||
CIODEV_NUL .EQU $F0
|
||||
;
|
||||
; DISK DEVICES (ONLY FIRST NIBBLE RELEVANT, SECOND NIBBLE RESERVED FOR UNIT)
|
||||
;
|
||||
DIODEV_MD .EQU $00
|
||||
DIODEV_FD .EQU $10
|
||||
DIODEV_IDE .EQU $20
|
||||
DIODEV_ATAPI .EQU $30
|
||||
DIODEV_PPIDE .EQU $40
|
||||
DIODEV_SD .EQU $50
|
||||
DIODEV_PRPSD .EQU $60
|
||||
DIODEV_PPPSD .EQU $70
|
||||
DIODEV_HDSK .EQU $80
|
||||
;
|
||||
; VDA DEVICES (VIDEO DISPLAY ADAPTER)
|
||||
;
|
||||
VDADEV_NONE .EQU $00 ; NO VDA DEVICE
|
||||
VDADEV_VDU .EQU $10 ; ECB VDU - 6545 CHIP
|
||||
VDADEV_CVDU .EQU $20 ; ECB COLOR VDU - 8563 CHIP (NOT IMP)
|
||||
VDADEV_UPD7220 .EQU $30 ; ECB uP7220 (NOT IMPLEMENTED)
|
||||
VDADEV_N8V .EQU $40 ; N8 ONBOARD VDA SUBSYSTEM
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;
|
||||
; eof - std-s100.inc ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;
|
||||
Reference in New Issue
Block a user