mirror of https://github.com/wwarthen/RomWBW.git
Browse Source
- Minimal support for QP/M by adding a disk image. - Disk image is not included in combo image, it must be added separately. - Disk image boots into CP/M 2.2. You must run QINSTALL to configure it and make the disk boot into QP/M. - It is critical to review the ReadMe.txt file -- default QP/M configuration conflicts with RomWBW use of Page Zero. - Added some stack space to SYSGEN. It was failing when run with extra CBIOS debugging enabled. - Cleanup of diskdefs file. - Updated SIMH executable.pull/331/head
48 changed files with 719 additions and 249 deletions
@ -0,0 +1,20 @@ |
|||
===== QP/M Disk for RomWBW ===== |
|||
|
|||
This disk contains the distribution files for the QP/M Operating |
|||
System. The disk is initially set up to boot CP/M 2.2. You |
|||
must use the QINSTALL program to install QP/M on the boot |
|||
tracks and subsequently boot QP/M. |
|||
|
|||
== Notes == |
|||
|
|||
By default, QP/M saves the current drive/user (2 byte value) at address 0x0008. |
|||
This is also the address of the Z80 RST 08 restart vector and conflicts with |
|||
RomWBW. When running QINSTALL, you must change the QP/M address for this value |
|||
to something else. I have been using 0x000E without issue. |
|||
|
|||
RomWBW CBIOS has been modified to put the QP/M TIMDAT vector at 0x0010. The |
|||
vector points into CBIOS where the actual TIMDAT routine is located. The |
|||
TIMDAT routine reads the current date/time from HBIOS, changes the values from |
|||
BCD to binary, and rearranges some bytes for QP/M compatibilty. |
|||
|
|||
--WBW 5:29 PM 6/4/2022 |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -0,0 +1,3 @@ |
|||
|
|||
G2Welcome to QP/M 2.71G0 |
|||
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,107 @@ |
|||
.z80 |
|||
; |
|||
; Clock for supplementing normal MYZ80 bios |
|||
; |
|||
; |
|||
;========================================================================== |
|||
; |
|||
; |
|||
false equ 0 |
|||
true equ not false |
|||
|
|||
size equ 6275 ;size in 0.01 k (e.g. 60k = 6000, |
|||
; 59.5k = 5950, 48.25k = 4825) |
|||
|
|||
ioval equ 80H ;IOBYTE value on cold boot (see documentation) |
|||
; |
|||
; Lower memory stuff |
|||
; |
|||
IOBYTE EQU 3 ;IOBYTE location |
|||
DSKUSR EQU 4 ;Disk/user location |
|||
ENTRY EQU 5 |
|||
WARMB EQU 0 |
|||
; |
|||
; QP/M locations |
|||
; |
|||
QPMBIOS EQU size/25*256 |
|||
QDOS EQU QPMBIOS-(0EA00H-0DC06H) |
|||
QCP EQU QDOS-806H |
|||
; |
|||
; MYZ80 API locations used |
|||
; |
|||
CONST EQU 0FFE1H ;Console status |
|||
CONIN EQU 0FFE2H ;Console input |
|||
CRTOUT EQU 0FFE3H ;Send char to console |
|||
LIST EQU 0FFE4H ;List character |
|||
PUNCH EQU 0FFE5H ;Punch character (auxout) |
|||
READER EQU 0FFE6H ;Reader character (auxin) |
|||
HOME EQU 0FFE7H ;Home disk |
|||
SELDSK EQU 0FFE8H ;Select disk in C-reg. |
|||
SETTRK EQU 0FFE9H ;Seek track in C-reg. |
|||
SETSEC EQU 0FFEAH ;Seek sector |
|||
SETDMA EQU 0FFEBH ;Set disk i/o address |
|||
READ EQU 0FFECH ;Read sector |
|||
WRITE EQU 0FFEDH ;Write sector |
|||
PRSTAT EQU 0FFEEH ;List status |
|||
SECTRAN EQU 0FFEFH ;Sector xlation |
|||
CONOUTS EQU 0FFF0H ;Console output status |
|||
XBIOS EQU 0FFFDH ;Extended MYZ80 functions |
|||
; |
|||
; High (MONITOR) area data locations |
|||
; |
|||
; Printer locations in high memory |
|||
; |
|||
HISTACK EQU 0FF14H ;temp |
|||
; |
|||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|||
; |
|||
ASEG |
|||
ORG 100H |
|||
.phase 0fec0h |
|||
; |
|||
qpmclk:: |
|||
LD A,42 |
|||
LD HL,CLKBUF |
|||
PUSH HL |
|||
CALL XBIOS ; BCD hr/min/sec/century/yr/mon/day |
|||
; convert from BCD to normal -- and fix things up |
|||
POP HL |
|||
LD B,7 |
|||
DEC HL |
|||
Q0: INC HL |
|||
XOR A |
|||
RRD ; rotate low nibble of A through nibbles of (HL) |
|||
LD D,A ; save low nibble |
|||
LD A,(HL) ; get high nibble |
|||
ADD A,A ; * 2 |
|||
LD C,A ; save |
|||
ADD A,A ; * 4 |
|||
ADD A,A ; * 8 |
|||
ADD A,C ; * 10 |
|||
ADD A,D ; + low digit |
|||
LD (HL),A ; set non-BCD version |
|||
DJNZ Q0 |
|||
; now realign values from system call |
|||
LD C,A ; day |
|||
DEC HL |
|||
LD B,(HL) ; mon |
|||
DEC HL |
|||
LD E,(HL) ; yr |
|||
DEC HL |
|||
DEC HL ; skip century |
|||
PUSH BC |
|||
LD B,(HL) ; sec |
|||
DEC HL |
|||
LD C,(HL) ; min |
|||
DEC HL |
|||
LD D,(HL) ; hr |
|||
LD (CLKBUF+2),DE ; yrE/hrD |
|||
LD (CLKBUF+4),BC ; minC/secB |
|||
POP BC |
|||
LD (CLKBUF),BC ; dayC/monB |
|||
; did the adjustments -- return ptr to day/mon/yr/hr/min/sec |
|||
ret |
|||
CLKBUF: DB 0,0,0,0,0,0,0 |
|||
.dephase |
|||
end |
|||
|
|||
@ -0,0 +1,22 @@ |
|||
|
|||
G2QPM CommandsG0 |
|||
G2============G0 |
|||
The QCP command processor has the following built-in commands; |
|||
afn=wildcard filename(s); ufn=filename; []=optional |
|||
|
|||
G2DFD [drive[:]]G0 - Sets the default drive (A: at startup) |
|||
G2DFLTG0 - Shows the default drive and user (@=disabled) |
|||
G2DFUG0 - Sets the default user (0 at startup) |
|||
G2DIR [afn]G0 - Simple directory listing (D.COM is recommended) |
|||
G2ERA afnG0 - Erase specified file(s) |
|||
G2GET addr ufnG0 - Load file at address |
|||
G2GO [params]G0 - Reruns the program in TPA (with params) |
|||
G2JUMP addr [params]G0 - Run the program at address (with params) |
|||
G2LIST ufnG0 - Print the specified file on the LST: device |
|||
G2REN ufnnew=ufnoldG0 - Rename ufnold to ufnnew |
|||
G2SAVE n ufnG0 - Save n pages from the TPA into file |
|||
G2TIMEG0 - Display the current date and time |
|||
G2TOFG0 - Sends top-of-form character to LST: device |
|||
G2TYPE ufn [option]G0 - Display file on console, with page pauses |
|||
G2USER [n]G0 - Set user # to n (0 if no value given) |
|||
|
|||
@ -0,0 +1,19 @@ |
|||
|
|||
G2QPM Utility ProgramsG0 |
|||
G2====================G0 |
|||
QP/M comes loaded with all utility programs for emulator use: |
|||
afn=wildcard filename(s); ufn=filename; []=optional |
|||
|
|||
G2D [afn] [options]G0 - Directory listing with numerous options |
|||
G2DHORIZ [afn] [...]G0 - Same with horizontal directory listing |
|||
G2QBACKUPG0 - Backup entire disk or selected files |
|||
G2QPATCHG0 - Modify settings of D.COM |
|||
G2QPIPG0 - Copy files, peripheral interchange, etc. |
|||
G2QSTAMP(V|X)G0 - Time/date stamp disk (QSTAMPV recommended) |
|||
G2QSTATG0 - Display/change file status |
|||
G2QSUBG0 - Powerful batch processing, nesting supported |
|||
G2QSWEEPG0 - Powerful interactive file manipulation |
|||
G2TDCNFGG0 - Configure real-time clock (NOT NEEDED) |
|||
|
|||
We recommend G2LinkZG0 and G2DebugZG0; get from G2http://www.microcodeconsulting.comG0. |
|||
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,52 @@ |
|||
# |
|||
# Add the ReadMe document |
|||
# |
|||
d_qpm/ReadMe.txt 0: |
|||
# |
|||
# Include CP/M 2.2 files |
|||
# |
|||
d_cpm22/u0/*.* 0: |
|||
# |
|||
# Add RomWBW utilities |
|||
# |
|||
#../../Binary/Apps/*.com 0: |
|||
../../Binary/Apps/assign.com 0: |
|||
../../Binary/Apps/cpuspd.com 0: |
|||
../../Binary/Apps/fat.com 0: |
|||
../../Binary/Apps/fdu.com 0: |
|||
../../Binary/Apps/fdu.doc 0: |
|||
../../Binary/Apps/format.com 0: |
|||
../../Binary/Apps/mode.com 0: |
|||
../../Binary/Apps/rtc.com 0: |
|||
../../Binary/Apps/survey.com 0: |
|||
../../Binary/Apps/syscopy.com 0: |
|||
../../Binary/Apps/sysgen.com 0: |
|||
../../Binary/Apps/talk.com 0: |
|||
../../Binary/Apps/tbasic.com 0: |
|||
../../Binary/Apps/timer.com 0: |
|||
../../Binary/Apps/tune.com 0: |
|||
../../Binary/Apps/xm.com 0: |
|||
../../Binary/Apps/zmp.com 0: |
|||
../../Binary/Apps/zmp.hlp 0: |
|||
../../Binary/Apps/zmp.doc 0: |
|||
../../Binary/Apps/zmxfer.ovr 0: |
|||
../../Binary/Apps/zmterm.ovr 0: |
|||
../../Binary/Apps/zminit.ovr 0: |
|||
../../Binary/Apps/zmconfig.ovr 0: |
|||
../../Binary/Apps/zmd.com 0: |
|||
../../Binary/Apps/vgmplay.com 0: |
|||
# |
|||
# Add Tune sample files |
|||
# |
|||
../../Binary/Apps/Tunes/*.pt? 3: |
|||
../../Binary/Apps/Tunes/*.mym 3: |
|||
../../Binary/Apps/Tunes/*.vgm 3: |
|||
# |
|||
# Add OS image |
|||
# |
|||
../CPM22/cpm_wbw.sys 0:cpm.sys |
|||
# |
|||
# Add Common Applications |
|||
# |
|||
Common/All/*.* 0: |
|||
Common/CPM22/*.* 0: |
|||
@ -0,0 +1,60 @@ |
|||
# |
|||
# Add the ReadMe document |
|||
# |
|||
d_qpm/ReadMe.txt 0: |
|||
# |
|||
# Include CP/M 2.2 files |
|||
# |
|||
d_cpm22/u0/*.* 0: |
|||
# |
|||
# Add RomWBW utilities |
|||
# |
|||
#../../Binary/Apps/*.com 0: |
|||
../../Binary/Apps/assign.com 0: |
|||
../../Binary/Apps/cpuspd.com 0: |
|||
../../Binary/Apps/fat.com 0: |
|||
../../Binary/Apps/fdu.com 0: |
|||
../../Binary/Apps/fdu.doc 0: |
|||
../../Binary/Apps/format.com 0: |
|||
../../Binary/Apps/mode.com 0: |
|||
../../Binary/Apps/rtc.com 0: |
|||
../../Binary/Apps/survey.com 0: |
|||
../../Binary/Apps/syscopy.com 0: |
|||
../../Binary/Apps/sysgen.com 0: |
|||
../../Binary/Apps/talk.com 0: |
|||
../../Binary/Apps/tbasic.com 0: |
|||
../../Binary/Apps/timer.com 0: |
|||
../../Binary/Apps/tune.com 0: |
|||
../../Binary/Apps/xm.com 0: |
|||
../../Binary/Apps/zmp.com 0: |
|||
../../Binary/Apps/zmp.hlp 0: |
|||
../../Binary/Apps/zmp.doc 0: |
|||
../../Binary/Apps/zmxfer.ovr 0: |
|||
../../Binary/Apps/zmterm.ovr 0: |
|||
../../Binary/Apps/zminit.ovr 0: |
|||
../../Binary/Apps/zmconfig.ovr 0: |
|||
../../Binary/Apps/zmd.com 0: |
|||
../../Binary/Apps/vgmplay.com 0: |
|||
# |
|||
../../Binary/Apps/Test/*.com 2: |
|||
Test/*.* 2: |
|||
# |
|||
# Add Tune sample files |
|||
# |
|||
../../Binary/Apps/Tunes/*.pt? 3: |
|||
../../Binary/Apps/Tunes/*.mym 3: |
|||
../../Binary/Apps/Tunes/*.vgm 3: |
|||
# |
|||
# Add CPNET client files |
|||
# |
|||
cpnet12/*.* 4: |
|||
# |
|||
# Add OS image |
|||
# |
|||
../CPM22/cpm_wbw.sys 0:cpm.sys |
|||
# |
|||
# Add Common Applications |
|||
# |
|||
Common/All/*.* 0: |
|||
Common/CPM22/*.* 0: |
|||
Common/SIMH/*.* 13: |
|||
Binary file not shown.
Loading…
Reference in new issue