diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 4e7147bb..215e2e49 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -19,6 +19,7 @@ Version 3.3 - WBW: Early support for Duodyne base system (CPU/UART/ROM/RAM/RTC/SPK) - M?C: Fixed XM to allow specifying HBIOS port for send operations - WBW: Fix S100 Z180 LED operation (credit to Jay Cotton for finding this issue) +- WBW: QPM system image is now combined with current CBIOS during build Version 3.2.1 ------------- diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 8adb6af0..5c081d7c 100644 Binary files a/Doc/RomWBW Applications.pdf and b/Doc/RomWBW Applications.pdf differ diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index 6a3c0818..d68afb55 100644 Binary files a/Doc/RomWBW Disk Catalog.pdf and b/Doc/RomWBW Disk Catalog.pdf differ diff --git a/Doc/RomWBW Errata.pdf b/Doc/RomWBW Errata.pdf index b18a9299..60ec11ba 100644 Binary files a/Doc/RomWBW Errata.pdf and b/Doc/RomWBW Errata.pdf differ diff --git a/Doc/RomWBW ROM Applications.pdf b/Doc/RomWBW ROM Applications.pdf index 5d3d0d39..26d0d350 100644 Binary files a/Doc/RomWBW ROM Applications.pdf and b/Doc/RomWBW ROM Applications.pdf differ diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index 182a6483..44e754d1 100644 Binary files a/Doc/RomWBW System Guide.pdf and b/Doc/RomWBW System Guide.pdf differ diff --git a/Doc/RomWBW User Guide.pdf b/Doc/RomWBW User Guide.pdf index 69e45f89..56f3bb73 100644 Binary files a/Doc/RomWBW User Guide.pdf and b/Doc/RomWBW User Guide.pdf differ diff --git a/ReadMe.md b/ReadMe.md index 9fc48dc0..e3b042d3 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -3,7 +3,7 @@ **RomWBW ReadMe** \ Version 3.3 \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ -08 Aug 2023 +09 Sep 2023 # Overview diff --git a/ReadMe.txt b/ReadMe.txt index d2eb2bc4..51e1a2ce 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,6 +1,6 @@ RomWBW ReadMe Wayne Warthen (wwarthen@gmail.com) -08 Aug 2023 +09 Sep 2023 diff --git a/Source/BuildShared.cmd b/Source/BuildShared.cmd index 8b7e0442..533a1473 100644 --- a/Source/BuildShared.cmd +++ b/Source/BuildShared.cmd @@ -4,6 +4,7 @@ setlocal pushd HDIAG && call Build || exit /b & popd pushd CBIOS && call Build || exit /b & popd pushd CPM22 && call Build || exit /b & popd +pushd QPM && call Build || exit /b & popd pushd ZCPR && call Build || exit /b & popd pushd ZCPR-DJ && call Build || exit /b & popd pushd ZSDOS && call Build || exit /b & popd diff --git a/Source/Clean.cmd b/Source/Clean.cmd index ebd9f7d4..8b35a5cc 100644 --- a/Source/Clean.cmd +++ b/Source/Clean.cmd @@ -4,6 +4,7 @@ setlocal pushd HDIAG && call Clean.cmd & popd pushd Apps && call Clean.cmd & popd pushd CPM22 && call Clean.cmd & popd +pushd QPM && call Clean.cmd & popd pushd ZCPR && call Clean.cmd & popd pushd ZCPR-DJ && call Clean.cmd & popd pushd ZSDOS && call Clean.cmd & popd diff --git a/Source/Doc/UserGuide.md b/Source/Doc/UserGuide.md index 7eabd3e6..01c1aa60 100644 --- a/Source/Doc/UserGuide.md +++ b/Source/Doc/UserGuide.md @@ -2154,6 +2154,9 @@ is included with the RomWBW distribution. on the QPM binary distribution and has been minimally customized for RomWBW. +- When booted, the QPM startup banner will indicate CP/M 2.2. This + is because QPM uses the CP/M 2.2 CBIOS code. + - QINSTALL is used to customize QPM. It is included on the disk image. You should review the notes in the ReadMe.txt file in Source/Images/d_qpm before making changes. diff --git a/Source/Images/Build.cmd b/Source/Images/Build.cmd index 554b881c..f7ccc11f 100644 --- a/Source/Images/Build.cmd +++ b/Source/Images/Build.cmd @@ -13,7 +13,7 @@ call BuildDisk.cmd nzcom fd wbw_fd144 ..\zsdos\zsys_wbw.sys || exit /b call BuildDisk.cmd cpm3 fd wbw_fd144 ..\cpm3\cpmldr.sys || exit /b call BuildDisk.cmd zpm3 fd wbw_fd144 ..\zpm3\zpmldr.sys || exit /b call BuildDisk.cmd ws4 fd wbw_fd144 || exit /b -call BuildDisk.cmd qpm fd wbw_fd144 d_qpm\u0\qpm.sys || exit /b +call BuildDisk.cmd qpm fd wbw_fd144 ..\qpm\qpm_wbw.sys || exit /b call BuildDisk.cmd z80asm hd wbw_fd144 || exit /b call BuildDisk.cmd aztecc hd wbw_fd144 || exit /b call BuildDisk.cmd hitechc hd wbw_fd144 || exit /b @@ -32,7 +32,7 @@ call BuildDisk.cmd cpm3 hd wbw_hd512 ..\cpm3\cpmldr.sys || exit /b call BuildDisk.cmd zpm3 hd wbw_hd512 ..\zpm3\zpmldr.sys || exit /b call BuildDisk.cmd ws4 hd wbw_hd512 || exit /b call BuildDisk.cmd dos65 hd wbw_hd512 ..\zsdos\zsys_wbw.sys || exit /b -call BuildDisk.cmd qpm hd wbw_hd512 d_qpm\u0\qpm.sys || exit /b +call BuildDisk.cmd qpm hd wbw_hd512 ..\qpm\qpm_wbw.sys || exit /b call BuildDisk.cmd z80asm hd wbw_hd512 || exit /b call BuildDisk.cmd aztecc hd wbw_hd512 || exit /b call BuildDisk.cmd hitechc hd wbw_hd512 || exit /b @@ -56,7 +56,7 @@ call BuildDisk.cmd nzcom hd wbw_hd1k ..\zsdos\zsys_wbw.sys || exit /b call BuildDisk.cmd cpm3 hd wbw_hd1k ..\cpm3\cpmldr.sys || exit /b call BuildDisk.cmd zpm3 hd wbw_hd1k ..\zpm3\zpmldr.sys || exit /b call BuildDisk.cmd ws4 hd wbw_hd1k || exit /b -call BuildDisk.cmd qpm hd wbw_hd1k d_qpm\u0\qpm.sys || exit /b +call BuildDisk.cmd qpm hd wbw_hd1k ..\qpm\qpm_wbw.sys || exit /b call BuildDisk.cmd z80asm hd wbw_hd1k || exit /b call BuildDisk.cmd aztecc hd wbw_hd1k || exit /b call BuildDisk.cmd hitechc hd wbw_hd1k || exit /b diff --git a/Source/Images/Makefile b/Source/Images/Makefile index 77cee59b..fa32b5f2 100644 --- a/Source/Images/Makefile +++ b/Source/Images/Makefile @@ -1,7 +1,7 @@ # # this makefile subsumes all the work done in Build.cmd, BuildDisk.cmd, BuildDisk.ps1 # -SYSTEMS = ../CPM22/cpm_wbw.sys ../ZSDOS/zsys_wbw.sys ../CPM3/cpmldr.sys ../ZPM3/zpmldr.sys +SYSTEMS = ../CPM22/cpm_wbw.sys ../ZSDOS/zsys_wbw.sys ../QPM/qpm_wbw.sys ../CPM3/cpmldr.sys ../ZPM3/zpmldr.sys FDIMGS = fd144_cpm22.img fd144_zsdos.img fd144_nzcom.img \ fd144_cpm3.img fd144_zpm3.img fd144_ws4.img fd144_qpm.img \ @@ -80,7 +80,7 @@ blankhd1k: @sys= ; \ case $@ in \ (*cpm22*) sys=../CPM22/cpm_wbw.sys;; \ - (*qpm*) sys=d_qpm/u0/qpm.sys;; \ + (*qpm*) sys=../QPM/qpm_wbw.sys;; \ (*zsdos* | *nzcom* | *dos65*) sys=../ZSDOS/zsys_wbw.sys;; \ (*cpm3*) sys=../CPM3/cpmldr.sys;; \ (*zpm3*) sys=../ZPM3/zpmldr.sys;; \ diff --git a/Source/Images/d_qpm/ReadMe.txt b/Source/Images/d_qpm/ReadMe.txt index 17ce20ca..c9456ee7 100644 --- a/Source/Images/d_qpm/ReadMe.txt +++ b/Source/Images/d_qpm/ReadMe.txt @@ -48,10 +48,9 @@ The following files came from the official QP/M distribution. Actually, they came from 3 Microcode Consulting files (qpm27.zip, debugz.zip, and linkz.zip). The original distribution files can be found on the Microcode Consulting website at https://www.microcodeconsulting.com/. -Documentation (pdf) files are incuded in these original distribution -.zip files. These documentation files have not been included in the -RomWBW distribution. Please retrieve them yourself from the website -if desired. +Documentation (pdf) files are included in these original distribution +.zip files. These documentation files have been included in the +RomWBW distribution in the Doc folder. D.COM - Directory lister DBGINST.COM - Configures DEBUGZ debugger diff --git a/Source/Images/d_qpm/u0/qpm.sys b/Source/Images/d_qpm/u0/qpm.sys deleted file mode 100644 index 78ce325f..00000000 Binary files a/Source/Images/d_qpm/u0/qpm.sys and /dev/null differ diff --git a/Source/Images/fd_qpm.txt b/Source/Images/fd_qpm.txt index 0d66ff3a..94d4f4a0 100644 --- a/Source/Images/fd_qpm.txt +++ b/Source/Images/fd_qpm.txt @@ -44,7 +44,7 @@ d_cpm22/u0/*.* 0: # # Add OS image # -../CPM22/cpm_wbw.sys 0:cpm.sys +../QPM/qpm_wbw.sys 0:qpm.sys # # Add Common Applications # diff --git a/Source/Images/hd_qpm.txt b/Source/Images/hd_qpm.txt index 865282f7..29197d27 100644 --- a/Source/Images/hd_qpm.txt +++ b/Source/Images/hd_qpm.txt @@ -51,7 +51,7 @@ cpnet12/*.* 4: # # Add OS image # -../CPM22/cpm_wbw.sys 0:cpm.sys +../QPM/qpm_wbw.sys 0:qpm.sys # # Add Common Applications # diff --git a/Source/Makefile b/Source/Makefile index 74e1fa94..b0c4ca2a 100644 --- a/Source/Makefile +++ b/Source/Makefile @@ -8,7 +8,7 @@ SUBDIRS += CBIOS SUBDIRS += Forth SUBDIRS += TastyBasic SUBDIRS += Fonts -SUBDIRS += CPM22 ZCPR ZCPR-DJ ZSDOS CPM3 ZPM3 +SUBDIRS += CPM22 ZCPR ZCPR-DJ ZSDOS CPM3 ZPM3 QPM #SUBDIRS += BPBIOS SUBDIRS += pSys SUBDIRS += RomDsk diff --git a/Source/QPM/Build.cmd b/Source/QPM/Build.cmd new file mode 100644 index 00000000..c8a3955c --- /dev/null +++ b/Source/QPM/Build.cmd @@ -0,0 +1,20 @@ +@echo off +setlocal + +set TOOLS=../../Tools + +set PATH=%TOOLS%\tasm32;%TOOLS%\zxcc;%PATH% + +set TASMTABS=%TOOLS%\tasm32 + +set CPMDIR80=%TOOLS%/cpm/ + +tasm -t80 -g3 -fFF loader.asm loader.bin loader.lst || exit /b + +copy /b qcp27.dat + qdos27.dat + ..\cbios\cbios_wbw.bin qpm_wbw.bin || exit /b +copy /b qcp27.dat + qdos27.dat + ..\cbios\cbios_una.bin qpm_una.bin || exit /b + +copy /b loader.bin + qpm_wbw.bin qpm_wbw.sys || exit /b +copy /b loader.bin + qpm_una.bin qpm_una.sys || exit /b + +goto :eof diff --git a/Source/QPM/Clean.cmd b/Source/QPM/Clean.cmd new file mode 100644 index 00000000..243e3c08 --- /dev/null +++ b/Source/QPM/Clean.cmd @@ -0,0 +1,8 @@ +@echo off +setlocal + +if exist *.bin del *.bin +if exist *.lst del *.lst +if exist *.prn del *.prn +if exist *.hex del *.hex +if exist *.sys del *.sys diff --git a/Source/QPM/Makefile b/Source/QPM/Makefile new file mode 100644 index 00000000..30c414eb --- /dev/null +++ b/Source/QPM/Makefile @@ -0,0 +1,15 @@ +SYSFILES = qpm_wbw.sys qpm_una.sys +BINFILES = qpm_wbw.bin qpm_una.bin +OBJECTS = loader.bin $(SYSFILES) $(BINFILES) +OTHERS = *.hex +TOOLS = ../../Tools +include $(TOOLS)/Makefile.inc + +%.sys: %.bin loader.bin + cat loader.bin $*.bin > $@ + +qpm_una.bin: qcp27.dat qdos27.dat ../CBIOS/cbios_una.bin + cat qcp27.dat qdos27.dat ../CBIOS/cbios_una.bin > $@ + +qpm_wbw.bin: qcp27.dat qdos27.dat ../CBIOS/cbios_wbw.bin + cat qcp27.dat qdos27.dat ../CBIOS/cbios_wbw.bin > $@ diff --git a/Source/QPM/ReadMe.txt b/Source/QPM/ReadMe.txt new file mode 100644 index 00000000..9c760848 --- /dev/null +++ b/Source/QPM/ReadMe.txt @@ -0,0 +1,15 @@ +QPM27 +----- + +QPM is not available in source form. In this folder, you will find +qcp27.dat and qdos27.dat. These are the CCP and BDOS components for +QPM. They were created by running QINSTALL on a normal RomWBW +CP/M 2.2 system, then extracting the resultant CCP and BDOS binaries. + +When this folder goes through the build process, it just combines the +QPM CCP and BDOS binaries with the RomWBW CBIOS to create an up-to-date +QPM system image. + +QPM 2.7 is distributed at https://www.microcodeconsulting.com/. + +-- WBW 3:13 PM 9/9/2023 \ No newline at end of file diff --git a/Source/QPM/loader.asm b/Source/QPM/loader.asm new file mode 100644 index 00000000..6703e9aa --- /dev/null +++ b/Source/QPM/loader.asm @@ -0,0 +1,271 @@ +;=============================================================================== +; LOADER.ASM +; +; BOOTLOADER FOR ROMWBW DISK OPERATING SYSTEMS. +; +; CP/M DISK FORMATS ALLOW FOR RESERVED TRACKS THAT CONTAIN AN IMAGE OF THE +; OPERATING SYSTEM TO BE LOADED WHEN THE DISK IS BOOTED. THE OPERATING SYSTEM +; IMAGE ITSELF IS NORMALLY PREFIXED BY A 1-N SECTORS CONTAINING OS BOOTSTRAP +; CODE AND DISK METADATA. +; +; THE RETROBREW COMPUTING GROUP HAS BEEN USING A CONVENTION OF PREFIXING THE +; OS IMAGE WITH 3 SECTORS (512 BYTES X 3 FOR A TOTAL OF 1536 BYTES): +; +; SECTOR 1: IBM-PC STYLE BOOT BLOCK CONTAINING BOOTSTRAP, +; PARTITION TABLE, AND BOOT SIGNATURE +; SECTOR 2: RESERVED +; SECTOR 3: METADATA +; +; THE HARDWARE BIOS IS EXPECTED TO READ AND LOAD THE FIRST TWO SECTORS FROM THE +; DISK TO MEMORY ADDRESS $8000 AND JUMP TO THAT LOCATION TO BEGIN THE BOOT +; PROCESS. THE BIOS IS EXPECTED TO VERIFY THAT A STANDARD BOOT SIGNATURE +; OF $55, $AA IS PRESENT AT OFFSET $1FE-$1FF. IF THE SIGNATURE IS NOT FOUND, +; THE BIOS SHOULD ASSUME THE DISK HAS NOT BEEN PROPERLY INITIALIZED AND SHOULD +; NOT JUMP TO THE LOAD ADDRESS. +; +;=============================================================================== +; +#INCLUDE "../ver.inc" +; +SYS_ENT .EQU $E600 ; SYSTEM (OS) ENTRY POINT ADDRESS +SYS_LOC .EQU $D000 ; STARTING ADDRESS TO LOAD SYSTEM IMAGE +SYS_END .EQU $FE00 ; ENDING ADDRESS OF SYSTEM IMAGE +; +SEC_SIZE .EQU 512 ; DISK SECTOR SIZE +BLK_SIZE .EQU 128 ; OS BLOCK/RECORD SIZE +; +PREFIX_SIZE .EQU (SEC_SIZE * 3) ; 3 SECTORS +; +META_SIZE .EQU 32 ; SEE BELOW +META_LOC .EQU (PREFIX_SIZE - META_SIZE) +; +PT_LOC .EQU $1BE +PT_SIZ .EQU $40 +; +;------------------------------------------------------------------------------- +; SECTOR 1 +; +; THIS SECTOR FOLLOWS THE CONVENTIONS OF AN IBM-PC MBR CONTAINING THE OS +; BOOTSTRAP CODE, PARTITION TABLE, AND BOOT SIGNATURE +; +;---------------------------------------------------------------------------- +; +; THE FOLLOWING BOOTSTRAP CODE IS BUILT TO ASSUME IT WILL BE EXECUTED AT A STARTING +; ADDRESS OF $8000. THIS CODE IS *ONLY* FOR UNA. THE ROMWBW ROM BOOTLOADER +; USES THE METADATA TO LOAD THE OS DIRECTLY. +; + .ORG $8000 + JR BOOT +; +BOOT: + LD DE,STR_LOAD ; LOADING STRING + CALL PRTSTR ; PRINT + CALL PRTDOT ; PROGRESS +; + LD BC,$00FC ; UNA FUNC: GET BOOTSTRAP HISTORY + CALL $FFFD ; CALL UNA + JR NZ,ERROR ; HANDLE ERROR + CALL PRTDOT ; PROGRESS + LD B,L ; MOVE BOOT UNIT ID TO B +; + LD C,$41 ; UNA FUNC: SET LBA + LD DE,0 ; HI WORD ALWAYS ZERO + LD HL,3 ; IMAGE STARTS AT FOURTH SECTOR + CALL $FFFD ; SET LBA + JR NZ,ERROR ; HANDLE ERROR + CALL PRTDOT ; PROGRESS +; + LD C,$42 ; UNA FUNC: READ SECTORS + LD DE,$D000 ; STARTING ADDRESS FOR IMAGE + LD L,22 ; READ 22 SECTORS + CALL $FFFD ; DO READ + JR NZ,ERROR ; HANDLE ERROR + CALL PRTDOT ; PROGRESS +; + LD DE,STR_DONE ; DONE MESSAGE + CALL PRTSTR ; PRINT IT +; + LD D,B ; PASS BOOT UNIT TO OS + LD E,0 ; ASSUME LU IS ZERO + JP SYS_ENT ; GO TO SYSTEM +; +PRTCHR: + PUSH BC + PUSH DE + LD BC,$0012 ; UNIT 0, WRITE CHAR + LD E,A ; CHAR TO PRINT + CALL $FFFD ; PRINT + POP DE + POP BC + RET +; +PRTSTR: + PUSH BC + PUSH HL + LD BC,$0015 ; UNIT 0, WRITE CHARS UNTIL TERMINATOR + LD L,0 ; TERMINATOR IS NULL + CALL $FFFD ; PRINT + POP HL + POP BC + RET +; +PRTDOT: + LD A,'.' ; DOT CHARACTER + JR PRTCHR ; PRINT AND RETURN +; +; PRINT THE HEX BYTE VALUE IN A +; +PRTHEXBYTE: + PUSH AF + PUSH DE + CALL HEXASCII + LD A,D + CALL PRTCHR + LD A,E + CALL PRTCHR + POP DE + POP AF + RET +; +; CONVERT BINARY VALUE IN A TO ASCII HEX CHARACTERS IN DE +; +HEXASCII: + LD D,A + CALL HEXCONV + LD E,A + LD A,D + RLCA + RLCA + RLCA + RLCA + CALL HEXCONV + LD D,A + RET +; +; CONVERT LOW NIBBLE OF A TO ASCII HEX +; +HEXCONV: + AND $0F ;LOW NIBBLE ONLY + ADD A,$90 + DAA + ADC A,$40 + DAA + RET +; +ERROR: + LD DE,STR_ERR ; POINT TO ERROR STRING + CALL PRTSTR ; PRINT IT + HALT ; HALT +; +; DATA +; +STR_LOAD .DB "\r\nLoading",0 +STR_DONE .DB "\r\n",0 +STR_ERR .DB " Read Error!",0 +; + .ORG $ - $8000 ; BACK TO ABSOLUTE ADDRESS +; + .FILL PT_LOC - $,0 ; FILL TO START OF PARTITION TABLE +; +; STANDARD IBM-PC PARTITION TABLE. ALTHOUGH A +; PARTITION TABLE IS NOT RELEVANT FOR A FLOPPY DISK, IT DOES NO HARM. +; THE CONTENTS OF THE PARTITION TABLE CAN BE MANAGED BY FDISK80. +; +; BELOW WE ALLOW FOR 32 SLICES OF ROMWBW CP/M FILESYSTEMS +; FOLLOWED BY A FAT16 PARTITION. THE SLICES FOLLOW THE ORIGINAL +; HD512 ROMWBW FORMAT. IF THE DISK IS USING HD1K, A SEPARATE +; PARTITION TABLE WILL BE IN PLACE AND RENDER THIS PARTITION TABLE +; IRRELEVANT. +; +; THE CYL/SEC FIELDS ENCODE CYLINDER AND SECTOR AS: +; CCCCCCCC:CCSSSSSS +; 76543210:98543210 +; +PART0: + .DB 0 ; ACTIVE IF $80 + .DB 0 ; CHS START ADDRESS (HEAD) + .DW 0 ; CHS START ADDRESS (CYL/SEC) + .DB 0 ; PART TYPE ID + .DB 0 ; CHS LAST ADDRESS (HEAD) + .DW 0 ; CHS LAST ADDRESS (CYL/SEC) + .DW 0,0 ; LBA FIRST (DWORD) + .DW 0,0 ; LBA COUNT (DWORD) +PART1: + .DB 0 ; ACTIVE IF $80 + .DB 0 ; CHS START ADDRESS (HEAD) + .DW %1111111111000001 ; CHS START ADDRESS (CYL/SEC) + .DB 6 ; PART TYPE ID + .DB 15 ; CHS LAST ADDRESS (HEAD) + .DW %1111111111010000 ; CHS LAST ADDRESS (CYL/SEC) + .DW $4000,$0010 ; LBA FIRST (DWORD) + .DW $0000,$000C ; LBA COUNT (DWORD) +PART2: + .DB 0 ; ACTIVE IF $80 + .DB 0 ; CHS START ADDRESS (HEAD) + .DW 0 ; CHS START ADDRESS (CYL/SEC) + .DB 0 ; PART TYPE ID + .DB 0 ; CHS LAST ADDRESS (HEAD) + .DW 0 ; CHS LAST ADDRESS (CYL/SEC) + .DW 0,0 ; LBA FIRST (DWORD) + .DW 0,0 ; LBA COUNT (DWORD) +PART3: + .DB 0 ; ACTIVE IF $80 + .DB 0 ; CHS START ADDRESS (HEAD) + .DW 0 ; CHS START ADDRESS (CYL/SEC) + .DB 0 ; PART TYPE ID + .DB 0 ; CHS LAST ADDRESS (HEAD) + .DW 0 ; CHS LAST ADDRESS (CYL/SEC) + .DW 0,0 ; LBA FIRST (DWORD) + .DW 0,0 ; LBA COUNT (DWORD) +; +; THE END OF THE FIRST SECTOR MUST CONTAIN THE TWO BYTE BOOT SIGNATURE. +; +BOOTSIG .DB $55,$AA ; STANDARD BOOT SIGNATURE +; +;------------------------------------------------------------------------------- +; SECTOR 2 +; +; THIS SECTOR HAS NOT BEEN DEFINED AND IS RESERVED. +; +;---------------------------------------------------------------------------- +; + .FILL SEC_SIZE,0 ; JUST FILL SECTOR WITH ZEROES +; +;------------------------------------------------------------------------------- +; SECTOR 3 +; +; OS AND DISK METADATA +; +;---------------------------------------------------------------------------- +; + .FILL (BLK_SIZE * 3),0 ; FIRST 384 BYTES ARE NOT YET DEFINED +; +; THE FOLLOWING TWO BYTES ARE AN ADDITIONAL SIGNATURE THAT IS VERIFIED BY +; SOME HARDWARE BIOSES. +; +PR_SIG .DB $5A,$A5 ; SIGNATURE GOES HERE +; + .FILL (META_LOC - $),0 +; +; METADATA +; +PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN +PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?) +PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION +PR_LABEL .DB "Unlabeled$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!) + .DW 0 ; (2) DEPRECATED +PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM +PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM +PR_ENTRY .DW SYS_ENT ; (2) ADDRESS TO ENTER SYSTEM (OS) +; +#IF (META_SIZE != ($ - META_LOC)) + .ECHO "META_SIZE VALUE IS WRONG!!!\r\n" + !!! +#ENDIF +; +#IF ($ != PREFIX_SIZE) + .ECHO "LOADER PREFIX IS WRONG SIZE!!!\r\n" + !!! +#ENDIF +; + .END diff --git a/Source/QPM/qcp27.dat b/Source/QPM/qcp27.dat new file mode 100644 index 00000000..e48dc5ff Binary files /dev/null and b/Source/QPM/qcp27.dat differ diff --git a/Source/QPM/qdos27.dat b/Source/QPM/qdos27.dat new file mode 100644 index 00000000..69306c7a Binary files /dev/null and b/Source/QPM/qdos27.dat differ diff --git a/Source/ver.inc b/Source/ver.inc index 77e63874..de6d8147 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 3 #DEFINE RUP 0 #DEFINE RTP 0 -#DEFINE BIOSVER "3.3.0-dev.50" +#DEFINE BIOSVER "3.3.0-dev.51" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index be524e76..1b26d219 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 3 rup equ 0 rtp equ 0 biosver macro - db "3.3.0-dev.50" + db "3.3.0-dev.51" endm