Browse Source

Reintegrate wbw -> trunk

pull/3/head
wayne 13 years ago
parent
commit
513b4c615a
  1. 6
      Apps/Source/applvers.h
  2. 6
      Apps/Source/applvers.lib
  3. 4
      ReadMe.txt
  4. BIN
      RomDsk/cfg_n8_2312/FDTST.COM
  5. BIN
      RomDsk/cfg_n8_2511/FDTST.COM
  6. BIN
      RomDsk/cfg_n8vem_dide/FDTST.COM
  7. BIN
      RomDsk/cfg_n8vem_diskio/FDTST.COM
  8. BIN
      RomDsk/cfg_n8vem_diskio3/FDTST.COM
  9. BIN
      RomDsk/cfg_s100_std/1200.COM
  10. BIN
      RomDsk/cfg_s100_std/38400.COM
  11. BIN
      RomDsk/cfg_s100_std/9600.COM
  12. BIN
      RomDsk/cfg_s100_std/FLASHZ.COM
  13. BIN
      RomDsk/cfg_s100_std/LDTIM.COM
  14. BIN
      RomDsk/cfg_s100_std/RTC.COM
  15. BIN
      RomDsk/cfg_s100_std/T5.COM
  16. BIN
      RomDsk/cfg_s100_std/VT3.COM
  17. BIN
      RomDsk/cfg_s100_std/XM.COM
  18. BIN
      RomDsk/cfg_s100_std/XM5.COM
  19. BIN
      RomDsk/cfg_zeta_ppp/FDTST.COM
  20. BIN
      RomDsk/cfg_zeta_std/FDTST.COM
  21. 4
      Source/cbios.asm
  22. 158
      Source/fd.asm
  23. 2
      Source/fd_dph.asm
  24. 2
      Source/kbd.asm
  25. 4
      Source/ver.inc

6
Apps/Source/applvers.h

@ -1,14 +1,14 @@
/************************************/
/* applvers.h dwg - 2.5.0.14 Beta */
/* applvers.h dwg - 2.5.0.15 */
/************************************/
#define A_RMJ 2
#define A_RMN 5
#define A_RUP 0
#define A_RTP 14
#define A_RTP 15
#define A_MONTH 6
#define A_DAY 9
#define A_DAY 16
#define A_YEAR 2013
#define A_YR 13

6
Apps/Source/applvers.lib

@ -3,14 +3,14 @@
A$RMJ equ 2
A$RMN equ 5
A$RUP equ 0
A$RTP equ 14
A$RTP equ 15
A$MONTH equ 6
A$DAY equ 9
A$DAY equ 16
A$YEAR equ 2013
date macro
dat db ' 6/9/2013$'
dat db ' 6/16/2013$'
endm
serial macro

4
ReadMe.txt

@ -8,8 +8,8 @@ Builders: Wayne Warthen (wwarthen@gmail.com)
Douglas Goodall (douglas_goodall@mac.com)
David Giles (vk5dg@internode.on.net)
Updated: 2013-06-09
Version: 2.5 Beta 14
Updated: 2013-06-16
Version: 2.5
This is an adaptation of CP/M-80 2.2 and ZSDOS/ZCPR
targeting ROMs for all N8VEM Z80 hardware variations

BIN
RomDsk/cfg_n8_2312/FDTST.COM

Binary file not shown.

BIN
RomDsk/cfg_n8_2511/FDTST.COM

Binary file not shown.

BIN
RomDsk/cfg_n8vem_dide/FDTST.COM

Binary file not shown.

BIN
RomDsk/cfg_n8vem_diskio/FDTST.COM

Binary file not shown.

BIN
RomDsk/cfg_n8vem_diskio3/FDTST.COM

Binary file not shown.

BIN
RomDsk/cfg_s100_std/1200.COM

Binary file not shown.

BIN
RomDsk/cfg_s100_std/38400.COM

Binary file not shown.

BIN
RomDsk/cfg_s100_std/9600.COM

Binary file not shown.

BIN
RomDsk/cfg_s100_std/FLASHZ.COM

Binary file not shown.

BIN
RomDsk/cfg_s100_std/LDTIM.COM

Binary file not shown.

BIN
RomDsk/cfg_s100_std/RTC.COM

Binary file not shown.

BIN
RomDsk/cfg_s100_std/T5.COM

Binary file not shown.

BIN
RomDsk/cfg_s100_std/VT3.COM

Binary file not shown.

BIN
RomDsk/cfg_s100_std/XM.COM

Binary file not shown.

BIN
RomDsk/cfg_s100_std/XM5.COM

Binary file not shown.

BIN
RomDsk/cfg_zeta_ppp/FDTST.COM

Binary file not shown.

BIN
RomDsk/cfg_zeta_std/FDTST.COM

Binary file not shown.

4
Source/cbios.asm

@ -1582,7 +1582,7 @@ DPB_FD120:
.DW 2 ; OFF: RESERVED TRACKS = 2 TRKS * (512 B/SEC * 60 SEC/TRK) = 15K
;__________________________________________________________________________________________________
;
; IBM 1.11MB 8" FLOPPY DRIVE, 74 TRKS, 15 SECS/TRK, 512 BYTES/SEC
; IBM 1.11MB 8" FLOPPY DRIVE, 77 TRKS, 15 SECS/TRK, 512 BYTES/SEC
; BLOCKSIZE (BLS) = 2K, DIRECTORY ENTRIES = 256
;
.DB (2048 / 128) ; RECORDS PER BLOCK (BLS / 128)
@ -1591,7 +1591,7 @@ DPB_FD111:
.DB 4 ; BSH: BLOCK SHIFT FACTOR
.DB 15 ; BLM: BLOCK MASK
.DB 0 ; EXM: EXTENT MASK
.DW 546 ; DSM: TOTAL STORAGE IN BLOCKS - 1 BLK = ((1,110K - 15K OFF) / 2K BLS) - 1 = 546
.DW 569 ; DSM: TOTAL STORAGE IN BLOCKS - 1 BLK = ((1,155K - 15K OFF) / 2K BLS) - 1 = 569
.DW 255 ; DRM: DIR ENTRIES - 1 = 256 - 1 = 255
.DB 11110000B ; AL0: DIR BLK BIT MAP, FIRST BYTE
.DB 00000000B ; AL1: DIR BLK BIT MAP, SECOND BYTE

158
Source/fd.asm

@ -128,6 +128,34 @@ CMD_DRVSTAT .EQU 00000100B ; CMD,HDS/DS --> ST3
CMD_SEEK .EQU 00001111B ; CMD,HDS/DS --> <EMPTY>
CMD_VERSION .EQU 00010000B ; CMD --> ST0
;
;
; Specify Command:
; +-----+-----+-----+-----+-----+-----+-----+-----+-----+
; |Byte | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
; +-----+-----+-----+-----+-----+-----+-----+-----+-----+
; | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
; | 1 | ----- STEP RATE ----- | -- HEAD UNLOAD TIME - |
; | 2 | ------------ HEAD LOAD TIME ----------- | NDM |
; +-----+-----+-----+-----+-----+-----+-----+-----+-----+
;
;
; Step Rate (milliseconds): Head Unload Time (milliseconds): Head Load Time (milliseconds):
; +------+------+------+------+------+ +------+------+------+------+------+ +------+------+------+------+------+
; | | BITRATE | | | BITRATE | | | BITRATE |
; | VAL | 1.0M | 500K | 300K | 250K | | VAL | 1.0M | 500K | 300K | 250K | | VAL | 1.0M | 500K | 300K | 250K |
; +------+------+------+------+------+ +------+------+------+------+------+ +------+------+------+------+------+
; | 0 | 8.0 | 16.0 | 26.7 | 32.0 | | 0 | 128 | 256 | 426 | 512 | | 0 | 128 | 256 | 426 | 512 |
; | 1 | 7.5 | 15.0 | 25.0 | 30.0 | | 1 | 8 | 16 | 26.7 | 32 | | 1 | 1 | 2 | 3.3 | 4 |
; | 2 | 7.0 | 14.0 | 23.3 | 28.0 | | 2 | 16 | 32 | 53.3 | 64 | | 2 | 2 | 4 | 6.7 | 8 |
; | ... | ... | ... | ... | ... | | ... | ... | ... | ... | ... | | ... | ... | ... | ... | ... |
; | 14 | 1.0 | 2.0 | 3.3 | 4.0 | | 14 | 112 | 224 | 373 | 448 | | 126 | 126 | 252 | 420 | 504 |
; | 15 | 0.5 | 1.0 | 1.7 | 2.0 | | 15 | 120 | 240 | 400 | 480 | | 127 | 127 | 254 | 423 | 508 |
; +------+------+------+------+------+ +------+------+------+------+------+ +------+------+------+------+------+
;
; IBM PS/2 CALLS FOR:
; STEP RATE: 3ms (6ms FOR ALL 41mm OR 720K DRIVES)
; HEAD LOAD TIME: 15ms
;
; STATIC CONFIGURATION, NEVER CHANGES (PRIVATE)
;
FCD_MT .EQU 000H ; MULTI-TRACK, WE DON'T USE, SET TO 0
@ -145,8 +173,8 @@ FCD_PC720 .DB 050H ; NUMBER OF CYLINDERS
.DW 200H ; SECTOR SIZE IN BYTES
.DB 02AH ; GAP LENGTH (R/W)
.DB 050H ; GAP LENGTH (FORMAT)
.DB 0DFH ; SRT/HUT: STEP RATE, IBM PS/2 CALLS FOR 3ms, 0DH = 3ms SRT, HEAD UNLOAD TIME
.DB 005H ; HLT/ND: HEAD LOAD TIME, IBM PS/2 CALLS FOR 15ms 08H = 16ms HUT
.DB (13 << 4) | 0 ; SRT = 6ms, HUT = 512ms
.DB (4 << 1) | 1 ; HLT = 16ms, ND = YES
.DB DOR_BR250 ; DOR
.DB DCR_BR250 ; DCR
.IF (($ - FCD_PC720) != FCD_LEN)
@ -161,8 +189,8 @@ FCD_PC144 .DB 050H ; NUMBER OF CYLINDERS
.DW 200H ; SECTOR SIZE IN BYTES
.DB 01BH ; GAP LENGTH (R/W)
.DB 06CH ; GAP LENGTH (FORMAT)
.DB 0DFH ; SRT/HUT: STEP RATE, IBM PS/2 CALLS FOR 3ms, 0DH = 3ms SRT, HEAD UNLOAD TIME
.DB 009H ; HLT/ND: HEAD LOAD TIME, IBM PS/2 CALLS FOR 15ms 08H = 16ms HUT
.DB (13 << 4) | 0 ; SRT = 3ms, HUT = 256ms
.DB (8 << 1) | 1 ; HLT = 16ms, ND = YES
.DB DOR_BR500 ; DOR
.DB DCR_BR500 ; DCR
.IF (($ - FCD_PC144) != FCD_LEN)
@ -177,8 +205,8 @@ FCD_PC360 .DB 028H ; NUMBER OF CYLINDERS
.DW 200H ; SECTOR SIZE IN BYTES
.DB 02AH ; GAP LENGTH (R/W)
.DB 050H ; GAP LENGTH (FORMAT)
.DB 0DFH ; SRT/HUT: STEP RATE, IBM PS/2 CALLS FOR 3ms, 0DH = 3ms SRT, HEAD UNLOAD TIME
.DB 005H ; HLT/ND: HEAD LOAD TIME, IBM PS/2 CALLS FOR 15ms 08H = 16ms HUT
.DB (13 << 4) | 0 ; SRT = 6ms, HUT = 512ms
.DB (4 << 1) | 1 ; HLT = 16ms, ND = YES
.DB DOR_BR250 ; DOR
.DB DCR_BR250 ; DCR
.IF (($ - FCD_PC360) != FCD_LEN)
@ -193,15 +221,15 @@ FCD_PC120 .DB 050H ; NUMBER OF CYLINDERS
.DW 200H ; SECTOR SIZE IN BYTES
.DB 01BH ; GAP LENGTH (R/W)
.DB 054H ; GAP LENGTH (FORMAT)
.DB 0DFH ; SRT/HUT: STEP RATE, IBM PS/2 CALLS FOR 3ms, 0DH = 3ms SRT, HEAD UNLOAD TIME
.DB 009H ; HLT/ND: HEAD LOAD TIME, IBM PS/2 CALLS FOR 15ms 08H = 16ms HUT
.DB (10 << 4) | 0 ; SRT = 6ms, HUT = 256ms
.DB (8 << 1) | 1 ; HLT = 16ms, ND = YES
.DB DOR_BR500 ; DOR
.DB DCR_BR500 ; DCR
.IF (($ - FCD_PC120) != FCD_LEN)
.ECHO "*** FCD_PC120 SIZE ERROR!!! ***\n"
.ENDIF
;
FCD_PC111 .DB 04AH ; NUMBER OF CYLINDERS
FCD_PC111 .DB 04DH ; NUMBER OF CYLINDERS
.DB 002H ; NUMBER OF HEADS
.DB 00FH ; NUMBER OF SECTORS
.DB 001H ; START OF TRACK (ID OF FIRST SECTOR, USUALLY 1)
@ -209,8 +237,8 @@ FCD_PC111 .DB 04AH ; NUMBER OF CYLINDERS
.DW 200H ; SECTOR SIZE IN BYTES
.DB 01BH ; GAP LENGTH (R/W)
.DB 054H ; GAP LENGTH (FORMAT)
.DB 0DFH ; SRT/HUT: STEP RATE, IBM PS/2 CALLS FOR 3ms, 0DH = 3ms SRT, HEAD UNLOAD TIME
.DB 009H ; HLT/ND: HEAD LOAD TIME, IBM PS/2 CALLS FOR 15ms 08H = 16ms HUT
.DB (13 << 4) | 0 ; SRT = 3ms, HUT = 256ms
.DB (25 << 1) | 1 ; HLT = 50ms, ND = YES
.DB DOR_BR500 ; DOR
.DB DCR_BR500 ; DCR
.IF (($ - FCD_PC111) != FCD_LEN)
@ -285,23 +313,23 @@ DCR_BR500 .EQU 00H ; 500KBPS
;
; FDC COMMAND STRINGS
;
FCS_NOP: .TEXT "NOP$"
FCS_READ: .TEXT "READ$"
FCS_READDEL: .TEXT "READDEL$"
FCS_WRITE: .TEXT "WRITE$"
FCS_WRITEDEL: .TEXT "WRITEDEL$"
FCS_READTRK: .TEXT "READTRK$"
FCS_READID: .TEXT "READID$"
FCS_FMTTRK: .TEXT "FMTTRK$"
FCS_SCANEQ: .TEXT "SCANEQ$"
FCS_SCANLOEQ: .TEXT "SCANLOEQ$"
FCS_SCANHIEQ: .TEXT "SCANHIEQ$"
FCS_RECAL: .TEXT "RECAL$"
FCS_SENSEINT: .TEXT "SENSEINT$"
FCS_SPECIFY: .TEXT "SPECIFY$"
FCS_DRVSTAT: .TEXT "DRVSTAT$"
FCS_SEEK: .TEXT "SEEK$"
FCS_VERSION: .TEXT "VER$"
FCS_NOP .DB "NOP$"
FCS_READ .DB "READ$"
FCS_READDEL .DB "READDEL$"
FCS_WRITE .DB "WRITE$"
FCS_WRITEDEL .DB "WRITEDEL$"
FCS_READTRK .DB "READTRK$"
FCS_READID .DB "READID$"
FCS_FMTTRK .DB "FMTTRK$"
FCS_SCANEQ .DB "SCANEQ$"
FCS_SCANLOEQ .DB "SCANLOEQ$"
FCS_SCANHIEQ .DB "SCANHIEQ$"
FCS_RECAL .DB "RECAL$"
FCS_SENSEINT .DB "SENSEINT$"
FCS_SPECIFY .DB "SPECIFY$"
FCS_DRVSTAT .DB "DRVSTAT$"
FCS_SEEK .DB "SEEK$"
FCS_VERSION .DB "VER$"
;
; FDC COMMAND TABLE
;
@ -938,6 +966,27 @@ FC_SETDOR
#ENDIF
RET
;
; SET FST_DCR
;
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8))
;
FC_SETDCR
LD (FST_DCR),A
OUT (FDC_DCR),A
#IF (FDTRACE >= 3)
CALL NEWLINE
LD DE,FDSTR_DCR
CALL WRITESTR
LD DE,FDSTR_ARROW
CALL WRITESTR
CALL PC_SPACE
LD A,(FST_DCR)
CALL PRTHEXBYTE
#ENDIF
RET
;
#ENDIF
;
; RESET FDC BY PULSING BIT 7 OF LATCH LOW
;
FC_RESETFDC:
@ -1004,38 +1053,38 @@ FC_MOTORON:
#ENDIF
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8))
; SETUP DCR FOR DIDE HARDWARE
LD A,(FCD_DCR)
OUT (FDC_DCR),A
LD A,(FCD_DCR) ; GET NEW DCR VALUE
CALL FC_SETDCR ; AND IMPLEMENT IT
LD HL,FST_DOR ; POINT TO FDC_DOR
LD A,(HL) ; START WITH CURRENT DOR
LD HL,FST_DOR ; POINT TO FDC_DOR
LD A,(HL) ; START WITH CURRENT DOR
PUSH AF
AND 11111100B ; GET RID OF ANY ACTIVE DS BITS
LD C,A ; SAVE IT FOR NOW
LD A,(FCD_DS) ; NOW GET CURRENT DS
LD B,A ; PUT IN B FOR LATER
OR C ; COMBINE WITH SAVED DOR
LD C,A ; RE-SAVE IT
INC B ; SET UP B AS LOOP COUNTER (DS + 1)
LD A,00001000B ; STARTING BIT PATTERN FOR MOTOR
AND 11111100B ; GET RID OF ANY ACTIVE DS BITS
LD C,A ; SAVE IT FOR NOW
LD A,(FCD_DS) ; NOW GET CURRENT DS
LD B,A ; PUT IN B FOR LATER
OR C ; COMBINE WITH SAVED DOR
LD C,A ; RE-SAVE IT
INC B ; SET UP B AS LOOP COUNTER (DS + 1)
LD A,00001000B ; STARTING BIT PATTERN FOR MOTOR
FC_MOTORON1:
RLA ; SHIFT LEFT
DJNZ FC_MOTORON1 ; DS TIMES
OR C ; COMBINE WITH SAVED
LD (HL),A ; COMMIT THE NEW VALUE TO FST_DOR
CALL FC_SETDOR ; OUTPUT TO CONTROLLER
RLA ; SHIFT LEFT
DJNZ FC_MOTORON1 ; DS TIMES
OR C ; COMBINE WITH SAVED
LD (HL),A ; COMMIT THE NEW VALUE TO FST_DOR
CALL FC_SETDOR ; OUTPUT TO CONTROLLER
LD C,A
POP AF
CP C
RET Z ; MOTOR WAS PREVIOUSLY ON
RET Z ; MOTOR WAS PREVIOUSLY ON
#ENDIF
#IF (FDTRACE >= 3)
LD DE,FDSTR_MOTDELAY
CALL WRITESTR
#ENDIF
CALL LDELAY ; DELAY FOR MOTOR SPINUP IF NOT PREVIOUSLY ON
CALL LDELAY ; DELAY FOR MOTOR SPINUP IF NOT PREVIOUSLY ON
RET
;
; SET FST_DOR FOR MOTOR CONTROL OFF
@ -1046,7 +1095,7 @@ FC_MOTOROFF:
CALL NZ,FD_FDCRESET
LD A,DOR_INIT
CALL FC_SETDOR ; OUTPUT TO CONTROLLER
CALL FC_SETDOR ; OUTPUT TO CONTROLLER
#IF (FDTRACE >= 3)
LD DE,FDSTR_MOTOFF
@ -1104,7 +1153,7 @@ FOP_CMD4: ; START OF STATUS LOOP, WAIT FOR FDC TO BE READY FOR BYTE
CP 0C0H ; HMMMM... RQM=1 & DIO=1, FDC WANTS TO SEND US DATA, UNEXPECTED
JR Z,FOP_RES ; GO IMMEDIATELY TO RESULTS???
DJNZ FOP_CMD4 ; LOOP TILL COUNTER EXHAUSTED
JR FOP_TOSNDCMD ; COUNTER EXHAUSTED, TIMEOUT / EXIT
JP FOP_TOSNDCMD ; COUNTER EXHAUSTED, TIMEOUT / EXIT
FOP_CMD6: ; SEND NEXT BYTE
LD A,(HL) ; POINT TO NEXT BYTE TO SEND
@ -1131,6 +1180,10 @@ FOP_X1:
;
; RESULTS PHASE
;
; 1) CHECK FST_RC AND BAIL OUT IF SET???
; 2) COMPARE MSR CHECKING TO FXR_NULL (WHICH IS RIGHT?)
; 3) WHEN DUMPING FRB, USE THE RECORDED LENGTH???
;
FOP_RES:
LD HL,FRB ; POINT TO RECEIVE BUFFER
@ -1292,8 +1345,11 @@ FXR_NOP:
;
; NULL EXECUTION, NO DATA TO READ/WRITE (USED BY READID)
;
; DO NOTHING, BUT WAIT FOR FDC READY. LOOP NEEDS TO ALLOW FOR
; 2 FULL ROTATIONS OF THE DISK WHICH IS 400ms AT 300RPM
;
FXR_NULL:
LD BC,1000H ; BC IS LOOP COUNTER, 4096 ITERATIONS
LD BC,$4000 ; LOOP COUNTER, $4000 * 25us = 410ms
FXR_NULL1:
CALL DELAY
IN A,(FDC_MSR) ; GET MSR
@ -1552,6 +1608,7 @@ FDSTR_MOTON .TEXT "\r\nMOTOR ON$"
FDSTR_MOTOFF .TEXT "\r\nMOTOR OFF$"
FDSTR_MOTDELAY .TEXT "\r\nMOTOR DELAY$"
FDSTR_DOR .TEXT "DOR$"
FDSTR_DCR .TEXT "DCR$"
FDSTR_RESETFDC .TEXT "\r\nRESET FDC$"
FDSTR_SELECT .TEXT "\r\nSELECT: $"
#ENDIF ; (FDTRACE >= 3)
@ -1582,6 +1639,7 @@ FCP_BUFSIZ .EQU $-FCP_BUF
;
FST_RC .DB 00H
FST_DOR .DB 00H
FST_DCR .DB 00H
;
; FDC RESULTS BUFFER
;

2
Source/fd_dph.asm

@ -56,7 +56,7 @@ CKS_FD120 .EQU 64 ; CKS: DIR ENT / 4 = 256 / 4 = 64
ALS_FD120 .EQU 74 ; ALS: BLKS / 8 = 592 / 8 = 74 (ROUNDED UP)
;
CKS_FD111 .EQU 64 ; CKS: DIR ENT / 4 = 256 / 4 = 64
ALS_FD111 .EQU 69 ; ALS: BLKS / 8 = 592 / 8 = 74 (ROUNDED UP)
ALS_FD111 .EQU 72 ; ALS: BLKS / 8 = 570 / 8 = 72 (ROUNDED UP)
;
#IF (FDMAUTO)
; ASSUME WORST CASE SIZES

2
Source/kbd.asm

@ -22,7 +22,7 @@ KBD_DATA .EQU KBD_IOBASE + $02
;
; TIMING CONSTANTS
;
KBD_WAITTO .EQU 150
KBD_WAITTO .EQU 0 ; 0 IS MAX WAIT (256)
;
; STATUS BITS (FOR KBD_STATUS)
;

4
Source/ver.inc

@ -1,7 +1,7 @@
#DEFINE RMJ 2
#DEFINE RMN 5
#DEFINE RUP 0
#DEFINE RTP 14
#DEFINE RTP 15
#DEFINE BIOSVER "2.5"
#DEFINE BIOSBLD "Prerelease Build 14"
#DEFINE BIOSBLD "Build 15"
#DEFINE REVISION 412

Loading…
Cancel
Save