Compare commits

...

938 Commits

Author SHA1 Message Date
Wayne Warthen
fb0dde5ef8 Update Generated Doc Files 2020-03-27 15:51:09 -07:00
Wayne Warthen
0451620de9 Merge pull request #108 from feilipu/master
ReadMe.md
2020-03-27 15:40:38 -07:00
Phillip Stevens
ef7bdc4b29 Update ReadMe.md 2020-03-28 09:30:20 +11:00
Phillip Stevens
f0ac9973d0 Update ReadMe.txt 2020-03-28 09:28:32 +11:00
Phillip Stevens
34fc468265 update ReadMe.md
Remove some odd `\`.
2020-03-28 09:21:33 +11:00
Phillip Stevens
0046ba9a2c Merge pull request #24 from wwarthen/master
update to master
2020-03-28 09:19:08 +11:00
Wayne Warthen
c37a97308e Update SD Card How-To
Thanks David!
2020-03-27 14:46:27 -07:00
Wayne Warthen
81390b846c Bump to Version 3.0 2020-03-27 10:38:38 -07:00
Wayne Warthen
c24dbb2b98 Merge pull request #107 from feilipu/master
config - doc / comment language consistency
2020-03-26 16:54:19 -07:00
Phillip Stevens
6726f1be88 cfg - mutex consistent config language 2020-03-27 10:04:25 +11:00
Phillip Stevens
be5a148d88 Merge pull request #23 from wwarthen/master
update to master
2020-03-27 09:52:31 +11:00
Wayne Warthen
e15546e051 Pre-release for Testing 2020-03-26 15:34:34 -07:00
Wayne Warthen
47774eacab Config File Tuning 2020-03-26 15:32:26 -07:00
Wayne Warthen
6092737c9c ZDE Upgrade
- Upgraded ZDE 1.6 -> 1.6a
2020-03-26 13:39:05 -07:00
Wayne Warthen
f2fb76341e Minor Changes
- Slight change to ZAP configuration
- Added ZSDOS.ZRL to NZCOM image
2020-03-26 10:28:09 -07:00
Phillip Stevens
cb37a34c8b Merge pull request #22 from wwarthen/master
update to master
2020-03-26 14:40:21 +11:00
Wayne Warthen
60c3ff8a41 Cleanup
- Fix SuperZAP to work under NZCOM and ZPM3
- Finalize standard config files
2020-03-25 19:54:55 -07:00
Wayne Warthen
0f37e64f35 Cleanup 2020-03-24 17:46:26 -07:00
Wayne Warthen
5244ea9e79 FD Motor Timeout
- Made FDC motor timeout smaller and more consistent across different speed CPUs
- Added "boot" messaging to RTC
2020-03-24 12:48:48 -07:00
Wayne Warthen
f11962ef8e Bug Fixes
- Init RAM disk at boot under CP/M 3
- Fix ACR activation in TUNE
2020-03-23 19:54:17 -07:00
Wayne Warthen
4862827058 Remove OSLDR
The OSLDR application was badly broken and almost impossible to fix with new expanded OS support.
2020-03-23 11:41:59 -07:00
Wayne Warthen
2150b04349 Documentation Cleanup 2020-03-22 16:24:37 -07:00
Phillip Stevens
001bbaaeec Merge pull request #21 from wwarthen/master
update to master
2020-03-23 09:54:56 +11:00
Wayne Warthen
04d5fcd9a4 Documentation Updates 2020-03-22 14:44:24 -07:00
Wayne Warthen
cc8d62969f Fix IM 0 Build Error in ACIA 2020-03-22 09:03:15 -07:00
Wayne Warthen
ee4855cd14 Documentation Cleanup 2020-03-22 08:40:06 -07:00
Wayne Warthen
ea600edcd2 Merge pull request #106 from feilipu/master
docs - a few updates
2020-03-22 07:40:44 -07:00
Phillip Stevens
1a60676f44 doc - a few random fixes 2020-03-22 15:01:07 +11:00
Phillip Stevens
5943b0c5e5 Merge pull request #20 from wwarthen/master
Documentation Updates
2020-03-22 14:01:11 +11:00
Wayne Warthen
77caac761f Documentation Updates 2020-03-21 17:59:45 -07:00
Phillip Stevens
df29795904 Merge pull request #19 from wwarthen/master
update to master
2020-03-21 20:49:22 +11:00
Wayne Warthen
5264f2f4d2 Documentation Updates 2020-03-20 10:44:53 -07:00
Wayne Warthen
cae65413ee Create Common.inc 2020-03-18 16:38:48 -07:00
Wayne Warthen
9a19ae21aa Documentation Updates 2020-03-18 15:31:37 -07:00
Wayne Warthen
a86411682b Documentation Updates 2020-03-18 11:41:51 -07:00
Wayne Warthen
77fd7f0e5d Documentation Update 2020-03-17 19:55:43 -07:00
Wayne Warthen
ac12f7fe1a Documentation Update 2020-03-17 12:03:16 -07:00
Wayne Warthen
508e766ea5 Documentation Cleanup 2020-03-16 19:27:09 -07:00
Wayne Warthen
3a10e437c8 Update util.z80 2020-03-15 14:07:19 -07:00
Wayne Warthen
a8d2f3bd39 Minor Bug Fixes
- Disk assignment edge case
- CP/M 3 accidental fall thru
- Cosmetic updates
2020-03-15 13:45:32 -07:00
Wayne Warthen
d1abba5378 Fix CONSOLE Constant
Rename CIODEV_CONSOLE constant to CIO_CONSOLE because it is a unit code, not a device type code.

Retabify TastyBasic.
2020-03-15 09:44:15 -07:00
Wayne Warthen
242a1ce108 Update vdu.asm
Removed a hack in VDU driver that has existed for 8 years.  :-)
2020-03-15 09:09:59 -07:00
Wayne Warthen
09c673fbd0 Update RomWBW Architecture
General refresh for v2.9.2
2020-03-14 21:44:51 -07:00
Wayne Warthen
bbd1ce6168 Config File Cleanups 2020-03-14 14:37:18 -07:00
Wayne Warthen
1bdf833e2c Build Script Cleanups 2020-03-14 12:06:56 -07:00
Wayne Warthen
daf0430c6f Prerelease 36
General cleanup
2020-03-14 10:50:34 -07:00
Wayne Warthen
06b685df21 GitHub CI Updates
Adds automation of build and release assets upon release.
2020-03-14 10:34:13 -07:00
Wayne Warthen
dfd70b8d63 Cleanup
Removed hack from Images Makefile.  Fixed use of DEFSERCFG in various places.
2020-03-13 10:45:33 -07:00
Phillip Stevens
b379b94f97 Merge pull request #18 from wwarthen/master
update to master
2020-03-13 11:56:10 +11:00
Wayne Warthen
00d204be75 Update Makefile
Remove ROM variants that just have the HBIOS MUTEX enabled.  Users can easily enable this in a custom build.
2020-03-12 17:24:59 -07:00
Wayne Warthen
3526355842 Merge pull request #104 from feilipu/master
hbios - remove mutex special files
2020-03-12 17:14:15 -07:00
Wayne Warthen
76510fee5c Create FAT.com
Completing change of case in extension of FAT.com.
2020-03-12 17:12:45 -07:00
Wayne Warthen
7daf65c01c Delete FAT.COM
Changing case of FAT.COM extension to lowercase.
2020-03-12 17:11:45 -07:00
Wayne Warthen
f036deef33 Misc. Cleanup
Includes some minor improvements to contents in some disk images.
2020-03-12 17:10:11 -07:00
Phillip Stevens
6f0940e4b5 HBIOS SCZ180 - adjust mutex comment 2020-03-13 09:22:32 +11:00
Phillip Stevens
97c533c7c5 HBIOS SCZ180 - remove mutex special files 2020-03-13 08:56:20 +11:00
Phillip Stevens
fdad9afc05 Merge pull request #17 from wwarthen/master
update to master
2020-03-13 08:44:49 +11:00
Wayne Warthen
db81d1a28b Add SC131 Support
Also cleaned up some ReadMe files.
2020-03-12 11:40:11 -07:00
Wayne Warthen
eb250cc178 Merge pull request #103 from b1ackmai1er/master
Nascom BASIC update
2020-03-09 20:14:22 -07:00
b1ackmai1er
d98ce895f8 Update nascom.asm
Fixup top screen line not showing
2020-03-08 22:50:02 +08:00
b1ackmai1er
b91871114a Update nascom.asm
Make CLS clear vdu screen
2020-03-08 20:48:56 +08:00
b1ackmai1er
aeb4bc6245 Update nascom.asm
Set default build. update initialization
2020-03-08 16:48:28 +08:00
b1ackmai1er
6b47216266 Merge branch 'master' of https://github.com/b1ackmai1er/RomWBW 2020-03-08 15:36:30 +08:00
b1ackmai1er
c7dbee6375 Update nascom.asm
Setup ECB-VDU build option, remove debug code
2020-03-08 15:35:58 +08:00
b1ackmai1er
de6069b7d0 Merge pull request #100 from wwarthen/master
Resync
2020-03-08 10:03:31 +08:00
Wayne Warthen
f9727ec384 Merge pull request #102 from feilipu/master
hbios - tmp stack tweak
2020-03-07 10:23:30 -08:00
b1ackmai1er
b939f9d4a3 Update nascom.asm
Optimization
2020-03-08 01:27:00 +08:00
Phillip Stevens
b59dc1cc14 Update hbios.asm
Comments on HBX_BUF usage.
2020-03-08 01:23:53 +11:00
Phillip Stevens
3fee1c5d20 hbios - temp stack tweak 2020-03-07 23:44:54 +11:00
Phillip Stevens
606fac6fa5 Merge pull request #16 from wwarthen/master
update to master
2020-03-07 23:24:59 +11:00
b1ackmai1er
8058a3c3e0 Update nascom.asm
Optimization
2020-03-07 13:49:53 +08:00
b1ackmai1er
b3731be4b1 Merge branch 'master' of https://github.com/b1ackmai1er/RomWBW 2020-03-07 10:40:27 +08:00
b1ackmai1er
52af91e066 Update nascom.asm
Cleanup
2020-03-07 10:40:16 +08:00
b1ackmai1er
280511b990 Merge pull request #99 from wwarthen/master
Resync
2020-03-07 09:46:17 +08:00
Wayne Warthen
83db582b92 Build Fixes 2020-03-06 17:21:48 -08:00
Wayne Warthen
490c865ea1 Build Test 2020-03-06 16:56:27 -08:00
Wayne Warthen
9fe5004756 Build Test 2020-03-06 16:40:47 -08:00
Wayne Warthen
86765620d7 Update Makefile 2020-03-06 15:55:30 -08:00
Wayne Warthen
02c051f47c Update Makefile 2020-03-06 14:56:48 -08:00
Wayne Warthen
2c2df76f15 Clean up
Make version include files common.
2020-03-06 14:23:55 -08:00
Wayne Warthen
1f6ef60599 IDE & PPIDE Cleanup 2020-03-06 11:36:17 -08:00
b1ackmai1er
85bc2c8792 Update nascom.asm
Optimization, cleanup, tabs and white spaces
2020-03-06 19:23:16 +08:00
b1ackmai1er
1131480f44 Merge pull request #98 from wwarthen/master
Finalize Pre-release 34
2020-03-06 13:52:23 +08:00
Phillip Stevens
b92352c480 Merge pull request #15 from wwarthen/master
Finalize Pre-release 34
2020-03-06 15:26:02 +11:00
Wayne Warthen
1831141abd Finalize Pre-release 34
Final support for FreeRTOS
2020-03-05 12:54:22 -08:00
b1ackmai1er
332831a8cc Initial Nascom basic ecb-vdu graphics
set and reset for 80x25b screen with 256 character mod
2020-03-05 21:53:22 +08:00
b1ackmai1er
0fc1ec5c93 Merge pull request #97 from wwarthen/master
Resync
2020-03-05 19:50:50 +08:00
Phillip Stevens
7c2fcf6e2a Merge pull request #14 from wwarthen/master
update to master
2020-03-05 14:45:50 +11:00
Wayne Warthen
8e99303e2f Add HBIOS MuTex 2020-03-04 16:42:06 -08:00
Wayne Warthen
a8357047b2 Update hbios.asm
Adjusted used of DI/EI for PEEK and POKE to regain a bit of INTSTK space.  Added code so that HB_INVBNK can be used as a flag indicating if HBIOS is active, $FF is inactive, anything else means active.
2020-03-04 13:00:35 -08:00
Wayne Warthen
995bb335b8 Merge pull request #100 from feilipu/master
hbios - wrap hbx_bnkcpy hbx_peek hbx_poke in di/ei
2020-03-04 11:13:29 -08:00
Phillip Stevens
f8d0fda179 hbios - adjust hbx_peek hbx_poke guards 2020-03-04 21:18:48 +11:00
b1ackmai1er
b801d793e6 Merge pull request #96 from wwarthen/master
Resync
2020-03-04 16:48:13 +08:00
Phillip Stevens
b45e531127 hbios - wrap hbx_bnkcpy 2020-03-04 18:33:19 +11:00
Phillip Stevens
7cef05148f Merge pull request #13 from wwarthen/master
update to master
2020-03-04 17:40:58 +11:00
Wayne Warthen
a207ede5be Update hbios.asm
Add improved interrupt protection to HBIOS PEEK, POKE, and BNKCPY functions.
2020-03-03 20:40:46 -08:00
Wayne Warthen
a40e7961a1 Build Process Updates
Minor udpates to build process to improve consistency between Windows and Mac/Linux builds.
2020-03-03 16:07:35 -08:00
Wayne Warthen
8b7c9e10c3 Update hbios.asm
Minor cosmetic changes.
2020-03-03 12:45:16 -08:00
Wayne Warthen
d1b96c340f Merge pull request #99 from feilipu/master
hbios - tidy TMPSTK
2020-03-03 10:59:18 -08:00
b1ackmai1er
cf4baa1270 Merge pull request #95 from wwarthen/master
Resync
2020-03-03 17:17:59 +08:00
Phillip Stevens
4eeba4e48b HBIOS - clean up TMPSTK 2020-03-03 18:53:59 +11:00
Wayne Warthen
f5c32423bc Update ReadMe.txt 2020-03-02 20:44:44 -08:00
Phillip Stevens
e7f9116c30 Merge pull request #12 from wwarthen/master
HBIOS Proxy Temp Stack Enhancement
2020-03-03 11:14:43 +11:00
Wayne Warthen
7c60884847 HBIOS Proxy Temp Stack Enhancement
Reuse the bounce buffer area as the temporary stack space required briefly in HBX_INVOKE when transitioning banks.  Increases size of temporary stack space to 64 bytes.
2020-03-02 15:01:25 -08:00
b1ackmai1er
d4f9ffbc6b Merge pull request #94 from wwarthen/master
Resync
2020-03-02 10:29:39 +08:00
Phillip Stevens
fbcaeeb6a2 Merge pull request #11 from wwarthen/master
update to master
2020-03-02 13:08:52 +11:00
Wayne Warthen
41ecdeccd0 cpmtools Update
Updated cpmtools applications (Windows only).  Removed hack in diskdefs that is no longer required.
2020-03-01 13:25:38 -08:00
Wayne Warthen
fb136ba200 Merge pull request #95 from electrified/modify-ignore
Make .gitignores for Tools/unix more specific
2020-03-01 13:06:30 -08:00
ed
81756bfb05 Make .gitignores for Tools/unix more specific 2020-03-01 11:21:14 +00:00
b1ackmai1er
31372884ea Merge pull request #93 from wwarthen/master
Update Build.sh
2020-03-01 16:48:08 +08:00
Wayne Warthen
b574faed39 Update Build.sh 2020-02-29 22:36:10 -08:00
b1ackmai1er
fdbb6752f9 Merge pull request #92 from wwarthen/master
Update Makefile
2020-03-01 14:20:14 +08:00
Wayne Warthen
462fe228aa Update Makefile 2020-02-29 21:00:32 -08:00
b1ackmai1er
462ceffeb7 Merge pull request #91 from wwarthen/master
Resync
2020-03-01 13:00:24 +08:00
Wayne Warthen
2bce5224f6 Create ReadMe.txt 2020-02-29 20:47:44 -08:00
Wayne Warthen
f888cc94ba Merge pull request #94 from vipoo/dean/linux-tweaks
Dean/linux tweaks
2020-02-29 20:36:57 -08:00
Wayne Warthen
51a1c6eb5b Merge pull request #93 from b1ackmai1er/master
Nascom manual update
2020-02-29 19:59:31 -08:00
Dean Netherton
a85f962a47 Fix issue with Apps/Tune not making
If dest directory does not exist, fails to make Apps
2020-03-01 14:07:51 +11:00
b1ackmai1er
052475d492 Update Microsoft NASCOM BASIC.docx
Nascom manual, text version by Jan S (full name unknown)
2020-03-01 10:23:24 +08:00
Dean Netherton
d211f0977d Fix to HBIOS/build.sh
When adding files to rom disk, if files were missing, it would error out.

It appears the intent is to skip non-existing files.

Updated to log out correctly for missing files - and continue operation.
2020-03-01 12:48:49 +11:00
Dean Netherton
81c4913c72 Build.sh: marked as executable
chmod +x Build.sh
2020-03-01 12:48:40 +11:00
Dean Netherton
462f786c18 Removed Tunes/clean.cmd and Tunes/ReadMe.txt - as make clean removes them 2020-03-01 12:45:05 +11:00
Dean Netherton
82a6e66269 Added an gitignore files to exclude generated files 2020-03-01 12:44:52 +11:00
b1ackmai1er
136a8365b1 Merge pull request #90 from wwarthen/master
Update for GitHub Build
2020-03-01 08:52:33 +08:00
Wayne Warthen
edca77176f Update for GitHub Build
Case issue in TASM includes showing up in GitHub build.  This should correct that.
2020-02-29 10:26:39 -08:00
b1ackmai1er
aba91a61a0 Merge pull request #89 from wwarthen/master
Resync
2020-02-29 16:02:07 +08:00
Wayne Warthen
3ac12fba98 Update Makefile 2020-02-28 22:01:39 -08:00
Wayne Warthen
4790b02168 Update Makefile 2020-02-28 21:42:32 -08:00
Wayne Warthen
efde97c169 Update Makefile 2020-02-28 21:35:02 -08:00
b1ackmai1er
8485115118 Merge pull request #88 from wwarthen/master
Resync
2020-02-29 13:31:15 +08:00
Wayne Warthen
2f21caca71 Update Makefile 2020-02-28 21:20:54 -08:00
Wayne Warthen
29457ea214 Update Makefile 2020-02-28 21:08:35 -08:00
Wayne Warthen
fd5a035453 Update Makefile 2020-02-28 20:55:58 -08:00
Wayne Warthen
d3d7225a79 Update Makefile 2020-02-28 20:45:22 -08:00
Wayne Warthen
d427fee7ee Update Makefile 2020-02-28 20:27:40 -08:00
Wayne Warthen
eebed062ad Update Makefile 2020-02-28 20:22:12 -08:00
Wayne Warthen
1b5420c33b Merge branch 'master' of https://github.com/wwarthen/RomWBW 2020-02-28 19:48:03 -08:00
Wayne Warthen
158658c3fc Update Makefile
Build all ROM variants by default in Linux/Mac build.
2020-02-28 19:47:33 -08:00
Wayne Warthen
def32eda19 Update build.yml
Added "make clean" which will remove temporary files without removing final binary outputs.
2020-02-28 19:34:37 -08:00
b1ackmai1er
41989e1151 Merge pull request #87 from wwarthen/master
Resync
2020-02-29 10:19:46 +08:00
Wayne Warthen
39a6474820 Merge branch 'master' of https://github.com/wwarthen/RomWBW 2020-02-28 16:02:16 -08:00
Wayne Warthen
ef1c610c58 Bump Pre-release Version 2020-02-28 16:02:13 -08:00
Wayne Warthen
07dd8eba32 Merge pull request #90 from electrified/master
Add github action for building RomWBW
2020-02-28 15:58:16 -08:00
ed
b60a3f95b8 Add github action for building RomWBW 2020-02-28 23:49:28 +00:00
Wayne Warthen
4cc218a450 UNA Catchup
UNA support was lacking some of the more recent behavior changes.  This corrects most of it.
2020-02-28 15:26:13 -08:00
b1ackmai1er
8f9e7f3990 Merge pull request #86 from wwarthen/master
Resync
2020-02-28 13:24:08 +08:00
Wayne Warthen
5f07834b47 Misc. Cleanup 2020-02-27 18:40:20 -08:00
Wayne Warthen
0fb8a2d2ff Update sd.asm
Back out hack for uz80as now that Curt fixed it.
2020-02-27 14:45:58 -08:00
Wayne Warthen
59d6099865 Update Makefile
Makefile enhancement to better handle ncurses library from Bob Dunlop.
2020-02-27 14:03:44 -08:00
b1ackmai1er
8ba8a3b43a Merge pull request #85 from wwarthen/master
Resync
2020-02-27 16:35:37 +08:00
Wayne Warthen
e0522bce3f Merge pull request #88 from cm68/master
uz80as expression parser fix for .db ~(1|2) != 0xfe
2020-02-26 16:32:13 -08:00
curt mayer
f8c4ee1183 added diff build option 2020-02-26 15:42:16 -08:00
curt mayer
fcc736bd45 fixed expression parser bug : ~(1|2) returned 0xfe 2020-02-26 15:05:26 -08:00
b1ackmai1er
56e75fc46e Merge pull request #84 from wwarthen/master
Misc. Cleanup
2020-02-26 16:34:36 +08:00
Wayne Warthen
b951a844ca Misc. Cleanup 2020-02-25 15:04:04 -08:00
b1ackmai1er
e6e0bb5287 Merge pull request #83 from wwarthen/master
Upgrade NZCOM to latest
2020-02-25 16:32:25 +08:00
Wayne Warthen
4add4bc237 Upgrade NZCOM to latest 2020-02-24 17:13:07 -08:00
b1ackmai1er
dc49632ddc Merge pull request #82 from wwarthen/master
Resync
2020-02-24 16:31:12 +08:00
Wayne Warthen
62fd42edc6 Merge pull request #86 from cm68/master
bit-identical with windows
2020-02-23 20:29:07 -08:00
curt mayer
621083947c clean, identical build. font source generator emitted .align. this does not match the windows build 2020-02-23 17:46:37 -08:00
curt mayer
9bc1af2f0f Merge remote-tracking branch 'upstream/master' 2020-02-23 15:07:55 -08:00
curt mayer
e73e0ba5f1 diff fixes 2020-02-23 15:04:52 -08:00
Wayne Warthen
c9571fb3ed Merge pull request #85 from cm68/master
fixes for blackmailer issue and hd64180
2020-02-23 12:52:16 -08:00
curt mayer
1db0b09378 added support for binary diff 2020-02-23 09:14:21 -08:00
curt mayer
4f824a04a8 added SBC_std.rom to default build 2020-02-22 22:49:27 -08:00
curt mayer
6ec8ca174f added N8 capability 2020-02-22 22:36:42 -08:00
curt mayer
1d5c5b39a5 default to hd64180 2020-02-22 22:35:29 -08:00
curt mayer
f6954a33a6 added align and 0x55 hex syntax 2020-02-22 22:34:42 -08:00
curt mayer
263de80c6c added code to handle multiple platform rom builds with rom size override 2020-02-22 21:47:02 -08:00
curt mayer
93bfdbc45d added clobber 2020-02-22 21:30:18 -08:00
curt mayer
27d8fb3ac1 removed strip. breaks on osx 2020-02-22 21:26:56 -08:00
curt mayer
32e34cb656 added lzsa 2020-02-22 21:25:35 -08:00
curt mayer
9799120899 added lzsa 2020-02-22 21:25:21 -08:00
curt mayer
6a1781b9ed diff soft failure and casefn speedup 2020-02-22 21:02:18 -08:00
curt mayer
68a9dea630 prerequisite verbosity 2020-02-22 21:01:25 -08:00
curt mayer
1bc9a0bcc3 install to ../HBIOS 2020-02-22 20:58:03 -08:00
curt mayer
915cc50228 this file is copied from optdsk.lib or optcmd.lib 2020-02-22 20:56:08 -08:00
curt mayer
5fe4a5db4c fixed build 2020-02-22 20:37:53 -08:00
curt mayer
dad5a2e004 added real cache validation 2020-02-22 19:58:59 -08:00
curt mayer
c28e80e836 added directory tag so . isn't matched all over the place 2020-02-22 19:23:46 -08:00
curt mayer
39822a9864 removed strip. breaks osx 2020-02-22 19:08:00 -08:00
curt mayer
3eebb5438b added directory mapping cache. if the same directory is being hit
as last run, we don't need to rebuild the map.  will likely break if
you are running more than one at a time, in that the cache will be
ineffective.  also, if the directory contents change, this will also break.
2020-02-22 19:04:00 -08:00
curt mayer
7707ea860d build fonts 2020-02-22 18:07:00 -08:00
curt mayer
52a692030e added rule for font source generation 2020-02-22 18:05:03 -08:00
b1ackmai1er
b662ee1aa2 Revert linux bin2asm font stuff 2020-02-23 09:55:46 +08:00
curt mayer
39f7403b78 added bin2asm for font file source creation 2020-02-22 17:50:14 -08:00
curt mayer
56f4b14ef6 Merge branch 'master' of https://github.com/cm68/RomWBW 2020-02-22 12:16:33 -08:00
curt mayer
363c844eec added tests 2020-02-22 12:15:46 -08:00
curt mayer
f6d979a084 fixed quoted double quote bug, added tests 2020-02-22 12:14:13 -08:00
b1ackmai1er
1d52dd7433 Add bin2asm for linus and update build to process font files under linix 2020-02-22 18:49:54 +08:00
curt mayer
349b3eb108 make compile shut up about conditionals 2020-02-21 10:10:46 -08:00
b1ackmai1er
26a24be24e Merge pull request #81 from wwarthen/master
Resync
2020-02-21 14:07:38 +08:00
Wayne Warthen
94d5c0f5ba Merge pull request #82 from cm68/master
clean build, bit-identical.
2020-02-20 18:45:32 -08:00
Wayne Warthen
d139b592ed Update sd.asm
Cosmetic fix.
2020-02-20 18:36:28 -08:00
curt mayer
088862634d Merge remote-tracking branch 'upstream/master' 2020-02-20 17:39:49 -08:00
curt mayer
c41d73b850 credit and primitive instructions 2020-02-20 17:29:56 -08:00
curt mayer
8cab372267 the windows build somehow thinks that these filesystems are cpm3. 2020-02-20 17:29:08 -08:00
Wayne Warthen
bc9d44b476 Multi-boot fixes 2020-02-20 17:17:44 -08:00
curt mayer
25ce672106 suppress warnings 2020-02-20 16:57:40 -08:00
curt mayer
1d149c3f75 added chmod for execution 2020-02-20 16:56:58 -08:00
curt mayer
a7bc7bb16f quiet clean 2020-02-20 16:56:23 -08:00
curt mayer
5e1022bb86 added hack to handle tunes 2020-02-20 16:55:40 -08:00
curt mayer
ec899e6920 clean diff 2020-02-20 16:55:09 -08:00
curt mayer
ab100bf3bc silenced clean 2020-02-20 16:29:26 -08:00
curt mayer
bac0c76a6d can't have non-tunes in Tunes 2020-02-20 15:45:09 -08:00
curt mayer
174722f387 added more diff support 2020-02-20 15:42:09 -08:00
curt mayer
3d916a90d4 avoid having any non-tunes in Tunes directory 2020-02-20 15:39:55 -08:00
curt mayer
8fc0274044 linux build using good defaults 2020-02-20 15:23:39 -08:00
curt mayer
a03d15fd2f handle .ds correctly, and forward refs in .if 2020-02-20 11:38:32 -08:00
curt mayer
2cc61c3804 slightly more verbose diff 2020-02-20 11:36:30 -08:00
curt mayer
c585594197 added extra rule for diffing 2020-02-20 11:35:46 -08:00
curt mayer
1c227f7270 removed extra HBIOS 2020-02-20 11:33:52 -08:00
curt mayer
1099b358a0 fixed 2 syntax errors that TASM allows 2020-02-20 11:33:11 -08:00
curt mayer
0264711f9f fix for TASM bug using single quote inside string 2020-02-20 11:32:10 -08:00
curt mayer
8fb73c95f4 coding changes for clean diff 2020-02-20 11:31:49 -08:00
curt mayer
9d37b4a59b fixed broken usage of .ds. should have been .fill 2020-02-20 11:29:04 -08:00
b1ackmai1er
ba29011021 Merge pull request #80 from wwarthen/master
Resync
2020-02-20 05:28:19 +08:00
Wayne Warthen
6ea1a8f840 Update biosldr.z80 2020-02-19 13:02:01 -08:00
Wayne Warthen
331cbce5c9 Update Clean.cmd 2020-02-19 11:08:39 -08:00
Wayne Warthen
a44572f9bf Merge pull request #81 from cm68/master
clean unix build after merge
2020-02-19 11:01:51 -08:00
curt mayer
41ed037935 fixes for make diff 2020-02-19 02:47:25 -08:00
b1ackmai1er
ad03d3e4ba Merge pull request #79 from wwarthen/master
Resync
2020-02-19 16:46:29 +08:00
curt mayer
c414664200 build fix for images 2020-02-19 00:17:58 -08:00
curt mayer
cdaf04eaed Merge remote-tracking branch 'upstream/master'
removed .gitignore
2020-02-18 23:10:43 -08:00
curt mayer
155959b430 clean merge 2020-02-18 23:06:53 -08:00
curt mayer
ae9ec4c1d8 clean build 2020-02-18 23:05:54 -08:00
curt mayer
d7232abb60 clean build 2020-02-18 22:03:23 -08:00
Wayne Warthen
2604212a97 Cleanup 2020-02-18 21:05:37 -08:00
Wayne Warthen
59ffef2bf2 Tweaks
A few things needed tweaking after the Unix build update.  No functional changes.
2020-02-18 18:30:17 -08:00
Wayne Warthen
3065c077be Merge pull request #80 from cm68/master
Makefiles and tooling for linux and os-x
2020-02-18 17:01:21 -08:00
curt mayer
22d4825e2c unneeded file 2020-02-18 15:31:55 -08:00
curt mayer
da9520466d Merge remote-tracking branch 'upstream/master' 2020-02-18 15:29:03 -08:00
curt mayer
7a4b88e7b5 added cpmldr.com 2020-02-18 14:57:29 -08:00
curt mayer
320c905578 name of zpmldr in target 2020-02-18 14:54:25 -08:00
curt mayer
050aa3096b more gitignore 2020-02-18 14:50:43 -08:00
curt mayer
c205e1b314 clean make?! 2020-02-18 14:49:28 -08:00
curt mayer
d31c146a7b simplified due to removal of install rule 2020-02-18 14:23:25 -08:00
curt mayer
b765749c3d removed install rule. confusing. 2020-02-18 14:22:45 -08:00
b1ackmai1er
5ada00af9f Merge pull request #78 from wwarthen/master
Resync
2020-02-19 06:12:38 +08:00
Wayne Warthen
88d7c37424 Boot from any slice 2020-02-18 14:08:21 -08:00
Wayne Warthen
2bfe845f6d Merge pull request #79 from b1ackmai1er/master
Supporting CP/M 3 Documentation
2020-02-18 10:32:02 -08:00
b1ackmai1er
08b4d10367 Update NASCOM Reference document 2020-02-18 21:11:02 +08:00
b1ackmai1er
3e9bbbffe3 Compressed pdfs 2020-02-18 20:10:04 +08:00
b1ackmai1er
bab0628f0a Merge branch 'master' of https://github.com/b1ackmai1er/RomWBW 2020-02-18 18:56:25 +08:00
b1ackmai1er
d0ee590a1c Supporting CP/M 3 Documentation
You may wish to include some or all of this.
2020-02-18 18:55:19 +08:00
b1ackmai1er
6d5a900c3e Merge pull request #77 from wwarthen/master
Load CP/M 3 from disk
2020-02-18 18:21:31 +08:00
Wayne Warthen
0510a02447 Load CP/M 3 from disk
Includes updated SYSCOPY application to put loader image on system tracks.
2020-02-17 15:58:17 -08:00
curt mayer
f4609159fc cpm22 paths 2020-02-17 02:11:54 -08:00
curt mayer
85967e46f3 images and prop eeprom 2020-02-17 02:04:18 -08:00
curt mayer
ac18ab9c19 cleanup after merge 2020-02-17 01:44:49 -08:00
curt mayer
0a52d6922e Merge branch 'master' of github.com:wwarthen/RomWBW 2020-02-16 23:23:53 -08:00
curt mayer
ed2f6097ef added bpsys.bak, a side-effect of windows build 2020-02-16 19:06:21 -08:00
curt mayer
f44288082c towards a clean make and 'git status' 2020-02-16 19:03:19 -08:00
curt mayer
964cc4b91a fixed include order dependency 2020-02-16 17:41:43 -08:00
curt mayer
81fe427352 fixed comment leadin 2020-02-16 17:40:51 -08:00
b1ackmai1er
e02bc96ce2 Merge pull request #76 from wwarthen/master
Resync
2020-02-15 13:45:11 +08:00
Wayne Warthen
437a0d39b7 BPBIOS system segment enhancements 2020-02-14 17:22:56 -08:00
Wayne Warthen
f6f995d407 Merge pull request #78 from b1ackmai1er/master
Update cbios.asm
2020-02-14 11:07:44 -08:00
b1ackmai1er
9452540c75 Update cbios.asm
Change RAMF to 512 directory entries as 4Mb drive space cannot be effectively used without   enough directory entries and extents to hold a large quantity of small files or a small qty of large files.
2020-02-14 23:32:48 +08:00
b1ackmai1er
f039b3b77e Merge pull request #75 from wwarthen/master
BPBIOS Updates
2020-02-14 18:52:59 +08:00
curt mayer
f30c0aa619 clean build try 2020-02-13 18:40:48 -08:00
curt mayer
628bd4f4b2 source order output 2020-02-13 18:40:27 -08:00
Wayne Warthen
3da911edf4 BPBIOS Updates 2020-02-13 16:01:19 -08:00
b1ackmai1er
7304c0c0d0 Merge pull request #74 from wwarthen/master
Resync
2020-02-13 17:05:28 +08:00
Wayne Warthen
84ce67a816 Update Tune.asm
Updated port addresses for Marten's sound card.
2020-02-12 15:23:17 -08:00
Wayne Warthen
e8e57e5e94 Update Tune.asm
TUNE app updated with more flexible hardware configuration detection.
2020-02-12 14:55:38 -08:00
Wayne Warthen
3f9b41e891 Create SC126_How-To_No_1_Serial_Comms_Using_Minicom.pdf
Thanks to David Reese for another userful How-To document.
2020-02-12 11:25:51 -08:00
b1ackmai1er
f91dfd7b69 Merge pull request #73 from wwarthen/master
Resync
2020-02-12 17:57:23 +08:00
Wayne Warthen
5d35a80cf7 Update romldr.asm 2020-02-11 19:31:30 -08:00
Wayne Warthen
a9b400f076 Update ide.asm
Cosmetic bug fix
2020-02-11 17:10:11 -08:00
Wayne Warthen
382b5594f0 Support multiple devices in IDE driver 2020-02-11 17:01:55 -08:00
Wayne Warthen
0445b3547c Adjust for older PowerShell versions 2020-02-11 14:44:32 -08:00
Wayne Warthen
608356cc9b Merge pull request #77 from b1ackmai1er/master
Add a user rom pack template to romldr
2020-02-11 11:29:36 -08:00
Wayne Warthen
2198918231 Create SC126_How-To_No_2_Preparing_an_SD_Card_for_Use_with_SC126_Rev_1-5.pdf
Thanks to David Reese for contributing this.
2020-02-11 11:26:14 -08:00
b1ackmai1er
09b967e82b Add a user rom pack template to romldr 2020-02-10 22:44:35 +08:00
Wayne Warthen
e81962f774 Merge pull request #76 from b1ackmai1er/master
Update romldr to support more than 9 drives.
2020-02-09 10:47:02 -08:00
b1ackmai1er
f552c83f23 Update romldr.asm
Update to cater for possibility of more than 9 drives being detected. Update menu system to support
2020-02-09 20:25:45 +08:00
b1ackmai1er
907b5d578e Merge pull request #72 from wwarthen/master
Resync
2020-02-09 09:11:34 +08:00
Wayne Warthen
461aaedd56 Update boot.z80
Bug fix
2020-02-08 16:23:17 -08:00
Wayne Warthen
8fd1fefdf9 New drive assignment logic to CP/M 3 2020-02-08 15:56:18 -08:00
b1ackmai1er
89b2489727 Merge pull request #71 from wwarthen/master
Drive letter assignment enhancement
2020-02-09 07:05:12 +08:00
Wayne Warthen
d8bbb1e8ca Drive letter assignment enhancement
Drive letters are now only pre-assigned to hard disk type devices that have media inserted.  Media can still be inserted on-the-fly and drive letters assigned using ASSIGN.
2020-02-08 14:24:36 -08:00
b1ackmai1er
941f958742 Merge pull request #70 from wwarthen/master
Build process cleanup
2020-02-08 15:05:49 +08:00
Wayne Warthen
ae287ca56d Build process cleanup 2020-02-07 17:26:17 -08:00
b1ackmai1er
57983b0a4f Merge pull request #69 from wwarthen/master
Resync
2020-02-08 08:53:26 +08:00
Wayne Warthen
f65e17f3ac Add SUBMIT.COM to NZCOM disk image 2020-02-07 13:33:30 -08:00
Wayne Warthen
15d607d686 Further PPIDE updates 2020-02-07 11:47:16 -08:00
Wayne Warthen
bd21224a9d Merge pull request #74 from b1ackmai1er/master
ppide update to begin support for multiple interfaces.
2020-02-07 11:19:25 -08:00
b1ackmai1er
b89e457414 Update game.asm
keypad and arrow keys
2020-02-07 14:33:21 +08:00
b1ackmai1er
7fb1a8851e Add ROM based game
Refer 2048game.com
Requires VT100 terminal.
2020-02-07 13:16:30 +08:00
b1ackmai1er
45fc44e59f Merge pull request #68 from wwarthen/master
Fix BPBIOS Disk I/O
2020-02-06 14:44:25 +08:00
b1ackmai1er
4ac878029d Update std.asm
Required by ppide.asm
2020-02-06 11:36:28 +08:00
curt mayer
2dc8e6bd12 works i think 2020-02-05 17:20:20 -08:00
Wayne Warthen
2c3ebee6ca Fix BPBIOS Disk I/O 2020-02-05 14:04:17 -08:00
b1ackmai1er
336393aad6 Update ppide.asm 2020-02-06 04:19:16 +08:00
b1ackmai1er
5df54bc6fd PPIDE updates 2020-02-06 04:06:44 +08:00
b1ackmai1er
c3ef70efc0 Update ppide.asm
Optimization
2020-02-06 03:10:26 +08:00
b1ackmai1er
684a209c84 Update ppide.asm
Optimization
2020-02-06 01:45:12 +08:00
b1ackmai1er
8a1ddec0f0 Update ppide.asm
Optimization
2020-02-05 23:07:04 +08:00
b1ackmai1er
a96e8e9ef0 Update ppide.asm
Initial multi device ppide
2020-02-05 19:26:24 +08:00
b1ackmai1er
71b7e9c8f5 Merge pull request #67 from wwarthen/master
Fix CP/M 3 floppy disk access
2020-02-05 14:36:57 +08:00
Wayne Warthen
6828269137 Fix CP/M 3 floppy disk access 2020-02-04 19:14:56 -08:00
b1ackmai1er
3eedd25b48 Merge pull request #66 from wwarthen/master
CP/M 3 Cleanup
2020-02-04 22:01:54 +08:00
Wayne Warthen
c83cd1cb2d CP/M 3 Cleanup 2020-02-03 19:18:25 -08:00
b1ackmai1er
227481f0b8 Merge pull request #65 from wwarthen/master
Resync
2020-02-04 07:05:39 +08:00
Wayne Warthen
48968766a0 Small CP/M 3 Update 2020-02-03 14:48:27 -08:00
Wayne Warthen
e7794723bf Merge pull request #73 from b1ackmai1er/master
Update rf.asm
2020-02-03 14:46:04 -08:00
b1ackmai1er
47bb48c8b4 Update rf.asm
Fix device selection for more than 2 devices
2020-02-03 20:40:59 +08:00
b1ackmai1er
7a4d42ba93 rf config updates 2020-02-03 14:09:39 +08:00
b1ackmai1er
32bdd461f6 Update rf.asm
Standardize init message. Allow for up to 4 devices and at non-consecutive addresses. Limit maximum number devices and with warning.
2020-02-03 13:46:48 +08:00
Wayne Warthen
c3f1123187 Merge pull request #72 from b1ackmai1er/master
Add basic command line support to RTC
2020-02-02 11:41:33 -08:00
b1ackmai1er
3a2ef5efdd Update RTC.asm
Add basic command line support. Commands T)ime, C)harge, N)ocharge , T)ime can now be invoked from the command line and exit. i.e. RTC /T displays time RTC /C turns charge on etc
2020-02-02 20:18:21 +08:00
curt mayer
389cd70e7e FDU alignment fix, verbose diff, don't build Tune 2020-01-31 23:02:53 -08:00
curt mayer
7b6faa3280 strange .DS stuff with 0x20 and 0x30 addresses. 2020-01-31 22:28:02 -08:00
curt mayer
0a6c226a5b added ability to have paths 2020-01-31 22:26:20 -08:00
curt mayer
c4c6b8a051 added more diff goodness 2020-01-31 22:25:43 -08:00
curt mayer
0e9894012b fixed output to match tasm's wierd .org usage 2020-01-31 22:23:14 -08:00
b1ackmai1er
0ef6074a6b Merge pull request #64 from wwarthen/master
Resync
2020-01-31 17:41:08 +08:00
curt mayer
9eab1f5e5b handling of no args 2020-01-30 18:03:29 -08:00
curt mayer
639a9c7459 clobber fix 2020-01-30 18:03:07 -08:00
curt mayer
c30c5a6437 build and diff fixes 2020-01-30 15:04:37 -08:00
curt mayer
917f21e468 added Propeller recipe 2020-01-30 15:02:44 -08:00
curt mayer
40663d7f3d syntax error fix. RST 38 is busted 2020-01-30 13:10:49 -08:00
curt mayer
adabd69598 more build fixes 2020-01-29 23:27:57 -08:00
curt mayer
f9126620c8 more build and clean fixes 2020-01-29 23:21:10 -08:00
Curt Mayer
b4c1ca7fcb more build fixes 2020-01-30 07:09:05 +00:00
Curt Mayer
ad35748d5c fixed some build problems 2020-01-30 07:00:33 +00:00
Curt Mayer
fac1974589 makefiles and tools for unix/osx build 2020-01-30 06:47:47 +00:00
Wayne Warthen
14e48f24b5 Cosmetic Cleanup 2020-01-29 15:17:15 -08:00
Wayne Warthen
6dcfb7b058 Merge pull request #71 from b1ackmai1er/master
ECB Cassette and Recovery Mode change
2020-01-29 15:03:33 -08:00
b1ackmai1er
c6f7d4d38a Fixup incorrect commit 2020-01-28 18:16:25 +08:00
b1ackmai1er
b75153d263 ECB Cassette and Recovery Mode change
Create an equate for changing baud rate through custom config rather than the driver.  Add recovermode mode option to use Ring indicator line.
2020-01-28 18:09:30 +08:00
b1ackmai1er
fdb5f82815 Merge pull request #63 from wwarthen/master
Finalize pre-release 27
2020-01-27 07:07:03 +08:00
Wayne Warthen
6950195741 Finalize pre-release 27
Default baud rate for RC and SC platforms with Z180 now 115200.
2020-01-26 12:46:51 -08:00
b1ackmai1er
d2ca0c35f1 Merge pull request #62 from wwarthen/master
Cosmetic Updates
2020-01-21 18:16:03 +08:00
Wayne Warthen
a6f6a9734a Cosmetic Updates 2020-01-20 14:34:43 -08:00
b1ackmai1er
207b3cebc5 Merge pull request #61 from wwarthen/master
Resync
2020-01-18 07:22:22 +08:00
Wayne Warthen
ae62931fbb Bump Version 2020-01-17 15:15:38 -08:00
Wayne Warthen
afd5c22264 Minor Cleanup 2020-01-17 15:06:57 -08:00
Wayne Warthen
825002c181 Merge pull request #69 from b1ackmai1er/master
Implement "safe mode" boot process
2020-01-17 14:26:09 -08:00
b1ackmai1er
60df79fa4d Implement "safe mode" boot process
Lots of ways this could be done. I have chosen to set it up so it just boots with a minimum driver set.

On SBC test  by setting BT_REC_TYPE to BT_REC_SBC02 and use the 1-bit jumper (crtact) jumper to enable.

Options for other platforms needs to be considered.
2020-01-17 16:36:44 +08:00
b1ackmai1er
424676c469 Merge pull request #60 from wwarthen/master
Resync
2020-01-17 10:23:54 +08:00
Wayne Warthen
11376d6d3d Minor Cleanup
Moved font compression tools under Tools directory.  Replaced lzsa app with the Win32 variant to ensure compatibility for all users.
2020-01-16 15:57:56 -08:00
Wayne Warthen
32210b399c Generate Bootable Disk Images
Disk images created as part of the build process can now be made bootable without requiring the user to run SYSCOPY.  Some of the disk images are now bootable.
2020-01-16 15:11:18 -08:00
Wayne Warthen
5b78631fdc Minor Cleanup 2020-01-16 14:00:05 -08:00
Wayne Warthen
285ad8f54c Merge pull request #68 from b1ackmai1er/master
Initial compressed fonts support
2020-01-16 13:51:52 -08:00
b1ackmai1er
c73e87c8c7 Visual guide to ROMWBW fonts 2020-01-16 20:35:12 +08:00
b1ackmai1er
99b5e4eec9 Add preparing fonts to build process 2020-01-16 14:13:39 +08:00
b1ackmai1er
31c917192d Update fonts.txt 2020-01-16 00:40:29 +08:00
b1ackmai1er
6a4723f2f5 Update cvdu.asm
Remove debug code
2020-01-15 18:05:42 +08:00
b1ackmai1er
350b99778b Update cvdu.asm
Remove debug code
2020-01-15 18:02:40 +08:00
b1ackmai1er
b2b07a9d6e Initial compressed fonts support
CVDU untested
2020-01-15 17:58:30 +08:00
b1ackmai1er
58f924cff4 Merge pull request #59 from wwarthen/master
Resync
2020-01-15 12:13:30 +08:00
Wayne Warthen
815c6c14a0 Image Disk BuildXX.ps1 update 2020-01-14 16:35:11 -08:00
Wayne Warthen
c77b9130f3 Merge pull request #67 from b1ackmai1er/master
Additional VGA mode and reworked fonts.
2020-01-14 16:04:23 -08:00
Wayne Warthen
082a2b7e99 Refinements to disk image building 2020-01-14 16:01:08 -08:00
b1ackmai1er
e58ff3fbd8 Merge pull request #58 from wwarthen/master
Disk image creation improvements
2020-01-14 18:35:55 +08:00
Wayne Warthen
04f0b785b5 Disk image creation improvements 2020-01-13 20:41:33 -08:00
b1ackmai1er
3f01182f92 Fixup incorrect push 2020-01-14 08:10:58 +08:00
b1ackmai1er
42efbcd553 Update font inclusion 2020-01-14 08:04:32 +08:00
b1ackmai1er
2c3e9ec365 Fix tms build 2020-01-14 07:25:38 +08:00
b1ackmai1er
83877497cc VGA, CVDU & Fonts update
Fonts renamed. TMS font flipped around to normal orientation. Font files trimmed to scanline length to save space. Fonts sharesd across devices where possible.
2020-01-13 22:58:56 +08:00
Phillip Stevens
0c70aadd46 Merge pull request #10 from wwarthen/master
update to master
2020-01-12 17:56:05 +11:00
b1ackmai1er
03bf58f64c Create font_8x8.asm 2020-01-12 13:37:12 +08:00
b1ackmai1er
d94d1f16dd Update vga.asm 2020-01-12 01:47:07 +08:00
b1ackmai1er
ad816cde01 Update vga.asm 2020-01-12 01:43:55 +08:00
b1ackmai1er
23d0061fb1 Fix Incorrect assembly vga buffer clear
Preliminary 80x60 format. Needs 8x8 font.
2020-01-12 01:41:20 +08:00
b1ackmai1er
3c0ad4816b Merge pull request #57 from wwarthen/master
Merge pull request #66 from b1ackmai1er/master
2020-01-11 10:12:13 +08:00
Wayne Warthen
3c01f5b037 Merge pull request #66 from b1ackmai1er/master
Add 80x43 video mode to VGA3 driver
2020-01-10 16:55:47 -08:00
b1ackmai1er
60f96f3244 Add cursor support fo VGA 80x43 mode
Align with VDU driver
2020-01-10 20:11:19 +08:00
b1ackmai1er
5bf4dbc30f minors 2020-01-10 17:32:27 +08:00
b1ackmai1er
4f798e2454 Revert "minors"
This reverts commit e6183cddec.
2020-01-10 17:22:59 +08:00
b1ackmai1er
e6183cddec minors 2020-01-10 17:22:31 +08:00
b1ackmai1er
5cda17b800 minors 2020-01-10 15:32:39 +08:00
b1ackmai1er
be45e63e90 minors 2020-01-10 11:40:56 +08:00
b1ackmai1er
da26366c0b Add 80x43 video mode to VGA3 driver
With associated font file
2020-01-10 11:26:31 +08:00
b1ackmai1er
677bbe18b2 Merge pull request #56 from wwarthen/master
Resync
2020-01-10 11:21:19 +08:00
Wayne Warthen
3280a71bbb Update ChangeLog.txt 2020-01-09 16:02:16 -08:00
Wayne Warthen
30cc54b9c3 Merge pull request #65 from b1ackmai1er/master
Add 80x30 screen format to VGA3 driver
2020-01-09 15:55:00 -08:00
b1ackmai1er
4b7f570947 Minors 2020-01-09 23:18:18 +08:00
b1ackmai1er
276de14ff6 Add 80x30 screen format to VGA3 driver 2020-01-09 23:06:01 +08:00
Phillip Stevens
43ac88c90b Merge pull request #9 from wwarthen/master
update to master
2020-01-09 09:09:25 +11:00
b1ackmai1er
8e86a65875 Merge pull request #55 from wwarthen/master
Resync
2020-01-08 16:39:54 +08:00
Wayne Warthen
27ea5e63c3 Merge pull request #64 from feilipu/master
HBIOS - sd.asm efficient byte mirror
2020-01-07 12:00:44 -08:00
Wayne Warthen
aa37affe34 Update bqrtc.asm
Minor enhancement.
2020-01-07 11:53:43 -08:00
Phillip Stevens
3d7e3cae6f more tabs 2020-01-07 19:45:54 +11:00
Phillip Stevens
f3d059d4d7 fix more tabs 2020-01-07 19:37:27 +11:00
Phillip Stevens
34540fff54 fix tabs 2020-01-07 19:36:06 +11:00
Phillip Stevens
57f54b325c HBIOS - sd.asm efficient byte mirror 2020-01-07 19:31:34 +11:00
b1ackmai1er
67e4c81676 Merge pull request #54 from wwarthen/master
Resync
2020-01-07 16:23:45 +08:00
Phillip Stevens
3a4f272a01 Merge pull request #8 from wwarthen/master
update to master
2020-01-07 18:52:37 +11:00
Wayne Warthen
485045408c Cleanup 2020-01-06 13:53:50 -08:00
Wayne Warthen
e9709fcde6 Floppy Driver fixes from Steve Garcia 2020-01-06 10:59:03 -08:00
b1ackmai1er
d8fa619c2e Merge pull request #53 from wwarthen/master
Preliminary support for Dyno Computer
2020-01-06 21:14:14 +08:00
Wayne Warthen
3c8cd5219e Preliminary support for Dyno Computer
Dyno Computer is the work of Steve Garcia and much of the code checked in is based on his work.
2020-01-05 15:26:08 -08:00
b1ackmai1er
745798def7 Merge pull request #52 from wwarthen/master
Overhaul disk image build process
2020-01-04 16:23:10 +08:00
Wayne Warthen
8bc4a40662 Overhaul disk image build process 2020-01-03 20:42:06 -08:00
b1ackmai1er
8124595a38 Merge pull request #51 from wwarthen/master
Resync
2020-01-03 19:58:40 +08:00
Wayne Warthen
5e4e098f64 CPM3/ZPM3 Cleanup 2019-12-29 16:27:25 -08:00
Wayne Warthen
625661714f CP/M 3 & ZPM3 Updates 2019-12-28 15:56:49 -08:00
Wayne Warthen
b10286422c Fix ASSIGN command
Also added a graphic that illustrates a hybrid CP/M & DOS hard disk.
2019-12-28 13:56:50 -08:00
b1ackmai1er
a3f093e254 Merge pull request #50 from wwarthen/master
CP/M 3 RTC Fix, ZPM3 Hard Disk Image
2019-12-07 15:15:51 +08:00
Wayne Warthen
64ab933492 CP/M 3 RTC Fix, ZPM3 Hard Disk Image 2019-12-05 12:08:44 -08:00
b1ackmai1er
5e8c2dfdc7 Merge pull request #49 from wwarthen/master
CP/M 3 RTC Support
2019-12-03 21:11:52 +08:00
Phillip Stevens
928c9fe3f5 Merge pull request #7 from wwarthen/master
update to master
2019-12-03 17:51:20 +07:00
Wayne Warthen
8799352a31 CP/M 3 RTC Support
CP/M 3 will now get current date/time from RTC.  Setting RTC from CP/M 3 is not finished.
2019-12-02 18:44:11 -08:00
b1ackmai1er
a2d06b849b Merge pull request #48 from wwarthen/master
Resync
2019-12-02 05:49:41 +08:00
Wayne Warthen
b635a601be Update ChangeLog.txt 2019-12-01 12:37:08 -08:00
Wayne Warthen
54ad5df47f Merge pull request #62 from b1ackmai1er/master
Tune defaults to .PT3 file type if none given
2019-12-01 12:29:35 -08:00
Wayne Warthen
2610fd5be7 Merge pull request #61 from feilipu/master
[hbios] dbgmon hxload rework
2019-12-01 12:25:33 -08:00
b1ackmai1er
5940292bb6 Update Tune.asm
Default to .PT3 file extension if non given.
2019-12-01 22:40:44 +08:00
Phillip Stevens
4beb1ba437 hbios - dbgmon more indentation 2019-11-30 22:17:48 +11:00
Phillip Stevens
6647cd6a05 hbios - dbgmon - fix indentation 2019-11-30 22:13:33 +11:00
Phillip Stevens
ab3882b489 hbios - dbgmon hxload typo 2019-11-30 21:53:44 +11:00
Phillip Stevens
c60c8394b3 hbios - dbgmon hxload 2019-11-30 20:53:49 +11:00
Phillip Stevens
922adde120 Merge pull request #6 from wwarthen/master
update to master
2019-11-28 12:12:37 +07:00
Wayne Warthen
2e39da65f4 Cleanup 2019-11-27 17:23:19 -08:00
Phillip Stevens
808b1b19a5 Merge pull request #5 from wwarthen/master
update to master
2019-11-25 20:11:59 +07:00
b1ackmai1er
913ca308d2 Merge pull request #47 from wwarthen/master
Resync
2019-11-25 17:20:00 +08:00
Wayne Warthen
2ebd800482 CTC Refactoring 2019-11-24 20:16:54 -08:00
Wayne Warthen
ae05aa499e Merge pull request #60 from b1ackmai1er/master
CTC timer support for ECB-SBC-V2 with ECB-Zilog-Peripherals board
2019-11-24 15:54:55 -08:00
b1ackmai1er
6d22708b66 ecb-sbc-v2 / ecb-zp ctc timer configuration
Correct instructions on jumpering.
2019-11-24 21:18:08 +08:00
b1ackmai1er
e2f066492f Create ctcstub.asm 2019-11-24 20:51:39 +08:00
b1ackmai1er
7917a0143a ecb-sbc-v2 ecb-zp ctc timer support 2019-11-24 20:49:51 +08:00
b1ackmai1er
c6e6ed89dc minor 2019-11-23 22:55:30 +08:00
b1ackmai1er
1ff1a70bfb Collection of minors 2019-11-23 17:31:16 +08:00
b1ackmai1er
81722bfa4d Merge pull request #46 from wwarthen/master
TUNE App Refinements
2019-11-22 16:29:27 +08:00
Wayne Warthen
1d542d88bc TUNE App Refinements 2019-11-21 16:27:00 -08:00
b1ackmai1er
da1761b7c1 Merge pull request #45 from wwarthen/master
Resync
2019-11-18 19:29:52 +08:00
Wayne Warthen
bd8d059f32 Cleanup 2019-11-17 21:31:07 -08:00
Wayne Warthen
dc6ecfd9e3 CP/M 3 Support in ASSIGN 2019-11-17 17:35:11 -08:00
Phillip Stevens
7436c165a5 Merge pull request #4 from wwarthen/master
upstream master
2019-11-16 15:21:02 +11:00
b1ackmai1er
c47611525f Merge pull request #44 from wwarthen/master
Resync
2019-11-16 11:38:45 +08:00
Wayne Warthen
659f60c23b Cleanup Timer & Clock Multiplier Code 2019-11-15 16:29:27 -08:00
Wayne Warthen
b87f7b6e89 Merge pull request #58 from feilipu/master
hbios - z180 CMR/CCR config
2019-11-15 14:12:45 -08:00
b1ackmai1er
871520cef7 Merge pull request #43 from wwarthen/master
Resync
2019-11-15 18:57:53 +08:00
Phillip Stevens
084df830ef hbios - z180 TASM equality check 2019-11-15 19:14:43 +11:00
Phillip Stevens
326ee0ae67 hbios - z180 CMR/CCR testing 2019-11-15 11:56:24 +11:00
Phillip Stevens
fc760e90e0 hbios - z180 CMR/CCR order 2019-11-15 11:46:20 +11:00
Phillip Stevens
c0ca96cb96 hbios - z180 CMR/CCR config 2019-11-15 11:40:50 +11:00
Phillip Stevens
1fac76f80c Merge pull request #3 from wwarthen/master
update to upstream master
2019-11-15 10:45:55 +11:00
Wayne Warthen
18f78cfd3e Merge pull request #57 from feilipu/master
hbios - z180 - tidy prt0 setting
2019-11-14 11:35:41 -08:00
b1ackmai1er
ba24d578f6 Merge pull request #42 from wwarthen/master
Resync
2019-11-14 21:50:19 +08:00
Phillip Stevens
294b42f5a4 scz180 white space 2019-11-14 23:25:16 +11:00
Phillip Stevens
fa7eb7f916 scz180 revert fast for pr 2019-11-14 23:22:11 +11:00
Phillip Stevens
446d969779 hbios - use z180 instructions 2019-11-14 23:00:35 +11:00
Wayne Warthen
b7ad90c245 Cleanup 2019-11-12 18:52:33 -08:00
Phillip Stevens
9e815edc29 Merge pull request #2 from wwarthen/master
update to master pre.20
2019-11-12 18:24:44 +11:00
Wayne Warthen
5d03973e80 Cleanup 2019-11-11 20:38:17 -08:00
Phillip Stevens
1d2f74b5b0 scz180 - config fast 2019-11-12 13:53:37 +11:00
Phillip Stevens
6c3f632990 Merge pull request #1 from wwarthen/master
update to master
2019-11-12 11:32:09 +11:00
b1ackmai1er
9ad14e2392 Merge pull request #41 from wwarthen/master
Resync
2019-11-11 21:21:54 +08:00
Wayne Warthen
8f2754b0f7 Minor Cleanup 2019-11-10 18:59:43 -08:00
Wayne Warthen
04f374a4da Misc Cleanup 2019-11-10 11:57:04 -08:00
Wayne Warthen
9895c4d47d Merge pull request #54 from feilipu/master
hbios - system ticks
2019-11-10 11:21:30 -08:00
Phillip Stevens
976ef858d0 hbios - fix HB_SECTCK setting 2019-11-10 15:29:16 +11:00
Phillip Stevens
6cb051ec52 hbios - z180 PRT0 configuration again 2019-11-09 20:51:29 +11:00
Phillip Stevens
d78229a875 hbios - z180 PRT0 configuration 2019-11-09 20:36:52 +11:00
Phillip Stevens
8fb0d9019b hbios - optimise INC32HL 2019-11-09 18:44:06 +11:00
Phillip Stevens
6ab3ecd0cc hbios - sys/time.h functions 2019-11-09 18:32:08 +11:00
b1ackmai1er
a22ac6beab Merge pull request #40 from wwarthen/master
Add Seconds Counter to HBIOS
2019-11-09 13:16:51 +08:00
Wayne Warthen
dc9dd8e8ca Add Seconds Counter to HBIOS 2019-11-08 13:14:28 -08:00
b1ackmai1er
9d25a7663d Merge pull request #39 from wwarthen/master
Update sd.asm
2019-10-29 22:21:20 +08:00
Wayne Warthen
019ae62c2a Update sd.asm
Refinements to sd.asm for RC2014 WizNet Module (SDMODE_MT).
2019-10-26 16:51:42 -07:00
b1ackmai1er
b0226fe1e8 Merge pull request #37 from wwarthen/master
Resync
2019-10-22 16:25:37 +08:00
Wayne Warthen
96fd7b1808 CP/M 3 Minor Build Cleanup 2019-10-21 12:58:43 -07:00
Wayne Warthen
7290a52cf7 Update sd.asm
MT011 updates
2019-10-21 12:48:46 -07:00
Wayne Warthen
0e9edd0874 Merge pull request #52 from b1ackmai1er/NASCOM-VDU-GRAPHICS
Nascom vdu graphics
2019-10-20 16:03:05 -07:00
b1ackmai1er
11857925d2 Update vdu.asm 2019-10-20 22:43:13 +08:00
b1ackmai1er
36e2a0b6ec Merge pull request #36 from wwarthen/master
Resync
2019-10-20 11:22:58 +08:00
b1ackmai1er
bcb16757bb Update vdu.asm 2019-10-20 11:18:45 +08:00
b1ackmai1er
5db3d11b9a ECB-VDU, NASCOM updates
Implement HBIOS cursor setting function VDU_VDASCS for ECB-VDU
2019-10-20 11:15:07 +08:00
Wayne Warthen
b7d928d043 Merge pull request #51 from b1ackmai1er/master
ECB-VDU: Add cursor style options
2019-10-19 12:06:28 -07:00
b1ackmai1er
0b84b88f57 Merge pull request #35 from b1ackmai1er/NASCOM-VDU-GRAPHICS
ECB-VDU: Add cursor style options
2019-10-19 20:31:47 +08:00
b1ackmai1er
ab305429fb Add cursor style options 2019-10-19 20:07:00 +08:00
Wayne Warthen
391997ee09 Merge pull request #50 from b1ackmai1er/master
Forth and NASCOM BASIC updates
2019-10-18 19:17:57 -07:00
b1ackmai1er
1ee2167c2a camel Forth build changes and fixes
;   19-Oct 19 v1.02 Convert to zsm assembler which
;                   identified and fixed incorrect
;                   case conversion when lowercase
;                   keywords are being passed in a
;                   macro. Remove Z80MR assembler
2019-10-19 09:09:59 +08:00
b1ackmai1er
8c8c09097d Merge pull request #34 from wwarthen/master
SDMODE_MT Updates
2019-10-19 07:54:17 +08:00
Wayne Warthen
45b27c34ed SDMODE_MT Updates 2019-10-18 16:13:57 -07:00
b1ackmai1er
cc1a39ebd7 Merge pull request #33 from wwarthen/master
Resync
2019-10-18 15:29:17 +08:00
Wayne Warthen
2d2cb3d8ea Shift Register SPI WIZNET for RC2014 2019-10-17 16:18:40 -07:00
Wayne Warthen
2430231dc1 More CP/M 3 Refinements 2019-10-17 15:02:07 -07:00
b1ackmai1er
2ec195b9e8 Merge pull request #32 from wwarthen/master
Incremental CP/M 3 Improvements
2019-10-17 19:58:19 +08:00
Wayne Warthen
5617d6b27e Incremental CP/M 3 Improvements 2019-10-16 17:12:06 -07:00
b1ackmai1er
c15ae9670a Merge pull request #31 from wwarthen/master
Resync
2019-10-16 20:35:23 +08:00
Wayne Warthen
f98b97e20a Rename DISKDEFS to diskdefs 2019-10-15 15:05:53 -07:00
Wayne Warthen
1e47726176 Rename DISKDEFS to diskdefs 2019-10-15 14:51:41 -07:00
b1ackmai1er
3bdcf371d1 Merge pull request #30 from wwarthen/master
Fix CPM3 Build
2019-10-16 05:46:30 +08:00
Wayne Warthen
a4f2cd8c11 Fix CPM3 Build
Credit to Phil Summers for finding the missing diskdefs files.
2019-10-15 14:21:10 -07:00
b1ackmai1er
b0995506ef Merge pull request #29 from wwarthen/master
Preliminary CP/M 3
2019-10-15 17:39:35 +08:00
Wayne Warthen
57c87db9a1 Preliminary CP/M 3 2019-10-14 16:30:19 -07:00
b1ackmai1er
d56c9baccf Nascom BASIC clear screen changed to use VT100 escape sequences 2019-10-13 21:13:04 +08:00
b1ackmai1er
147fadefd9 NASCOM BASIC Summary 2019-10-13 19:54:46 +08:00
b1ackmai1er
b9a21ae296 Nascom BASIC long error messages
Add an option for  more descriptive error messages
i.e NF error becomes NEXT without FOR
New behaviour is now default
2019-10-13 17:14:20 +08:00
b1ackmai1er
768a459565 Merge pull request #28 from wwarthen/master
Cleanup
2019-10-13 00:38:02 +08:00
Wayne Warthen
bfbf6e7dcf Cleanup 2019-10-11 17:53:34 -07:00
b1ackmai1er
8f4a3112d1 Merge pull request #27 from wwarthen/master
Resync
2019-10-12 08:36:54 +08:00
Wayne Warthen
d12ed64fd6 Merge pull request #49 from b1ackmai1er/master
Add sound to Nascom BASIC for SBC-V2-003
2019-10-11 17:05:54 -07:00
Wayne Warthen
18bc22fd3e Update FAT Application 2019-10-11 16:53:31 -07:00
b1ackmai1er
56d0c81af8 Update nascom.asm
Cleanup
2019-10-12 06:16:36 +08:00
b1ackmai1er
1628c51bd6 Update nascom.asm
Remove debug code
2019-10-12 01:28:06 +08:00
b1ackmai1er
e92da9b2db Merge branch 'master' of https://github.com/b1ackmai1er/RomWBW 2019-10-12 01:04:21 +08:00
b1ackmai1er
dc0411746e Update nascom.asm 2019-10-12 00:56:15 +08:00
b1ackmai1er
27fd30ef5f Merge pull request #26 from wwarthen/master
Update FAT.COM
2019-10-11 14:46:53 +08:00
Wayne Warthen
26a4abd3f5 Update FAT.COM
Adds MD and FORMAT commands
2019-10-10 18:57:20 -07:00
b1ackmai1er
1d5cd55452 Merge pull request #25 from wwarthen/master
Support Secondary SPI on SC126
2019-10-10 19:40:31 +08:00
Wayne Warthen
bd2fc6dbfe Support Secondary SPI on SC126 2019-10-09 15:37:21 -07:00
b1ackmai1er
b4e5839681 Merge pull request #24 from wwarthen/master
Resync
2019-10-09 18:20:21 +08:00
Wayne Warthen
af2a9a7110 Bump Version 2019-10-08 16:45:11 -07:00
Wayne Warthen
4485e0e932 Cleanup 2019-10-08 16:39:22 -07:00
Wayne Warthen
1c57cae1ed Update FAT Application 2019-10-08 16:34:35 -07:00
b1ackmai1er
b498f5a744 Merge pull request #23 from wwarthen/master
Cleanup
2019-10-07 12:22:26 +08:00
Wayne Warthen
782bcba9f7 Cleanup 2019-10-05 13:58:30 -07:00
b1ackmai1er
98bec91318 Merge pull request #22 from wwarthen/master
Finalize SCZ180 Configurations
2019-10-03 11:14:27 +08:00
Wayne Warthen
57dabc1ab5 Finalize SCZ180 Configurations 2019-10-02 08:45:11 -07:00
b1ackmai1er
99311e4820 Merge pull request #21 from wwarthen/master
Resync
2019-10-02 09:51:45 +08:00
Wayne Warthen
dcfdc4fc36 Merge pull request #48 from sccousins/master
Change status LED use hbios.asm for SC126/130
2019-10-01 15:54:49 -07:00
sccousins
bf7470d712 Update hbios.asm 2019-10-01 18:23:43 +01:00
b1ackmai1er
3865aaad83 Merge pull request #20 from wwarthen/master
Status LED Support
2019-10-01 10:55:59 +08:00
Wayne Warthen
8d96efb6f5 Status LED Support 2019-09-30 17:22:02 -07:00
b1ackmai1er
88940645c0 Merge pull request #19 from wwarthen/master
Dynamic DS-1302 Detection
2019-09-30 13:32:40 +08:00
Wayne Warthen
341c55945c Dynamic DS-1302 Detection 2019-09-29 14:33:40 -07:00
b1ackmai1er
866449c8ee Merge pull request #18 from wwarthen/master
Resync
2019-09-29 10:29:56 +08:00
Wayne Warthen
ff851d36d6 Diagnostic LED Refinements 2019-09-28 16:01:49 -07:00
Wayne Warthen
183ddeac5f Diag LED Enhancement
Diagnostic LEDs will now show disk activity by disk unit number.
2019-09-27 17:16:00 -07:00
Wayne Warthen
cc38eef867 KIO Cleanup 2019-09-23 18:49:33 -07:00
b1ackmai1er
a6f95d70d5 Merge pull request #17 from wwarthen/master
Resync
2019-09-22 14:46:34 +08:00
Wayne Warthen
b819360605 Make ZCAL Y2K Compliant
Credit to Nick Brok
2019-09-21 17:30:58 -07:00
Wayne Warthen
ee04d84abd Fix Z180 CPU Speed Setup 2019-09-20 21:54:04 -07:00
b1ackmai1er
f77072fbd2 Update nascom.asm 2019-09-17 22:43:52 +08:00
b1ackmai1er
fa34bcbea3 Merge pull request #16 from wwarthen/master
Resync
2019-09-16 17:02:27 +08:00
Wayne Warthen
21b231bced Create RCZ80_kio.asm 2019-09-15 16:18:42 -07:00
Wayne Warthen
0fb98bc071 KIO Support 2019-09-15 16:13:50 -07:00
b1ackmai1er
ea8dad4220 Update nascom.asm 2019-09-15 23:12:18 +08:00
b1ackmai1er
8b1f7dcba0 Update nascom.asm
Install frequency table as part of cold boot initialization
2019-09-15 19:42:17 +08:00
b1ackmai1er
587a618400 Update nascom.asm
Populate  the frequency table with duration
2019-09-15 16:44:41 +08:00
b1ackmai1er
c57c3527d2 Update nascom.asm
Add code to start calculating duration based on clock frequency provided by hbios
2019-09-15 12:12:18 +08:00
b1ackmai1er
6c48811167 Update nascom.asm 2019-09-08 00:06:19 +08:00
b1ackmai1er
642953eaf1 Update nascom.asm
Add PLAY duration operand
2019-09-07 21:09:00 +08:00
b1ackmai1er
7033755762 Update nascom.asm
Add PLAY a note
2019-09-07 17:09:36 +08:00
b1ackmai1er
fdb4304f70 Merge pull request #15 from wwarthen/master
Resync
2019-09-07 17:07:23 +08:00
Wayne Warthen
0bdecc9a4a Floppy Fix
Floppy I/O was failing for slower CPUs when the timer interrupts were active.  Now fixed.

Credit to Jorge Jorge Rodrigues for finding this problem and pointing me in the right direction for the fix.
2019-09-06 15:47:46 -07:00
b1ackmai1er
988bf98d4a Merge pull request #14 from wwarthen/master
Resync
2019-09-05 16:32:20 +08:00
Wayne Warthen
8c0c75253e Z180 Variant CPU Speed Handling
Check Z180 CPU variant when attempting to change CPU speed multipliers and handle appropriately.
2019-09-04 20:46:29 -07:00
Wayne Warthen
d55bd64d6b Merge pull request #46 from b1ackmai1er/master
spk.asm developement
2019-09-04 12:02:52 -10:00
b1ackmai1er
21568a4b8d spk.asm developement
Run time adjustement of  tone frequencies for different cpu frequencies with the limitation that rounded down frequency is used. i.e. 4Mhz clock measured at 3.988Mhz will setup tone frequencies based on 3MHz cpu.
2019-09-04 20:37:32 +08:00
b1ackmai1er
f8b50f66ec Merge pull request #13 from wwarthen/master
Resync
2019-09-04 16:14:22 +08:00
Wayne Warthen
b856a1a529 Disk I/O to/from Banked Memory
Supports double-buffered disk i/o to read/write to/from any memory bank specified.

NOTE:  Disk I/O will be temporarily slower than normal because all I/O is being forced thru double-buffering for testing.
2019-09-03 15:12:56 -07:00
Wayne Warthen
5eee238729 Merge pull request #45 from b1ackmai1er/master
Enhance spk.asm to be able to play note
2019-09-03 11:28:51 -10:00
b1ackmai1er
474626b779 Merge branch 'master' of https://github.com/b1ackmai1er/RomWBW 2019-09-03 20:41:47 +08:00
b1ackmai1er
52c7b7f25c Enhance spk.asm to be able to play note 2019-09-03 20:40:54 +08:00
b1ackmai1er
4d51086cd1 Merge pull request #12 from wwarthen/master
Resync
2019-09-03 20:34:55 +08:00
Wayne Warthen
a473c5c221 Minor Updates 2019-09-01 18:54:13 -07:00
Wayne Warthen
381d62a733 Update API.txt 2019-09-01 13:25:30 -07:00
Wayne Warthen
d5206276a8 Merge pull request #44 from b1ackmai1er/master
Refactor of device summary
2019-09-01 10:04:51 -10:00
b1ackmai1er
0307fe1aa9 Refactor of device summary cleanup 2019-09-01 21:51:31 +08:00
b1ackmai1er
4cc4fc0ffe Refactor of device summary floppy 2019-09-01 15:36:04 +08:00
b1ackmai1er
a3a4e84965 Refactor of device summary 2019-09-01 13:55:28 +08:00
b1ackmai1er
d478b3382e Merge pull request #11 from wwarthen/master
Resync
2019-08-31 19:37:14 +08:00
Wayne Warthen
b8930bd10a Cleanup 2019-08-29 12:36:54 -07:00
b1ackmai1er
d700a1bd1a Merge pull request #10 from wwarthen/master
Resync
2019-08-29 16:33:24 +08:00
Wayne Warthen
72fe10c00a Low Battery Test Refinements 2019-08-28 20:44:31 -07:00
Wayne Warthen
b3568c0142 Update xmhb.180
Additional cleanup of ASCI driver code.
2019-08-28 16:54:16 -07:00
Wayne Warthen
a7bd07b3ce Delete WSCHHELP.OVR
Make room in 1MB ROM disk image for FAT.COM.
2019-08-28 14:36:32 -07:00
Wayne Warthen
8a5ff459a7 Merge pull request #42 from b1ackmai1er/master
DS1210 Battery Low message on boot
2019-08-24 15:27:31 -10:00
b1ackmai1er
bff6e20946 DS1210 Battery Low message on boot
Remove debug code.
Resolve issue with battery status being lost on stack.
Battery status variable moved to DSRTC driver.
Fix build failures for DSRTCENABLE=FALSE (spk.asm requires dsrtc)
2019-08-24 13:41:02 +08:00
b1ackmai1er
f323246d4f Preliminary DS1210 batter low code
Battery state currently not being saved and recalled correctly
2019-08-24 07:21:40 +08:00
b1ackmai1er
c969e46519 Merge pull request #9 from wwarthen/master
Resync
2019-08-19 17:16:38 +08:00
Wayne Warthen
1c42ea0a7c Bug Fixes 2019-08-18 18:28:18 -07:00
Wayne Warthen
49b2255020 Merge pull request #41 from b1ackmai1er/master
Fix for usb-fifo boot display
2019-08-18 08:07:34 -07:00
b1ackmai1er
03c6cf9d51 Update dsrtc.asm
Make it easier to define customer battery or supercapacitor charge rates.
2019-08-18 21:07:06 +08:00
b1ackmai1er
a9780aa8be Fix for usb-fifo boot display 2019-08-18 20:22:04 +08:00
b1ackmai1er
9ec3d258bd Merge pull request #8 from wwarthen/master
Resync
2019-08-18 19:24:46 +08:00
Wayne Warthen
29d3476d68 Update ChangeLog.txt 2019-08-17 20:09:01 -07:00
Wayne Warthen
e4eee85274 ASCI Driver Interrupt Support
Also refactored XModem overlay
2019-08-17 20:08:34 -07:00
Wayne Warthen
5f7a396ced Add FAT ReadMe 2019-08-16 12:07:42 -07:00
Wayne Warthen
aeccf550e3 Add FAT.COM 2019-08-16 11:54:47 -07:00
Wayne Warthen
c8c1dd9c10 Merge pull request #40 from b1ackmai1er/master
xmodem for usb-fifo
2019-08-16 11:28:03 -07:00
b1ackmai1er
2398b48e29 xmodem for usb-fifo
Generates xmuf.com for usb-fifo file transfer. Is not included in the ROM drive build.
2019-08-16 23:20:00 +08:00
b1ackmai1er
88f45a4166 Merge pull request #7 from wwarthen/master
Configuration Files Cleanup
2019-08-16 19:17:20 +08:00
Wayne Warthen
522b72d9df Configuration Files Cleanup 2019-08-15 18:10:07 -07:00
b1ackmai1er
51cb56b064 Merge pull request #6 from wwarthen/master
Resync
2019-08-13 21:13:07 +08:00
Wayne Warthen
09044d1959 Add SC126 Platform 2019-08-11 18:39:03 -07:00
Wayne Warthen
38820a4f89 Merge pull request #39 from b1ackmai1er/master
Fix USB-FIFO build for other ECB platforms
2019-08-10 15:56:35 -07:00
b1ackmai1er
b96c87baf9 Update plt_n8.inc
Fix N8 build with ECB-FIFO
2019-08-10 19:43:39 +08:00
b1ackmai1er
d426e16216 Update plt_mk4.inc
Fix MkIV build with ECB-FIFO
2019-08-10 19:35:05 +08:00
b1ackmai1er
f613520ee9 Merge pull request #5 from wwarthen/master
Resync
2019-08-10 14:09:52 +08:00
Wayne Warthen
56c5710b3f Fix DPB selection in ASSIGN 2019-08-07 12:17:07 -07:00
Wayne Warthen
0b661442c5 SIO & ACIA Driver Updates 2019-08-04 17:51:29 -07:00
Wayne Warthen
d589a215ad Merge pull request #38 from b1ackmai1er/master
usb-fifo driver et al
2019-08-04 15:03:45 -07:00
b1ackmai1er
a8b0e9848b Create ReadMe.txt 2019-08-04 20:40:44 +08:00
b1ackmai1er
0031151008 Merge branch 'master' of https://github.com/b1ackmai1er/RomWBW 2019-08-04 20:32:11 +08:00
b1ackmai1er
8a560bfbbb Resync 2019-08-04 20:29:29 +08:00
b1ackmai1er
5417ae2155 Merge pull request #4 from wwarthen/master
Resync
2019-08-04 20:22:50 +08:00
b1ackmai1er
65bce62b26 Resync 2019-08-04 20:22:12 +08:00
b1ackmai1er
d22d83f2c8 Update hbios.asm
Fixup misisng driver
2019-08-04 19:48:26 +08:00
b1ackmai1er
12c99e9144 Resync 2019-08-04 19:30:52 +08:00
b1ackmai1er
a3844a0149 Resync 2019-08-04 19:03:16 +08:00
b1ackmai1er
cf9d077057 Resync 2019-08-04 18:36:06 +08:00
b1ackmai1er
7c622942e7 Update std.asm
Add support for changing default console through config.
2019-08-04 17:41:01 +08:00
b1ackmai1er
d89d68e816 Update usbfifo.asm
Add cable disconnect recognition
2019-08-04 15:29:43 +08:00
b1ackmai1er
8c49962102 Add capability to change which console is default 2019-08-04 02:32:51 +08:00
b1ackmai1er
ea4aea46d4 usb-fifo Update config files for other builds 2019-07-28 20:35:03 +08:00
b1ackmai1er
19033c018d Update usbfifo.asm
Cleanup
2019-07-28 19:56:47 +08:00
b1ackmai1er
32bdecb828 Add usb-fifo driver 2019-07-28 16:06:36 +08:00
Wayne Warthen
086957fd3f SIO Fixes 2019-07-23 18:16:30 -07:00
Wayne Warthen
7eeea3684b Update ReadMe.txt 2019-07-22 17:56:55 -07:00
Wayne Warthen
6f16fdc9d5 Support Multiple SIO Modules
Updated SIO driver to handle multiple SIO modules w/ auto-detect and protection for phantom ports.
2019-07-22 17:54:37 -07:00
Wayne Warthen
dcc1bd8cb7 Improved SD Error Messaging
Convert SD error to NO MEDIA when initial command fails.
2019-07-16 15:31:45 -07:00
Wayne Warthen
b85eda9649 Handle SPI w/ No Pullups
Updated SD driver to handle newer SD card adapters which omit the pullup resistors in the SD Card spec.
2019-07-15 12:38:11 -07:00
b1ackmai1er
c210b5941e Update pio.asm 2019-07-15 22:44:18 +08:00
b1ackmai1er
de72e05a45 Merge branch 'master' of https://github.com/b1ackmai1er/RomWBW 2019-07-15 19:06:55 +08:00
Wayne Warthen
31b2192f22 RTC Port Shadow Register
Implemented a shadow copy of the RTC port value to enable multiple drivers to share the port without causing side effects to other drivers that use other bits of the RTC port.
2019-07-14 14:00:00 -07:00
b1ackmai1er
2480976308 Update pio.asm
Major restructure
2019-07-14 20:38:51 +08:00
Wayne Warthen
5958f7760e Add SC126 DSRTC Support
Updated DSRTC support to avoid mangling bits used for other purposes in RTC latch port.
2019-07-12 15:17:29 -07:00
Wayne Warthen
9a3e3e443c SC126 Diag Port
Make diagnostic port existence and port address configurable.
2019-07-11 19:25:40 -07:00
b1ackmai1er
056f8eab5f Merge pull request #3 from wwarthen/master
Resync
2019-06-22 11:30:04 +08:00
Wayne Warthen
784fd1f433 Merge branch 'master' of https://github.com/wwarthen/RomWBW 2019-06-21 14:17:59 -07:00
Wayne Warthen
293ca770de SC126 Support and SIO Update 2019-06-21 14:17:46 -07:00
Wayne Warthen
64203d4796 Merge pull request #35 from b1ackmai1er/master
Invalid BIOS (signature missing)
2019-06-10 15:16:11 -07:00
b1ackmai1er
1ca508dc2e Invalid BIOS (signature missing)
DS1210 datasheet "The fourth function the DS1210 performs is a battery status warning so that potential data loss is avoided. Each time that the circuit is powered up the battery voltage is checked with a precision comparator. If the battery voltage is less than 2.0 volts, the second memory cycle is inhibited.  Battery status can, therefore, be determined by performing a read cycle after power-up to any location in memory, verifying that memory location content. A subsequent write cycle can then be executed to the same memory location altering the data. If the next read cycle fails to verify the written data, then the batteries are less than 2.0V and data is in danger of being corrupted"

This also works:

	LD	HL,HBX_IMG-2
	LD	DE,HBX_LOC-2
	LD	BC,HBX_SIZ+2
	LDIR

Regards Phil
2019-06-10 22:54:24 +08:00
b1ackmai1er
260d7c0054 Merge branch 'master' of https://github.com/b1ackmai1er/RomWBW 2019-06-10 22:33:46 +08:00
Wayne Warthen
b0aab772ef Finalize v2.9.1 2019-06-03 16:13:46 -07:00
b1ackmai1er
b560f1d3a9 Resync 2019-05-30 19:31:00 +08:00
b1ackmai1er
ca3ba80fd8 Merge pull request #2 from wwarthen/master
Resync
2019-05-30 06:08:31 +08:00
Wayne Warthen
3a1e9f3b72 Cleanup 2019-05-29 14:57:56 -07:00
Wayne Warthen
8197caa4ef Merge pull request #34 from b1ackmai1er/master
Add debugging module mio
2019-05-29 14:41:08 -07:00
b1ackmai1er
c39c27009b Add debugging module mio
Cached debug out
2019-05-28 18:59:17 +08:00
Wayne Warthen
9a15a1796d Merge pull request #33 from b1ackmai1er/master
Additional German Keyboard mapping
2019-05-27 11:52:14 -07:00
b1ackmai1er
4a2dfd7f4a Additional German Keyboard mapping 2019-05-27 17:36:41 +08:00
Wayne Warthen
fa7ae387bf Cleanup 2019-05-26 12:56:24 -07:00
Wayne Warthen
bfc0fa8345 Cleanup 2019-05-26 12:42:56 -07:00
Wayne Warthen
f9c82467cb Merge pull request #32 from b1ackmai1er/master
Add German keyboard layout to ppk and kbd
2019-05-26 12:24:51 -07:00
b1ackmai1er
03fc29d297 Fix local variables in macros
Underscore breaks local variable use in pio driver
2019-05-26 14:10:00 +08:00
b1ackmai1er
ccf8d06c8f Add German keyboard layout to ppk and kbd
From Joachim - joachim.liebold@arcor.de
2019-05-26 10:41:36 +08:00
Wayne Warthen
f624082a62 Finalize v0.9.1-pre.15 2019-05-25 16:52:53 -07:00
b1ackmai1er
cffd109179 Merge pull request #1 from wwarthen/master
Resync
2019-05-25 12:22:49 +08:00
Wayne Warthen
346b190f97 Minor Cleanup 2019-05-24 18:13:21 -07:00
Wayne Warthen
aaaac827d1 Merge pull request #31 from b1ackmai1er/master
Display Z180 processor type at boot.
2019-05-24 16:47:33 -07:00
b1ackmai1er
4860cd945f Update hbios.asm 2019-05-23 23:21:48 +08:00
b1ackmai1er
6106e1600f Update hbios.asm 2019-05-22 21:50:11 +08:00
b1ackmai1er
2d8cd1538f Update hbios.asm 2019-05-22 21:39:26 +08:00
Wayne Warthen
824580de66 Merge pull request #30 from wwarthen/dev
Dev
2019-05-18 11:24:27 -07:00
Wayne Warthen
9cde0994fc Merge pull request #29 from b1ackmai1er/dev
Add  N8 Beep
2019-05-18 11:18:42 -07:00
b1ackmai1er
9e5f7331b1 Add N8 Beep 2019-05-18 15:45:24 +08:00
Wayne Warthen
5551fb9df1 Cleanup IntTest 2019-05-15 21:39:21 -07:00
Wayne Warthen
af892d719c Native RC Z180 & Interrupt Framework Improvements
- Added official support for Steve Cousin's RC2014 Z180 + Native Memory modules (SC111 & SC119).  Thanks to Steve for his assistance with this.
- Improved interrupt framework to remove need to extra stubs for each IM2 interrupt handler.
2019-05-15 15:30:29 -07:00
Wayne Warthen
7121a62b36 Update Doc 2019-05-10 18:33:20 -07:00
Wayne Warthen
68d02e5572 Improvements to INTTEST 2019-05-10 18:07:27 -07:00
Wayne Warthen
040337eaf4 Finalize v2.9.1-pre.13 2019-05-08 18:20:06 -07:00
Wayne Warthen
5196a56267 Support LBA Access for Floppy Devices 2019-05-06 19:26:59 -07:00
Wayne Warthen
e3805d4138 Minor Cleanup 2019-04-22 16:03:02 -07:00
Wayne Warthen
b334a4224d Fix CTC Support 2019-04-21 13:38:31 -07:00
Wayne Warthen
dcbda8806e Add CTC Timer Support
Add periodic timer interrupt support for CTC platforms Easy Z80 and Zeta 2.  Includes watchdog servicing for Easy Z80.  Default interrupt mode for Easy Z80 and Zeta 2 is now IM2.
2019-04-20 15:55:25 -07:00
Wayne Warthen
8fa9ef8d06 Fix Minor Build Issue
Recent addition of PIO driver caused breakage in some builds.  Default config files updated to fix this.
2019-04-19 11:21:38 -07:00
Wayne Warthen
97dbc7847b Minor Fixes
Revert interrupt processing bank id and SLR180 application.
2019-04-10 11:46:12 -07:00
Wayne Warthen
f0c62ceef1 Merge branch 'master' of https://github.com/wwarthen/RomWBW 2019-04-09 15:39:03 -07:00
Wayne Warthen
efad064619 CPM Build Tools Updates
Updated a few of the CP/M binaries used in the build process.
2019-04-09 15:38:49 -07:00
Wayne Warthen
1f3d2a7611 Merge pull request #27 from b1ackmai1er/master
PIO driver
2019-04-09 15:31:56 -07:00
b1ackmai1er
57ac1ca1fb Fix IM2 assembly error. Add 2nd PIO on ECP-ZP 2019-04-09 23:29:19 +08:00
b1ackmai1er
21acf463ba Delete pio.asm 2019-04-09 23:28:06 +08:00
b1ackmai1er
8d3c7a1859 Delete hbios.asm 2019-04-09 23:27:54 +08:00
b1ackmai1er
328453309a Fix IM2 assembly error. Add 2nd PIO on ECB-ZP 2019-04-09 23:26:55 +08:00
b1ackmai1er
6606baebe9 Fix IM2 assembly error. Add second ECB-ZP PIO chip. 2019-04-09 23:25:57 +08:00
b1ackmai1er
4594e990a6 PIO Updates 2019-04-08 20:12:35 +08:00
b1ackmai1er
1e7e28a065 Delete pio.asm 2019-04-08 20:11:59 +08:00
b1ackmai1er
56150ef85f PIO Updates 2019-04-08 20:11:24 +08:00
b1ackmai1er
de208491dc PIO build 2019-04-05 22:55:59 +08:00
b1ackmai1er
b9b1fecbfa Merge pull request #1 from wwarthen/master
Resync
2019-04-02 20:13:30 +08:00
Wayne Warthen
580d4ddf25 DDT & DDTZ Update
DDT & DDTZ updated with versions that use RST 30 instead of RST 38 to avoid conflicts with IM 1 interrupts.
2019-03-26 17:01:45 -07:00
Wayne Warthen
35d3408ab6 Floppy Driver Updates
Minor fixes in fd.asm.
2019-03-16 16:41:37 -07:00
Wayne Warthen
dcd4a5a8f1 Easy Z80 Platform
Make Easy Z80 a separate platform.
2019-03-15 15:16:49 -07:00
Wayne Warthen
dd4c51db97 Merge pull request #26 from wwarthen/master
Refresh Development Branch
2019-03-12 14:51:46 -07:00
Wayne Warthen
a6cc5c0986 Merge pull request #25 from b1ackmai1er/master
SIO & VDU updates
2019-03-12 14:44:34 -07:00
b1ackmai1er
c79d497063 VDU mode updates 2019-03-12 23:02:03 +08:00
b1ackmai1er
8d30252044 Add missing baud rate 2019-03-12 22:47:40 +08:00
Wayne Warthen
20c291dea2 VDU Driver Enhancements
VDU driver enhanced to support alternate screen simensions, provided by Phil Summers
2019-03-05 21:05:08 -08:00
Wayne Warthen
b79c1e7a2f Minor Easy Z80 Tweaks
Modified naming convention from EZ80 to EZZ80 to avoid confusion with Zilog eZ80 processor.
2019-03-04 21:33:44 -08:00
Wayne Warthen
825c2d340b Merge pull request #24 from skiselev/master
Add support for Easy Z80
2019-02-28 20:40:57 -08:00
Sergey Kiselev
810beae712 Eazy Z80: Specify SIO clock frequency
Signed-off-by: Sergey Kiselev <skiselev@gmail.com>
2019-02-27 10:13:41 -08:00
Sergey Kiselev
7ba9bd6e67 Add support for Eazy Z80
Signed-off-by: Sergey Kiselev <skiselev@gmail.com>
2019-02-27 09:38:05 -08:00
Wayne Warthen
9c43e63d1b ROM Loader INT Management
Modified ROM Loader to leave interrupts active when launching target image.
2019-02-20 11:46:29 -08:00
Wayne Warthen
0fe4c5e6f8 Finalize v2.9.1 Prerelease 9
Stability fixes.
2019-02-19 13:41:14 -08:00
Wayne Warthen
931d33eb11 Finalize v2.9.1 Prerelease 8
Fix possible int mode 1 processing paging conflicts.
2019-02-18 15:16:30 -08:00
Wayne Warthen
6f712f4f01 Minor Updates 2018-12-24 14:39:47 -08:00
Wayne Warthen
8d0e25c8a6 Merge pull request #23 from dimitrit/master
Update Tasty Basic
2018-12-24 10:51:14 -08:00
dimitrit
5c4bf2ad89 Update Tasty Basic 2018-12-23 18:47:52 +00:00
Wayne Warthen
92bdce5eb1 Small PPIDE Driver Fix
Remove use of IDE NOP command during probe.
2018-12-12 15:37:24 -08:00
Wayne Warthen
d7f68775ce Various Cleanup 2018-11-26 20:49:22 -08:00
Wayne Warthen
877d868745 Refactoring 2018-11-20 19:29:23 -08:00
Wayne Warthen
82e7b3d813 Refactor DSKY Monitor 2018-11-17 16:10:22 -08:00
Wayne Warthen
c6a3750ea5 Update Doc/ChangeLog.txt 2018-11-14 15:34:42 -08:00
Wayne Warthen
fd5636229d Monitor and RomLdr Updates 2018-11-14 15:27:51 -08:00
Wayne Warthen
a69a1cc930 Merge pull request #21 from b1ackmai1er/master
Update to support romldr loading ROMs at 200h. nascom basic, forth etc.
2018-11-10 12:39:56 -08:00
b1ackmai1er
fd41ef179e Update to support romldr loading ROMs at 200h. nascom basic, forth etc. 2018-11-10 16:06:07 +08:00
b1ackmai1er
2a4455aa9c Update to org 200h 2018-11-10 16:00:06 +08:00
Wayne Warthen
7ed82106a3 Merge pull request #20 from b1ackmai1er/master
Romldr now uses one routine to execute code.
2018-11-09 11:50:53 -08:00
b1ackmai1er
982744b6c9 Tidy up Romldr 2018-11-10 01:13:32 +08:00
b1ackmai1er
cccf49d8bd Delete romldr.asm 2018-11-10 01:12:45 +08:00
b1ackmai1er
082c101845 Tidy up Romldr 2018-11-10 01:10:48 +08:00
b1ackmai1er
c8ba301d45 Romldr now uses one routine to execute code. 2018-11-10 00:17:15 +08:00
b1ackmai1er
2701c43161 Merge pull request #3 from wwarthen/master
Resync
2018-11-09 16:32:04 +08:00
Wayne Warthen
dd73ec092b Finish DBGMON and Cleanup 2018-11-08 18:21:26 -08:00
Wayne Warthen
03fd4f030b More DBGMON Refinements 2018-11-08 12:20:33 -08:00
Wayne Warthen
2c8399dfcf More DBGMON Cleanup 2018-11-08 12:04:28 -08:00
Wayne Warthen
229f040d43 Merge pull request #19 from b1ackmai1er/master
RTC now has reboot option. Previous reboot.com code to be removed
2018-11-08 11:44:30 -08:00
b1ackmai1er
b2788ca1ee Add add reboot option, code optimization. As part of reverting reboot.com.
RTC does not use HBIOS RTC functions.
2018-11-08 11:37:40 +08:00
b1ackmai1er
2dbc4f9a9d Update Build.ps1 2018-11-08 11:31:33 +08:00
b1ackmai1er
2fac781a0a Update Build.cmd 2018-11-08 11:29:30 +08:00
b1ackmai1er
07ebb83cac Delete reboot.asm 2018-11-08 11:28:21 +08:00
b1ackmai1er
52aff2a304 Merge pull request #2 from wwarthen/master
Resync
2018-11-08 09:42:08 +08:00
Wayne Warthen
53286700f7 Rearranged OSIMG ROM bank
The OSIMG bank needed more space allocated to ROMLDR.
2018-11-07 16:10:16 -08:00
Wayne Warthen
c3a9624040 Merge pull request #18 from b1ackmai1er/master
Force DS1302 charging at reboot.
2018-11-07 12:42:44 -08:00
b1ackmai1er
1dbc6ea740 Add a command to return to bootldr 2018-11-07 16:25:37 +08:00
b1ackmai1er
26dea9aa33 Add a command to return to bootldr 2018-11-07 16:24:14 +08:00
b1ackmai1er
d686f982cc Add a command to return to bootldr 2018-11-07 16:21:10 +08:00
b1ackmai1er
7cdad0b4ed Add option to force DS1302 RTC to turn on super caps and battery recharging at boot. 2018-11-07 15:15:12 +08:00
b1ackmai1er
04084b31aa Merge pull request #1 from wwarthen/master
Resync
2018-11-07 12:56:53 +08:00
Wayne Warthen
48fa2a027d Merge pull request #17 from b1ackmai1er/master
Further optimizations to romldr and update to documentation.
2018-11-06 19:52:26 -08:00
Wayne Warthen
8586202ae2 Minor Cleanup 2018-11-06 19:51:20 -08:00
b1ackmai1er
445943d253 Include some information on included ROM software. 2018-11-07 11:48:35 +08:00
b1ackmai1er
1682a41e40 Fix DSKY menu option 2018-11-07 10:30:49 +08:00
b1ackmai1er
7c302ba456 Add Reboot menu option. Some optimizations of error message display 2018-11-07 09:44:23 +08:00
b1ackmai1er
ab32774e68 Update layout documentation with recent ROM changes 2018-11-07 08:51:59 +08:00
Wayne Warthen
2633a7711d Merge pull request #16 from b1ackmai1er/master
CamelForth ROMWBW
2018-11-06 14:33:23 -08:00
b1ackmai1er
e2400a535c Updated to DSKY and BootAuto in romldr
Still more work to be done. Enabling DSKY make the bin file to large for the allocated ROM space.
2018-11-06 21:16:03 +08:00
b1ackmai1er
42cf223f4e Unified Menu structure for romldr to ease intergration of ROMs 2018-11-06 16:01:14 +08:00
b1ackmai1er
5f1c2a3e8c Update to build CamelForth 2018-11-05 16:53:18 +08:00
b1ackmai1er
0838624a79 Assembler for Camel Forth 2018-11-05 16:51:06 +08:00
b1ackmai1er
9fad7db460 CamelForth ROMWBW updated to finish on page ending 2018-11-05 16:33:58 +08:00
b1ackmai1er
5f7f902ba1 CamelForth ROMWBW in OSIMG1 2018-11-05 16:31:07 +08:00
b1ackmai1er
9bc2cb5328 CamelForth ROMWBW first working version 2018-11-05 14:43:38 +08:00
b1ackmai1er
e95eb28fe6 First version with HBIOS Character IO (but not working) 2018-11-05 13:31:13 +08:00
b1ackmai1er
518478c793 Fix some mangling I did t- returned to original 2018-11-04 11:42:44 +08:00
b1ackmai1er
f77eedf4b4 Forth BIN file gets copied to HBIOS directory for assembly into ROM 2018-11-04 11:38:05 +08:00
b1ackmai1er
b5703e8177 First build with Forth to ROM (still CP/M version) 2018-11-04 11:36:10 +08:00
b1ackmai1er
a97284c18d Delete camel80.hex 2018-11-04 11:11:32 +08:00
b1ackmai1er
6703f3b74c Delete camel80.bin 2018-11-04 11:11:18 +08:00
b1ackmai1er
22f30c06f7 Delete camel80.prn 2018-11-04 11:10:47 +08:00
b1ackmai1er
60cfebfcfa Initial CamelForth commit 2018-11-04 11:09:09 +08:00
b1ackmai1er
f2892e5927 Create readme.z80 2018-11-04 11:07:49 +08:00
Wayne Warthen
4cc4d83ef9 Merge pull request #15 from b1ackmai1er/master
Move along, nothing to see here
2018-10-30 15:32:53 -07:00
b1ackmai1er
f45e316a8c Move along, nothing to see here 2018-10-30 23:01:42 +08:00
Wayne Warthen
2c5f0ee332 Merge pull request #14 from b1ackmai1er/master
Add BASIC support through usage of empty ROM bank
2018-10-29 20:50:28 -07:00
b1ackmai1er
164627f794 Ensure we have all Nascom changes 2018-10-30 06:03:19 +08:00
b1ackmai1er
39b7b08932 Cleanup, get ready for merge. No PIO support yet 2018-10-30 06:00:57 +08:00
b1ackmai1er
127d5bc676 Delete romldr.asm 2018-10-30 05:59:27 +08:00
b1ackmai1er
5b1348d123 Delete hbios.asm 2018-10-30 05:59:13 +08:00
b1ackmai1er
2f9cd64489 Delete cfg_sbc.asm 2018-10-30 05:58:59 +08:00
b1ackmai1er
81eacdda24 Cleanup, get ready for merge. No PIO support yet 2018-10-30 05:57:19 +08:00
b1ackmai1er
c33adf6cf7 Move and align buffers and stack to end of RAM 2018-10-29 23:21:22 +08:00
b1ackmai1er
d29ce909a0 Fix I/O, buffers and stack 2018-10-28 22:57:28 +08:00
b1ackmai1er
aaf957af4e Update build process to build additonal ROM image 2018-10-28 18:02:06 +08:00
b1ackmai1er
eb107c9b54 Update build process to build additonal ROM image 2018-10-28 15:33:44 +08:00
b1ackmai1er
40b40b7fa5 Support for additional rom options including Nascom and Tasty BASIC 2018-10-28 14:39:20 +08:00
b1ackmai1er
a28bfc157b Extend serial device type to support 4 devices including parallel port device. 2018-10-07 17:11:52 +08:00
b1ackmai1er
9d372a54cc Delete hbios.asm 2018-10-07 17:10:55 +08:00
b1ackmai1er
b5b29fcb32 Delete hbios.inc 2018-10-07 17:10:41 +08:00
b1ackmai1er
f7fc9dc564 Delete pio.asm 2018-10-07 17:10:15 +08:00
b1ackmai1er
e15c2201ee Add Bi-Directional port type to CharIO Parallel port type 2018-10-07 16:53:01 +08:00
b1ackmai1er
a69218877c Extend serial device type to support 4 devices including parallel port device. 2018-10-07 15:45:46 +08:00
b1ackmai1er
f4953e6394 Framework for Parallel port driver for ECB-Zilog-Peripherals & ECB-4PIO 2018-10-06 23:53:11 +08:00
Wayne Warthen
b6ca264e88 Add SmallZ80 Support to FDU 2018-09-28 17:46:18 -07:00
Wayne Warthen
3279f78ced Update Changelog 2018-09-28 09:08:38 -07:00
Wayne Warthen
00935edaa1 Merge pull request #13 from b1ackmai1er/master
Display more config info at DS1302 RTC initialization
2018-09-28 07:35:55 -07:00
b1ackmai1er
97e9339bc9 Display more config info at DS1302 RTC initialization
For systems which use Super capacitor or rechargable battery, trickle charge status is displayed. Good for users with ECB-RAMF for example. Trickle charge can be turned on/off with the RTC.COM utility and the status set will now be display at boot time.
2018-09-28 19:01:48 +08:00
Wayne Warthen
6fb53c08d5 Merge pull request #12 from b1ackmai1er/master
Display more config info at ECB-RAMF initialization
2018-09-27 19:12:37 -07:00
b1ackmai1er
f7cf537454 Display more config info at ECB-RAMF initialization 2018-09-27 20:59:37 +08:00
Wayne Warthen
83bc6af3a6 Update Architecture Document 2018-09-02 17:55:31 -07:00
Wayne Warthen
f5294a19d7 Preliminary Support for Interrupt Management API 2018-08-28 18:55:31 -07:00
Wayne Warthen
5b08693ba2 Beep Support Updates 2018-08-21 16:45:22 -07:00
Wayne Warthen
b084b075e6 Merge pull request #10 from b1ackmai1er/master
Add startup beep support for SBC V2 using PSG on TMS or bit port on SBC RTC
2018-08-21 13:09:48 -07:00
b1ackmai1er
78267d5111 Beep support and cleanup 2018-08-20 19:42:28 +08:00
b1ackmai1er
f982a5e67b Fix to enable PSG without TMS 2018-08-20 19:40:39 +08:00
b1ackmai1er
b4a7805033 Changes to support SBC beep 2018-08-20 17:59:52 +08:00
b1ackmai1er
6bec8936a9 Changes to support SBC beep 2018-08-20 17:56:22 +08:00
b1ackmai1er
67deaf3949 Changes to support SBC beep 2018-08-20 17:52:07 +08:00
b1ackmai1er
0f6f1077c5 Changes to support SBC beep 2018-08-20 17:49:05 +08:00
b1ackmai1er
1d59af182e Changes to support SBC beep 2018-08-20 17:45:32 +08:00
b1ackmai1er
060418d5d9 Add supporting definitions for beep sound 2018-08-20 17:02:58 +08:00
b1ackmai1er
64901dcbbb Add beep driver for PSG and IOPort 2018-08-20 16:58:45 +08:00
b1ackmai1er
2e8d44d005 Add beep on boot 2018-08-20 16:56:05 +08:00
b1ackmai1er
c99293d94e Merge pull request #1 from wwarthen/master
Resync to master
2018-08-04 09:14:00 +08:00
Wayne Warthen
64f2e37ffb Add IM0 Mode to ACIA Driver 2018-08-03 16:46:44 -07:00
Wayne Warthen
716ee19f6c Merge pull request #9 from b1ackmai1er/master
Fixed wrong port address, cleanups and move big conditional structure to external file.
2018-08-03 12:02:58 -07:00
b1ackmai1er
1fc2017db5 Fix typo. 2018-08-03 22:45:13 +08:00
b1ackmai1er
e7cc7906c5 Fixes to port address and cleanups 2018-08-03 22:40:07 +08:00
b1ackmai1er
41c5eba034 Delete sio.asm 2018-08-03 22:38:58 +08:00
b1ackmai1er
f66b6f155e Fixes port address and cleanups 2018-08-03 22:37:17 +08:00
b1ackmai1er
add0f3df07 Separate the baud encoding conditional for readability 2018-08-03 19:46:24 +08:00
Wayne Warthen
34f55f6024 Fix Bug in SIO Driver Update 2018-08-02 15:10:46 -07:00
Wayne Warthen
331760cd5c Add IM0 Mode to SIO Driver 2018-08-02 14:51:18 -07:00
Wayne Warthen
42ad81285f Minor Cleanup 2018-08-01 16:36:04 -07:00
Wayne Warthen
14f73f3dd2 Merge pull request #8 from b1ackmai1er/master
SBC V2 - Zilog Peripherals support using RC2014 driver.
Credit to Phil Summers for this work.
2018-07-31 17:47:45 -07:00
b1ackmai1er
e768dc2d5f Add data bit setting support 2018-07-31 23:24:40 +08:00
b1ackmai1er
d0ee99fff2 Inline the serial format code and add stop bit setting 2018-07-30 23:14:15 +08:00
b1ackmai1er
1b565de9ce Fix incorrect equate causing RC build failure 2018-07-30 18:28:01 +08:00
b1ackmai1er
0a324564d5 Fix bad equate causing RC build to fail 2018-07-30 18:23:10 +08:00
b1ackmai1er
206b3ffcd2 Add configurable baud rate through mode.com 2018-07-29 23:09:58 +08:00
b1ackmai1er
398dec28e9 Add basic support for configurable port and baud 2018-07-29 17:34:20 +08:00
b1ackmai1er
0e8b6aecb7 Delete sio.asm 2018-07-29 17:31:27 +08:00
b1ackmai1er
5d0906aef6 Add basic support for configurable port and baud 2018-07-29 17:30:02 +08:00
b1ackmai1er
f1448fde6e Add basic support for configurable port and baud 2018-07-29 17:12:04 +08:00
b1ackmai1er
6d7ac7a06c Add Config defaults for multiplatform SIO 2018-07-29 16:23:56 +08:00
b1ackmai1er
0010dc8c81 Add Config defaults for multiplatform SIO 2018-07-29 15:46:46 +08:00
b1ackmai1er
d93a85c1d4 Add equated for configurable SIO platform and and missing serial baud rate equates 2018-07-29 15:05:56 +08:00
b1ackmai1er
490e3e49f8 Add definable base address for SIO 2018-07-29 14:48:01 +08:00
b1ackmai1er
0a2654a761 Add definable base address for SIO 2018-07-29 14:33:56 +08:00
Wayne Warthen
ae2c3b113c Fixed MODE Command Bug
Credit to Phil Summers
2018-07-24 14:12:19 -07:00
Wayne Warthen
d43ef1728c Update RomList 2018-06-06 11:55:43 -07:00
Wayne Warthen
cb9ead08c7 Finalize support for RC180 platform 2018-06-06 11:45:10 -07:00
Wayne Warthen
e0509aafe1 Minor Cleanup 2018-05-24 10:18:06 -07:00
Wayne Warthen
99b8409738 Added Diagnostic Port Support 2018-05-24 09:28:21 -07:00
Wayne Warthen
05641bdec0 RC180 Platform and XM Bug Fix
- Added RC180 platform (not tested!)
- Fixed file send problem in XModem on RC2014
- Added NZCOM distribution files to hard disk 0, slice 2
2018-05-21 16:18:54 -07:00
Wayne Warthen
b09f30ed41 PPIDE Driver Fix
Fixed missing DRV/HD register setup for writes in PPIDE driver.
2018-05-03 12:39:51 -07:00
Wayne Warthen
e1d2eb1ecd Comments in PowerShell Build Script 2018-05-02 15:04:47 -07:00
Wayne Warthen
2872381c7d Handle LST: better
- LST: auto mapped to second serial port if available
- Minor updates to Prop ANSI emulation
2018-05-01 09:10:12 -07:00
Wayne Warthen
1f594e1004 Finalize v2.9.1-pre.1 2018-04-19 19:56:20 -07:00
Wayne Warthen
0834762f6e Add BEL functionality from Michael Schweikert
Added BEL functionality to Propeller-based consoles
Build directory cleanup
2018-03-12 16:24:46 -07:00
Wayne Warthen
091d171f02 Finalize v2.9.1 Prerelease 0
Added character attributes on propeller-based consoles.
2018-03-11 17:35:04 -07:00
Wayne Warthen
86b11cca5f Minor SD driver fix
Fix SD driver to build properly when IDE driver is not in use.
2018-02-27 12:45:25 -08:00
Wayne Warthen
2232c87fdb Update Win32DiskImager to v1.0 2018-01-29 12:11:29 -08:00
Wayne Warthen
82619da3fd Add TUNE application
The TUNE application replaces the previous PTXPLAY application and now
supports MYM sounds files in addition to PT2 and PT3.
2018-01-28 17:22:48 -08:00
Wayne Warthen
aef2561f2a Merge pull request #6 from electrified/add-rc2014-rtc-support
Add support for DS1302 clock on RC2014
2018-01-27 11:34:12 -08:00
Ed
dc26d38a36 Add support for DS1302 clock on RC2014 2018-01-27 17:35:03 +00:00
Wayne Warthen
55d7b5e80e Finalize v2.9.0 2018-01-26 16:17:30 -08:00
Wayne Warthen
231239f43f Finalize v2.9.0 Prerelease 0
- New function dispatching logic
- Refactored interrupt management
2018-01-16 16:30:37 -08:00
Wayne Warthen
5fc01b4100 Finalize RC2014 floppy updates
RC2014 floppy controller support completed and tested for Scott Baker
SMC and WDC controller modules.  FDU application updated as well.
2018-01-08 16:45:43 -08:00
Wayne Warthen
768e41c933 New disk driver interface logic 2018-01-07 15:04:00 -08:00
Wayne Warthen
cedb584722 Merge pull request #5 from electrified/fix-rc2014-cf-config
CF IDE mode setting was being written to PPIDE variable in RC2014 standard config
2018-01-07 08:50:50 -08:00
ed
234bb0bbe5 IDE mode setting was being written to PPIDE variable in RC2014
standard config
2018-01-07 10:41:03 +00:00
Wayne Warthen
fb63612ebf RC2014 Floppy
- Support for RC2014 SMB Floppy (WDC & SMC), but not yet tested.
- Final work on Multi-Sector I/O
2018-01-01 16:12:12 -08:00
Wayne Warthen
c9869344e2 Disk Driver Multi-Sector I/O
Added multi-sector I/O to all disk drivers.
Added SMB variant to PPIDE driver.
2017-12-29 16:57:06 -08:00
Wayne Warthen
409c306474 Update Survey App
Updated SURVEY app to properly handle Z80 16 bit I/O port addressing.
Minor improvements to FDU.
2017-12-17 14:53:11 -08:00
Wayne Warthen
05376b6173 FDU App Updates
- Improve read/write sector performance in FDU to avoid spurious overrun
errors.
- Fix boot loader under UNA
2017-12-16 16:45:28 -08:00
Wayne Warthen
09d0e3754f Fix Boot Loader for UNA 2017-12-12 19:49:14 -08:00
Wayne Warthen
feee56990a Finalize 2.8.6
- Support for RC2014
- Handle IDE disk spinup without timing out
2017-12-10 19:54:34 -08:00
Wayne Warthen
b02d9bf1fa Finalize v2.8.6-pre.1 2017-12-06 13:11:56 -08:00
Wayne Warthen
984a4c6ff3 Fix Build Script Issue 2017-12-03 18:04:19 -08:00
Wayne Warthen
99ec7049f7 Implement Auto PROFILE.SUB Execution on Boot
Updated CBIOS to look for PROFILE.SUB on the boot drive and SUBMIT it
automatically at cold boot if it exists.  Also patched SUBMIT.COM to
force temporary file onto A: to ensure immediate execution of SUBMITed
files.
2017-12-03 15:17:44 -08:00
Wayne Warthen
4a9d3c654f Modify RTC.COM to dynamically adjust to hardware
RTC.COM is now one application instead of one per hardware platform.  It
adjusts to the running platform by querying HBIOS for the active
platform.
2017-11-29 18:39:49 -08:00
Wayne Warthen
c171dd329d Add Support for PPIDE on RC2014 2017-11-28 17:30:41 -08:00
Wayne Warthen
584c3b0aa3 Fix DSD Detection 2017-11-26 21:21:46 -08:00
Wayne Warthen
a2cfb95574 Merge pull request #4 from electrified/adjustments-for-scott-bakers-sio
Adjust port mapping for Scott Baker's SIO board
2017-11-26 19:21:33 -08:00
Ed
46b74f8e94 Adjust port mapping for Scott Baker's SIO board 2017-11-26 17:47:55 +00:00
Wayne Warthen
d27fa8a587 Add Option for SMB SIO Module 2017-11-24 21:02:32 -08:00
Wayne Warthen
4579b1fd9c Merge pull request #3 from electrified/ppide-fix
Don't care if disabling 8-bit transfers fails on 16-bit drives
2017-11-24 08:20:04 -08:00
Ed
8e7f41cd08 Don't care if disabling 8-bit transfers fails on 16-bit drives 2017-11-23 23:03:55 +00:00
Wayne Warthen
4c91264062 Update Documentation Files
Updated ReadMe files to reflect addition of RC2014 platform.
2017-11-22 13:41:23 -08:00
Wayne Warthen
366bb7301f Propagate IDE Fix to PPIDE
Credit to Ed Brindley
2017-11-22 13:26:40 -08:00
Wayne Warthen
9635d5933e Finalize v2.8.6 Prerelease 0
Adds ACIA support
Adds IM1 interrupt chaining
Fixes IDE SETFEAT issue
2017-11-21 17:04:23 -08:00
Wayne Warthen
ad55977d4a Fix IDE Detection on RC2014 2017-11-09 14:12:10 -08:00
Wayne Warthen
8863b071da XMODEM Bug Fixes 2017-11-09 12:10:22 -08:00
Wayne Warthen
a60eb57a47 Add RC2014 Support to XMODEM App 2017-11-08 19:11:15 -08:00
Wayne Warthen
51a33aaf0b SIO Driver Interrupt Based Receive 2017-11-07 18:21:11 -08:00
Wayne Warthen
a5bb6a2b7e Preliminary RC2014 Support 2017-11-05 18:12:02 -08:00
Wayne Warthen
7014a33285 Finalize 2.8.5
Clean up support in TMS driver for SCG board.
2017-10-09 15:31:23 -07:00
Wayne Warthen
e8d9671753 Finalize v2.8.4
Small bug fixes
2017-09-03 17:22:53 -07:00
Wayne Warthen
8deca61094 Enhanced FDU
FD renamed to FDU and enhanced to select FDC at startup to eliminate
multiple build variations.
2017-09-02 15:43:02 -07:00
Wayne Warthen
d5936b7fb5 Minor App Updates
Improve handling of UNA in XModem and MODE commands.
2017-08-28 17:15:28 -07:00
Wayne Warthen
4fdb89d651 Minor fixes 2017-08-24 15:06:04 -07:00
Wayne Warthen
c4e9a47048 XModem Enhancements
Added dynamic CPU speed adaptation to XModem
2017-08-24 12:50:24 -07:00
Wayne Warthen
2fd22922d5 Finalize 2.8.3 2017-08-23 20:32:44 -07:00
Wayne Warthen
1060cfd441 Added Mode command 2017-08-23 18:22:58 -07:00
Wayne Warthen
7db00165dd App updates
- All XM variants integrated into a single XM.COM app that auto-detects
primary serial port.
- Include all relevant FD variants for each platform.
2017-08-10 22:16:03 -07:00
Wayne Warthen
9d9018b455 Finalize Release 2.8.2
Minor correction to VGA3 timing parameters
2017-07-18 16:15:16 -07:00
Wayne Warthen
eb460e885a Finalize Release v2.8.1 2017-07-11 18:53:35 -07:00
Wayne Warthen
8ca34eb81f UNA Update
Update to current version of UNA and fix FDISK80 breakage.
2017-07-06 18:03:18 -07:00
Wayne Warthen
f509b0fa01 Finalize Release v2.8.0 2017-07-04 15:35:01 -07:00
Wayne Warthen
75282a33c9 Fix Filename Case 2017-06-30 21:55:30 -07:00
Wayne Warthen
db89164e1e Fix Filename Case 2017-06-30 21:55:00 -07:00
Wayne Warthen
fb6b1fd54a Add VGA3 Support 2017-06-30 21:50:10 -07:00
Wayne Warthen
939a822f65 More BPBIOS Cleanup 2016-11-28 21:19:22 -08:00
Wayne Warthen
4ab1cadfad BPBIOS and Date Stamping Cleanups
- Improved BPBIOS compatibility
- Enhanced STAMPS.DAT w/ NZT stamp
2016-11-27 20:15:12 -08:00
Wayne Warthen
97c36c0efc BPBIOS Related Fixes 2016-11-23 19:31:57 -08:00
Wayne Warthen
8d02b02ab4 Cleanup 2016-10-03 15:27:18 -07:00
Wayne Warthen
f1ada661c1 Additional directory cleanup 2016-09-30 20:00:13 -07:00
Wayne Warthen
90d7b9673c Revamp directory structure 2016-09-30 18:07:16 -07:00
Wayne Warthen
5e6196d541 Update Doc build process 2016-09-29 17:01:46 -07:00
Wayne Warthen
e350aa0672 Interrupt framework implementation
- Interrupt framework
- Documentation in progress w/ Latex conversion
2016-07-10 21:55:00 -07:00
Wayne Warthen
c478a04b48 Prerelease 5 2016-06-03 18:13:15 -07:00
Wayne Warthen
928a64147c Bug Fixes 2016-06-03 17:56:22 -07:00
Wayne Warthen
a57736ef2b Minor cleanup 2016-06-01 21:20:59 -07:00
Wayne Warthen
62641ba4a6 Prerelease 4 2016-05-29 16:52:28 -07:00
Wayne Warthen
5f205dd90b Boot and Bank Layout Cleanup
Revised hbios.asm to compile in 3 modes (ROM/APP/IMG boot).  Updated and
simplified ROM bank assignments.
2016-05-29 07:56:01 -07:00
Wayne Warthen
5115684dc2 Fix Compilation Error in XIO.ASM 2016-05-22 07:59:42 -07:00
Wayne Warthen
a2566d4de5 Revise Serial Driver Initialization
- Implement PREINIT
- Use detected CPU speed for initialization
2016-05-22 07:52:13 -07:00
Wayne Warthen
68c9813390 Bump Version 2016-04-26 16:18:02 -07:00
Wayne Warthen
0653a42984 Fix Delay Initialization 2016-04-25 22:12:13 -07:00
Wayne Warthen
a7d4459a01 Preserve Partition Table in SYSCOPY
Updated FLASH to latest version
2016-04-24 21:51:37 -07:00
Wayne Warthen
7da6c582a0 Bug Fixes 2016-04-22 15:45:10 -07:00
Wayne Warthen
684f59a73c Bug Fixes in ASSIGN Command 2016-04-21 13:16:41 -07:00
Wayne Warthen
97a09a6e33 Revised Serial Device Config Routines 2016-04-20 22:06:32 -07:00
Wayne Warthen
9e5a1ea41b UART Config Changes 2016-04-19 15:06:06 -07:00
Wayne Warthen
07d833473c Bug Fixes 2016-04-14 17:29:45 -07:00
Wayne Warthen
31f5388f9e Implement HBIOS Reset Function 2016-04-10 17:24:27 -07:00
Wayne Warthen
521af19e50 VDA Device Initialization Flow Cleanup 2016-04-10 16:21:29 -07:00
Wayne Warthen
9605d80b99 Code Cleaning 2016-04-08 18:04:06 -07:00
Wayne Warthen
67ede23694 Clean Up Drive Assignment Code 2016-04-07 22:56:46 -07:00
Wayne Warthen
5154713644 Config Files Overhaul 2016-04-06 18:14:14 -07:00
Wayne Warthen
5bb7bd6c44 Revise BPBIOS Prototype
Revise BPBIOS source to accommodate recent changes in HBIOS API.
2016-03-30 22:18:54 -07:00
Wayne Warthen
8fe3526ecd API Revisions / Cleanup
- Improved banked copy size and performance
- Revised API for SETCPY, BNKCPY, SETBNK, and GETBNK
2016-03-30 17:10:08 -07:00
Wayne Warthen
f9c7f30d2d Bug Fixes 2016-03-25 23:06:18 -07:00
Wayne Warthen
8aedfbb7f3 Add Device Summary Display 2016-03-25 21:20:05 -07:00
Wayne Warthen
b4fc05acfb Incorporate FDISK80 2016-03-21 17:05:57 -07:00
Wayne Warthen
5adbef5f68 Revised Emulation Services 2016-03-19 21:21:17 -07:00
Wayne Warthen
b63dfdf587 Revised Disk API 2016-03-10 17:44:42 -08:00
Wayne Warthen
6354bd300d Revised disk API 2016-03-04 20:09:47 -08:00
Wayne Warthen
53a74f78d7 HBIOS driver and BPBIOS refinements
- Refined sd, ide, and ppide drivers to improve hardware compatibility
- Improved BPBIOS build process
2016-02-01 14:50:58 -08:00
Wayne Warthen
b67106889e Add HBIOS Heap Memory
- New heap memory functions
- Restructured new disk I/O functions
2016-01-10 16:01:33 -08:00
Wayne Warthen
25974843e3 Storage Driver Refactoring 2015-12-06 20:10:00 -08:00
Wayne Warthen
6d8c2283b9 ParPortProp Driver Refactoring 2015-11-25 15:43:07 -08:00
Wayne Warthen
df74f73d5b PROPIO Driver Refactoring 2015-11-21 13:16:23 -08:00
Wayne Warthen
099172e44e IDE and PPIDE driver refactoring 2015-11-07 16:50:58 -08:00
Wayne Warthen
4626695b52 Overhaul PPIDE driver and sync with IDE driver 2015-11-05 19:37:49 -08:00
Wayne Warthen
8fbeb6eecc Continued cleanup of SD and IDE driver code 2015-10-24 12:52:27 -07:00
Wayne Warthen
d90c4dfed2 Correct capacity and geometry functions in sd and hsdk drivers 2015-10-04 12:22:45 -07:00
Wayne Warthen
803bb6a87d Refactor SD driver 2015-10-04 08:08:00 -07:00
Wayne Warthen
31d58909ce Refactor IDE driver
- Dynamic detection of devices
- Significant code clean up
2015-09-07 20:25:21 -07:00
Wayne Warthen
522b061fe6 Start of new geometry/capacity functions in HBIOS 2015-09-05 15:35:06 -07:00
Wayne Warthen
63c0289e28 Handle Output directory better
Git refuses to store empty directories.  So, build scripts modified to
create Output directory as needed.
2015-08-21 20:57:48 -07:00
Wayne Warthen
a0cc974323 Refactor Loader Code
Move loader code to an include file and create separate wrappers for
each of the loader functions.
2015-08-21 19:59:45 -07:00
Wayne Warthen
20f874d146 Create .gitattributes 2015-08-19 20:06:58 -07:00
wwarthen
de52c4f560 Reintegrate wbw -> trunk 2015-08-19 17:34:42 +00:00
wwarthen
c754fcdb99 Reintegrate wbw -> trunk 2015-04-08 04:09:08 +00:00
wwarthen
2148c3e1f7 Reintegrate wbw -> trunk 2015-04-03 06:02:14 +00:00
wwarthen
cc51d012de Reintegrate wbw -> trunk 2015-03-23 01:50:45 +00:00
wwarthen
ea547a012b Reintegrate wbw -> trunk 2015-03-16 01:37:54 +00:00
wwarthen
8e535d53f4 Reintegrate wbw26 -> trunk 2014-10-26 03:02:33 +00:00
wwarthen
5e08740456 Reintegrate wbw26 -> trunk 2014-10-18 19:02:13 +00:00
wwarthen
72dc548e6e Reintegrate wbw26 -> trunk 2014-10-14 03:20:39 +00:00
wwarthen
594ae07aa6 Reintegrate wbw26 -> trunk 2014-10-13 15:47:16 +00:00
wwarthen
a8491cc5e0 Reintegrate wbw26 -> trunk 2014-10-13 15:24:20 +00:00
wwarthen
74b80aaeeb Reintegrate wbw -> trunk 2014-09-08 04:11:55 +00:00
wwarthen
09da338d05 Reintegrate wbw -> trunk 2014-08-30 20:50:48 +00:00
wwarthen
3396ba3513 Reintegrate wbw -> trunk 2014-08-30 20:09:07 +00:00
wwarthen
d211dc2222 Reintegrate wbw -> trunk 2014-05-04 23:19:46 +00:00
wwarthen
2e4eb2fb1b Reintegrate wbw -> trunk 2014-03-02 02:37:34 +00:00
2430 changed files with 343491 additions and 81200 deletions

2
.gitattributes vendored Normal file
View File

@@ -0,0 +1,2 @@
# Leave all line endings alone!
* -text

31
.github/workflows/commit.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Commit Build
on:
push:
branches:
- master
tags-ignore:
- v*
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: rlespinasse/github-slug-action@1.1.0
- uses: actions/checkout@v2
- name: Build
run: |
sudo apt-get install libncurses-dev
make
make clean
rm -rf .git*
- name: Upload Artifact
uses: actions/upload-artifact@v1
with:
name: RomWBW-${{env.GITHUB_REF_SLUG}}-${{env.GITHUB_SHA_SHORT}}
path: .

51
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
name: Release Build
on:
release:
types: published
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Create Package Label
run: |
LABEL=`echo "$GITHUB_REF" | sed "s|^refs/tags/||"`
echo "::set-env name=PKGLBL::$LABEL"
- name: Display Diagnostics
run: |
echo PKGLBL: "$PKGLBL"
echo Upload URL: "${{github.event.release.upload_url}}"
echo GITHUB_TOKEN: "${{secrets.GITHUB_TOKEN}}"
- name: Build
run: |
sudo apt-get install libncurses-dev
make
make clean
rm -rf .git*
- name: Upload Artifact
uses: actions/upload-artifact@v1
with:
name: RomWBW-${{env.PKGLBL}}-Package
path: .
- name: Create Package Archive
run: |
zip -r Package.zip .
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
with:
upload_url: ${{github.event.release.upload_url}}
asset_path: Package.zip
asset_name: RomWBW-${{env.PKGLBL}}-Package.zip
asset_content_type: application/zip

96
.gitignore vendored Normal file
View File

@@ -0,0 +1,96 @@
# Not sure what patterns to apply
# So ignoring all generated files explicitly
**/*.[Bb][Ii][Nn]
**/*.[Cc][Oo][Mm]
**/*.[Rr][Oo][Mm]
**/*.com
**/*.eeprom
**/*.hex
**/*.img
**/*.lib
**/*.lst
**/*.o
**/*.prn
**/*.rel
**/*.sym
**/*.sys
**/*.tmp
**/*/font*.asm
Binary/**/*.mym
Binary/**/*.pt3
Source/**/eeprom
Source/Apps/Assign.com
Source/Apps/FDU/FDU.COM
Source/Apps/Format.com
Source/Apps/IntTest.com
Source/Apps/Mode.com
Source/Apps/OSLdr.com
Source/Apps/RTC.com
Source/Apps/SysCopy.com
Source/Apps/SysGen.com
Source/Apps/Talk.com
Source/Apps/Timer.com
Source/Apps/Tune/Tune.com
Source/BPBIOS/bpsys.bak
Source/BPBIOS/bpsys.dat
Source/BPBIOS/def-ww.lib
Source/CPM3/bios3.spr
Source/CPM3/bnkbios3.spr
Source/CPM3/gencpm.dat
Source/CPM3/options.lib
Source/CPM3/zpmbios3.spr
Source/HBIOS/Blank512KB.dat
Source/HBIOS/build.inc
Source/Images/blank144
Source/Images/blankhd
Source/Prop/Spin/ParPortProp.list
Source/Prop/Spin/PropIO.list
Source/Prop/Spin/PropIO2.list
Source/ZPM3/bnkbios3.spr
Source/ZPM3/gencpm.com
Source/ZPM3/gencpm.com
Source/ZPM3/gencpm.dat
Tools/Linux
Tools/Darwin
Tools/unix/bin2asm/bin2asm
Tools/unix/cpmtools/cpmchattr
Tools/unix/cpmtools/cpmchmod
Tools/unix/cpmtools/cpmcp
Tools/unix/cpmtools/cpmls
Tools/unix/cpmtools/cpmrm
Tools/unix/cpmtools/fsck.cpm
Tools/unix/cpmtools/fsed.cpm
Tools/unix/cpmtools/mkfs.cpm
Tools/unix/lzsa/lzsa
Tools/unix/uz80as/uz80as
Tools/unix/zx/config.h
Tools/unix/zx/zx
!Source/ver.lib
!Source/Apps/FAT/FAT.COM
!Source/BPBIOS/bpbuild.com
!Source/BPBIOS/movp112.com
!Source/BPBIOS/Z34RCP11/cledinst.com
!Source/BPBIOS/Z34RCP11/cledsave.com
!Source/Fonts
!Source/Images/**/*.[Cc][Oo][Mm]
!Source/RomDsk/**/*.[Cc][Oo][Mm]
!Source/UBIOS/FSFAT.BIN
!Source/UBIOS/UNA-BIOS.BIN
!Source/ZCCP/*.[Cc][Oo][Mm]
!Source/ZCPR-DJ/*.[Cc][Oo][Mm]
!Source/ZPM3/*.[Cc][Oo][Mm]
!Source/ZSDOS/*.[Cc][Oo][Mm]
!Tools/cpm/bin
!Tools/unix/zx
!Tools/zx
Source/ZPM3/gencpm.com
Source/ZPM3/startzpm.com
Source/ZPM3/zccp.com
Source/ZPM3/zpmldr.com

View File

@@ -1,106 +0,0 @@
/* twodrive.c 7/11/2012 dwg - */
/* This program is experimental and is not for release because
it contains techniques which are not recommended because
there are better API functions to do these operations. */
/*
This code is in the crossdev folder because it is part of
my development environment, and I said I would make everything
available.
The purpose of this code is to dynamically alter the BIOS
data associated with PPIDE (or PPISD) drives. The default
configuration is that mass storage devices get four drives.
Each of the four drives can be remapped using the logical
unit utility MAP.
The purpose of this code is to alter the runtime data so that
instead of the PPIDE having four drives for the primary IDE
device, it then has two for the primary and two for the secondary.
The MAP command will properly display the status after this is
run, but you must keep in mind that having two sets of logical
units at the same time is twice as complicated to keep straight
in your mind, and you have to be more careful you know exactly
how the drives are mapped so you don't accidentally destroy your
data.
This utility is unsupported, and not recommended for general use.
The reason this utility wasn't generally published is that it
is very difficult to give support about this remotely.
If you are brave, and talented, and you can figure out what I did
with pointers in this program, then you get the prize, which is
to be able to copy from one CF chip to another in a dual adapter.
It has only been tested on my PPIDE, and I don't know what will
happen if you try it. You could wipe out your CF chip, so make
sure you are backed up if you try this.
*/
#include "cpmbios.h"
#include "bioscall.h"
#include "cpmbdos.h"
#include "bdoscall.h"
#define u8 unsigned char
#define u16 unsigned int
struct DPH * pDPH_C;
struct DPB * pDPB_C;
u8 * pDU_C;
u16 * pCUR_C;
u16 * pNUM_C;
struct DPH * pDPH_D;
struct DPB * pDPB_D;
u8 * pDU_D;
u16 * pCUR_D;
u16 * pNUM_D;
main(argc,argv)
int argc;
char *argv[];
{
ireghl = pSELDSK;
iregbc = DRIVEC;
iregde = 0;
bioscall();
pDPH_C = ireghl;
pDPB_C = pDPH_C->dpb;
pDU_C = ireghl -1;
*pDU_C = 0X41;
printf("Current C: DevUnit is %02x\n",*pDU_C);
pCUR_C = ireghl + 18;
*pCUR_C = 0;
printf("Current C: Logical Unit is %d\n",* pCUR_C);
pNUM_C = ireghl + 20;
*pNUM_C = 64/9;
printf("Current C: Number of LU's is %d\n",* pNUM_C);
ireghl = pSELDSK;
iregbc = DRIVED;
iregde = 0;
bioscall();
pDPH_D = ireghl;
pDPB_D = pDPH_D->dpb;
pDU_D = ireghl -1;
*pDU_D = 0x41;
printf("Current D: DevUnit is %02x\n",*pDU_D);
pCUR_D = ireghl + 18;
*pCUR_D = 1;
printf("Current D: Logical Unit is %d\n",* pCUR_D);
pNUM_D = ireghl + 20;
*pNUM_D = 64/9;
printf("Current D: Number of LU's is %d\n",* pNUM_D);
}

View File

@@ -1,322 +0,0 @@
/* map.c 6/7/2012 dwg - */
#include "portab.h"
#include "globals.h"
#include "stdio.h"
#include "stdlib.h"
#include "memory.h"
#include "cpmbind.h"
#include "infolist.h"
#include "dphdpb.h"
#include "dphmap.h"
#include "metadata.h"
#include "clogical.h"
#include "applvers.h"
#define MAXDRIVE 8
/* Drive List Geometry */
#define COL1 0
#define COL2 (80/4)
#define COL3 (80/2)
#define COL4 (COL2+COL3)
#define LINE 3
/* Logical Unit List Geometry */
#define LGUT 5
#define COL1A 0
#define COL2A (80/3)
#define COL3A (2*COL2A)
/* Nomenclature Geometry */
#define LINE2 8
/* Misc Info Geometry */
#define CDLINE 6
/* BDOS Function number */
#define RETCURR 25
/* function defined in bdoscall.asm */
extern lurst();
struct BIOS * pBIOS;
struct DPH * pDPH;
int devunit;
int dev;
int unit;
int currlu;
int numlu;
int drivenum;
int drive;
int deflu;
char szTemp[128];
int readsec(drive,track,sector,buffer)
int drive;
int track;
int sector;
unsigned int buffer;
{
ireghl = pSELDSK;
iregbc = drive;
iregde = 0;
bioscall();
ireghl = pSETTRK;
iregbc = track;
bioscall();
ireghl = pSETSEC;
iregbc = sector;
bioscall();
ireghl = pSETDMA;
iregbc = buffer;
bioscall();
ireghl = pREAD;
bioscall();
return irega;
}
int haslu(dr)
int dr;
{
if(0 < lugnum(dr)) {
return TRUE;
} else {
return FALSE;
}
}
void dispdph(l,c,drive,ptr)
int l;
int c;
char drive;
struct DPH *ptr;
{
/*
unsigned int xlt;
unsigned int rv1;
unsigned int rv2;
unsigned int rv3;
unsigned int dbf;
unsigned int dpb;
unsigned int csv;
unsigned int alv;
unsigned char sigl;
unsigned char sigu;
unsigned int current;
unsigned int number;
*/
crtlc(l,c);
printf("%c: ",drive);
devunit = lugdu(drive-'A');
dev = devunit & 0xf0;
unit = devunit & 0x0f;
currlu = lugcur(drive-'A');
switch(dev) {
case DEV_MD:
if(0 == unit) printf("ROM");
if(1 == unit) printf("RAM");
break;
case DEV_FD:
printf("FD%d",unit);
break;
case DEV_IDE:
printf("IDE%d",unit);
break;
case DEV_ATAPI:
printf("ATAPI%d",unit);
break;
case DEV_PPIDE:
printf("PPIDE%d",unit);
break;
case DEV_SD:
printf("SD%d",unit);
break;
case DEV_PRPSD:
printf("PRPSD%d",unit);
break;
default:
printf("UNK");
break;
};
if('L' == (unsigned char)ptr->sigl) {
if('U' == (unsigned char)ptr->sigu) {
/* printf("-LU%d",(int)ptr->current); */
printf("-LU%d",currlu);
}
}
/* printf("dpb=0x%04x, ",(unsigned int)ptr->dpb);
printf("sigl=0x%02x, ",(unsigned char)ptr->sigl);
printf("sigu=0x%02x, ",(unsigned char)ptr->sigu);
printf("curr=0x%04x, ",(unsigned int)ptr->current);
printf("numb=0x%04x", (unsigned int)ptr->number);
*/
}
int main(argc,argv)
int argc;
char *argv[];
{
int i;
int mylu;
int drivenum;
int column;
int line;
char szDrive[32];
char szLuNum[32];
if(argc == 3) {
strcpy(szDrive,argv[1]);
strcpy(szLuNum,argv[2]);
mylu = atoi(szLuNum);
if(strlen(szDrive) == 2) {
if(':' == szDrive[1]) {
switch(szDrive[0]) {
case 'a':
case 'A':
luscur(0,mylu);
break;
case 'b':
case 'B':
luscur(1,mylu);
break;
case 'c':
case 'C':
luscur(2,mylu);
break;
case 'd':
case 'D':
luscur(3,mylu);
break;
case 'e':
case 'E':
luscur(4,mylu);
break;
case 'f':
case 'F':
luscur(5,mylu);
break;
case 'g':
case 'G':
luscur(6,mylu);
break;
case 'h':
case 'H':
luscur(7,mylu);
break;
default:
break;
}
}
}
exit(1);
}
pBIOS = BIOSAD;
crtinit();
crtclr();
crtlc(0,0);
printf("MAP.COM %d/%d/%d v%d.%d.%d.%d",
A_MONTH,A_DAY,A_YEAR,A_RMJ,A_RMN,A_RUP,A_RTP);
printf(" dwg - System Storage Drives and Logical Units");
ireghl = pGETINFO;
bioscall();
pINFOLIST = ireghl;
crtlc(CDLINE,COL3A+LGUT);
printf("infolist.version %d\n",pINFOLIST->version);
pDPHMAP = (struct DPHMAPA *)pINFOLIST->dphmap;
dispdph(LINE, COL1+LGUT-1,'A',(struct DPH *)pDPHMAP->drivea);
dispdph(LINE+1,COL1+LGUT-1,'B',(struct DPH *)pDPHMAP->driveb);
dispdph(LINE, COL2+LGUT-1,'C',(struct DPH *)pDPHMAP->drivec);
dispdph(LINE+1,COL2+LGUT-1,'D',(struct DPH *)pDPHMAP->drived);
dispdph(LINE, COL3+LGUT-1,'E',(struct DPH *)pDPHMAP->drivee);
dispdph(LINE+1,COL3+LGUT-1,'F',(struct DPH *)pDPHMAP->drivef);
dispdph(LINE, COL4+LGUT-1,'G',(struct DPH *)pDPHMAP->driveg);
dispdph(LINE+1,COL4+LGUT-1,'H',(struct DPH *)pDPHMAP->driveh);
dregbc = RETCURR;
bdoscall();
drive = drega;
crtlc(CDLINE,5);
printf("Current drive is %c:",'A'+drive);
devunit = lugdu(drive);
dev = devunit & 0xf0;
unit = devunit & 0x0f;
currlu = lugcur(drive);
deflu = currlu;
numlu = lugnum(drive);
crtlc(CDLINE,COL2A+LGUT);
printf("Number of LUs is %d\n",lugnum(drive));
if(0<numlu) {
crtlc(LINE2,COL1A+LGUT);
printf("LU -----Label------");
crtlc(LINE2,COL2A+LGUT);
printf("LU -----Label------");
crtlc(LINE2,COL3A+LGUT);
printf("LU -----Label------");
line = LINE2+1;
column = 0;
for(i=0;i<numlu;i++) {
luscur(drive,i);
readsec(drive,0,11,&metadata);
metadata.term = 0;
switch(column++) {
case 0:
crtlc(line,COL1A+LGUT);
printf("%2d %s",i,metadata.label);
break;
case 1:
crtlc(line,COL2A+LGUT);
printf("%2d %s",i,metadata.label);
break;
case 2:
crtlc(line,COL3A+LGUT);
printf("%2d %s",i,metadata.label);
column = 0;
line++;
break;
}
}
luscur(drive,deflu);
}
}
/****************/
/* eof - cmap.c */
/****************/

View File

@@ -1,185 +0,0 @@
@echo off
setlocal
set PATH=..\..\tools\zx;%PATH%
set ZXBINDIR=../../tools/cpm/bin/
set ZXLIBDIR=../../tools/cpm/lib/
set ZXINCDIR=../../tools/cpm/include/
set OUTDIR=..\Output\
set COREAPPS=ACCESS CPMNAME FINDFILE MAP META MULTIFMT REM SETLABEL SYSGEN TERMTYPE VIEW
echo.
echo Building DWG.REL...
echo.
set TGT=dwg.rel
if exist %TGT% del %TGT%
zx rmac printers.asm -$PN
zx rmac memory.asm -$PN
zx rmac banner.asm -$PN
zx rmac terminal.asm -$PN
zx rmac identity.asm -$PN
zx rmac hbios.asm -$PN
ZX rmac labelib.asm -$PN
zx rmac metadata.asm -$PN
zx lib %TGT%=printers,memory,banner,terminal,identity,hbios,labelib,metadata
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Building DWG.LIB...
echo.
set TGT=dwg.lib
if exist %TGT% del %TGT%
zx as bioscall
zx as bdoscall
zx as diagnose
zx cz --o cmemory.a80 --DTINY cmemory
zx as cmemory.a80
zx cz --o cbanner.a80 --DTINY cbanner
zx as cbanner.a80
zx cz --o ctermcap.a80 --DTINY ctermcap
zx as ctermcap.a80
zx cz --o clogical.a80 --DTINY clogical
zx as clogical.a80
zx as asmiface
zx cz --o sectorio.a80 --DTINY sectorio
zx as sectorio.a80
zx libutil --o dwg.lib cbanner.o clogical.o ctermcap.o sectorio.o asmiface.o
zx libutil --o dwg.lib dwg.lib bioscall.o bdoscall.o diagnose.o cmemory.o clogical.o
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Building ACCESS.COM...
echo.
set TGT=access.com
if exist %TGT% del %TGT%
zx rmac access.asm -$PN
zx link access,dwg
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Building CPMNAME.COM...
echo.
set TGT=cpmname.com
if exist %TGT% del %TGT%
zx cz --o cpmname.a80 --DTINY cpmname
zx as cpmname.a80
zx ln cpmname.o --ldwg --lt --lc
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Building FINDFILE.COM...
echo.
set TGT=findfile.com
if exist %TGT% del %TGT%
zx rmac findfile.asm -$PN
zx link findfile,dwg
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Building MAP.COM...
echo.
set TGT=map.com
if exist %TGT% del %TGT%
zx cz --o map.a80 --DTINY map
zx as map.a80
zx ln map.o --ldwg --lt --lc
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Building META.COM...
echo.
set TGT=meta.com
if exist %TGT% del %TGT%
zx cz --o meta.a80 --DTINY meta
zx as meta.a80
zx ln meta.o --ldwg --lt --lc
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Building MULTIFMT.COM...
echo.
set TGT=multifmt.com
if exist %TGT% del %TGT%
zx cz --o multifmt.a80 --DTINY multifmt
zx as multifmt.a80
zx ln multifmt.o --ldwg --lt --lc
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Building REM.COM...
echo.
set TGT=rem.com
if exist %TGT% del %TGT%
zx rmac rem.asm -$PN
zx link rem
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Building SETLABEL.COM...
echo.
set TGT=setlabel.com
if exist %TGT% del %TGT%
zx rmac setlabel.asm -$PN
zx link setlabel,dwg
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Building SYSGEN.COM...
echo.
set TGT=sysgen.com
if exist %TGT% del %TGT%
zx cz --o sysgen.a80 --DTINY sysgen
zx as sysgen.a80
zx ln sysgen.o --ldwg --lt --lc
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Building TERMTYPE.COM...
echo.
set TGT=termtype.com
if exist %TGT% del %TGT%
zx cz --o termtype.a80 --DTINY termtype
zx as termtype.a80
zx ln termtype.o --ldwg --lt --lc
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Building VIEW.COM...
echo.
set TGT=view.com
if exist %TGT% del %TGT%
zx cz --o view.a80 --DTINY view
zx as view.a80
zx ln view.o --ldwg --lt --lc
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Building N8VIDTST.COM / TMSSTAT.COM...
echo.
zx cz --o n8chars.a80 --DTINY n8chars
zx as n8chars.a80
zx cz --o tms9918.a80 --DTINY tms9918
zx as tms9918.a80
set TGT=n8vidtst.com
if exist %TGT% del %TGT%
zx cz --o n8vidtst.a80 --DTINY n8vidtst
zx as n8vidtst.a80
zx ln n8vidtst.o n8chars.o tms9918.o --ldwg --lt --lc
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
set TGT=tmsstat.com
if exist %TGT% del %TGT%
zx cz --o tmsstat.a80 --DTINY tmsstat
zx as tmsstat.a80
zx ln tmsstat.o n8chars.o tms9918.o --ldwg --lt --lc
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
echo.
echo Generating Output...
echo.
if exist %OUTDIR%\*.* del /f /q %OUTDIR%\*.*
for %%f in (%COREAPPS%) do echo %%f... && copy %%f.COM %OUTDIR%
echo DWG-APPS.MAN... && copy DWG-APPS.MAN %OUTDIR%

View File

@@ -1,10 +0,0 @@
@echo off
if exist *.bak erase *.bak
if exist *.prn erase *.prn
if exist *.o erase *.o
if exist *.rel erase *.rel
if exist *.cpm erase *.cpm
if exist *.sym erase *.sym
if exist *.com erase *.com
if exist *.a80 erase *.a80
if exist dwg.lib erase dwg.lib

View File

@@ -1,106 +0,0 @@
; access.asm 7/19/2012 dwg - for 2.0.0.0 B22
; access.com 2/17/2012 dwg - review for release 1.5.1.0
; access.asm 2/11/2012 dwg - make ident compliant
; access.com 2/07/2012 dwg - review for release 1.5
; access.com 2/05/2012 dwg - adjust for new macros
; access.asm 1/30/2012 dwg - use new do$start and do$end macros
; access.asm 1/28/2012 dwg - assure file exists from within submit file
; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
;
; This file is part of NuBiosDWG and is free software: you can
; redistribute it and/or modify it under the terms of the GNU
; General Public License as published by the Free Software Foundation,
; either version 3 of the License, or (at your option) any later version.
; This file is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
; You should have received a copy of the GNU General Public License
; along with it. If not, see <http://www.gnu.org/licenses/>.
;----------------------------------------------------------------------
maclib portab
maclib globals
maclib cpmbdos
maclib printers
maclib banner
maclib applvers
maclib z80
maclib memory
maclib version
maclib cpmappl
maclib banner
;-----------------------
do$start
jmp around$bandata
argv dw prog,dat,prod,orig,ser,myname,0
prog db 'ACCESS.COM $'
date
serial
product
originator
oriname
uuid db '08D4953E-B6F4-4673-990C-7E17A0A299BD$'
around$bandata:
sbanner argv
lda 80h ; pick up the command tail length provided by CCP
cpi 0 ; were there any parameters given?
jnz no$usage ; If not, go around
printf 'usage - access <filename>'
jmp do$exit
no$usage:
memcpy work$fcb,PRIFCB,32 ; Save initial default FCB from CCP
printf 'Checking: '
mvi a,'$' ; place a terminating dollar sign
sta PRIFCB+9 ; at the end of the filname field
print PRIFCB+1 ; and print the filename portion
conout '.' ; print the seperating dot
memcpy PRIFCB,work$fcb,16 ; get a fresh copy of the initial FCB
mvi a,'$' ; place a terminating dollar sign
sta PRIFCB+12 ; at the end of the filetype field
print PRIFCB+9 ; and print the filetype
print crlf ; followed by a CR and LF
memcpy PRIFCB,work$fcb,32 ; restore the initial FCB
mvi c,FOPEN ; Try to open the given filename
lxi d,PRIFCB ; using the primary default FCB
call BDOS ; with a BDOS call
cpi 255 ; Test for Open Failure (255)
jnz done ; jump if file existed
mvi c,FDELETE ; Delete the A:$$$.SUB file
lxi d,del$fcb ; using an alternative FCB
call BDOS
printf 'Submit file terminated due to missing file$'
jmp do$exit ; Go to the one true exit point
done:
printf 'File found, Submit may proceed'
do$exit:
do$end
newfcb del$fcb,1,'$$$ SUB'
work$fcb ds 36 ; A place to save a copy of the default FCB on entry
crlf db CR,LF ; a dollar sign terminated CR and LF
term db '$' ; a general purpose terminating character
end start
; eof - access.asm


Binary file not shown.

View File

@@ -1,19 +0,0 @@
/************************************/
/* applvers.h dwg - 2.5.3.19 */
/************************************/
#define A_RMJ 2
#define A_RMN 5
#define A_RUP 3
#define A_RTP 19
#define A_MONTH 1
#define A_DAY 20
#define A_YEAR 2014
#define A_YR 14
/********************/
/* eof - applvers.h */
/********************/

View File

@@ -1,32 +0,0 @@
; applvers.lib 3/31/2012 dwg - For RomWBW 2.5.0.14 Release
A$RMJ equ 2
A$RMN equ 5
A$RUP equ 3
A$RTP equ 19
A$MONTH equ 1
A$DAY equ 20
A$YEAR equ 2014
date macro
dat db ' 1/20/2014$'
endm
serial macro
ser db '654321$'
endm
product macro
prod db 'CPM80$'
endm
originator macro
orig db 'DWG$'
endm
oriname macro
myname db ' Douglas W Goodall $'
endm
; eof - applvers.lib

View File

@@ -1,13 +0,0 @@
/* ascii.h 11/25/2012 dwg - */
#define ASCII_BS 8
#define ASCII_TAB 9
#define ASCII_LF 10
#define ASCII_VT 11
#define ASCII_FF 12
#define ASCII_CR 13
#define ASCII_ESC 27
/* eof - ascii.h */


View File

@@ -1,67 +0,0 @@
; asmiface.asm 6/4/2012 dwg -
extrn .begin,.chl,.swt
extrn csave,cret,.move
global xrega_,1
global xregbc_,2
global xregde_,2
global xreghl_,2
PUBLIC asmif_
asmif_: lxi d,.2
call csave
LXI H,8-.2 ; pick up 1st parm "function address"
DAD SP
MOV E,M
INX H
MOV D,M
xchg
shld callad+1
LXI H,10-.2
DAD SP
MOV E,M
INX H
MOV D,M ; DE = parm
xchg
shld xregbc_
LXI H,12-.2
DAD SP
MOV E,M
INX H
MOV D,M
xchg
shld xregde_
LXI H,14-.2
DAD SP
MOV E,M
INX H
MOV D,M
xchg
shld xreghl_
lhld xregbc_
mov b,h
mov c,l ; setup B&C
lhld xregde_
xchg ; setup D&E
lhld xreghl_ ; setup H&L
callad: call 0e639h ; setlu
sta xrega_
shld xreghl_
xchg
shld xregde_
mov l,c
mov h,b
shld xregbc_
RET ; HL has return value
.2 EQU 0
END


View File

@@ -1,14 +0,0 @@
/*****************************/
/* asmiface.H 6/4/2012 dwg - */
/*****************************/
extern char xrega;
extern unsigned int xregbc;
extern unsigned int xregde;
extern unsigned int xreghl;
extern asmif(); /* asmif(0xe60,bc,de,hl); */
/********************/
/* eof - asmiface.h */
/********************/


View File

@@ -1,153 +0,0 @@
/* banker.c 6/7/2012 dwg - */
#include "stdio.h"
#include "stdlib.h"
#include "memory.h"
/* #include "cpmbind.h" */
#include "std.h"
#include "infolist.h"
#include "metadata.h"
/* #include "setlunum.h" */
#include "applvers.h"
#include "bdoscall.h"
#include "cpmbdos.h"
#include "bioscall.h"
#include "cpmbios.h"
#include "diagnose.h"
#include "cnfgdata.h"
#include "syscfg.h"
#include "applvers.h"
#define COL1 0
#define COL2 (80/3)
#define COL3 (2*COL2)
#define LINE 2
#define BDOS 5 /* memory address of BDOS invocation */
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
struct SYSCFG * pSYSCFG;
struct BIOS * pCBIOS;
int main(argc,argv)
int argc;
char *argv[] ;
{
char * varloc;
char * tstloc;
char temp[128];
int i;
int bFirst;
bFirst = 0;
ireghl = pGETINFO;
bioscall();
pINFOLIST = ireghl;
printf("post GETINFO ireghl is 0x%04x\n",pINFOLIST);
pCBIOS = 0x0e600;
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
crtlc(0,0);
printf("BANKER.COM %d/%d/%d v%d.%d.%d.%d",
A_MONTH,A_DAY,A_YEAR,A_RMJ,A_RMN,A_RUP,A_RTP);
printf(" dwg - Display Memory Bank Characteristics");
hregbc = 0x0f000;
hregde = 0x0c000;
diagnose();
pSYSCFG = 0x0C000;
crtlc(LINE+0,COL1);
crtlc(LINE+1,COL1);
printf("ROM Bank1");
crtlc(LINE+2,COL1);
printf("RMJ = %d",pSYSCFG->cnfgdata.rmj);
crtlc(LINE+3,COL1);
printf("RMN = %d",pSYSCFG->cnfgdata.rmn);
crtlc(LINE+4,COL1);
printf("RUP = %d",pSYSCFG->cnfgdata.rup);
crtlc(LINE+5,COL1);
printf("RTP = %d",pSYSCFG->cnfgdata.rtp);
crtlc(LINE+7,COL1);
varloc = pSYSCFG->varloc;
/* dregde = (unsigned int)varloc-0x200+0x0c000; */
dregde = (unsigned int)varloc+0x0c000;
dregbc = 9;
bdoscall();
crtlc(LINE+8,COL1);
/* tstloc = 0x0c000-0x0200+(unsigned int)pSYSCFG->tstloc; */
tstloc = 0x0c000+(unsigned int)pSYSCFG->tstloc;
memset(temp,0,sizeof(temp));
memcpy(temp,tstloc,11);
printf("%s",temp);
crtlc(LINE+1,COL2);
printf("CBIOS HDR");
crtlc(LINE+2,COL2);
printf("RMJ = %d",pCBIOS->rmj);
crtlc(LINE+3,COL2);
printf("RMN = %d",pCBIOS->rmn);
crtlc(LINE+4,COL2);
printf("RUP = %d",pCBIOS->rup);
crtlc(LINE+5,COL2);
printf("RTP = %d",pCBIOS->rtp);
/* */
crtlc(LINE+7,COL2);
varloc = pINFOLIST->varloc;
memset(temp,0,sizeof(temp));
memcpy(temp,varloc,sizeof(temp)-1);
for(i=0;i<sizeof(temp);i++) {
if('-' == temp[i]) {
if(0 != bFirst) {
temp[i] = 0;
} else {
bFirst = 1;
}
}
}
printf("%s",temp);
crtlc(LINE+8,COL2);
tstloc = pINFOLIST->tstloc;
memset(temp,0,sizeof(temp));
memcpy(temp,tstloc,11);
printf("%s",temp);
crtlc(LINE+1,COL3);
printf("BANKER.COM");
crtlc(LINE+2,COL3);
printf("RMJ = %d",A_RMJ);
crtlc(LINE+3,COL3);
printf("RMN = %d",A_RMN);
crtlc(LINE+4,COL3);
printf("RUP = %d",A_RUP);
crtlc(LINE+5,COL3);
printf("RTP = %d",A_RTP);
crtlc(LINE+8,COL3);
printf("%02d%02d%02d",A_YR,A_MONTH,A_DAY);
crtlc(23,0);
}
/*****************/
/* eof - cview.c */
/*****************/


View File

@@ -1,156 +0,0 @@
; banner.asm 9/5/2012 dwg - new version semantics - #.#.# (#)
maclib portab
maclib globals
maclib cpmbios
maclib cpmbdos
maclib bioshdr
maclib printers
maclib cpmappl
maclib applvers
cseg
; entered with argv in hl
public x$banner
x$banner:
shld argv
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprog ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xvers ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprod ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xorig ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xser ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xnam ! xchg
printf '----------------------------------------'
print crlf
lhld xprog ! xchg ! mvi c,9 ! call BDOS
printf ' '
IF A$MONTH LT 10
conout ' '
ENDIF
IF A$DAY LT 10
conout ' '
ENDIF
lxi h,A$MONTH
call pr$d$word
conout '/'
lxi h,A$DAY
call pr$d$word
conout '/'
lxi h,A$YEAR
call pr$d$word
printf ' '
printf 'Version '
lxi h,A$RMJ
call pr$d$word
conout '.'
lxi h,A$RMN
call pr$d$word
conout '.'
lxi h,A$RUP
call pr$d$word
printf ' ('
lxi h,A$RTP
call pr$d$word
conout ')'
print crlf
printf 'S/N '
lhld xprod ! xchg ! mvi c,9 ! call BDOS
conout '-'
lhld xorig ! xchg ! mvi c,9 ! call BDOS
conout '-'
; print xser
lhld xser ! xchg ! mvi c,9 ! call BDOS
printf ' '
; printf 'All Rights Reserved'
printf 'Licensed under GPL3'
print crlf
printf 'Copyright (C) 2011-12'
lhld xnam ! xchg ! mvi c,9 ! call BDOS
print crlf
printf '----------------------------------------'
print crlf
ret
; entered with argv in hl
public x$sbanner
x$sbanner:
shld argv
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprog ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xvers ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprod ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xorig ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xser ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xnam ! xchg
; printf '----------------------------------------'
; print crlf
lhld xprog ! xchg ! mvi c,9 ! call BDOS
printf ' '
IF A$MONTH LT 10
conout ' '
ENDIF
IF A$DAY LT 10
conout ' '
ENDIF
lxi h,A$MONTH
call pr$d$word
conout '/'
lxi h,A$DAY
call pr$d$word
conout '/'
lxi h,A$YEAR
call pr$d$word
printf ' '
printf 'Vers. '
lxi h,A$RMJ
call pr$d$word
conout '.'
lxi h,A$RMN
call pr$d$word
conout '.'
lxi h,A$RUP
call pr$d$word
printf ' ( '
lxi h,A$RTP
call pr$d$word
printf ') '
printf 'COPR Douglas Goodall Licensed w/GPLv3'
print crlf
ret
;----------------------------------------------------------------
argv ds 2
;----------------
xprog ds 2
xvers ds 2
xprod ds 2
xorig ds 2
xser ds 2
xnam ds 2
crlf db CR,LF,'$'
end
; eof - banner.asm


View File

@@ -1,18 +0,0 @@
; banner.lib 7/19/2012 dwg - for 2.0.0.0 B22
; banner.lib 2/17/2012 dwg - review for release 1.5.1.0
; banner.lib 2/11/2012 dwg - banner library declarations
extrn x$banner
banner macro argv
lxi h,argv
call x$banner
endm
extrn x$sbanner
sbanner macro argv
lxi h,argv
call x$sbanner
endm
; eof - banner.lib


View File

@@ -1,71 +0,0 @@
; bdoscall.asm 3/10/2012 dwg - bdos binding for Aztec C
global drega_,1
global dregbc_,2
global dregde_,2
global dreghl_,2
PUBLIC lurst_
lurst_:
push b
push d
push h
push psw
mvi c,37
lxi d,127
lxi b,127
call 5
pop psw
pop h
pop d
pop b
RET
PUBLIC bdoscall_
bdoscall_:
push b
push d
push h
push psw
lhld dregbc_
mov b,h
mov c,l
lhld dregde_
mov d,h
mov e,l
lhld dreghl_
lda drega_
call 5
sta drega_
shld dreghl_
mov l,e
mov h,d
shld dregde_
mov l,c
mov h,b
shld dregbc_
pop psw
pop h
pop d
pop b
RET
END


View File

@@ -1,8 +0,0 @@
/* bdoscall.h 3/10/2012 dwg - header file for bdoscall */
extern char drega;
extern unsigned int dregbc;
extern unsigned int dregde;
extern unsigned int dreghl;
extern bdoscall();


View File

@@ -1,80 +0,0 @@
; bioscall.asm 3/10/2012 dwg - bios binding for Aztec C
global irega_,1
global iregbc_,2
global iregde_,2
global ireghl_,2
public getmeta_
getmeta_:
push psw
push b
push d
push h
lxi b,4
lxi d,0
call 0e61bh
lxi d,0
call 0e61eh
lxi d,11
call 0e621h
lxi d,80h
call 0e624h
call 0e627h
pop h
pop d
pop b
pop psw
ret
PUBLIC bioscall_
bioscall_:
push b
push d
push h
push psw
lhld iregbc_
mov b,h
mov c,l
lhld iregde_
mov d,h
mov e,l
lhld ireghl_
shld mycall+1
lda irega_
mycall: call 5
sta irega_
shld ireghl_
mov l,e
mov h,d
shld iregde_
mov l,c
mov h,b
shld iregbc_
pop psw
pop h
pop d
pop b
RET
END


View File

@@ -1,8 +0,0 @@
/* bioscall.h 3/10/2012 dwg - header file for bdoscall */
extern char irega;
extern unsigned int iregbc;
extern unsigned int iregde;
extern unsigned int ireghl;
extern bioscall();


View File

@@ -1,385 +0,0 @@
; biohdr.lib 2/19/2012 dwg - BIOS header display macros
; copyright (C) 2011 Douglas Goodall. All Rights Reserved.
; Licensed to N8VEM Community for non-commercial use only.
; 2/19/2012 dwg - review for release 1.5.1.0
; 2/05/2012 dwg - added DSKM (DM_ROM...) better late than never
; 2/05/2012 dwg - added prpsdenable,prpsdtrace, and prpsdcapacity
; 1/16/2012 dwg - extend LU numbers to 0x1C entries (256MB)
; 1/11/2012 dwg - added new setlu for 1.4 slice technique
; 12/18/2011 dwg - added REVISION (from svn)
; 12/07/2011 dwg - BIOS header enhancement for version 1.3
; Common Configuration items,
; Valid in all configurations
RMJ equ 0E64Bh
RMN equ RMJ+1
RUP equ RMN+1
RTP equ RUP+1
if 0
BANPTR equ RTP+1
DKMP equ BANPTR+2
DBBOOL equ DKMP+2 ; Disk Boot Boolean
DBDRV equ DBBOOL+1 ; Disk Boot Drive Code
FREQ equ DBDRV+1
PLAT equ FREQ+1 ; Hardware Platform
DIOPLT equ PLAT+1
VDUPLT equ DIOPLT+1
ROMSIZ equ VDUPLT+1
RAMSIZ equ ROMSIZ+2
CRAM equ RAMSIZ+2
DSKY equ CRAM+1 ; Is Display/Keyboard Attached?
UART equ DSKY+1 ; Is UART Enabled?
VDUEN equ UART+1
FDEN equ VDUEN+1 ; Is Floppy Disk Support Enabled
FDTR equ FDEN+1 ; Is Floppy Disk Error Tracing Enabled?
FMED equ FDTR+1 ; Floppy Disk Media Type
FALT equ FMED+1 ; Alternative Floppy Disk Media Type
FAUT equ FALT+1 ; Is Floppy Disk Automatic Sensing Enabled?
IDEN equ FAUT+1 ; Is On-Board IDE Support Enabled
IDTR equ IDEN+1
IDE8 equ IDTR+1
IDCP equ IDE8+1 ; 1/13/2012 IDE Capacity
PPEN equ IDCP+2 ; Is PPIDE Support Enablned?
PPTR equ PPEN+1 ; Is PPIDE Tracing Enabled?
PP8B equ PPTR+1
PPCP equ PP8B+1 ; 1/13/2012 PPIDE Capacity
PSLW equ PPCP+2 ; Use NOPs for recovery-time compensation
BTYP equ PSLW+1
BTTO equ BTYP+1
BTDF equ BTTO+1
BAUD equ BTDF+1 ; What is the Console Baud Rate
; Only Valid if PLATFORM == PLT_N8
CLKDIV equ BAUD+2 ; Z180_CLKDIV
MEMWAIT equ CLKDIV+1 ; Z180_MEMWAIT
IOWAIT equ MEMWAIT+1 ; Z180_IOWAIT
CNTLB0 equ IOWAIT+1 ; Z180_CNTLB0
CNTLB1 equ CNTLB0+1 ; Z180_CNTLB1
SDENABLE equ CNTLB1+1
SDTRACE equ SDENABLE+1
SDCP equ SDTRACE+1 ; 1/13/2012 SD Capacity
VDPTR equ SDCP+2 ; pointer to VDU Data
FDPTR equ VDPTR+2 ; pointer to FD Data
IDEPTR equ FDPTR+2 ; pointer to IDE Data
PPIPTR equ IDEPTR+2 ; pointer to PPIDE_DATA Data
PPIPTR2 equ PPIPTR+2 ; pointer to PPIDE.ASM DATA
DEFIO equ PPIPTR2+2 ; pointer to DEFIOBYTE
LDRC equ DEFIO+1 ; pointer to LDRCON
DBGC equ LDRC+1 ; pointer to DBGCON
TTYP equ DBGC+1 ; pointer to TERMTYPE
REV equ TTYP+1 ; subversion revision
TMDT equ REV+2 ; startup date and time
PSDE equ TMDT+6 ; prpsdenable
PSDT equ PSDE+1 ; prpsdtrace
PSDC equ PSDT+1 ; prpsdcapacity
PRCE equ PSDC+2
DSKM equ PRCE+1 ; DM_ROM...
DTSZ equ DSKM+1 ; DATASIZE
; LU0 LU1 LU2 LU3 LU4 LU5 LU6 LU7 LU8 LU9
; 41 82 c3 104 145 186 1c7 208 249 286
;
; LU10 LU11 LU12 LU13 LU14 LU15 LU16
; 2c7 308 349 38a 3cb 40c 44d
LU0 equ 0 ; 041h ; PPIDE1 offset for first slice (default)
LU1 equ 1 ; 082h ; PPIDE1 offset for second slice
LU2 equ 2 ; 0C3h ; PPIDE1 offset for third slice
LU3 equ 3 ; 104h ; PPIDE1 offset for fourth slice
LU4 equ 4 ; 145h ; PPIDE1 offset for fifth slice
LU5 equ 5 ; 186h ; PPIDE1 offset for sixth slice
LU6 equ 6 ; 1c7h ; PPIDE1 offset for seventh slice
LU7 equ 7 ; 208h ; PPIDE1 offset for eighth slice
LU8 equ 8 ; 249h ; PPIDE1 offset for ninth slice
LU9 equ 9 ; 286h ; PPIDE1 offset for tenth slice
LU10 equ 10
LU11 equ 11
LU12 equ 12
LU13 equ 13
LU14 equ 14
LU15 equ 15
LU16 equ 16
LU17 equ 17
LU18 equ 18
LU19 equ 19
LU20 equ 20
LU21 equ 21
LU22 equ 22
LU23 equ 23
LU24 equ 24
LU25 equ 25
LU26 equ 26 ; 0x1a
LU27 equ 27 ; 0x1b (1Cth entry)
endif
DRIVEB equ 1 ; 0=A, 1=B...
setlu13 macro offset
lxi h,PPIPTR2 ; set pointer to ppide.asm data
mov e,m ; dereference pointer
inx h
mov d,m ; de -> ppide.asm data
xchg ; hl -> ppide.asm data
lxi d,6 ; offset to offset
dad d ; hl -> offset in ppide.asm data
lxi d,offset ; load caller's parameter in de
mov m,e ; stuff LO offset byte into offset
inx h ; bump ptr
mov m,d ; stuff HO offset byte into offset
mvi c,13 ; BDOS DSKRESET
call 5 ; call BDOS
endm
getlu13 macro
lxi h,PPIPTR2 ; set pointer to ppide.asm data
mov e,m ; dereference pointer
inx h
mov d,m ; de -> ppide.asm data
xchg ; hl -> ppide.asm data
lxi d,6 ; offset to offset
dad d ; hl -> offset in ppide.asm data
mov e,m ; pick up LO byte of offset
inx h ; bump ptr
mov d,m ; pick up HO byte of offset
xchg ; hl = offset
endm
setlu14 macro offset
lxi h,PPIPTR2 ; set pointer to ppide.asm data
mov e,m ; dereference pointer
inx h
mov d,m ; de -> ppide.asm data
xchg ; hl -> ppide.asm data
lxi d,6 ; offset to offset
dad d ; hl -> offset in ppide.asm data
lxi d,offset ; load caller's parameter in de
mov m,e ; stuff LO offset byte into offset
inx h ; bump ptr
mov m,d ; stuff HO offset byte into offset
mvi c,13 ; BDOS DSKRESET
call 5 ; call BDOS
endm
getlu14 macro
lxi h,PPIPTR2 ; set pointer to ppide.asm data
mov e,m ; dereference pointer
inx h
mov d,m ; de -> ppide.asm data
xchg ; hl -> ppide.asm data
lxi d,6 ; offset to offset
dad d ; hl -> offset in ppide.asm data
mov e,m ; pick up LO byte of offset
inx h ; bump ptr
mov d,m ; pick up HO byte of offset
xchg ; hl = offset
endm
setlu macro drive,slice
local dontboth,msg,msg2
mvi c,drive
call BISELDSK
lxi d,16
dad d
mov a,m
cpi 'L'
jnz dontboth
inx h
mov a,m
cpi 'U'
jnz dontboth
inx h
mvi a,slice
mov m,a
print msg
mvi a,drive
adi 'A'
mov e,a
mvi c,2
call BDOS
print msg2
lxi h,slice
call pr$d$word
jmp dontboth
msg db CR,LF,'Drive $'
msg2 db ': set to Logical Unit (slice) $'
dontboth:
endm
xluset macro
local ldrive,lslice,dontboth,msg,msg2
; C = DRIVE
; A = SLICE
sta lslice
mov a,c
sta ldrive
call BISELDSK ; uses c parameter (drive)
lxi d,16
dad d
mov a,m
cpi 'L'
jnz dontboth
inx h
mov a,m
cpi 'U'
jnz dontboth
inx h
lda lslice
mov m,a ; put slice into CURRENT
; print msg
; lda ldrive
; adi 'A'
; mov e,a
; mvi c,2
; call BDOS
; print msg2
; lda lslice
; mov l,a
; mvi h,0
; call pr$d$word
jmp dontboth
msg db CR,LF,'Drive $'
msg2 db ': set to Logical Unit (slice) $'
ldrive db 0
lslice db 0
dontboth:
endm
hdrlit macro ptr,val,msg
local notval
lxi h,ptr
mvi a,val
cmp m
jnz notval
print msg
notval:
endm
hdrbool macro ptr,tmsg,fmsg
local itstrue,itsfalse,imdone
enter
lxi h,ptr
mov a,m
cpi TRUE
jnz itsfalse
lxi d,tmsg
jmp imdone
itsfalse: lxi d,fmsg
imdone: mvi c,PRINTSTR
call BDOS
leave
endm
hdrbyte macro ptr,msg
enter
mvi c,PRINTSTR
lxi d,msg
call BDOS
lxi h,ptr
mov a,m
call pr$h$byte
conout '('
mov e,m
mov d,0
xchg
call pr$d$word
conout ')'
leave
endm
hdrpbyte macro ptr,msg
enter
mvi c,PRINTSTR
lxi d,msg
call BDOS
lxi h,PTR
mov e,m
inx h
mov d,m
xchg
mov a,m
call pr$h$byte
; conout ' '
conout '('
mov e,m
mov d,0
xchg
call pr$d$word
conout ')'
leave
endm
hdrword macro ptr,msg
enter
mvi c,PRINTSTR
lxi d,msg
call BDOS
lxi h,ptr
inx h
mov a,m
call pr$h$byte
lxi h,ptr
mov a,m
call pr$h$byte
conout '('
lxi h,ptr
mov e,m
inx h
mov d,m
xchg
call pr$d$word
conout ')'
leave
endm
syncerr macro
print syncmsg
exit
endm
hdrvalid macro
local byte1ok,byte2ok
enter
lxi h,CFDA
mov a,m
cpi 0DAh
jz byte1ok
syncerr
byte1ok:
inx h
mov al,m
cpi 0CFh
jz byte2ok
syncerr
byte2ok:
leave
endm
; eof - bioshdr.lib


View File

@@ -1,39 +0,0 @@
/* cbanner.c 3/12/2012 dwg - */
#include "portab.h"
#include "globals.h"
#include "applvers.h"
char * lines = "----------------------------------------";
char * line1 = "12345678.123 mm/dd/yyyy Version x.x.x.x";
char * line2 = "S/N CPM80-DWG-654321 Licensed under GPL3";
char * line3 = "Copyright (C) 2011-12 Douglas W. Goodall";
sbanner(program)
char *program;
{
char szTemp[128];
printf("%s ",program);
printf("%d/%d/%d ",A_MONTH,A_DAY,A_YEAR);
printf("Version %d.%d.%d.%d ",A_RMJ,A_RMN,A_RUP,A_RTP);
printf("COPR Douglas Goodall Licensed w/GPLv3\n");
}
banner(program)
char *program;
{
char szTemp[128];
printf("%s\n",lines);
strcpy(szTemp,program);
while(12 > strlen(szTemp)) {
strcat(szTemp," ");
}
printf("%s ",szTemp);
printf("%d/%d/%d ",A_MONTH,A_DAY,A_YEAR);
printf("Version %d.%d.%d.%d\n",A_RMJ,A_RMN,A_RUP,A_RTP);
printf("%s\n",line2);
printf("%s\n",line3);
printf("%s\n",lines);
}

View File

@@ -1,152 +0,0 @@
/* chars.c 6/7/2012 dwg - test command line arguments */
#include "stdio.h"
#include "portab.h"
#include "globals.h"
#include "std.h"
#include "cpm80.h"
#include "cpmappl.h"
#include "applvers.h"
#include "cnfgdata.h"
#include "syscfg.h"
#define TOP 0
#define LEFT 4
#define BDOS 5 /* memory address of BDOS invocation */
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
struct SYSCFG * pSYSCFG = HIGHSEG;
char map[256] =
{
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0 */
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 1 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 2 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 3 0 - 9 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 4 A - O */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 5 P - Z */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 6 a - o */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 7 p - z */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 8 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 9 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* A */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* B 0 - 9 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* C A - O */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* D P - Z */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* E a - o */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* F p - z */
};
char attroff[] = { 27, '[', 'm', 0 };
char attrbold[] = { 27, '[', '1', 'm', 0 };
char attrlow[] = { 27, '[', '2', 'm', 0 };
char attrundr[] = { 27, '[', '4', 'm', 0 };
char attrblnk[] = { 27, '[', '5', 'm', 0 };
char attrrevs[] = { 27, '[', '7', 'm', 0 };
char attrinvs[] = { 27, '[', '8', 'm', 0 };
char graphon[] = { 27, 'F', 0 };
char graphoff[] = { 27, 'G', 0 };
char atreset[] = "0";
char atbold[] = "1";
char atdim[] = "2";
char atundrscr[] = "4";
char atblink[] = "5";
char atrevs[] = "7";
char athidden[] = "8";
char fgblack[] = "30";
char fgred[] = "31";
char fggreen[] = "32";
char fgyellow[] = "33";
char fgblue[] = "34";
char fgmagenta[] = "35";
char fgcyan[] = "36";
char fgwhite[] = "37";
char bgblack[] = "40";
char bgred[] = "41";
char bggreen[] = "42";
char bgyellow[] = "43";
char bgblue[] = "44";
char bgmagenta[] = "45";
char bgcyan[] = "46";
char bgwhite[] = "47";
dispattr(attr,fg,bg)
char * attr;
char * fg;
char * bg;
{
printf("%c[%s;%s;%sm",27,attr,fg,bg);
}
int main(argc,argv)
int argc;
char *argv[];
{
int i,j,k;
int x,y;
if(1 < argc) {
for(i=1;i<argc;i++) {
printf("%c",atoi(argv[i]));
}
} else {
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
/* printf("TT is %d\n",pSYSCFG->cnfgdata.termtype); */
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
crtlc(0,0);
dispattr(atbold,fggreen,bgblack);
banner("CHARS");
printf("%s",attroff);
dispattr(atbold,fgcyan,bgblack);
for(x=0;x<16;x++) {
crtlc(TOP+6,LEFT+(x*4)+5);
printf("[%x]",x);
}
printf("%s",attroff);
for(y=0;y<16;y++) {
crtlc(TOP+y+7,LEFT+0);
dispattr(atbold,fgcyan,bgblack);
printf("[%x]",y);
printf("%s",attroff);
for(x=0;x<16;x++) {
crtlc(TOP+y+7,LEFT+(x*4)+6);
if(1 == map[(y*16)+x]) {
printf(".");
} else {
printf("%c",(y*16)+x);
}
}
dispattr(atbold,fgcyan,bgblack);
printf(" [%x]",y);
printf("%s",attroff);
}
}
return 0;
}


View File

@@ -1,48 +0,0 @@
/* clear.c 11/23/2012 dwg - */
#include "portab.h"
#include "globals.h"
#include "stdio.h"
#include "stdlib.h"
#include "memory.h"
#include "applvers.h"
#include "n8chars.h"
#include "tms9918.h"
#include "std.h"
#include "ctermcap.h"
#include "cpmbdos.h"
#include "bdoscall.h"
#include "hbios.h"
#include "asmiface.h"
#include "diagnose.h"
#include "cnfgdata.h"
#include "syscfg.h"
#include "cpmbind.h"
#include "infolist.h"
#include "metadata.h"
#include "clogical.h"
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
struct CNFGDATA * pCNFGDATA;
struct SYSCFG * pSYSCFG;
int main(argc,argv)
int argc;
char *argv[];
{
char column;
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
crtlc(0,0);
}


View File

@@ -1,57 +0,0 @@
/* clogical.c 6/4/2012 dwg - */
#include "portab.h"
#include "cpmbios.h"
#include "asmiface.h"
lugcur(drive)
{
asmif(pGETLU,drive,0,0);
return xregde;
}
lugnum(drive)
{
asmif(pGETLU,drive,0,0);
return xreghl;
}
lugdu(drive)
{
asmif(pGETLU,drive,0,0);
return xregbc>>8;
}
luscur(drive,lunum)
{
asmif(pGETLU,drive,0,0);
/* A = Result 0=OK */
/* B = devunit */
/* DE = current */
/* HL = numlu */
/* BC = devunit*256+drive */
/* DE = current */
/* HL = numlu */
asmif(pSETLU,xregbc,lunum,xreghl);
}
lusnum(drive,numlu)
{
asmif(pGETLU,drive,0,0);
/* A = Result 0=OK */
/* B = devunit */
/* DE = current */
/* HL = numlu */
/* BC = devunit*256+drive */
/* DE = current */
/* HL = numlu */
asmif(pSETLU,xregbc,xregde,numlu);
}
/********************/
/* eof - clogical.c */
/********************/


View File

@@ -1,14 +0,0 @@
/*****************************/
/* clogical.H 6/4/2012 dwg - */
/*****************************/
extern lugdu();
extern lugcur();
extern luscur();
extern lugnum();
extern lusnum();
/********************/
/* eof - clogical.h */
/********************/


View File

@@ -1,127 +0,0 @@
/* cls.c 7/21/2012 dwg - elegant form of clear screen program */
/*
#include "stdio.h"
#include "applvers.h"
*/
/* declarations for HBIOS access */
extern char hrega;
extern unsigned int hregbc;
extern unsigned int hregde;
extern unsigned int hreghl;
extern diagnose();
/* declaration dir BIOS and BDOS and low level calls */
extern char xrega;
extern unsigned int xregbc;
extern unsigned int xregde;
extern unsigned int xreghl;
extern asmif(); /* asmif(0x0E6**,bc,de,hl); */
#define BDOS 5 /* memory address of BDOS invocation */
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
/* pointer based Configuration Data structure */
struct CNFGDATA {
unsigned char rmj;
unsigned char rmn;
unsigned char rup;
unsigned char rtp;
unsigned char diskboot;
unsigned char devunit;
unsigned int bootlu;
unsigned char hour;
unsigned char minute;
unsigned char second;
unsigned char month;
unsigned char day;
unsigned char year;
unsigned char freq;
unsigned char platform;
unsigned char dioplat;
unsigned char vdumode;
unsigned int romsize;
unsigned int ramsize;
unsigned char clrramdk;
unsigned char dskyenable;
unsigned char uartenable;
unsigned char vduenable;
unsigned char fdenable;
unsigned char fdtrace;
unsigned char fdmedia;
unsigned char fdmediaalt;
unsigned char fdmauto;
unsigned char ideenable;
unsigned char idetrace;
unsigned char ide8bit;
unsigned int idecapacity;
unsigned char ppideenable;
unsigned char ppidetrace;
unsigned char ppide8bit;
unsigned int ppidecapacity;
unsigned char ppideslow;
unsigned char boottype;
unsigned char boottimeout;
unsigned char bootdefault;
unsigned int baudrate;
unsigned char ckdiv;
unsigned char memwait;
unsigned char iowait;
unsigned char cntlb0;
unsigned char cntlb1;
unsigned char sdenable;
unsigned char sdtrace;
unsigned int sdcapacity;
unsigned char sdcsio;
unsigned char sdcsiofast;
unsigned char defiobyte;
unsigned char termtype;
unsigned int revision;
unsigned char prpsdenable;
unsigned char prpsdtrace;
unsigned int prpsdcapacity;
unsigned char prpconenable;
unsigned int biossize;
unsigned char pppenable;
unsigned char pppsdenable;
unsigned char pppsdtrace;
unsigned int pppsdcapacity;
unsigned char pppconenable;
unsigned char prpenable;
};
struct JMP {
unsigned char opcode; /* JMP opcode */
unsigned int address; /* JMP address */
};
struct SYSCFG {
struct JMP jmp;
void * cnfloc;
void * tstloc;
void * varloc;
struct CNFGDATA cnfgdata;
char filler[256-3-2-2-2-sizeof(struct CNFGDATA)];
} * pSYSCFG = HIGHSEG;
main(argc,argv)
int argc;
char *argv[];
{
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the HBIOS function */
crtinit(pSYSCFG->cnfgdata.termtype); /* pass termtype to init */
crtclr();
crtlc(0,0);
}


View File

@@ -1,53 +0,0 @@
/* cmemory.c 3/13/2012 dwg - */
#include "portab.h"
/* #include "cpmbind.h" */
memcmp(xptr,yptr,count)
u8 * xptr;
u8 * yptr;
int count;
{
u8 * x;
u8 * y;
int i;
x = xptr;
y = yptr;
for(i=0;i<count;i++) {
if(*x++ != *y++) return FALSE;
}
return TRUE;
}
memcpy(dstptr,srcptr,count)
u8 * dstptr;
u8 * srcptr;
int count;
{
u8 * s;
u8 * d;
int i;
s = srcptr;
d = dstptr;
for(i=0;i<count;i++) {
*d++ = *s++;
}
}
memset(dstptr,data,count)
u8 * dstptr;
u8 data;
u16 count;
{
u8 * p;
int i;
p = dstptr;
for(i=0;i<count;i++) {
*p++ = data;
}
}


View File

@@ -1,58 +0,0 @@
/* metadata.c 6/10/2012 dwg - functions for manipulating a drive's metadata */
#include "portab.h"
#include "globals.h"
#include "cpmbios.h"
#include "bioscall.h"
#include "sectorio.h"
#include "infolist.h"
#include "dphmap.h"
int hasmeta(drive)
int drive;
{
ireghl = pGETINFO;
bioscall();
pINFOLIST = ireghl;
pDPHVEC = pINFOLIST->dphmap;
pDPH = pDPHVEC[drive]
pDPB = pDPH->dpb;
if(0 < pDPB->off) {
return TRUE;
} else {
return FALSE;
}
}
int getmeta(drive,buffer)
int drive;
struct METADATA * buffer;
{
if(TRUE == hasmeta(drive)) {
rdsector(drive,track,sector,buffer,0);
return SUCCESS;
} else {
return FAILURE;
}
}
int putmeta(drive,buffer)
int drive;
struct METADATA * buffer;
{
if(TRUE == hasmeta(drive)) {
wrsector(drive,track,sector,buffer,0);
return SUCCESS;
} else {
return FAILURE;
}
}
/********************/
/* eof - metadata.c */
/********************/


View File

@@ -1,140 +0,0 @@
/* cnfgdata.h 6/04/2012 dwg - */
struct CNFGDATA {
unsigned char rmj;
unsigned char rmn;
unsigned char rup;
unsigned char rtp;
unsigned int revision;
unsigned char diskboot;
unsigned char devunit;
unsigned int bootlu;
unsigned char year;
unsigned char month;
unsigned char day;
unsigned char hour;
unsigned char minute;
unsigned char second;
unsigned char platform;
unsigned char freq;
unsigned int ramsize;
unsigned int romsize;
unsigned char ckdiv;
unsigned char memwait;
unsigned char iowait;
unsigned char cntlb0;
unsigned char cntlb1;
unsigned char boottype;
unsigned char boottimeout;
unsigned char bootdefault;
unsigned char defcon;
unsigned char altcon;
unsigned int conbaud;
unsigned char defvda;
unsigned char defemu;
unsigned char termtype;
unsigned char defiobyte;
unsigned char altiobyte;
unsigned char wrtcache;
unsigned char dsktrace;
unsigned char dskmap;
unsigned char clrramdsk;
unsigned char dskyenable;
unsigned char uartenable;
unsigned char uartcnt;
unsigned char uart0iob;
unsigned int uart0baud; /* actual baudrate / 10 */
unsigned char uart0fifo;
unsigned char uart0afc;
unsigned char uart1iob;
unsigned int uart1baud; /* actual baudrate / 10 */
unsigned char uart1fifo;
unsigned char uart1afc;
unsigned char uart2iob;
unsigned int uart2baud; /* actual baudrate / 10 */
unsigned char uart2fifo;
unsigned char uart2afc;
unsigned char uart3iob;
unsigned int uart3baud; /* actual baudrate / 10 */
unsigned char uart3fifo;
unsigned char uart3afc;
unsigned char ascienable;
unsigned int asci0baud; /* actual baudrate / 10 */
unsigned int asci1baud; /* actual baudrate / 10 */
unsigned char vduenable;
unsigned char cvduenable;
unsigned char upd7220enable;
unsigned char n8venable;
unsigned char fdenable;
unsigned char fdmode;
unsigned char fdtrace;
unsigned char fdmedia;
unsigned char fdmediaalt;
unsigned char fdmauto;
unsigned char ideenable;
unsigned char idemode;
unsigned char idetrace;
unsigned char ide8bit;
unsigned int idecapacity;
unsigned char ppideenable;
unsigned char ppideiob;
unsigned char ppidetrace;
unsigned char ppide8bit;
unsigned int ppidecapacity;
unsigned char ppideslow;
unsigned char sdenable;
unsigned char sdmode;
unsigned char sdtrace;
unsigned int sdcapacity;
unsigned char sdcsiofast;
unsigned char prpenable;
unsigned char prpsdenable;
unsigned char prpsdtrace;
unsigned int prpsdcapacity;
unsigned char prpconenable;
unsigned char pppenable;
unsigned char pppsdenable;
unsigned char pppsdtrace;
unsigned int pppsdcapacity;
unsigned char pppconenable;
unsigned char hdskenable;
unsigned char hdsktrace;
unsigned int hdskcapacity;
unsigned char ppkenable;
unsigned char ppktrace;
unsigned char kbdenable;
unsigned char kbdtrace;
unsigned char ttyenable;
unsigned char ansienable;
unsigned char ansitrace;
};
/********************/
/* eof - cnfgdata.h */
/********************/


View File

@@ -1,210 +0,0 @@
; cnfgdata.lib 7/19/2012 dwg -
byte equ 1
word equ 2
;; /* cnfgdata.h 6/04/2012 dwg - */
;;
;; struct CNFGDATA {
;; unsigned char rmj;
cfgrmj equ 08009h
;;
;; unsigned char rmn;
cfgrmn equ cfgrmj + byte
;;
;; unsigned char rup;
cfgrup equ cfgrmn + byte
;;
;; unsigned char rtp;
cfgrtp equ cfgrup + byte
;;
;; unsigned char diskboot;
diskboot equ cfgrtp + byte
;;
;; unsigned char devunit;
devunit equ diskboot + byte
;;
;; unsigned int bootlu;
bootlu equ devunit + byte
;;
;; unsigned char hour;
hour equ bootlu + word
;;
;; unsigned char minute;
minute equ hour + byte
;;
;; unsigned char second;
second equ minute + byte
;;
;; unsigned char month;
month equ second + byte
;;
;; unsigned char day;
day equ month + byte
;;
;; unsigned char year;
year equ day + byte
;;
;; unsigned char freq;
freq equ year + byte
;;
;; unsigned char platform;
platform equ freq+ byte
;;
;; unsigned char dioplat;
dioplat equ platform + byte
;;
;; unsigned char vdumode;
vdumode equ dioplat + byte
;;
;; unsigned int romsize;
romsize equ vdumode + byte
;;
;; unsigned int ramsize;
ramsize equ romsize + word
;;
;; unsigned char clrramdk;
clrramdk equ ramsize + word
;;
;; unsigned char dskyenable;
dskyenable equ clrramdk + byte
;;
;; unsigned char uartenable;
uartenable equ dskyenable + byte
;;
;; unsigned char vduenable;
vduenable equ uartenable + byte
;;
;; unsigned char fdenable;
fdenable equ vduenable + byte
;;
;; unsigned char fdtrace;
fdtrace equ fdenable + byte
;;
;; unsigned char fdmedia;
fdmedia equ fdtrace + byte
;;
;; unsigned char fdmediaalt;
fdmediaalt equ fdmedia + byte
;;
;; unsigned char fdmauto;
fdmauto equ fdmediaalt + byte
;;
;; unsigned char ideenable;
ideenable equ fdmauto + byte
;;
;; unsigned char idetrace;
idetrace equ ideenable + byte
;;
;; unsigned char ide8bit;
ide8bit equ idetrace + byte
;;
;; unsigned int idecapacity;
idecapacity equ ide8bit + byte
;;
;; unsigned char ppideenable;
ppideenable equ idecapacity + word
;;
;; unsigned char ppidetrace;
ppidetrace equ ppideenable + byte
;;
;; unsigned char ppide8bit;
ppide8bit equ ppidetrace + byte
;;
;; unsigned int ppidecapacity;
ppidecapacity equ ppide8bit + byte
;;
;; unsigned char ppideslow;
ppideslow equ ppidecapacity + word
;;
;; unsigned char boottype;
boottype equ ppideslow + byte
;;
;; unsigned char boottimeout;
boottimeout equ boottype + byte
;;
;; unsigned char bootdefault;
bootdefault equ boottimeout + byte
;;
;; unsigned int baudrate;
baudrate equ bootdefault + byte
;;
;; unsigned char ckdiv;
ckdiv equ baudrate + word
;;
;; unsigned char memwait;
memwait equ ckdiv + byte
;;
;; unsigned char iowait;
iowait equ memwait + byte
;;
;; unsigned char cntlb0;
cntlb0 equ iowait + byte
;;
;; unsigned char cntlb1;
cntlb1 equ cntlb0 + byte
;;
;; unsigned char sdenable;
sdenable equ cntlb1 + byte
;;
;; unsigned char sdtrace;
sdtrace equ sdenable + byte
;;
;; unsigned int sdcapacity;
sdcapacity equ sdtrace + byte
;;
;; unsigned char sdcsio;
sdcsio equ sdcapacity + word
;;
;; unsigned char sdcsiofast;
sdcsiofast equ sdcsio + byte
;;
;; unsigned char defiobyte;
defiobyte equ sdcsiofast + byte
;;
;; unsigned char termtype;
termtype equ defiobyte + byte
;;
;; unsigned int revision;
revision equ termtype + byte
;;
;; unsigned char prpsdenable;
prpsdenable equ revision + word
;;
;; unsigned char prpsdtrace;
prpsdtrace equ prpsdenable + byte
;;
;; unsigned int prpsdcapacity;
prpsdcapacity equ prpsdtrace + byte
;;
;; unsigned char prpconenable;
prpconenable equ prpsdcapacity + word
;;
;; unsigned int biossize;
biossize equ prpconenable + byte
;;
;; unsigned char pppenable;
pppenable equ biossize + word
;;
;; unsigned char pppsdenable;
pppsdenable equ pppenable + byte
;;
;; unsigned char pppsdtrace;
pppsdtrace equ pppsdenable + byte
;;
;; unsigned int pppsdcapacity;
pppsdcapacity equ pppsdtrace + byte
;;
;; unsigned char pppconenable;
pppconenable equ pppsdcapacity + word
;;
;; unsigned char prpenable;
prpenable equ pppconenable + byte
;;
;; };
;;
;; /********************/
;; /* eof - cnfgdata.h */
;; /********************/


View File

@@ -1,80 +0,0 @@
/* convert.c 7/11/2012 dwg -
The purpose of this program is similar to the CP/M dump program
except that in addition to the normal hexadecimal bytes, a field
of ascii bytes to the right are displayed as well.
*/
#include "stdio.h"
char visible[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 00 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 10 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 20 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 30 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 40 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 50 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 60 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, /* 70 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 80 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 90 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* A0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* B0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* C0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* D0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* E0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* F0 */
};
#include "cvt2h.h"
unsigned char sector[32767];
main(argc,argv)
int argc;
char *argv[];
{
int i,j;
int offset;
int result;
unsigned char byte;
char name[32];
FILE * fd;
for(i=0;i<sizeof(sector);i++) sector[i] = 0;
banner("DUMP.COM");
/* cvt2h(0x0100,12*1024,"dumpcomh.h"); */
if(1 == argc) {
printf("Sorry, no input file specified");
exit(1);
}
fd = fopen(argv[1],"r");
if(NULL == fd) {
printf("Sorry, cannot open input file");
exit(1);
}
printf("Converting %s\n\n",argv[1]);
result = fread(sector,32767,1,fd);
for(i=32767;i>0;i--) {
if(sector[i] != 0) break;
}
sprintf(name,"sect%04x.h",0);
cvt2h(sector,i,name);
fclose(fd);
exit(0);
}


View File

@@ -1,195 +0,0 @@
/* cpmbios.h 3/11/2012 dwg - added CURDRV */
/*************************/
/* BIOS Memory Locations */
/*************************/
#define CURDRV 0x00004
#define BIOSAD 0x0e600
#define pBOOT 0x0E600
#define pWBOOT 0x0E603
#define pCONST 0x0E606
#define pCONIN 0x0E609
#define pCONOUT 0x0E60C
#define pLIST 0x0E60F
#define pPUNCH 0x0E612
#define pREADER 0x0E615
#define pHOME 0x0E618
#define pSELDSK 0x0E61B
#define pSETTRK 0x0E61E
#define pSETSEC 0x0E621
#define pSETDMA 0x0E624
#define pREAD 0x0E627
#define pWRITE 0x0E62A
#define pLISTST 0x0E62D
#define pSECTRN 0x0E630
#define pBNKSEL 0x0E633
#define pGETLU 0x0E636
#define pSETLU 0x0E639
#define pGETINFO 0x0E63C
struct JMP {
unsigned char opcode;
unsigned int address;
};
struct BIOS {
struct JMP boot;
struct JMP wboot;
struct JMP const;
struct JMP conin;
struct JMP conout;
struct JMP list;
struct JMP punch;
struct JMP reader;
struct JMP home;
struct JMP seldsk;
struct JMP settrk;
struct JMP setsec;
struct JMP setdma;
struct JMP read;
struct JMP write;
struct JMP listst;
struct JMP sectrn;
struct JMP bnksel;
struct JMP getlu;
struct JMP setlu;
struct JMP getinfo;
struct JMP rsvd1;
struct JMP rsvd2;
struct JMP rsvd3;
struct JMP rsvd4;
char diskboot;
char bootdrive;
char rmj;
char rmn;
char rup;
char rtp;
};
struct DPH {
unsigned int xlt;
unsigned int rv1;
unsigned int rv2;
unsigned int rv3;
unsigned int dbf;
unsigned int dpb;
unsigned int csv;
unsigned int alv;
unsigned char sigl;
unsigned char sigu;
unsigned int current;
unsigned int number;
};
struct DPB {
unsigned int spt;
unsigned char bsh;
unsigned char blm;
unsigned char exm;
unsigned int dsm;
unsigned int drm;
unsigned char al0;
unsigned char al1;
unsigned int cks;
unsigned int off;
};
/* bioscall.h 3/10/2012 dwg - header file for bdoscall */
extern char irega;
extern unsigned int iregbc;
extern unsigned int iregde;
extern unsigned int ireghl;
extern bioscall();
/* bdoscall.h 3/10/2012 dwg - header file for bdoscall */
extern char drega;
extern unsigned int dregbc;
extern unsigned int dregde;
extern unsigned int dreghl;
extern bdoscall();
/* diagnose.h 5/23/2012 dwg - */
extern char hrega;
extern unsigned int hregbc;
extern unsigned int hregde;
extern unsigned int hreghl;
extern diagnose();
/* ctermcap.h 3/11/2012 dwg - declarations for termal capability */
extern crtinit();
extern crtclr();
extern crtlc();
/* cpmbdos.h */
#define TERMCPM 0
#define CONIN 1
#define CWRITE 2
#define DIRCONIO 6
#define PRINTSTR 9
#define RDCONBUF 10
#define GETCONST 11
#define RETVERNUM 12
#define RESDISKSYS 13
#define SELECTDISK 14
#define FOPEN 15
#define FCLOSE 16
#define SEARCHFIRST 17
#define SEARCHNEXT 18
#define FDELETE 19
#define FREADSEQ 20
#define FWRITESEQ 21
#define FMAKEFILE 22
#define FRENAME 23
#define RETLOGINVEC 24
#define RETCURRDISK 25
#define SETDMAADDR 26
#define GETALLOCVEC 27
#define WRPROTDISK 28
#define GETROVECTOR 29
#define FSETATTRIB 30
#define GETDPBADDR 31
#define SETGETUSER 32
#define FREADRANDOM 33
#define FWRITERAND 34
#define FCOMPSIZE 35
#define SETRANDREC 36
#define RESETDRIVE 37
#define WRRANDFILL 38
#define DRIVEA 0
/* dphmap.h 5/29/2012 dwg - declaration of DPH MAP structure */
struct DPHMAP {
struct DPH * drivea;
struct DPH * driveb;
struct DPH * drivec;
struct DPH * drived;
struct DPH * drivee;
struct DPH * drivef;
struct DPH * driveg;
struct DPH * driveh;
} * pDPHMAP;
struct DPHMAP * pDPHVEC[MAXDRIVE];
/******************/
/* eof - dphmap.h */
/******************/
/*****************/
/* eof - cpm80.h */
/*****************/


View File

@@ -1,8 +0,0 @@
/* cpmappl.h */
extern banner();
/*******************/
/* eof - cpmappl.h */
/*******************/


View File

@@ -1,82 +0,0 @@
; cpmappl.lib 2/10/2012 dwg - begin 1.6 development
; cpmappl.lib 2/04/2012 dwg - fix typo mov becomes mvi
; cpmappl.lib 2/ 2/2012 dwg - initial version
;
; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
;
; This file is part of NuBiosDWG and is free software: you can
; redistribute it and/or modify it under the terms of the GNU
; General Public License as published by the Free Software Foundation,
; either version 3 of the License, or (at your option) any later version.
; This file is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
; You should have received a copy of the GNU General Public License
; along with it. If not, see <http://www.gnu.org/licenses/>.
;
do$start macro
start: jmp begin
public hexref
hexref db '0123456789ABCDEF'
public id$sig,id$rmj,id$rmn,id$rup,id$rtp,id$mon,id$day,id$yr
id$sig db 'ID'
id$rmj db A$RMJ
id$rmn db A$RMN
id$rup db A$RUP
id$rtp db A$RTP
id$mon db A$MONTH
id$day db A$DAY
id$yr dw A$YEAR
id$argv dw argv
db 0e5h
public pre$stk
pre$stk ds 2
public begin
begin: lxi h,0
dad sp
shld pre$stk
lxi sp,stack$top
nop
endm
;---------------------------------
do$end macro
lhld pre$stk
sphl
mvi c,13
call BDOS
ret
ds stack$size
stack$top:
endm
movfcb macro destn,source
lxi d,destn
lxi h,source
lxi b,LENFCB
ldir
endm
copyfcb macro fcbname,source
local around
jmp around
fcbname ds 32
around:
endm


View File

@@ -1,53 +0,0 @@
#define TERMCPM 0
#define CONIN 1
#define CWRITE 2
#define DIRCONIO 6
#define PRINTSTR 9
#define RDCONBUF 10
#define GETCONST 11
#define RETVERNUM 12
#define RESDISKSYS 13
#define SELECTDISK 14
#define FOPEN 15
#define FCLOSE 16
#define SEARCHFIRST 17
#define SEARCHNEXT 18
#define FDELETE 19
#define FREADSEQ 20
#define FWRITESEQ 21
#define FMAKEFILE 22
#define FRENAME 23
#define RETLOGINVEC 24
#define RETCURRDISK 25
#define SETDMAADDR 26
#define GETALLOCVEC 27
#define WRPROTDISK 28
#define GETROVECTOR 29
#define FSETATTRIB 30
#define GETDPBADDR 31
#define SETGETUSER 32
#define FREADRANDOM 33
#define FWRITERAND 34
#define FCOMPSIZE 35
#define SETRANDREC 36
#define RESETDRIVE 37
#define WRRANDFILL 38
#define BDOSDEFDR 0 /* BDOS Default (current) Drive Number */
#define BDOSDRA 1
#define BDOSDRB 2
#define BDOSDRC 3
#define BDOSDRD 4
#define BDOSDRE 5
#define BDOSDRF 6
#define BDOSDRG 7
#define BDOSDRH 8
struct FCB {
char drive;
char filename[8];
char filetype[3];
char filler[24];
};


View File

@@ -1,174 +0,0 @@
; cpmbdos.lib 1/19/2012 dwg - add READ$CON$BUF (10)
; cpmbdos.lib 1/15/2012 dwg - add more functions
;
; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
;
; This file is part of NuBiosDWG and is free software: you can
; redistribute it and/or modify it under the terms of the GNU
; General Public License as published by the Free Software Foundation,
; either version 3 of the License, or (at your option) any later version.
; This file is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
; You should have received a copy of the GNU General Public License
; along with it. If not, see <http://www.gnu.org/licenses/>.
;
; BDOS function codes
TERMCPM equ 0 ; return to command line
CREAD equ 1 ; read a character
CWRITE equ 2 ; write a character
PRINTSTR equ 9 ; print string
READ$CON$BUF equ 10 ; read console buffer
RETVERNO equ 12 ; return version number
DSKRESET equ 13 ; disk reset
SELDSK equ 14 ; select disk
FOPEN equ 15 ; open file
FCLOSE equ 16 ; close file
FDELETE equ 19 ; delete file
READSEQ equ 20 ; read sequential
WRITESEQ equ 21 ; write sequential
FMAKE equ 22 ; make file
FRENAME equ 23 ; rename file
RETCURR equ 25 ; return current disk, 0=a
SETDMA equ 26 ; set dma address
WRITERAND equ 34 ; write random record
FCOMPSIZE equ 35 ; compute file size
SETRANDREC equ 36 ; set random record
RESETDRIVE equ 37 ; reset drive
WRITERANDZF equ 40 ; write random with zero fill
OEMID equ 0E5h
; File Control Block
DR$OFS equ 0
F1$OFS equ DR$OFS+BYTESIZE
F2$OFS equ F1$OFS+BYTESIZE
F3$OFS equ F2$OFS+BYTESIZE
F4$OFS equ F3$OFS+BYTESIZE
F5$OFS equ F4$OFS+BYTESIZE
F6$OFS equ F5$OFS+BYTESIZE
F7$OFS equ F6$OFS+BYTESIZE
F8$OFS equ F7$OFS+BYTESIZE
T1$OFS equ F8$OFS+BYTESIZE
T2$OFS equ T1$OFS+BYTESIZE
T3$OFS equ T2$OFS+BYTESIZE
EX$OFS equ T3$OFS+BYTESIZE
S1$OFS equ EX$OFS+BYTESIZE
S2$OFS equ S1$OFS+BYTESIZE
RC$OFS equ S2$OFS+BYTESIZE
D0$OFS equ RC$OFS+BYTESIZE
CR$OFS equ DR$OFS+32
R0$OFS equ CR$OFS+BYTESIZE
R1$OFS equ R0$OFS+BYTESIZE
R2$OFS equ R1$OFS+BYTESIZE
FCB$LEN equ R2$OFS+BYTESIZE
; Memory Locations
BDOS equ 5 ; entry point fo BDOS function calls
PRIFCB equ 5Ch ; primary file control block address
SECFCB equ 6Ch ; secondary file control block address
LENFCB equ 32 ; length of file control block
DEFBUF equ 80h ; address of default buffer
EXIT macro
mvi c,TERMCPM
call BDOS
endm
conin macro
push b ; save context B&C
push d ; save context D&E
push h ; save context H&L
mvi c,CREAD ; set up for console input BDOS call
call BDOS ; call BDOS function entry point
pop h ; restore context H&L
pop d ; restore context D&E
pop b ; restore context B&C
endm
conout macro char
enter ; save all context regs
mvi c,CWRITE ; set for console output BDOS call
mvi e,char ; place output character in E as required
call bdos ; call BDOS function entry point
leave ; restore all context regs
endm
conouta macro
enter
mvi c,CWRITE
mov e,a
call bdos
leave
endm
PRINT macro addr
enter
mvi c,PRINTSTR
lxi d,addr
call BDOS
leave
endm
PTRPRT macro addr
enter ; save all context registers
lxi h,addr ; load the address parameter into H&L
mov e,m ; pick up LO byte of new pointer
inx h ; bump index register
mov d,m ; pick up HO byte of new pointer
mvi c,PRINTSTR ; assembled pointer used for printstring call
call BDOS
leave ; restore all context registers
endm
movfcb macro destn,source
lxi d,destn
lxi h,source
lxi b,LENFCB
ldir
endm
copyfcb macro fcbname,source
local around
jmp around
fcbname ds 32
around:
endm
printf macro parmdata
local around
local string
print string
jmp around
string db parmdata
db '$'
around:
endm
printmsg macro parmdata
enter
local around
local string
print string
jmp around
string db parmdata
db '$'
around:
leave
endm
newfcb macro fcbname,drive,filename
fcbname db drive,filename
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
endm
; eof - cpmbdos.lib


View File

@@ -1,684 +0,0 @@
/* cpmbind.h 5/21/2012 dwg - added b1f0peek and b1f0poke */
/* cpmbind.h 3/16/2012 dgw - created */
#define CR 0x0d
#define LF 0x0a
#define ESC 27
#define BIOSAD 0x0e600
#define pTermType 0x0E679
/*************************/
/* BIOS Memory Locations */
/*************************/
#define CURDRV 0x00004
#define BIOSAD 0x0e600
#define pBOOT 0x0E600
#define pWBOOT 0x0E603
#define pCONST 0x0E606
#define pCONIN 0x0E609
#define pCONOUT 0x0E60C
#define pLIST 0x0E60F
#define pPUNCH 0x0E612
#define pREADER 0x0E615
#define pHOME 0x0E618
#define pSELDSK 0x0E61B
#define pSETTRK 0x0E61E
#define pSETSEC 0x0E621
#define pSETDMA 0x0E624
#define pREAD 0x0E627
#define pWRITE 0x0E62A
#define pLISTST 0x0E62D
#define pSECTRN 0x0E630
#define pBNKSEL 0x0E633
#define pGETLU 0x0E636
#define pSETLU 0x0E639
#define pGETINFO 0x0E63C
#define pB1F0PEEK 0x0E63F
#define pB1F0POKE 0x0E642
/*
struct JMP {
unsigned char opcode;
unsigned int address;
};
struct BIOS {
struct JMP boot;
struct JMP wboot;
struct JMP const;
struct JMP conin;
struct JMP conout;
struct JMP list;
struct JMP punch;
struct JMP reader;
struct JMP home;
struct JMP seldsk;
struct JMP settrk;
struct JMP setsec;
struct JMP setdma;
struct JMP read;
struct JMP write;
struct JMP listst;
struct JMP sectrn;
struct JMP bnksel;
struct JMP getlu;
struct JMP setlu;
struct JMP getinfo;
struct JMP b1f0peek;
struct JMP b1f0poke;
struct JMP res1;
struct JMP res2;
char rmj;
char rmn;
char rup;
char rtp;
char diskboot;
char bootdrive;
char timedate[6];
char cpufreq;
char platform;
char dioplat;
char vduplt;
unsigned int romsize;
unsigned int ramsize;
char clrramdisk;
char dskyenable;
char uartenable;
char vduenable;
char fdenable;
char fdtrace;
char fdmedia;
char fdmediaalt;
char fdmauto;
char ideenable;
char idetrace;
char ide8bit;
unsigned int idecapacity;
char ppideenable;
char ppidetrace;
char ppide8bit;
unsigned int ppidecapacity;
char ppideslow;
char boottype;
char boot_timeout;
char boot_default;
unsigned int baudrate;
char clkdiv;
char memwait;
char iowait;
char cntlb0;
char cntlb1;
char sdenable;
char sdtrace;
unsigned int sdcapacity;
char sdcsio;
char sdcsiofast;
char defiobyte;
char termtype;
unsigned int revision;
char prpsdenable;
char prpsdtrace;
char prpsdcapacity;
char prpconenable;
unsigned int biossize;
};
*/
/*
*/
/* bioscall.h 3/10/2012 dwg - header file for bdoscall */
extern char irega;
extern unsigned int iregbc;
extern unsigned int iregde;
extern unsigned int ireghl;
extern bioscall();
/*********************/
/* BDOS Declarations */
/*********************/
#define TERMCPM 0
#define CONIN 1
#define CWRITE 2
#define DIRCONIO 6
#define PRINTSTR 9
#define RDCONBUF 10
#define GETCONST 11
#define RETVERNUM 12
#define RESDISKSYS 13
#define SELECTDISK 14
#define FOPEN 15
#define FCLOSE 16
#define SEARCHFIRST 17
#define SEARCHNEXT 18
#define FDELETE 19
#define FREADSEQ 20
#define FWRITESEQ 21
#define FMAKEFILE 22
#define FRENAME 23
#define RETLOGINVEC 24
#define RETCURRDISK 25
#define SETDMAADDR 26
#define GETALLOCVEC 27
#define WRPROTDISK 28
#define GETROVECTOR 29
#define FSETATTRIB 30
#define GETDPBADDR 31
#define SETGETUSER 32
#define FREADRANDOM 33
#define FWRITERAND 34
#define FCOMPSIZE 35
#define SETRANDREC 36
#define RESETDRIVE 37
#define WRRANDFILL 38
#define DRIVEA 0
/* bdoscall.h 3/10/2012 dwg - header file for bdoscall */
extern char drega;
extern unsigned int dregbc;
extern unsigned int dregde;
extern unsigned int dreghl;
extern bdoscall();
/* std.h 3/11/2012 dwg - c version of std.asm */
#define TERM_TTY 0
#define TERM_ANSI 1
#define TERM_WYSE 2
#define TERM_VT52 3
#define DEV_MD 0x00
#define DEV_FD 0x10
#define DEV_IDE 0x20
#define DEV_ATAPI 0x30
#define DEV_PPIDE 0x40
#define DEV_SD 0x50
#define DEV_PRPSD 0x60
#define DEV_PPPSD 0x70
#define DEV_HDSK 0x80
#define PLT_N8VEM 1
#define PLT_ZETA 2
#define PLT_N8 3
/*
; std.lib 2/21/2012 dwg - added TERM$VT52
; TRUE equ 1
; FALSE equ 00
;
; PRIMARY HARDWARE PLATFORMS
; PLT$N8VEM equ 1 ; N8VEM ECB Z80 SBC
; PLT$ZETA equ 2 ; ZETA Z80 SBC
; PLT$N8 equ 3 ; N8 (HOME COMPUTER) Z180 SBC
;
; BOOT STYLE
; BT$MENU equ 1 ; WAIT FOR MENU SELECTION AT LOADER PROMPT
; BT$AUTO equ 2 ; AUTO SELECT BOOT$DEFAULT AFTER BOOT$TIMEOUT
;
; VDU PLATFORM SELECTIONS
;
;
; VDUPLT$NONE equ 0 ; NO VDU
; VDUPLT$VDU equ 1 ; ORIGINAL ECB VDU (6545 CHIP)
; VDUPLT$VDUC equ 2 ; ECB VDU COLOR (PENDING HARDWARE DEVELOPMENT)
; VDUPLT$PROPIO equ 3 ; ECB PROPIO (NOT IMPLEMENTED)
; VDUPLT$N8 equ 4 ; N8 ONBOARD VIDEO SUBSYSTEM (NOT IMPLEMENTED)
;
; RAM DISK INITIALIZATION OPTIONS
; CLR$NEVER equ 0 ; NEVER CLEAR RAM DISK
; CLR$AUTO equ 1 ; CLEAR RAM DISK IF INVALID DIR ENTRIES
; CLR$ALWAYS equ 2 ; ALWAYS CLEAR RAM DISK
;
;
; ; DISK MAP SELECTION OPTIONS
;
; DM$ROM equ 1 ; ROM DRIVE PRIORITY
; DM$RAM equ 2 ; RAM DRIVE PRIORITY
; DM$FD equ 3 ; FLOPPY DRIVE PRIORITY
; DM$IDE equ 4 ; IDE DRIVE PRIORITY
; DM$PPIDE equ 5 ; PPIDE DRIVE PRIORITY
; DM$SD equ 6 ; SD DRIVE PRIORITY
; DM$PRPSD equ 7 ; PROPIO SD DRIVE PRIORITY
;
;
; ; FLOPPY DISK MEDIA SELECTIONS (ID'S MUST BE INDEX OF ENTRY IN FCD$TBL)
;
;
; FDM720 equ 0 ; 3.5" FLOPPY, 720KB, 2 SIDES, 80 TRKS, 9 SECTORS
; FDM144 equ 1 ; 3.5" FLOPPY, 1.44MB, 2 SIDES, 80 TRKS, 18 SECTORS
; FDM360 equ 2 ; 5.25" FLOPPY, 360KB, 2 SIDES, 40 TRKS, 9 SECTORS
; FDM120 equ 3 ; 3.5" FLOPPY, 1.2MB, 2 SIDES, 80 TRKS, 15 SECTORS
;
;
; ; DISK PLATFORM SELECTIONS
;
; DIOPLT$NONE equ 0 ; NO DISK IO HARDWARE
; DIOPLT$DISKIO equ 1 ; N8VEM ECB DISK IO BOARD
; DIOPLT$ZETA equ 2 ; ZETA BUILT-IN DISK IO SECTION
; DIOPLT$DIDE equ 3 ; N8VEM ECB DUAL IDE W/ FLOPPY BOARD
; DIOPLT$N8 equ 4 ; N8 BUILT-IN DISK IO SECTION
; DIOPLT$DISKIO3 equ 5 ; N8VEM ECB DISK IO V3 BOARD
;
; CONSOLE DEVICE CHOICES FOR LDRCON AND DBGCON IN CONFIG SETTINGS
;
; CON$UART equ 1
; CON$VDU equ 2
; CON$PRP equ 3
;
; CONSOLE TERMINAL TYPE CHOICES
;
TERM$TTY equ 0
TERM$ANSI equ 1
TERM$WYSE equ 2
TERM$VT52 equ 3
;
;
; ; SYSTEM GENERATION SETTINGS
;
; SYS$CPM equ 1 ; CPM (IMPLIES BDOS + CCP)
; SYS$ZSYS equ 2 ; ZSYSTEM OS (IMPLIES ZSDOS + ZCPR)
;
; DOS$BDOS equ 1 ; BDOS
; DOS$ZDDOS equ 2 ; ZDDOS VARIANT OF ZSDOS
; DOS$ZSDOS equ 3 ; ZSDOS
;
; CP$CCP equ 1 ; CCP COMMAND PROCESSOR
; CP$ZCPR equ 2 ; ZCPR COMMAND PROCESSOR
;
; CONFIGURE DOS (DOS) AND COMMAND PROCESSOR (CP) BASED ON SYSTEM SETTING (SYS)
;
;
; #IFNDEF BLD$SYS
; SYS equ SYS$CPM
; #ELSE
; SYS equ BLD$SYS
; #ENDIF
;
; #IF (SYS == SYS$CPM)
; DOS equ DOS$BDOS
; CP equ CP$CCP
; #DEFINE OSLBL "CP/M-80 2.2C"
; #ENDIF
;
; #IF (SYS == SYS$ZSYS)
; DOS equ DOS$ZSDOS
; CP equ CP$ZCPR
; #DEFINE OSLBL "ZSYSTEM (ZSDOS 1.2, ZCPR 1.0)"
; #ENDIF
;
;
; ; INCLUDE VERSION AND BUILD SETTINGS
;
; #INCLUDE "ver.inc" ; ADD BIOSVER
;
;
; #INCLUDE "build.inc" ; INCLUDE USER CONFIG, ADD VARIANT, TIMESTAMP, & ROMSIZE
;
;
; #IF (PLATFORM NE PLT$N8)
;
;
; ; N8VEM HARDWARE IO PORT ADDRESSES AND MEMORY LOCATIONS
; MPCL$RAM equ 78H ; BASE IO ADDRESS OF RAM MEMORY PAGER CONFIGURATION LATCH
; MPCL$ROM equ 7CH ; BASE IO ADDRESS OF ROM MEMORY PAGER CONFIGURATION LATCH
;
;
; ; HARDWARE INTERFACES
;
; PIO 82C55 I/O IS DECODED TO PORT 60-67
; PIOA equ 60H ; PORT A
; PIOB equ 61H ; PORT B
; PIOC equ 62H ; PORT C
; PIOX equ 63H ; PIO 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)
; #ENDIF ; (PLATFORM NE PLT$N8)
;
;
; #IF (PLATFORM NE PLT$N8)
;
;
; ; Z180 REGISTERS
;
;
; CPU$IOBASE equ 40H ; ONLY RELEVANT FOR Z180
; CPU$CNTLA0 equ CPU$IOBASE+$00 ;ASCI0 control A
; CPU$CNTLA1 equ CPU$IOBASE+$01 ;ASCI1 control A
; CPU$CNTLB0 equ CPU$IOBASE+$02 ;ASCI0 control B
; CPU$CNTLB1 equ CPU$IOBASE+$03 ;ASCI1 control B
; CPU$STAT0 equ CPU$IOBASE+$04 ;ASCI0 status
; CPU$STAT1 equ CPU$IOBASE+$05 ;ASCI1 status
; CPU$TDR0 equ CPU$IOBASE+$06 ;ASCI0 transmit
; CPU$TDR1 equ CPU$IOBASE+$07 ;ASCI1 transmit
; CPU$RDR0 equ CPU$IOBASE+$08 ;ASCI0 receive
; CPU$RDR1 equ CPU$IOBASE+$09 ;ASCI1 receive
; CPU$CNTR equ CPU$IOBASE+$0A ;CSI/O control
; CPU$TRDR equ CPU$IOBASE+$0B ;CSI/O transmit/receive
; CPU$TMDR0L equ CPU$IOBASE+$0C ;Timer 0 data lo
; CPU$TMDR0H equ CPU$IOBASE+$0D ;Timer 0 data hi
; CPU$RLDR0L equ CPU$IOBASE+$0E ;Timer 0 reload lo
; CPU$RLDR0H equ CPU$IOBASE+$0F ;Timer 0 reload hi
; CPU$TCR equ CPU$IOBASE+$10 ;Timer control
; CPU$ASEXT0 equ CPU$IOBASE+$12 ;ASCI0 extension control (Z8S180)
; CPU$ASEXT1 equ CPU$IOBASE+$13 ;ASCI1 extension control (Z8S180)
; CPU$TMDR1L equ CPU$IOBASE+$14 ;Timer 1 data lo
; CPU$TMDR1H equ CPU$IOBASE+$15 ;Timer 1 data hi
; CPU$RLDR1L equ CPU$IOBASE+$16 ;Timer 1 reload lo
; CPU$RLDR1H equ CPU$IOBASE+$17 ;Timer 1 reload hi
; CPU$FRC equ CPU$IOBASE+$18 ;Free running counter
; CPU$ASTC0L equ CPU$IOBASE+$1A ;ASCI0 Time constant lo (Z8S180)
; CPU$ASTC0H equ CPU$IOBASE+$1B ;ASCI0 Time constant hi (Z8S180)
; CPU$ASTC1L equ CPU$IOBASE+$1C ;ASCI1 Time constant lo (Z8S180)
; CPU$ASTC1H equ CPU$IOBASE+$1D ;ASCI1 Time constant hi (Z8S180)
; CPU$CMR equ CPU$IOBASE+$1E ;Clock multiplier (latest Z8S180)
; CPU$CCR equ CPU$IOBASE+$1F ;CPU control (Z8S180)
; CPU$SAR0L equ CPU$IOBASE+$20 ;DMA0 source addr lo
; CPU$SAR0H equ CPU$IOBASE+$21 ;DMA0 source addr hi
; CPU$SAR0B equ CPU$IOBASE+$22 ;DMA0 source addr bank
; CPU$DAR0L equ CPU$IOBASE+$23 ;DMA0 dest addr lo
; CPU$DAR0H equ CPU$IOBASE+$24 ;DMA0 dest addr hi
; CPU$DAR0B equ CPU$IOBASE+$25 ;DMA0 dest addr bank
; CPU$BCR0L equ CPU$IOBASE+$26 ;DMA0 byte count lo
; CPU$BCR0H equ CPU$IOBASE+$27 ;DMA0 byte count hi
; CPU$MAR1L equ CPU$IOBASE+$28 ;DMA1 memory addr lo
; CPU$MAR1H equ CPU$IOBASE+$29 ;DMA1 memory addr hi
; CPU$MAR1B equ CPU$IOBASE+$2A ;DMA1 memory addr bank
; CPU$IAR1L equ CPU$IOBASE+$2B ;DMA1 I/O addr lo
; CPU$IAR1H equ CPU$IOBASE+$2C ;DMA1 I/O addr hi
; CPU$IAR1B equ CPU$IOBASE+$2D ;DMA1 I/O addr bank (Z8S180)
; CPU$BCR1L equ CPU$IOBASE+$2E ;DMA1 byte count lo
; CPU$BCR1H equ CPU$IOBASE+$2F ;DMA1 byte count hi
; CPU$DSTAT equ CPU$IOBASE+$30 ;DMA status
; CPU$DMODE equ CPU$IOBASE+$31 ;DMA mode
; CPU$DCNTL equ CPU$IOBASE+$32 ;DMA/WAIT control
; CPU$IL equ CPU$IOBASE+$33 ;Interrupt vector load
; CPU$ITC equ CPU$IOBASE+$34 ;INT/TRAP control
; CPU$RCR equ CPU$IOBASE+$36 ;Refresh control
; CPU$CBR equ CPU$IOBASE+$38 ;MMU common base register
; CPU$BBR equ CPU$IOBASE+$39 ;MMU bank base register
; CPU$CBAR equ CPU$IOBASE+$3A ;MMU common/bank area register
; CPU$OMCR equ CPU$IOBASE+$3E ;Operation mode control
; CPU$ICR equ $3F ;I/O control register (not relocated)
;
; N8 ONBOARD I/O REGISTERS
; N8$IOBASE equ $80
; PIO equ N8$IOBASE+$00
; PIOA equ PIO+$00 ; PORT A
; PIOB equ PIO+$01 ; PORT B
; PIOC equ PIO+$02 ; PORT C
; PIOX equ PIO+$03 ; PIO CONTROL PORT
; PIO2 equ N8$IOBASE+$04
; PIO2A equ PIO2+$00 ; PORT A
; PIO2B equ PIO2+$01 ; PORT B
; PIO2C equ PIO2+$02 ; PORT C
; PIO2X equ PIO2+$03 ; PIO CONTROL PORT
;
; RTC equ N8$IOBASE+$08 ;RTC latch and buffer
; FDC equ N8$IOBASE+$0C ;Floppy disk controller
; UTIL equ N8$IOBASE+$10 ;Floppy disk utility
; ACR equ N8$IOBASE+$14 ;auxillary control register
; RMAP equ N8$IOBASE+$16 ;ROM page register
; VDP equ N8$IOBASE+$18 ;Video Display Processor (TMS9918A)
; PSG equ N8$IOBASE+$1C ;Programmable Sound Generator (AY-3-8910)
;
; DEFACR equ $1B
;
; #ENDIF
;
;
; ; CHARACTER DEVICE FUNCTIONS
;
;
; CF$INIT equ 0
; CF$IN equ 1
; CF$IST equ 2
; CF$OUT equ 3
; CF$OST equ 4
;
; DISK OPERATIONS
; DOP$READ equ 0 ; READ OPERATION
; DOP$WRITE equ 1 ; WRITE OPERATION
; DOP$FORMAT equ 2 ; FORMAT OPERATION
; DOP$READID equ 3 ; READ ID OPERATION
;
; DISK DRIVER FUNCTIONS
; DF$READY equ 1
; DF$SELECT equ 2
; DF$READ equ 3
; DF$WRITE equ 4
; DF$FORMAT equ 5
;
; DISK DEVICES (ONLY FIRST NIBBLE RELEVANT, SECOND NIBBLE MUST BE ZERO)
; DEV$MD equ 000H
; DEV$FD equ 010H
; DEV$IDE equ 020H
; DEV$ATAPI equ 030H
; DEV$PPIDE equ 040H
; DEV$SD equ 050H
; DEV$PRPSD equ 060H
;
; IMG$START equ 00000H ; IMMUTABLE: ROM IMAGE AREA START
; IMG$END equ 08000H ; IMMUTABLE: ROM IMAGE AREA END
;
; PG0$LOC equ 00000H ; IMMUTABLE
; PG0$SIZ equ 00100H ; IMMUTABLE
; PG0$END equ PG0$LOC + PG0$SIZ
; PG0$IMG equ IMG$START ; IMMUTABLE
; LDR$LOC equ PG0$END
; LDR$SIZ equ 02000H - PG0$SIZ ; CONFIGURABLE
; LDR$END equ LDR$LOC + LDR$SIZ
; LDR$IMG equ PG0$IMG + PG0$SIZ
; CPM$LOC equ 0D000H ; CONFIGURABLE: LOCATION OF CPM FOR RUNNING SYSTEM
; CPM$END equ 10000H ; IMMUTABLE: TOP OF MEMORY
; CPM$SIZ equ CPM$END - CPM$LOC ; SIZE OF CPM IMAGE (CCP + BDOS + CBIOS (INCLUDING DATA))
; CPM$ENT equ CPM$LOC + 01600H ; IMMUTABLE: CPM ENTRY POINT
; CPM$IMG equ LDR$IMG + LDR$SIZ ; START OF CONCATENATED CPM IMAGE
; DAT$SIZ equ DATASIZE ; FROM CONFIG FILE
; DAT$END equ CPM$END
; DAT$LOC equ DAT$END - DAT$SIZ
; BIOS$LOC equ CPM$ENT
; BIOS$END equ DAT$LOC
; BIOS$SIZ equ DAT$LOC - CPM$ENT
; MON$IMG equ CPM$IMG + CPM$SIZ ; LOCATION OF MONITOR BINARY IMAGE IN ROM
; MON$LOC equ 08000H ; LOCATION OF MONITOR FOR RUNNING SYSTEM
; MON$SIZ equ 01000H ; SIZE OF MONITOR BINARY IMAGE
; MON$END equ MON$LOC + MON$SIZ
; MON$DSKY equ MON$LOC ; MONITOR ENTRY (DSKY)
; MON$UART equ MON$LOC + 3 ; MONITOR ENTRY (UART)
; ROMX$LOC equ MON$IMG + MON$SIZ ; LOCATION OF ROM EXTENSION CODE
;
;
; ROMX$SIZ equ 02000H ; FIXED
; ROMX$END equ ROMX$LOC + ROMX$SIZ
;
;
; VDU$LOC equ ROMX$LOC + 0 ; LOCATION OF ROM VDU DRIVER
;
;
; CBIOS$BOOT equ BIOS$LOC + 0
; CBIOS$WBOOT equ BIOS$LOC + 3
; CBIOS$CONST equ BIOS$LOC + 6
; CBIOS$CONIN equ BIOS$LOC + 9
; CBIOS$CONOUT equ BIOS$LOC + 12
; CBIOS$LIST equ BIOS$LOC + 15
; CBIOS$PUNCH equ BIOS$LOC + 18
; CBIOS$READER equ BIOS$LOC + 21
; CBIOS$HOME equ BIOS$LOC + 24
; CBIOS$SELDSK equ BIOS$LOC + 27
; CBIOS$SETTRK equ BIOS$LOC + 30
; CBIOS$SETSEC equ BIOS$LOC + 33
; CBIOS$SETDMA equ BIOS$LOC + 36
; CBIOS$READ equ BIOS$LOC + 39
; CBIOS$WRITE equ BIOS$LOC + 42
; CBIOS$LISTST equ BIOS$LOC + 45
; CBIOS$SECTRN equ BIOS$LOC + 48
;
; MEMORY CONFIGURATION
;
; MSIZE equ 59 ; CP/M VERSION MEMORY SIZE IN KILOBYTES
;
; "BIAS" IS ADDRESS OFFSET FROM 3400H FOR MEMORY SYSTEMS
; ; THAN 16K (REFERRED TO AS "B" THROUGHOUT THE TEXT)
;
; BIAS equ (MSIZE-20)*1024
; CCP equ 3400H+BIAS ; BASE OF CCP
; BDOS equ CCP+806H ; BASE OF BDOS
; BIOS equ CCP+1600H ; BASE OF BIOS
; CCPSIZ equ 00800H
;
; #IF (PLATFORM == PLT$N8VEM)
;
;
; ; #DEFINE PLATFORM$NAME "N8VEM Z80 SBC"
;
;
; ; #ENDIF
;
;
; ; #IF (PLATFORM == PLT$ZETA)
; ; #DEFINE PLATFORM$NAME "ZETA Z80 SBC"
; ; #ENDIF
;
;
; ; #IF (PLATFORM == PLT$N8)
; ; #DEFINE PLATFORM$NAME "N8 Z180 SBC"
; ; #ENDIF
;
; #IF (DSKYENABLE)
; ; #DEFINE DSKYLBL ", DSKY"
; ; #ELSE
; ; #DEFINE DSKYLBL ""
; ; #ENDIF
;
; #IF (VDUENABLE)
; #DEFINE VDULBL ", VDU"
; #ELSE
; #DEFINE VDULBL ""
; #ENDIF
;
; #IF (DIOPLT NE DIOPLT$NONE)
;
;
; #IF (DIOPLT EQ DIOPLT$DISKIO)
; #DEFINE DIOLBL ", DISKIO"
; #ENDIF
;
;
; #IF (DIOPLT EQ DIOPLT$ZETA)
; #DEFINE DIOLBL ""
; #ENDIF
;
;
; #IF (DIOPLT EQ DIOPLT$DIDE)
; #DEFINE DIOLBL ", DUALIDE"
; #ENDIF
;
;
; #IF (DIOPLT EQ DIOPLT$N8)
; #DEFINE DIOLBL ""
; #ENDIF
;
; #IF (DIOPLT EQ DIOPLT$DISKIO3)
; #DEFINE DIOLBL ", DISKIO-V3"
; #ENDIF
;
; #ELSE
; #DEFINE DIOLBL ""
; #ENDIF
;
;
; ; #ENDIF
;
;
; #IF (FDENABLE)
; #IF (FDMAUTO)
; #DEFINE FDLBL ", FLOPPY (AUTOSIZE)"
; #ELSE
; #IF (FDMEDIA == FDM720)
; #DEFINE FDLBL ", FLOPPY (720KB)"
; #ENDIF
; #IF (FDMEDIA == FDM144)
; #DEFINE FDLBL ", FLOPPY (1.44MB)"
; #ENDIF
; #ENDIF
; #ELSE
; #DEFINE FDLBL ""
; #ENDIF
;
;
; #IF (IDEENABLE)
; #DEFINE IDELBL ", IDE"
; #ELSE
; #DEFINE IDELBL ""
; #ENDIF
;
;
; #IF (PPIDEENABLE)
; #DEFINE PPIDELBL ", PPIDE"
; #ELSE
; #DEFINE PPIDELBL ""
; #ENDIF
;
; #IF (SDENABLE)
; #DEFINE SDLBL ", SD CARD"
; #ELSE
; #DEFINE SDLBL ""
; #ENDIF
;
;
; #IF (PRPSDENABLE)
; #DEFINE PRPSDLBL ", PROPIO SD CARD"
; #ELSE
; #DEFINE PRPSDLBL ""
; #ENDIF
;
;
; ; .ECHO "Configuration: "
; ; .ECHO PLATFORM$NAME
; ; .ECHO DSKYLBL
; ; .ECHO VDULBL
; ; .ECHO DIOLBL
; ; .ECHO FDLBL
; ; .ECHO IDELBL
; ; .ECHO PPIDELBL
; ; .ECHO SDLBL
; ; .ECHO PRPSDLBL
; ; .ECHO "\n"
; ;
;
; eof - std.lib
*/


View File

@@ -1,104 +0,0 @@
/* cpmbios.h 6/ 4/2012 dwg - added bootlu */
/* cpmbios.h 3/11/2012 dwg - added CURDRV */
/*************************/
/* BIOS Memory Locations */
/*************************/
#define CURDRV 0x00004
#define BIOSAD 0x0e600
#define pBOOT 0x0E600
#define pWBOOT 0x0E603
#define pCONST 0x0E606
#define pCONIN 0x0E609
#define pCONOUT 0x0E60C
#define pLIST 0x0E60F
#define pPUNCH 0x0E612
#define pREADER 0x0E615
#define pHOME 0x0E618
#define pSELDSK 0x0E61B
#define pSETTRK 0x0E61E
#define pSETSEC 0x0E621
#define pSETDMA 0x0E624
#define pREAD 0x0E627
#define pWRITE 0x0E62A
#define pLISTST 0x0E62D
#define pSECTRN 0x0E630
#define pBNKSEL 0x0E633
#define pGETLU 0x0E636
#define pSETLU 0x0E639
#define pGETINFO 0x0E63C
struct JMP {
unsigned char opcode;
unsigned int address;
};
struct BIOS {
struct JMP boot;
struct JMP wboot;
struct JMP const;
struct JMP conin;
struct JMP conout;
struct JMP list;
struct JMP punch;
struct JMP reader;
struct JMP home;
struct JMP seldsk;
struct JMP settrk;
struct JMP setsec;
struct JMP setdma;
struct JMP read;
struct JMP write;
struct JMP listst;
struct JMP sectrn;
struct JMP bnksel;
struct JMP getlu;
struct JMP setlu;
struct JMP getinfo;
struct JMP rsvd1;
struct JMP rsvd2;
struct JMP rsvd3;
struct JMP rsvd4;
/* char diskboot;
char bootdrive;
int bootlu; */
char rmj;
char rmn;
char rup;
char rtp;
};
struct DPH {
unsigned int xlt;
unsigned int rv1;
unsigned int rv2;
unsigned int rv3;
unsigned int dbf;
unsigned int dpb;
unsigned int csv;
unsigned int alv;
unsigned char sigl;
unsigned char sigu;
unsigned int current;
unsigned int number;
};
struct DPB {
unsigned int spt;
unsigned char bsh;
unsigned char blm;
unsigned char exm;
unsigned int dsm;
unsigned int drm;
unsigned char al0;
unsigned char al1;
unsigned int cks;
unsigned int off;
};


View File

@@ -1,137 +0,0 @@
; cpmbios.lib 2/20/2012 dwg - get$off, get$drm, and get$spt need c=drvnum
; cpmbios.lib 12/26/2011 dwg -
; Copyright (C) 2011-2012 Douglas Goodall All Rights Reserved.
; For non-commercial use by N8VEM community
XLT$OFS equ 0 ; Translate Table
RV1$OFS equ XLT$OFS+WORDSIZE ; Reserved Field 1
RV2$OFS equ RV1$OFS+WORDSIZE ; Reserved Field 2
RV3$OFS equ RV2$OFS+WORDSIZE ; Reserved Field 3
DBF$OFS equ RV3$OFS+WORDSIZE ; Directory Buffer
DPB$OFS equ DBF$OFS+WORDSIZE ; Diskk Parameter Block Pointer
CSV$OFS equ DPB$OFS+WORDSIZE ; Checksum Vector
ALV$OFS equ CSV$OFS+WORDSIZE ; Allocation Vector
DPH$LEN equ ALV$OFS+WORDSIZE ; size of normal DPH
LU1$OFS equ ALV$OFS+WORDSIZE ; Logical Unit Signature Byte 1 'L'
LU2$OFS equ LU1$OFS+BYTESIZE ; Logical Unit Signature Byte 2 'U'
CUR$OFS equ LU2$OFS+BYTESIZE ; Current Logical Unit (default)
NLU$OFS equ CUR$OFS+WORDSIZE ; Number of LU's (capacity/9)
SPT$OFS equ 0 ; Sectors Per Track
BSH$OFS equ SPT$OFS+WORDSIZE ; Block Shift Factor
BLM$OFS equ BSH$OFS+BYTESIZE ; Data Allocation Block Mask
EXM$OFS equ BLM$OFS+BYTESIZE ; Extend Mask
DSM$OFS equ EXM$OFS+BYTESIZE ; Disk Size Max
DRM$OFS equ DSM$OFS+WORDSIZE ; Number of Directory Entries
AL0$OFS equ DRM$OFS+WORDSIZE ; Allocation bitmask for directories
AL1$OFS equ AL0$OFS+BYTESIZE ; Allocation bitmask for directories
CKS$OFS equ AL1$OFS+BYTESIZE ; Size of Directory Check Vector
OFF$OFS equ CKS$OFS+WORDSIZE ; Number of Reserved Tracks
DPB$LEN equ OFF$OFS+WORDSIZE ; Disk Parameter Block Length
; BIOS Memory Locations
BIBOOT equ 0E600h
BIWBOOT equ 0E603h
BICONST equ 0E606h
BICONIN equ 0E609h
BICONOUT equ 0E60Ch
BILIST equ 0E60Fh
BIPUNCH equ 0E612h
BIREADER equ 0E615h
BIHOME equ 0E618h
BISELDSK equ 0E61Bh
BISETTRK equ 0E61Eh
BISETSEC equ 0E621h
BISETDMA equ 0E624h
BIREAD equ 0E627h
BIWRITE equ 0E62Ah
BILISTST equ 0E62Dh
BISECTRN equ 0E630h
; These are rel zero drive number for talking to the BIOS
; BDOS typically uses rel one drive codes
BIDRVA equ 0
BIDRVB equ 1
BIDRVC equ 2
BIDRVD equ 3
BIDRVE equ 4
BIDRVF equ 5
BIDRVG equ 6
BIDRVH equ 7
; On entry: c=drive number
get$spt macro
push psw
push b
push d
call BISELDSK
lxi d,DPB$OFS
dad d
mov e,m
inx h
mov d,m
xchg
lxi d,SPT$OFS
dad d
mov e,m
inx h
mov d,m
xchg
pop d
pop b
pop psw
endm
; On entry: c=drive number
get$drm macro
push psw
push b
push d
call BISELDSK
lxi d,DPB$OFS
dad d
mov e,m
inx h
mov d,m
xchg
lxi d,DRM$OFS
dad d
mov e,m
inx h
mov d,m
xchg
pop d
pop b
pop psw
endm
; On entry, c=drive number
get$off macro
push psw
push b
push d
call BISELDSK
lxi d,DPB$OFS
dad d
mov e,m
inx h
mov d,m
xchg
lxi d,OFF$OFS
dad d
mov e,m
inx h
mov d,m
xchg
pop d
pop b
pop psw
endm
; eof - cpmbios.lib


View File

@@ -1,286 +0,0 @@
/* cpmname.c 5/21/2012 dwg - */
#include "applvers.h"
#include "infolist.h"
#include "cnfgdata.h"
#include "syscfg.h"
#include "diagnose.h"
#include "std.h"
#define HIGHSEG 0xC000 /* memory address of system config */
#define GETSYSCFG 0xF000 /* HBIOS function for Get System Configuration */
char None[] = "*None*";
char Unk[] = "*Unknown*";
char * PltName[] = {None, "N8VEM Z80", "ZETA Z80", "N8 Z180"};
char * CIOName[] = {"UART", "ASCI", "VDU", "CVDU", "UPD7220",
"N8V", "PRPCON", "PPPCON", Unk, Unk, Unk, Unk, Unk,
"CRT", "BAT", "NUL"};
char * DIOName[] = {"MD", "FD", "IDE", "ATAPI", "PPIDE",
"SD", "PRPSD", "PPPSD", "HDSK"};
char * VDAName[] = {None, "VDU", "CVDU", "UPD7220", "N8V"};
char * EmuName[] = {None, "TTY", "ANSI"};
char * TermName[] = {"TTY", "ANSI", "WYSE", "VT52"};
char * DiskMapName[] = {None, "ROM", "RAM", "FD", "IDE",
"PPIDE", "SD", "PRPSD", "PPPSD", "HDSK"};
char * ClrRamName[] = {"Never", "Auto", "Always"};
char * FDModeName[] = {None, "DIO", "ZETA", "DIDE", "N8", "DIO3"};
char * FDMediaName[] = {"720K", "1.44M", "360K", "1.2M", "1.11M"};
char * IDEModeName[] = {None, "DIO", "DIDE"};
char hexchar(val, bitoff)
{
static char hexmap[] = "0123456789ABCDEF";
return hexmap[(val >> bitoff) & 0xF];
}
char * fmthexbyte(val, buf)
unsigned char val;
char * buf;
{
buf[0] = hexchar(val, 4);
buf[1] = hexchar(val, 0);
buf[2] = '\0';
return buf;
}
char * fmthexword(val, buf)
unsigned int val;
char * buf;
{
buf[0] = hexchar(val, 12);
buf[1] = hexchar(val, 8);
fmthexbyte(val, buf + 2);
return buf;
}
char * fmtbool(val)
unsigned char val;
{
return (val ? "True" : "False");
}
char * fmtenable(val)
unsigned char val;
{
return (val ? "Enabled" : "Disabled");
}
putscpm(p)
char * p;
{
while (*p != '$')
putchar(*(p++));
}
pager()
{
static int line = 1;
int i;
line++;
printf("\r\n");
if(line >= 24)
{
printf("*** Press any key to continue...");
while (bdos(6, 0xFF) == 0);
putchar('\r');
for (i = 0; i < 40; i++) {putchar(' ');}
putchar('\r');
line = 1;
}
}
prtcfg1(pSysCfg)
struct SYSCFG * pSysCfg;
{
struct CNFGDATA * pCfg;
char buf[5];
char buf2[5];
pCfg = &(pSysCfg->cnfgdata);
printf("%s @ %dMHz, RAM=%dMB, ROM=%dMB",
PltName[pCfg->platform],
pCfg->freq,
pCfg->ramsize,
pCfg->romsize);
pager();
printf("RomWBW Version %d.%d.%d.%d, ",
pCfg->rmj, pCfg->rmn,
pCfg->rup, pCfg->rtp);
putscpm((unsigned int)pSysCfg + (unsigned int)pSysCfg->tstloc);
pager();
if (pCfg->diskboot)
printf("Disk Boot Device=%s, Unit=%d, LU=%d",
DIOName[pCfg->devunit >> 4],
pCfg->devunit & 0xF, pCfg->bootlu);
else
printf("ROM Boot");
pager();
pager();
printf("Console: Default=%s:%d, Alternate=%s:%d, Init Baudrate=%d0",
CIOName[(pCfg->defcon) >> 4], pCfg->defcon & 0xF,
CIOName[(pCfg->altcon) >> 4], pCfg->altcon & 0xF,
pCfg->conbaud);
pager();
printf ("Default Video Display: %s, Default Emulation: %s",
VDAName[(pCfg->defvda) >> 4], EmuName[pCfg->defemu]);
pager();
printf ("Current Terminal Type: %s",
TermName[pCfg->termtype]);
pager();
printf("Default IO Byte=0x%s, Alternate IO Byte=0x%s",
fmthexbyte(pCfg->defiobyte, buf),
fmthexbyte(pCfg->altiobyte, buf2));
pager();
printf("Disk Write Caching=%s, Disk IO Tracing=%s",
fmtbool(pCfg->wrtcache), fmtbool(pCfg->dsktrace));
pager();
printf("Disk Mapping Priority: %s, Clear RAM Disk: %s",
DiskMapName[pCfg->dskmap], ClrRamName[pCfg->clrramdsk]);
pager();
pager();
printf("DSKY %s", fmtenable(pCfg->dskyenable));
pager();
if (pCfg->uartenable)
{
printf("UART Enabled");
pager();
if (pCfg->uartcnt >= 1)
printf("UART0 FIFO=%s, AFC=%s, Baudrate=%d0",
fmtbool(pCfg->uart0fifo), fmtbool(pCfg->uart0afc), pCfg->uart0baud);
if (pCfg->uartcnt >= 2)
printf("UART1 FIFO=%s, AFC=%s, Baudrate=%d0",
fmtbool(pCfg->uart1fifo), fmtbool(pCfg->uart1afc), pCfg->uart1baud);
if (pCfg->uartcnt >= 3)
printf("UART2 FIFO=%s, AFC=%s, Baudrate=%d0",
fmtbool(pCfg->uart2fifo), fmtbool(pCfg->uart2afc), pCfg->uart2baud);
if (pCfg->uartcnt >= 4)
printf("UART3 FIFO=%s, AFC=%s, Baudrate=%d0",
fmtbool(pCfg->uart3fifo), fmtbool(pCfg->uart3afc), pCfg->uart3baud);
}
else
printf("UART Disabled");
pager();
if (pCfg->ascienable)
{
printf("ASCI Enabled");
pager();
printf("ASCI0, Baudrate=%d0", pCfg->asci0baud);
printf("ASCI1, Baudrate=%d0", pCfg->asci1baud);
}
else
printf("ASCI Disabled");
pager();
printf("VDU %s", fmtenable(pCfg->vduenable));
pager();
printf("CVDU %s", fmtenable(pCfg->cvduenable));
pager();
printf("UPD7220 %s", fmtenable(pCfg->upd7220enable));
pager();
printf("N8V %s", fmtenable(pCfg->n8venable));
pager();
pager();
}
prtcfg2(pSysCfg)
struct SYSCFG * pSysCfg;
{
struct CNFGDATA * pCfg;
char buf[5];
char buf2[5];
pCfg = &(pSysCfg->cnfgdata);
printf("FD %s, Mode=%s, TraceLevel=%d, Media=%s/%s, Auto=%s",
fmtenable(pCfg->fdenable), FDModeName[pCfg->fdmode],
pCfg->fdtrace,
FDMediaName[pCfg->fdmedia], FDMediaName[pCfg->fdmediaalt],
fmtbool(pCfg->fdmauto));
pager();
printf("IDE %s, Mode=%s, TraceLevel=%d, 8bit=%s, Size=%dMB",
fmtenable(pCfg->ideenable), IDEModeName[pCfg->idemode],
pCfg->idetrace, fmtbool(pCfg->ide8bit), pCfg->idecapacity);
pager();
printf("PPIDE %s, IOBase=0x%s, TraceLevel=%d, 8bit=%s, Slow=%s, Size=%dMB",
fmtenable(pCfg->ppideenable), fmthexbyte(pCfg->ppideiob, buf),
pCfg->ppidetrace, fmtbool(pCfg->ppide8bit),
fmtbool(pCfg->ppideslow), pCfg->ppidecapacity);
pager();
printf("PRP %s, SD %s, TraceLevel=%d, Size=%dMB, Console %s",
fmtenable(pCfg->prpenable), fmtenable(pCfg->prpsdenable),
pCfg->prpsdtrace, pCfg->prpsdcapacity,
fmtenable(pCfg->prpconenable));
pager();
printf("PPP %s, SD %s, TraceLevel=%d, Size=%dMB, Console %s",
fmtenable(pCfg->pppenable), fmtenable(pCfg->pppsdenable),
pCfg->pppsdtrace, pCfg->pppsdcapacity,
fmtenable(pCfg->pppconenable));
pager();
printf("HDSK %s, TraceLevel=%d, Size=%dMB",
fmtenable(pCfg->hdskenable),
pCfg->hdsktrace, pCfg->hdskcapacity);
pager();
pager();
printf("PPK %s, TraceLevel=%d",
fmtenable(pCfg->ppkenable), pCfg->ppktrace);
pager();
printf("KBD %s, TraceLevel=%d",
fmtenable(pCfg->kbdenable), pCfg->kbdtrace);
pager();
pager();
printf("TTY %s", fmtenable(pCfg->ttyenable));
pager();
printf("ANSI %s, TraceLevel=%d",
fmtenable(pCfg->ansienable), pCfg->ansitrace);
pager();
}
int main(argc,argv)
int argc;
char *argv[];
{
struct INFOLIST * pInfoList;
struct SYSCFG * pSysCfg;
printf("CPMNAME.COM %d/%d/%d v%d.%d.%d (%d)",
A_MONTH,A_DAY,A_YEAR,A_RMJ,A_RMN,A_RUP,A_RTP);
printf(" dwg - Display System Configuration");
pager();
pager();
pInfoList = bioshl(20, 0, 0);
putscpm(pInfoList->banptr);
pager();
pager();
pSysCfg = HIGHSEG;
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = pSysCfg; /* addr of dest (must be high) */
diagnose(); /* invoke the HBIOS function */
if (pSysCfg->marker != CFGMARKER)
{
printf("*** Invalid configuration data ***\r\n");
return;
}
prtcfg1(pSysCfg);
prtcfg2(pSysCfg);
}
/********************/
/* eof - ccpmname.c */
/********************/

View File

@@ -1,99 +0,0 @@
/* ctermcap.c 3/11/2012 dwg - terminal capbility file */
#include "stdio.h"
#include "stdlib.h"
#include "cpmbind.h"
#include "applvers.h"
#include "cnfgdata.h"
#include "syscfg.h"
#include "diagnose.h"
char termtype;
char wy50row[24] = { ' ', '!', '"', '#', '$', '%', '&', 39,
'(', ')', '*', '+', ',', '-', '.', '/',
'0', '1', '2', '3', '4', '5', '6', '7' };
char wy50col[80] = { ' ', '!', '"', '#', '$', '%', '&', 39,
'(', ')', '*', '+', ',', '-', '.', '/',
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', ':', ';', '<', '=', '>', '?',
'@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
96, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o' };
crtinit(tt)
char tt;
{
termtype = tt;
}
crtclr()
{
int i;
switch(termtype) {
case TERM_TTY:
for(i=0;i<43;i++) {
printf("%c%c",CR,LF);
}
break;
case TERM_ANSI:
printf("%c[2J",ESC);
break;
case TERM_WYSE:
printf("%c+",ESC);
break;
case TERM_VT52:
printf("%cJ%cH",ESC,ESC);
break;
};
}
crtlc(line,col)
int line;
int col;
{
int i;
switch(termtype) {
case TERM_TTY:
break;
case TERM_ANSI:
printf("%c[%d;%d%c",ESC,line,col,0x66);
break;
case TERM_WYSE:
printf("%c=%c%c",ESC,wy50row[line-1],wy50col[col-1]);
break;
case TERM_VT52:
printf("%cY%c%c",ESC,' '+line,' '+col);
break;
};
}
/*
wy50row db ' !"#$%&'
db 39
db '()*+,-./01234567'
wy50col db ' !"#$%&'
db 39
db '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'
db 96
db 'abcdefghijklmno'
*/
/********************/
/* eof - ctermcap.c */
/********************/


View File

@@ -1,6 +0,0 @@
/* ctermcap.h 3/11/2012 dwg - declarations for termal capability */
extern crtinit(); /* void crtinit(char termtype); */
extern crtclr(); /* void crtclr(void); */
extern crtlc(); /* void crtlc(char line,char column); */


View File

@@ -1,45 +0,0 @@
/* cvt2h.h 7/11/2012 dwg - Copyright (C) 2012 Douglas Goodall */
/* This is an include file for a function which takes a pointer,
a length, and a filename, and converts a buffer into a C
header file that can be later incuded in some other compilation. */
#include "stdio.h"
#include "visible.h"
cvt2h(buffer,length,name)
unsigned char * buffer;
int length;
char * name;
{
FILE * fd;
int i,j,k,l;
char szTemp[32];
fd = fopen(name,"w");
fprintf(fd,
"/* %s produced automatically by cvt2h.h */\n",name);
strcpy(szTemp,name);
szTemp[8] = 0;
fprintf(fd,
"unsigned char %s[%d] = {\n\t",
szTemp,length);
for(i=0;i<length;i++) {
fprintf(fd,"0x%02x, ",buffer[i]);
if(7 == (i&0x07)) {
fprintf(fd," /* ");
j = i && 0x07;
k = j + 8;
for(l=j;l<k;l++) {
if(1 == visible[buffer[l]]) {
fprintf(fd,"%02x ",buffer[l]);
} else {
fprintf(fd,".");
}
}
fprintf(fd,"*/");
fprintf(fd,"\n\t");
}
}
fprintf(fd,"};\n/* eof - %s */\n",name);
fclose(fd);
}

View File

@@ -1,41 +0,0 @@
/* cvt2h.h 7/11/2012 dwg - Copyright (C) 2012 Douglas Goodall */
cvt2h(buffer,length,name)
unsigned char * buffer;
int length;
char * name;
{
FILE * fd;
int i,j,k,l;
char szTemp[32];
fd = fopen(name,"w");
fprintf(fd,
"/* %s produced automatically by cvt2h.h */\n",name);
strcpy(szTemp,name);
szTemp[8] = 0;
fprintf(fd,
"unsigned char %s[%d] = {\n\t",
szTemp,length);
for(i=0;i<length;i++) {
fprintf(fd,"0x%02x,",buffer[i]);
if(7 == (i&0x07)) {
fprintf(fd," /* ");
j = i & 0xfff8;
k = j + 8;
fprintf(fd," %04x: ",j);
for(l=j;l<k;l++) {
if(1 == visible[buffer[l]]) {
fprintf(fd,"%c ",buffer[l]);
} else {
fprintf(fd,". ");
}
}
fprintf(fd,"*/");
fprintf(fd,"\n\t");
}
}
fprintf(fd,"};\n/* eof - %s */\n",name);
fclose(fd);
}


View File

@@ -1,45 +0,0 @@
/* cvt2inc.h 7/23/2012 dwg - make tasm include file from binary buffer */
cvt2inc(buffer,length,name)
unsigned char * buffer;
int length;
char * name;
{
FILE * fd;
int i,j,k,l;
char szTemp[32];
fd = fopen(name,"w");
fprintf(fd,
"; %s produced automatically by cvt2inc.h \n",name);
strcpy(szTemp,name);
szTemp[8] = 0;
fprintf(fd,"%s:\n",szTemp);
fprintf(fd," .DB ");
i = 0;
for(i=0;i<length;i++) {
fprintf(fd,"%03xh",buffer[i]);
if(7 == (i&0x07)) {
fprintf(fd," ; ");
j = i & 0xfff8;
k = j + 8;
fprintf(fd," %04x: ",j);
for(l=j;l<k;l++) {
if(1 == visible[buffer[l]]) {
fprintf(fd,"%c ",buffer[l]);
} else {
fprintf(fd,". ");
}
}
if(i != length-1) fprintf(fd,"\n .DB ");
} else {
fprintf(fd,",");
}
}
fprintf(fd,"\n");
fclose(fd);
}


View File

@@ -1,49 +0,0 @@
; diagnose.asm 5/23/2012 dwg - diagnose binding for Aztec C
global hrega_,1
global hregbc_,2
global hregde_,2
global hreghl_,2
public diagnose_
diagnose:
push psw
push b
push d
push h
lhld hregbc_
mov b,h
mov c,l
lhld hregde_
mov d,h
mov e,l
lhld hreghl_
lda hrega_
db 0cfh ; rst 8
sta hrega_
shld hreghl_
mov l,e
mov h,d
shld hregde_
mov l,c
mov h,b
shld hregbc_
pop h
pop d
pop b
pop psw
RET
END


View File

@@ -1,12 +0,0 @@
/* diagnose.h 5/23/2012 dwg - */
extern char hrega;
extern unsigned int hregbc;
extern unsigned int hregde;
extern unsigned int hreghl;
extern diagnose();
/********************/
/* eof - diagnose.h */
/********************/

View File

@@ -1,229 +0,0 @@
/* view.c 6/7/2012 dwg - */
#include "std.h"
/* #include "hbios.h" */
#include "stdio.h"
#include "stdlib.h"
#include "memory.h"
#include "portab.h"
#define MAXDRIVE 8
#include "cpm80.h"
#include "cpmappl.h"
#include "applvers.h"
#include "trackio.h"
#define DSM144 0x02C6
#define DSM720 0x015E
#define DSM360 0x00AA
#define DSM120 0x024F
#define DSM111 0x0222
struct DPH * pDPH;
struct DPB * pDPB;
unsigned char buffer[72*128];
char gbFD[MAXDRIVE];
char gFDNums[MAXDRIVE];
char gNumFD; /* this value is set by the fdcount function */
/* the purpose of this function is to set the global variable
gNumFD to the number of floppy drives detected, and to set
a boolean in the vector gbFD indicating the drive is present
the drive number of each one in the vector
*/
diomed(devunit)
unsigned char devunit;
{
hregbc = 0x1300 + devunit;
diagnose();
return hrega;
}
sensefd()
{
char device;
char unit;
char devunit;
/* init local variables */
char drive;
char result;
drive = 0;
result = 0;
/* init global variables */
gNumFD = 0;
memset(&gbFD,FALSE,MAXDRIVE);
memset(&gFDNums,0,MAXDRIVE);
/* for all valid drive numbers */
while(0 == result) {
ireghl = pGETLU;
iregbc = drive;
bioscall();
result = irega;
/* return from GETLU goes to 1 if drive # invalid */
devunit = iregbc >> 8;
device = devunit & 0xf0;
unit = devunit & 0x0f;
if(DEV_FD == device) {
gFDNums[gNumFD] = drive;
gbFD[gNumFD++] = iregbc & 0xff;
}
drive++;
}
}
int main(argc,argv)
int argc;
char *argv[] ;
{
char drive;
int fd0,fd1;
int i;
int spt;
int track;
int tracks;
int bValid;
sensefd();
if(2 != gNumFD) {
printf("Sorry, this version of diskcopy only supports dual drives");
exit(FAILURE);
}
printf("The copy will be from drive %c: to drive %c:\n",
gFDNums[0]+'A',gFDNums[1]+'A');
printf("The media in FD0 is ");
fd0 = diomed(DEV_FD);
switch(fd0) {
case MID_NONE:
printf("Drive is empty");
break;
case MID_MDROM:
printf("a memory ROM drive");
break;
case MID_MDRAM:
printf("a memory RAM drive");
break;
case MID_HD:
printf("an HD drive");
break;
case MID_FD720:
printf("a 720KB floppy disk");
tracks = 80 * 2;
break;
case MID_FD144:
printf("a 1.44MB floppy disk");
tracks = 80 * 2;
break;
case MID_FD360:
printf("a 360KB floppy disk");
tracks = 40 * 2;
break;
case MID_FD120:
printf("a 120KB floppy disk");
tracks = 80 * 2;
break;
case MID_FD111:
printf("a 111KB floppy disk");
tracks = 74 * 2;
break;
default:
printf("an unknown media type");
break;
}
printf("\n");
printf("The media in FD1 is ");
fd1 = diomed(DEV_FD+1);
switch(fd1) {
case MID_NONE:
printf("Drive is empty");
break;
case MID_MDROM:
printf("a memory ROM drive");
break;
case MID_MDRAM:
printf("a memory RAM drive");
break;
case MID_HD:
printf("an HD drive");
break;
case MID_FD720:
printf("a 720KB floppy disk");
break;
case MID_FD144:
printf("a 1.44MB floppy disk");
break;
case MID_FD360:
printf("a 360KB floppy disk");
break;
case MID_FD120:
printf("a 120KB floppy disk");
break;
case MID_FD111:
printf("a 111KB floppy disk");
break;
default:
printf("an unknown media type");
break;
}
printf("\n");
if(fd0 != fd1) {
printf("Sorry, media types don't match, as required for diskcopy");
exit(1);
}
for(track=0;track<tracks;track++) {
ireghl = pSELDSK;
iregbc = gFDNums[0]; /* G: */
iregde = 0;
bioscall();
pDPH = ireghl;
pDPB = pDPH->dpb;
spt = pDPB->spt;
ireghl = pSETTRK;
iregbc = track;
bioscall();
printf("%3d ",track);
rdtrack(0,spt,buffer);
printf("%c",0x0d);
bValid = FALSE;
for(i=0;i<spt*128;i++) {
if(0xe5 != buffer[i]) {
bValid = TRUE;
break;
}
}
if(TRUE == bValid) {
ireghl = pSELDSK;
iregbc = gFDNums[1]; /* G: */
iregde = 0;
bioscall();
pDPH = ireghl;
pDPB = pDPH->dpb;
spt = pDPB->spt;
ireghl = pSETTRK;
iregbc = track; /* Track 0 */
bioscall();
printf("%3d ",track);
wrtrack(0,spt,buffer);
printf("%c",0x0d);
}
}
}


View File

@@ -1,12 +0,0 @@
#include "stdio.h"
main()
{
FILE * fd;
fd = fopen("$$$.SUB","w");
fprintf(fd,"%ca:getcfg\n",9);
fprintf(fd,"%ca:dump syscfg.bin\n",18);
fprintf(fd,"%ctype a:sect0000.h\n",17);
fclose(fd);
}


View File

@@ -1,30 +0,0 @@
struct DPH {
unsigned int xlt;
unsigned int rv1;
unsigned int rv2;
unsigned int rv3;
unsigned int dbf;
void * dpb;
void * csv;
void * alv;
/* extension */
unsigned char sigl;
unsigned char sigu;
unsigned int current;
unsigned int number;
};
struct DPB {
unsigned int spt;
unsigned char bsh;
unsigned char blm;
unsigned char exm;
unsigned int dsm;
unsigned int drm;
unsigned char al0;
unsigned char al1;
unsigned int cks;
unsigned int off;
};


View File

@@ -1,25 +0,0 @@
/* dphmap.h 9/4/2012 dwg - expand to include I through L */
/* dphmap.h 5/29/2012 dwg - declaration of DPH MAP structure */
struct DPHMAP {
struct DPH * drivea;
struct DPH * driveb;
struct DPH * drivec;
struct DPH * drived;
struct DPH * drivee;
struct DPH * drivef;
struct DPH * driveg;
struct DPH * driveh;
struct DPH * drivei;
struct DPH * drivej;
struct DPH * drivek;
struct DPH * drivel;
} * pDPHMAP;
struct DPHMAP * pDPHVEC[MAXDRIVE];
/******************/
/* eof - dphmap.h */
/******************/

View File

@@ -1,101 +0,0 @@
/* dump.c 7/11/2012 dwg -
The purpose of this program is similar to the CP/M dump program
except that in addition to the normal hexadecimal bytes, a field
of ascii bytes to the right are displayed as well.
*/
#include "stdio.h"
char visible[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 00 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 10 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 20 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 30 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 40 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 50 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 60 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, /* 70 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 80 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 90 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* A0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* B0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* C0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* D0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* E0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* F0 */
};
#include "cvt2h.h"
#include "cvt2inc.h"
main(argc,argv)
int argc;
char *argv[];
{
int i,j;
int offset;
int result;
unsigned char byte;
unsigned char sector[128];
char name[32];
FILE * fd;
banner("DUMP.COM");
/* cvt2h(0x0100,12*1024,"dumpcomh.h"); */
if(1 == argc) {
printf("Sorry, no input file specified");
exit(1);
}
fd = fopen(argv[1],"r");
if(NULL == fd) {
printf("Sorry, cannot open input file");
exit(1);
}
printf("Dumping %s\n\n",argv[1]);
offset = 0;
result = fread(sector,sizeof(sector),1,fd);
while(0 < result) {
sprintf(name,"sect%04x.h",offset);
cvt2h(sector,sizeof(sector),name);
sprintf(name,"sect%04x.inc",offset);
cvt2inc(sector,sizeof(sector),name);
for(i=0;i<8;i++) {
printf("%04x: ",offset);
offset += 16;
for(j=0;j<16;j++) {
printf("%02x ",sector[(i*8)+j]);
}
printf(" ");
for(j=0;j<16;j++) {
byte = sector[(i*8)+j];
if(1 == visible[byte]) {
printf("%c",byte);
} else {
printf(".");
}
}
printf("\n");
}
printf("\n");
result = fread(sector,sizeof(sector),1,fd);
}
fclose(fd);
exit(0);
}


File diff suppressed because it is too large Load Diff

View File

@@ -1,108 +0,0 @@
; dumpmac.asm 2/1/2012 dwg - dump macro, declaration and implementation
maclib portab
maclib globals
maclib hardware
maclib z80
maclib cpmbdos
maclib printers
cseg
; e=char on entry
public x$pr$vis
x$pr$vis:
enter
lxi h,x$visibool
mvi d,0
dad d
mov a,m
cpi 0
jz do$dot
mvi c,2
call BDOS
jmp x$pr$fini
do$dot:
conout '.'
x$pr$fini:
leave
ret
public x$dump
x$dump: shld x$dump$tmp
call pr$h$word
conout ':'
conout ' '
mvi b,16
x$d$lp1:
mov a,m
inx h
xchg
mov l,a
call pr$h$byte
conout ' '
xchg
dcr b
jnz x$d$lp1
conout ' '
conout ' '
mvi b,16
lhld x$dump$tmp
x$d$lp2:
mov a,m
inx h
mov e,a
call x$pr$vis
dcr b
jnz x$d$lp2
conout CR
conout LF
lhld x$dump$tmp
ret
; display a number of lines of sixteen bytes in hex with leading address
; and ascii
public x$dump$multi
x$dump$multi:
push h ; save display address in case x$dump changes it
call x$dump ; call actual dump routine for 16 bytes
pop h ; restore display address
lxi d,16 ; get ready to increment it by 16 bytes
dad d ; here we go, HL = new load address
dcr c ; decrement line counter
jnz x$dump$multi ; do more as necessary
ret
dseg
x$dump$tmp ds 2
public x$visibool
x$visibool:
; 0 1 2 3 4 5 6 7 8 9 A B C D E F
; - - - - - - - - - - - - - - - -
vb$00 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$10 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$20 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; "#$%&'()*+,-./
vb$30 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;0123456789:;<=>?
vb$40 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;@ABCDEFGHIJKLMNO
vb$50 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;PQRSTUVWXYZ[\]^_
vb$60 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;`abcdefghijklmno
vb$70 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 ;pqrstuvwxyz{|}~
vb$80 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$90 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$a0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$b0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$c0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$d0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$e0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$f0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
; eof - dumpmac.asm


View File

@@ -1,16 +0,0 @@
dwg-apps.man 7/22/2012 dwg - 2.0 Apps - Command syntax
banker display version and specifics of bnk1, bnk0...
cpmname [-a] display values in syscfg and cnfgdata
setlabel edit drive label of current drive (interactive)
map displays current drives, mapping, and LU labels
map <drive> <lunum> changes LU of specified drive to specified LU #
meta display and/or edit metadata of current drive
rem used in submit file to add remarks
sysgen writes default system onto current drive
sysgen <filespec> writes specified file onto current drive
sysgen <filespec> <drive> write specified file to specified drive
termtype display and or edit terminal type
view display tables of current and next 3 drives
view { A: | B: | C: | D: | E: | F: | G: | H: } dsply specified & nxt 3 drvs


View File

@@ -1,103 +0,0 @@
/* editor.c 11/18/2012 dwg - */
#include "std.h"
#include "applvers.h"
#include "diagnose.h"
#include "cpmbdos.h"
#include "cpmbios.h"
#include "bdoscall.h"
#define VDA_N8 4
#define VDAINI 0x40
#define VDAQRY 0x41
#define VDARES 0x42
#define VDASCS 0x43
int vdaini(devunit,vidmode,bitmapp)
unsigned int devunit;
unsigned int vidmode;
unsigned int bitmapp;
{
hregbc = (VDAINI << 8) | devunit;
hregde = vidmode;
hreghl = bitmapp;
diagnose();
return hrega;
}
bitlook()
{
unsigned char *p;
int ascii,row;
p = 0x8000;
for(ascii=0;ascii<256;ascii++) {
printf("ascii = 0x%02x ",ascii);
for(row=0l;row<8;row++) {
printf("0x%02x ",*p++);
}
printf("\n");
}
}
int vdaqry(devunit,bitmapp)
unsigned int devunit;
unsigned int bitmapp;
{
hregbc = (VDAQRY << 8) | devunit;
hreghl = bitmapp;
diagnose();
return hrega;
}
flip()
{
unsigned char * p;
unsigned char byte;
int offs;
int retcode;
retcode = vdaqry(VDA_N8 << 4,0x8000);
p = 0x8000;
for(offs=0;offs<256*8;offs++) {
byte = *p;
byte = byte ^ 255;
*p = byte;
p++;
}
/* bitlook(); */
vdaini(VDA_N8 << 4, 0, 0x8000);
}
int main(argc,argv)
int argc;
char *argv[];
{
int bRunning;
bRunning = 1;
while(1 == bRunning) {
crtlc (
dregbc = 1;
bdoscall();
switch(drega) {
case 'f': flip(); break;
case 3: bRunning = 0; break;
default: printf("%c",7); break;
}
}
flip();
}


View File

@@ -1,12 +0,0 @@
; ffsetlu.lib 1/24/2012 dwg -
ffgetlu macro
mvi c,RETCURR
call BDOS
mov c,a
call BISELDSK
lxi d,16+2
dad d
mov a,m
endm
; eof - ffsetlu


View File

@@ -1,25 +0,0 @@
; ffhaslu.lib 1/22/2012 dwg - macro to detect drive with logical unit support
ffhaslu macro
local ret$false,fini
mvi c,RETCURR
call BDOS
mov c,a
call BISELDSK
lxi d,16 ; offset to end of DPH
dad d ; calc offset of 1st signature byte
mov a,m ; pick up first sig byte which s/b 'L'
cpi 'L'
jnz ret$false ; if it wasn't, indicate to caller no LU
inx h ; bump ptr to 2nd signature byte
mov a,m ; pick up second sig byte which s/b 'U'
cpi 'U'
jnz ret$false ; if it wasn't, indicate to caller no LU
mvi a,TRUE ; otherwise indicate presence of LU support
jmp fini ; finish up macro
ret$false:
mvi a,FALSE ; prepare negative response for caller
fini:
endm


View File

@@ -1,13 +0,0 @@
; ffnumlu.lib 1/22/2012 dwg - macro to get number of logical units
ffnumlu macro
mvi c,RETCURR
call BDOS
mov c,a
call BISELDSK
lxi d,16+2+2 ; offset to end of DPH
dad d ; calc offset of 1st signature byte
mov a,m
endm
; eof - ffnumlu.lib

View File

@@ -1,22 +0,0 @@
; ffsetlu.lib 2/12/2012 dwg - review for use in superfmt
; ffsetlu.lib 1/24/2012 dwg -
; enter with desired LU in A reg
ffsetlu macro
enter
push psw
mvi c,RETCURR
call BDOS
mov c,a
call BISELDSK ; uses c parameter (drive)
lxi d,16+2
dad d
pop psw
mov m,a ; put slice into CURRENT
mvi c,13
call BDOS
leave
endm
; eof - ffsetlu


File diff suppressed because it is too large Load Diff

View File

@@ -1,98 +0,0 @@
/* flip.c 11/17/2012 dwg - reverse the contrast */
#include "std.h"
#include "applvers.h"
#include "diagnose.h"
#define VDA_N8 4
#define VDAINI 0x40
#define VDAQRY 0x41
#define VDARES 0x42
#define VDASCS 0x43
int vdaini(devunit,vidmode,bitmapp)
unsigned int devunit;
unsigned int vidmode;
unsigned int bitmapp;
{
hregbc = (VDAINI << 8) | devunit;
printf("hregbc = 0x%04x\n",hregbc);
hregde = vidmode;
printf("hregde = 0x%04x\n",hregde);
hreghl = bitmapp;
printf("hreghl = 0x%04x\n",hreghl);
diagnose();
printf("VDAINI called, return code was 0x%02x\n",hrega);
return hrega;
}
bitlook()
{
unsigned char *p;
int ascii,row;
p = 0x8000;
for(ascii=0;ascii<256;ascii++) {
printf("ascii = 0x%02x ",ascii);
for(row=0l;row<8;row++) {
printf("0x%02x ",*p++);
}
printf("\n");
}
}
int vdaqry(devunit,bitmapp)
unsigned int devunit;
unsigned int bitmapp;
{
hregbc = (VDAQRY << 8) | devunit;
printf("hregbc = 0x%04x\n",hregbc);
hreghl = bitmapp;
if(hreghl != 0x8000) printf("vdaqry says hl != 0x8000\n");
diagnose();
printf("VDAQRY called, status was 0x%02x\n",hrega);
printf(" video mode was 0x%02x\n",hregbc & 255);
printf(" row count was 0x%02x(%d)\n",
(hregde >> 8),(hregde >> 8) );
printf(" column count was 0x%02x(%d)\n",
hregde & 255, hregde & 255);
/* if(0 != bitmapp) {
printf("vdaqry called with bitmap pointer\n");
bitlook();
}
*/
return hrega;
}
int main(argc,argv)
int argc;
char *argv[];
{
unsigned char * p;
unsigned char byte;
int offs;
int retcode;
printf("flip.com(c) 11/15/2012 dwg - \n\n");
retcode = vdaqry(VDA_N8 << 4,0x8000);
p = 0x8000;
for(offs=0;offs<256*8;offs++) {
byte = *p;
byte = byte ^ 255;
*p = byte;
p++;
}
/* bitlook(); */
vdaini(VDA_N8 << 4, 0, 0x8000);
}


View File

@@ -1,107 +0,0 @@
/* form.c 8/21/2012 dwg - */
#define MAXDRIVE 8
#include "cpm80.h"
#include "cpmbdos.h"
#include "bdoscall.h"
#include "cpmappl.h"
#include "applvers.h"
#include "cnfgdata.h"
#include "syscfg.h"
#define BDOS 5 /* memory address of BDOS invocation */
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
struct SYSCFG * pSYSCFG = HIGHSEG;
#define FRMFLDS 2
#define FRSTLIN 6
#define VISCOL 3
#define VISSIZ 6
#define VALCOL (VISCOL+VISSIZ+4)
#define VALSIZ 32
struct FORM {
int visline;
int viscol;
int vissize;
char visible[VISSIZ+1];
int valline;
int valcol;
char value[VALSIZ+1];
} form[FRMFLDS] = {
{ FRSTLIN, VISCOL, VISSIZ, "field1", FRSTLIN, VALCOL, "default1" },
{ FRSTLIN+1, VISCOL, VISSIZ, "field2", FRSTLIN+1, VALCOL, "default2" }
};
int main(argc,argv)
int argc;
char *argv[];
{
int i,j;
char buffer[VALSIZ+2];
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
crtlc(0,0);
banner("FORM");
for(i=0;i<FRMFLDS;i++) {
crtlc(form[i].visline,form[i].viscol);
printf("%s",form[i].visible);
crtlc(form[i].valline,form[i].valcol);
for(j=0;j<strlen(form[i].value);j++) {
printf("_");
}
crtlc(form[i].valline,form[i].valcol);
printf("%s",form[i].value);
}
for(i=0;i<FRMFLDS;i++) {
crtlc(form[i].valline,form[i].valcol);
memset(buffer,0,sizeof(buffer));
dregbc = 10; /* READ CONSOLE BUFFER */
dregde = &buffer;
buffer[0] = VALSIZ-1;
buffer[1] = 0;
bdoscall();
if(0 < buffer[1]) {
memset(form[i].value,0,VALSIZ);
strcpy(form[i].value,buffer[2]);
}
}
for(i=0;i<FRMFLDS;i++) {
crtlc(form[i].visline,form[i].viscol);
printf("%s",form[i].visible);
crtlc(form[i].valline,form[i].valcol);
for(j=0;j<strlen(form[i].value);j++) {
printf(" ");
}
crtlc(form[i].valline,form[i].valcol);
printf("%s",form[i].value);
}
}
/**************************************************************************/


View File

@@ -1,8 +0,0 @@
#include <stdio.h>
#include "ascii.h"
main()
{
printf("%c",ASCII_FF);
}


View File

@@ -1,333 +0,0 @@
/* test.c 7/23/2012 dwg - */
#include "stdio.h"
#include "applvers.h"
#include "ctermcap.h"
/* declarations for HBIOS access */
extern char hrega;
extern unsigned int hregbc;
extern unsigned int hregde;
extern unsigned int hreghl;
extern diagnose();
/* declaration dir BIOS and BDOS and low level calls */
extern char xrega;
extern unsigned int xregbc;
extern unsigned int xregde;
extern unsigned int xreghl;
extern asmif(); /* asmif(0x0E6**,bc,de,hl); */
#define BDOS 5 /* memory address of BDOS invocation */
#define PRIFCB 0x5C /* memory address of primary FCB */
#define SECFCB 0x6C /* memory address of secondary FCB */
#define DEFBUF 0x80 /* memory address of default buffer */
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
#define TERMCPM 0 /* BDOS function for System Reset */
#define CONIN 1 /* BDOS function for Console Input */
#define CWRITE 2 /* BDOS function for Console Output */
#define DIRCONIO 6 /* BDOS function for Direct Console I/O */
#define PRINTSTR 9 /* BDOS function for Print String */
#define RDCONBUF 10 /* BDOS function for Buffered Console Read */
#define GETCONST 11 /* BDOS function for Get Console Status */
#define RETVERNUM 12 /* BDOS function for Return Version Number */
#define RESDISKSYS 13 /* BDOS function for Reset Disk System */
#define SELECTDISK 14 /* BDOS function for Select Disk */
#define FOPEN 15 /* BDOS function for File Open */
#define FCLOSE 16 /* BDOS function for File Close */
#define SEARCHFIRST 17 /* BDOS function for Search First */
#define SEARCHNEXT 18 /* BDOS function for Search Next */
#define FDELETE 19 /* BDOS function for File Delete */
#define FREADSEQ 20 /* BDOS function for File Read Sequential */
#define FWRITESEQ 21 /* BDOS function for File Write Sequential */
#define FMAKEFILE 22 /* BDOS function for File Make */
#define FRENAME 23 /* BDOS function for File Rename */
#define RETLOGINVEC 24 /* BDOS function for Return Login Vector */
#define RETCURRDISK 25 /* BDOS function for Return Current Disk */
#define SETDMAADDR 26 /* BDOS function for Set DMA Address */
#define GETALLOCVEC 27 /* BDOS function for Get Allocation Vector */
#define WRPROTDISK 28 /* BDOS function for Write Protect Disk */
#define GETROVECTOR 29 /* BDOS function for Get Read Only Vector */
#define FSETATTRIB 30 /* BDOS function for File Set Attribute */
#define GETDPBADDR 31 /* BDOS function for Get DPB Address */
#define SETGETUSER 32 /* BDOS function for Set & Get User Number */
#define FREADRANDOM 33 /* BDOS function for File Read Random */
#define FWRITERAND 34 /* BDOS function for File Write Random */
#define FCOMPSIZE 35 /* BDOS function for File Compare Size */
#define SETRANDREC 36 /* BDOS function for Set Random Record # */
#define RESETDRIVE 37 /* BDOS function for Reset Drive */
#define WRRANDFILL 38 /* BDOS function for Write Random w/ Fill */
#define BDOSDEFDR 0 /* BDOS Default (current) Drive Number */
#define BDOSDRA 1 /* BDOS Drive A: number */
#define BDOSDRB 2 /* BDOS Drive B: number */
#define BDOSDRC 3 /* BDOS Drive C: number */
#define BDOSDRD 4 /* BDOS Drive D: number */
#define BDOSDRE 5 /* BDOS Drive E: number */
#define BDOSDRF 6 /* BDOS Drive F: number */
#define BDOSDRG 7 /* BDOS Drive G: number */
#define BDOSDRH 8 /* BDOS Drive H: number */
#define BIOSDRA 0 /* BIOS Drive A: number */
#define BIOSDRB 1 /* BIOS Drive B: number */
#define BIOSDRC 2 /* BIOS Drive C: number */
#define BIOSDRD 3 /* BIOS Drive D: number */
#define BIOSDRE 4 /* BIOS Drive E: number */
#define BIOSDRF 5 /* BIOS Drive F: number */
#define BIOSDRG 6 /* BIOS Drive G: number */
#define BIOSDRH 7 /* BIOS Drive H: number */
struct FCB {
char drive; /* BDOS Drive Code */
char filename[8]; /* space padded file name */
char filetype[3]; /* space padded file extension */
char filler[24]; /* remainder of FCB */
};
struct FCB * pPriFcb = PRIFCB; /* pointer to Primary FCB structure */
struct FCB * pSecFcb = SECFCB; /* pointer to secondary FCB structure */
struct {
char length; /* length of commad tail */
char tail[127]; /* command tail */
} * pDefBuf = DEFBUF;
#define CURDRV 0x00004
#define BIOSAD 0x0e600 /* base address of BIOS jumps */
/* addresses of BIOS jumps */
#define pBOOT 0x0E600
#define pWBOOT 0x0E603
#define pCONST 0x0E606
#define pCONIN 0x0E609
#define pCONOUT 0x0E60C
#define pLIST 0x0E60F
#define pPUNCH 0x0E612
#define pREADER 0x0E615
#define pHOME 0x0E618
#define pSELDSK 0x0E61B
#define pSETTRK 0x0E61E
#define pSETSEC 0x0E621
#define pSETDMA 0x0E624
#define pREAD 0x0E627
#define pWRITE 0x0E62A
#define pLISTST 0x0E62D
#define pSECTRN 0x0E630
#define pBNKSEL 0x0E633
#define pGETLU 0x0E636
#define pSETLU 0x0E639
#define pGETINFO 0x0E63C
struct JMP {
unsigned char opcode; /* JMP opcode */
unsigned int address; /* JMP address */
};
struct BIOS {
struct JMP boot;
struct JMP wboot;
struct JMP const;
struct JMP conin;
struct JMP conout;
struct JMP list;
struct JMP punch;
struct JMP reader;
struct JMP home;
struct JMP seldsk;
struct JMP settrk;
struct JMP setsec;
struct JMP setdma;
struct JMP read;
struct JMP write;
struct JMP listst;
struct JMP sectrn;
struct JMP bnksel;
struct JMP getlu;
struct JMP setlu;
struct JMP getinfo;
struct JMP rsvd1;
struct JMP rsvd2;
struct JMP rsvd3;
struct JMP rsvd4;
char rmj;
char rmn;
char rup;
char rtp;
} * pBIOS = 0xe600;
/* pointer based Disk Parameter Block structure */
struct DPB {
unsigned int spt;
unsigned char bsh;
unsigned char blm;
unsigned char exm;
unsigned int dsm;
unsigned int drm;
unsigned char al0;
unsigned int cks;
unsigned int off;
} * pDPB;
/* pointer based Disk Parameter Header structure */
struct DPH {
unsigned int xlt;
unsigned int rv1;
unsigned int rv2;
unsigned int rv3;
unsigned int dbf;
struct DPB * pDpb;
unsigned int csv;
unsigned int alv;
unsigned char sigl;
unsigned char sigu;
unsigned int current;
unsigned int number;
} * pDPH;
/* pointer based Information List structure */
struct INFOLIST {
int version;
void * banptr;
void * varloc;
void * tstloc;
void * dpbmap;
void * dphmap;
void * ciomap;
} * pINFOLIST;
/* pointer based Configuration Data structure */
struct CNFGDATA {
unsigned char rmj;
unsigned char rmn;
unsigned char rup;
unsigned char rtp;
unsigned char diskboot;
unsigned char devunit;
unsigned int bootlu;
unsigned char hour;
unsigned char minute;
unsigned char second;
unsigned char month;
unsigned char day;
unsigned char year;
unsigned char freq;
unsigned char platform;
unsigned char dioplat;
unsigned char vdumode;
unsigned int romsize;
unsigned int ramsize;
unsigned char clrramdk;
unsigned char dskyenable;
unsigned char uartenable;
unsigned char vduenable;
unsigned char fdenable;
unsigned char fdtrace;
unsigned char fdmedia;
unsigned char fdmediaalt;
unsigned char fdmauto;
unsigned char ideenable;
unsigned char idetrace;
unsigned char ide8bit;
unsigned int idecapacity;
unsigned char ppideenable;
unsigned char ppidetrace;
unsigned char ppide8bit;
unsigned int ppidecapacity;
unsigned char ppideslow;
unsigned char boottype;
unsigned char boottimeout;
unsigned char bootdefault;
unsigned int baudrate;
unsigned char ckdiv;
unsigned char memwait;
unsigned char iowait;
unsigned char cntlb0;
unsigned char cntlb1;
unsigned char sdenable;
unsigned char sdtrace;
unsigned int sdcapacity;
unsigned char sdcsio;
unsigned char sdcsiofast;
unsigned char defiobyte;
unsigned char termtype;
unsigned int revision;
unsigned char prpsdenable;
unsigned char prpsdtrace;
unsigned int prpsdcapacity;
unsigned char prpconenable;
unsigned int biossize;
unsigned char pppenable;
unsigned char pppsdenable;
unsigned char pppsdtrace;
unsigned int pppsdcapacity;
unsigned char pppconenable;
unsigned char prpenable;
} * pCNFGDATA;
struct JMP_TAG {
unsigned char opcode;
unsigned int address;
};
/* pointer based System Configuration structure */
struct SYSCFG {
struct JMP_TAG jmp;
void * cnfloc;
void * tstloc;
void * varloc;
struct CNFGDATA cnfgdata;
char filler[256-3-2-2-2-sizeof(struct CNFGDATA)];
} * pSYSCFG = HIGHSEG;
main(argc,argv)
int argc;
char *argv[];
{
FILE * fd;
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
printf("TT is %d\n",pSYSCFG->cnfgdata.termtype);
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
crtlc(0,0);
printf(
"GETCFG.COM %d/%d/%d %d.%d.%d.%d dwg - Elegantly Expressed CP/M Program\n",
A_MONTH,A_DAY,A_YEAR,
pBIOS->rmj,pBIOS->rmn,pBIOS->rup,pBIOS->rtp);
fd = fopen("syscfg.bin","w");
fwrite(HIGHSEG,1,256,fd);
fclose(fd);
asmif(pGETINFO,0,0,0); /* get addr of the information list */
pINFOLIST = xreghl; /* set base pointer of the structure */
asmif(BDOS,RETCURRDISK,0,0); /* get current drive into xrega */
asmif(pSELDSK,xrega,0,0); /* get DPH of current drive */
pDPH = xreghl; /* establish addressability to DPH */
pDPB = pDPH->pDpb; /* establish addressability to DPB */
/* printf("spt is %d\n",pDPB->spt); */ /* demonstrate DPB access */
}


View File

@@ -1,18 +0,0 @@
/****************************************************************/
/* globals.h 9/4/2012 dwg - increase MAXDRIVE to 12 */
/* globals.h 3/11/2012 dwg - add BIOS_ADDR */
/* globals.h 3/11/2012 dwg - declarations common to all modules */
/****************************************************************/
#define CR 0x0d
#define LF 0x0a
#define ESC 27
#define BIOSAD 0x0e600
#define INFLSTV 1
#define MAXDRIVE 12
/*******************/
/* eof - globals.h */
/*******************/

View File

@@ -1,18 +0,0 @@
; globals.lib 7/19/2012 dwg - update for 2.0.0.0 B22
; globals.lib 1/18/2012 dwg - program globals
ENGLISH equ TRUE
SPANISH equ FALSE
MAX$LABEL equ 16
STACK$SIZE equ 512
COLON equ ':'
stack macro
ds STACK$SIZE
stack$top:
endm
; eof - globals.lib


View File

@@ -1,16 +0,0 @@
; hardware.lib 1/18/2012 dwg - hardware declarations
HASZ80 equ TRUE
; I/O address of Zeta RTC
zeta$rtc equ 70h
; write bit definitions
z$rtc$ce equ 10h
z$rtc$we equ 20h
z$rtc$clk equ 40h
z$rtc$inp equ 80h
; read bit definitions
z$rtc$out equ 01h
z$rtc$cfg equ 40h
; eof - hardware.lib


View File

@@ -1,18 +0,0 @@
; hbios.asm 7/19/2012 dwg -
CFGVERS equ 0
public xgetsc
xgetsc:
enter
mvi b,0F0h
mvi c,CFGVERS
lxi d,8000h
db 0cfh ; rst 8
lxi h,8000h
leave
ret
END


View File

@@ -1,48 +0,0 @@
/* hbios.h 7/4/2012 dgw - */
/* CIO */
/* Character Input (CIOIN) */
/* Character Output (CIOOUT) */
/* Character Input Status (CIOIST) */
/* Character Output Status (CIOOST) */
/* DIO */
/* Disk Read (DIORD) */
/* Disk Write (DIOWR) */
/* Disk Status (DIOST) */
/* Disk Media (DIOMED) */
/* Disk Idetify (DIOID) */
/* Disk Get Buffer Address (DIOGBA) */
/*
extern char hrega;
extern unsigned int hregbc;
extern unsigned int hregde;
extern unsigned int hreghl;
extern diagnose();
*/
/*****************/
/* eof - hbios.h */
/*****************/


View File

@@ -1,333 +0,0 @@
/* test.c 7/21/2012 dwg - */
#include "stdio.h"
#include "applvers.h"
/* declarations for HBIOS access */
extern char hrega;
extern unsigned int hregbc;
extern unsigned int hregde;
extern unsigned int hreghl;
extern diagnose();
/* declaration dir BIOS and BDOS and low level calls */
extern char xrega;
extern unsigned int xregbc;
extern unsigned int xregde;
extern unsigned int xreghl;
extern asmif(); /* asmif(0x0E6**,bc,de,hl); */
#define BDOS 5 /* memory address of BDOS invocation */
#define PRIFCB 0x5C /* memory address of primary FCB */
#define SECFCB 0x6C /* memory address of secondary FCB */
#define DEFBUF 0x80 /* memory address of default buffer */
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
#define TERMCPM 0 /* BDOS function for System Reset */
#define CONIN 1 /* BDOS function for Console Input */
#define CWRITE 2 /* BDOS function for Console Output */
#define DIRCONIO 6 /* BDOS function for Direct Console I/O */
#define PRINTSTR 9 /* BDOS function for Print String */
#define RDCONBUF 10 /* BDOS function for Buffered Console Read */
#define GETCONST 11 /* BDOS function for Get Console Status */
#define RETVERNUM 12 /* BDOS function for Return Version Number */
#define RESDISKSYS 13 /* BDOS function for Reset Disk System */
#define SELECTDISK 14 /* BDOS function for Select Disk */
#define FOPEN 15 /* BDOS function for File Open */
#define FCLOSE 16 /* BDOS function for File Close */
#define SEARCHFIRST 17 /* BDOS function for Search First */
#define SEARCHNEXT 18 /* BDOS function for Search Next */
#define FDELETE 19 /* BDOS function for File Delete */
#define FREADSEQ 20 /* BDOS function for File Read Sequential */
#define FWRITESEQ 21 /* BDOS function for File Write Sequential */
#define FMAKEFILE 22 /* BDOS function for File Make */
#define FRENAME 23 /* BDOS function for File Rename */
#define RETLOGINVEC 24 /* BDOS function for Return Login Vector */
#define RETCURRDISK 25 /* BDOS function for Return Current Disk */
#define SETDMAADDR 26 /* BDOS function for Set DMA Address */
#define GETALLOCVEC 27 /* BDOS function for Get Allocation Vector */
#define WRPROTDISK 28 /* BDOS function for Write Protect Disk */
#define GETROVECTOR 29 /* BDOS function for Get Read Only Vector */
#define FSETATTRIB 30 /* BDOS function for File Set Attribute */
#define GETDPBADDR 31 /* BDOS function for Get DPB Address */
#define SETGETUSER 32 /* BDOS function for Set & Get User Number */
#define FREADRANDOM 33 /* BDOS function for File Read Random */
#define FWRITERAND 34 /* BDOS function for File Write Random */
#define FCOMPSIZE 35 /* BDOS function for File Compare Size */
#define SETRANDREC 36 /* BDOS function for Set Random Record # */
#define RESETDRIVE 37 /* BDOS function for Reset Drive */
#define WRRANDFILL 38 /* BDOS function for Write Random w/ Fill */
#define BDOSDEFDR 0 /* BDOS Default (current) Drive Number */
#define BDOSDRA 1 /* BDOS Drive A: number */
#define BDOSDRB 2 /* BDOS Drive B: number */
#define BDOSDRC 3 /* BDOS Drive C: number */
#define BDOSDRD 4 /* BDOS Drive D: number */
#define BDOSDRE 5 /* BDOS Drive E: number */
#define BDOSDRF 6 /* BDOS Drive F: number */
#define BDOSDRG 7 /* BDOS Drive G: number */
#define BDOSDRH 8 /* BDOS Drive H: number */
#define BIOSDRA 0 /* BIOS Drive A: number */
#define BIOSDRB 1 /* BIOS Drive B: number */
#define BIOSDRC 2 /* BIOS Drive C: number */
#define BIOSDRD 3 /* BIOS Drive D: number */
#define BIOSDRE 4 /* BIOS Drive E: number */
#define BIOSDRF 5 /* BIOS Drive F: number */
#define BIOSDRG 6 /* BIOS Drive G: number */
#define BIOSDRH 7 /* BIOS Drive H: number */
struct FCB {
char drive; /* BDOS Drive Code */
char filename[8]; /* space padded file name */
char filetype[3]; /* space padded file extension */
char filler[24]; /* remainder of FCB */
};
struct FCB * pPriFcb = PRIFCB; /* pointer to Primary FCB structure */
struct FCB * pSecFcb = SECFCB; /* pointer to secondary FCB structure */
struct {
char length; /* length of commad tail */
char tail[127]; /* command tail */
} * pDefBuf = DEFBUF;
#define CURDRV 0x00004
#define BIOSAD 0x0e600 /* base address of BIOS jumps */
/* addresses of BIOS jumps */
#define pBOOT 0x0E600
#define pWBOOT 0x0E603
#define pCONST 0x0E606
#define pCONIN 0x0E609
#define pCONOUT 0x0E60C
#define pLIST 0x0E60F
#define pPUNCH 0x0E612
#define pREADER 0x0E615
#define pHOME 0x0E618
#define pSELDSK 0x0E61B
#define pSETTRK 0x0E61E
#define pSETSEC 0x0E621
#define pSETDMA 0x0E624
#define pREAD 0x0E627
#define pWRITE 0x0E62A
#define pLISTST 0x0E62D
#define pSECTRN 0x0E630
#define pBNKSEL 0x0E633
#define pGETLU 0x0E636
#define pSETLU 0x0E639
#define pGETINFO 0x0E63C
struct JMP {
unsigned char opcode; /* JMP opcode */
unsigned int address; /* JMP address */
};
struct BIOS {
struct JMP boot;
struct JMP wboot;
struct JMP const;
struct JMP conin;
struct JMP conout;
struct JMP list;
struct JMP punch;
struct JMP reader;
struct JMP home;
struct JMP seldsk;
struct JMP settrk;
struct JMP setsec;
struct JMP setdma;
struct JMP read;
struct JMP write;
struct JMP listst;
struct JMP sectrn;
struct JMP bnksel;
struct JMP getlu;
struct JMP setlu;
struct JMP getinfo;
struct JMP rsvd1;
struct JMP rsvd2;
struct JMP rsvd3;
struct JMP rsvd4;
char rmj;
char rmn;
char rup;
char rtp;
} * pBIOS = 0xe600;
/* pointer based Disk Parameter Block structure */
struct DPB {
unsigned int spt;
unsigned char bsh;
unsigned char blm;
unsigned char exm;
unsigned int dsm;
unsigned int drm;
unsigned char al0;
unsigned int cks;
unsigned int off;
} * pDPB;
/* pointer based Disk Parameter Header structure */
struct DPH {
unsigned int xlt;
unsigned int rv1;
unsigned int rv2;
unsigned int rv3;
unsigned int dbf;
struct DPB * pDpb;
unsigned int csv;
unsigned int alv;
unsigned char sigl;
unsigned char sigu;
unsigned int current;
unsigned int number;
} * pDPH;
/* pointer based Information List structure */
struct INFOLIST {
int version;
void * banptr;
void * varloc;
void * tstloc;
void * dpbmap;
void * dphmap;
void * ciomap;
} * pINFOLIST;
/* pointer based Configuration Data structure */
struct CNFGDATA {
unsigned char rmj;
unsigned char rmn;
unsigned char rup;
unsigned char rtp;
unsigned char diskboot;
unsigned char devunit;
unsigned int bootlu;
unsigned char hour;
unsigned char minute;
unsigned char second;
unsigned char month;
unsigned char day;
unsigned char year;
unsigned char freq;
unsigned char platform;
unsigned char dioplat;
unsigned char vdumode;
unsigned int romsize;
unsigned int ramsize;
unsigned char clrramdk;
unsigned char dskyenable;
unsigned char uartenable;
unsigned char vduenable;
unsigned char fdenable;
unsigned char fdtrace;
unsigned char fdmedia;
unsigned char fdmediaalt;
unsigned char fdmauto;
unsigned char ideenable;
unsigned char idetrace;
unsigned char ide8bit;
unsigned int idecapacity;
unsigned char ppideenable;
unsigned char ppidetrace;
unsigned char ppide8bit;
unsigned int ppidecapacity;
unsigned char ppideslow;
unsigned char boottype;
unsigned char boottimeout;
unsigned char bootdefault;
unsigned int baudrate;
unsigned char ckdiv;
unsigned char memwait;
unsigned char iowait;
unsigned char cntlb0;
unsigned char cntlb1;
unsigned char sdenable;
unsigned char sdtrace;
unsigned int sdcapacity;
unsigned char sdcsio;
unsigned char sdcsiofast;
unsigned char defiobyte;
unsigned char termtype;
unsigned int revision;
unsigned char prpsdenable;
unsigned char prpsdtrace;
unsigned int prpsdcapacity;
unsigned char prpconenable;
unsigned int biossize;
unsigned char pppenable;
unsigned char pppsdenable;
unsigned char pppsdtrace;
unsigned int pppsdcapacity;
unsigned char pppconenable;
unsigned char prpenable;
} * pCNFGDATA;
struct JMP_TAG {
unsigned char opcode;
unsigned int address;
};
/* pointer based System Configuration structure */
struct SYSCFG {
struct JMP_TAG jmp;
void * cnfloc;
void * tstloc;
void * varloc;
struct CNFGDATA cnfgdata;
char filler[256-3-2-2-2-sizeof(struct CNFGDATA)];
} * pSYSCFG = HIGHSEG;
main(argc,argv)
int argc;
char *argv[];
{
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
crtlc(0,0);
/* printf("TT is %d\n",pSYSCFG->cnfgdata.termtype); */
printf(
"TEST.COM %d/%d/%d %d.%d.%d.%d dwg - Elegantly Expressed CP/M Program\n",
A_MONTH,A_DAY,A_YEAR,
pBIOS->rmj,pBIOS->rmn,pBIOS->rup,pBIOS->rtp);
asmif(pGETINFO,0,0,0); /* get addr of the information list */
pINFOLIST = xreghl; /* set base pointer of the structure */
asmif(BDOS,RETCURRDISK,0,0); /* get current drive into xrega */
asmif(pSELDSK,xrega,0,0); /* get DPH of current drive */
pDPH = xreghl; /* establish addressability to DPH */
pDPB = pDPH->pDpb; /* establish addressability to DPB */
/* printf("spt is %d\n",pDPB->spt); */ /* demonstrate DPB access */
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
/* printf("TT is %d\n",pSYSCFG->cnfgdata.termtype); */
}


View File

@@ -1,11 +0,0 @@
#include <stdio.h>
#include <stdlib.h>
int main(argc,argv)
int argc;
char * argv[];
{
printf("Help World!!\n");
return 0;
}


View File

@@ -1,64 +0,0 @@
title 'Ident - Display Program Identification'
; ident.asm 2/21/2012 dwg - review for release 2.0.0.0
; ident.asm 2/19.2012 dwg - review for release 1.5.1.0
; ident.asm 2/19/2012 dwg - remove test* & analyse & ws-shim
; ident.asm 2/18/2012 dwg - drives,map and slice become map
; ident.asm 2/14/2012 dwg - superfmt becomes multifmt
; ident.asm 2/13/2012 dwg - add disk
; ident.asm 2/12/2012 dwg - add cleardir and superfmt
; ident.asm 2/11/2012 dwg - Display the Ident of a program file
; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
;
; This file is part of NuBiosDWG and is free software: you can
; redistribute it and/or modify it under the terms of the GNU
; General Public License as published by the Free Software Foundation,
; either version 3 of the License, or (at your option) any later version.
; This file is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
; You should have received a copy of the GNU General Public License
; along with it. If not, see <http://www.gnu.org/licenses/>.
maclib portab
maclib globals
maclib cpmbdos
maclib cpmappl
maclib applvers
maclib banner
maclib printers
maclib dumpmac
maclib memory
maclib identity
do$start
idata
sbanner argv
ify 'ACCESS COM',TRUE
; ify 'ASSIGN COM',TRUE
; ify 'CPMNAME COM',TRUE
; ify 'ERASE COM',TRUE
ify 'FINDFILECOM',TRUE
; ify 'HEADER COM',TRUE
ify 'IDENT COM',TRUE
ify 'SETLABELCOM',TRUE
; ify 'MAP COM',TRUE
; ify 'METAVIEWCOM',TRUE
; ify 'MULTIFMTCOM',TRUE
ify 'NOACCESSCOM',TRUE
; ify 'PAUSE COM',TRUE
; ify 'REM COM',TRUE
; ify 'REQ1PARMCOM',TRUE
; ify 'STOP COM',TRUE
; ify 'TERMTYPECOM',TRUE
; ify 'WRITESYSCOM',FALSE
do$end
end


View File

@@ -1,196 +0,0 @@
; identity.asm 2/17/2012 dwg - Program Identity Declarations
maclib portab
maclib globals
maclib stdlib
maclib cpmbios
maclib cpmbdos
maclib memory
maclib printers
public x$ident
x$ident:
shld lfcbptr ; save pointer to fcb
mvi c,FOPEN
lhld lfcbptr
xchg
call BDOS
cpi 255
jnz openok
;;; memcpy lname,file1fcb+1,8
mvi c,8
lxi d,lname
lhld lfcbptr
inx h
call x$memcpy
mvi a,','
sta ldot
;;; memcpy lext,file1fcb+9,3
mvi c,3
lhld lfcbptr
lxi d,9
dad d
lxi d,lext
call x$memcpy
mvi a,'$'
sta lterm
print lname
printf ' -- File Not Found'
mvi a,FAILURE
jmp fini
openok:
mvi c,SETDMA
lxi d,buffer
call BDOS
mvi c,READSEQ
lhld lfcbptr
xchg
call BDOS
mvi c,SETDMA
lxi d,buffer+128
call BDOS
mvi c,READSEQ
lhld lfcbptr
xchg
call BDOS
mvi c,FCLOSE
lhld lfcbptr
xchg
call BDOS
lxi d,d$prog
mvi c,9
call BDOS
conout ','
conout ' '
lda p$rmj
mov l,a
mvi h,0
call pr$d$word
conout '.'
lda p$rmn
mov l,a
call pr$d$word
conout '.'
lda p$rup
mov l,a
call pr$d$word
conout '.'
lda p$rtp
mov l,a
call pr$d$word
conout ','
conout ' '
lda p$mon
mov l,a
call pr$d$word
conout '/'
lda p$day
mov l,a
call pr$d$word
conout '/'
lhld p$year
call pr$d$word
conout ','
conout ' '
lxi d,d$prod
mvi c,9
call BDOS
conout ','
conout ' '
lxi d,d$orig
mvi c,9
call BDOS
conout ','
conout ' '
lxi d,d$ser
mvi c,9
call BDOS
conout ','
conout ' '
lda d$term2
cpi '$'
jnz do$name
conout ' '
lxi d,d$uuid+19
jmp do$any
do$name:
lxi d,d$name
do$any:
mvi c,9
call BDOS
mvi a,SUCCESS ; set return code
fini:
ret
lfcbptr ds 2
ldrive ds 1
lcolon ds 1
lname ds 8
ldot ds 1
lext ds 3
lterm ds 1
db 'buffer-->'
buffer ds 1
p$start ds 2
p$hexrf ds 16
p$sig ds 2
p$rmj ds 1
p$rmn ds 1
p$rup ds 1
p$rtp ds 1
p$mon ds 1
p$day ds 1
p$year ds 2
p$argv ds 2
p$e5 ds 1
p$pr$st ds 2
p$code1 ds 3 ; begin: lxi h,0
p$code2 ds 1 ; dad sp
p$code3 ds 3 ; shld pre$stk
p$code4 ds 3 ; lxi sp,stack$top
p$code5 ds 1 ; nop
p$code6 ds 3 ; jmp around$bandata
p$prog ds 2 ; dw prog
p$dat ds 2 ; dw dat
p$prod ds 2 ; dw prod
p$orig ds 2 ; dw orig
p$ser ds 2 ; dw ser
p$nam ds 2 ; dw nam
p$term ds 2 ; dw 0
d$prog ds 8+1+3+1 ; db '12345678.123$'
d$date ds 2+1+2+1+4+1 ; db ' 2/11/2012$'
d$ser ds 6+1 ; db '654321$'
d$prod ds 5+1 ; db 'CPM80$'
d$orig ds 3+1 ; db 'DWG$'
d$name ds 1+7+1+1+1+1+7+1 ; db ' Douglas W. Goodall$'
d$uuid ds 36 ; unique user identification
d$term2 ds 1 ; can be set to zero or dollar sign
p$len equ $-buffer
p$rsvd ds 256-p$len
db '<--buffer'
dw p$len
crlf db CR,LF,'$'
; eof - identity.asm


View File

@@ -1,191 +0,0 @@
; identity.lib 2/19/2012 dwg - add ify macro
; identity.lib 2/17/2012 dwg - Program Identity Declarations
extrn x$ident
ident macro file1fcb
lxi h,file1fcb
call x$ident
endm
ify macro progname,bool
local done
local file
local fini
ident file
jmp fini
newfcb file,0,progname
fini: mvi a,bool
cpi TRUE
jnz done
conout CR
conout LF
done:
endm
identx macro file1fcb
local openok
local identend
local ldrive,lcolon,lname,ldot,lext,lterm
mvi c,FOPEN
lxi d,file1fcb
call BDOS
cpi 255
jnz openok
memcpy lname,file1fcb+1,8
mvi a,','
sta ldot
memcpy lext,file1fcb+9,3
mvi a,'$'
sta lterm
print lname
printf ' -- File Not Found'
jmp identend
openok:
mvi c,SETDMA
lxi d,buffer
call BDOS
mvi c,READSEQ
lxi d,file1fcb
call BDOS
mvi c,FCLOSE
lxi d,file1fcb
call BDOS
lxi d,d$prog
mvi c,9
call BDOS
conout ','
conout ' '
lda p$rmj
mov l,a
mvi h,0
call pr$d$word
conout '.'
lda p$rmn
mov l,a
call pr$d$word
conout '.'
lda p$rup
mov l,a
call pr$d$word
conout '.'
lda p$rtp
mov l,a
call pr$d$word
conout ','
conout ' '
lda p$mon
mov l,a
call pr$d$word
conout '/'
lda p$day
mov l,a
call pr$d$word
conout '/'
lhld p$year
call pr$d$word
conout ','
conout ' '
lxi d,d$prod
mvi c,9
call BDOS
conout ','
conout ' '
lxi d,d$orig
mvi c,9
call BDOS
conout ','
conout ' '
lxi d,d$ser
mvi c,9
call BDOS
conout ','
conout ' '
lxi d,d$name
mvi c,9
call BDOS
jmp identend
ldrive ds 1
lcolon ds 1
lname ds 8
ldot ds 1
lext ds 3
lterm ds 1
identend:
endm
idata macro
jmp around$bandata
argv dw prog,dat,prod,orig,ser,myname,0
prog db 'IDENT.COM $'
date
serial
product
originator
oriname
uuid db '777A67C2-4A92-42D4-80FE-C96FD6483BD2$'
db 'buffer-->'
public buffer,p$start,p$hexrf,p$sig
public p$rmj,p$rmn,p$rup,p$rtp
public p$mon,p$day,p$year
buffer ds 1
p$start ds 2
p$hexrf ds 16
p$sig ds 2
p$rmj ds 1
p$rmn ds 1
p$rup ds 1
p$rtp ds 1
p$mon ds 1
p$day ds 1
p$year ds 2
p$argv ds 2
p$e5 ds 1
p$pr$st ds 2
p$code1 ds 3 ; begin: lxi h,0
p$code2 ds 1 ; dad sp
p$code3 ds 3 ; shld pre$stk
p$code4 ds 3 ; lxi sp,stack$top
p$code5 ds 1 ; nop
p$code6 ds 3 ; jmp around$bandata
p$prog ds 2 ; dw prog
p$dat ds 2 ; dw dat
p$prod ds 2 ; dw prod
p$orig ds 2 ; dw orig
p$ser ds 2 ; dw ser
p$nam ds 2 ; dw nam
p$term ds 2 ; dw 0
d$prog ds 8+1+3+1 ; db '12345678.123$'
d$date ds 2+1+2+1+4+1 ; db ' 2/11/2012$'
d$ser ds 6+1 ; db '654321$'
d$prod ds 5+1 ; db 'CPM80$'
d$orig ds 3+1 ; db 'DWG$'
d$name ds 1+7+1+1+1+1+7+1 ; db ' Douglas W. Goodall$'
d$uuid ds 37 ; unique user identification
d$term2 ds 1 ; can be set to zero or dollar sign
p$len equ $-buffer
p$rsvd ds 128-p$len
db '<--buffer'
crlf db CR,LF,'$'
around$bandata:
endm
; eof - identity.lib


View File

@@ -1,16 +0,0 @@
/* infolist.h 6/7/2012 dwg - BIOS Information Structure version 2 */
struct INFOLIST {
int version;
void * banptr;
void * varloc;
void * tstloc;
void * dpbmap;
void * dphmap;
void * ciomap;
};
/********************/
/* eof - infolist.h */
/********************/


View File

@@ -1,124 +0,0 @@
/* label.c 67/10/2012 dwg - */
#include "stdio.h"
#include "cpmbios.h"
#include "bioscall.h"
#include "cpmbdos.h"
#include "bdoscall.h"
#include "metadata.h"
#include "banner.h"
struct FCB * pPRIFCB;
struct FCB * pSECFCB;
struct DPH * pDPH;
struct DPB * pDPB;
testdrive(drive)
int drive;
{
ireghl = pSELDSK;
iregbc = drive;
bioscall();
pDPH = ireghl;
pDPB = pDPH->dpb;
if(0 == pDPB->off) {
printf("Sorry Drive %c: has no prefix area and cannot be labeled",
drive+'A');
exit(1);
}
}
interactive(drive)
int drive;
{
int i;
struct {
char size;
char len;
char data[16];
} rdcons;
testdrive(drive);
ireghl = pGETLU;
iregbc = drive;
bioscall();
if(1 == irega) {
printf("interactive(%d) says drive %c: can't have label",drive,drive);
printf("%c",7);
exit(1);
}
rdsector(drive,0,11,&metadata,0);
printf("Old label = ");
for(i=0;i<16;i++) {
printf("%c",metadata.label[i]);
}
printf("\nNew label = ");
rdcons.size=16;
rdcons.len =0;
dregbc = RDCONBUF;
dregde = &rdcons;
bdoscall();
if(0 < rdcons.len) {
memset(metadata.label,' ',16);
memcpy(metadata.label,rdcons.data,rdcons.len);
wrsector(drive,0,11,&metadata,0);
}
}
noninteractive(drive,label)
int drive;
char * label;
{
int i;
testdrive(drive);
rdsector(drive,0,11,&metadata,0);
memset(metadata.label,' ',16);
for(i=0;i<strlen(label);i++) {
metadata.label[i] = label[i];
}
wrsector(drive,0,11,&metadata,0);
}
main(argc,argv)
int argc;
char *argv[];
{
int i;
int drive;
char szDrive[3];
sbanner("LABEL.COM");
pPRIFCB = 0x5c;
switch(argc) {
case 1:
dregbc = RETCURRDISK;
bdoscall();
drive = drega;
interactive(drive);
break;
case 2:
if(2 == strlen(argv[1])) {
strcpy(szDrive,argv[1]);
if(':' == szDrive[1]) {
interactive(pPRIFCB->drive-1);
exit(0);
}
}
break;
default:
noninteractive(pPRIFCB->drive-1,0x85);
break;
}
exit(0);
}


View File

@@ -1,217 +0,0 @@
; labelib.asm 2/22/2012 dwg - label library function implementation
; label.asm 2/11/2012 dwg - make ident compliant
; label.asm 2/11/2012 dwg - begin 1.6 enhancements
; label.asm 2/04/2012 dwg - use new macros for benefits
; label.asm 1/20/2012 dwg - label a drive or slice
;
; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
;
; This file is part of NuBiosDWG and is free software: you can
; redistribute it and/or modify it under the terms of the GNU
; General Public License as published by the Free Software Foundation,
; either version 3 of the License, or (at your option) any later version.
; This file is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
; You should have received a copy of the GNU General Public License
; along with it. If not, see <http://www.gnu.org/licenses/>.
;
maclib portab
maclib globals
maclib cpmbios
maclib cpmbdos
maclib bioshdr
maclib hardware
maclib z80
maclib memory
; maclib applvers
; maclib cpmappl
maclib printers
maclib metadata
; maclib banner
maclib stdlib
; maclib ffhaslu
; maclib identity
cseg
public x$label
x$label:
mov a,c
sta drive$num
get$off
mov a,h
ora l
jnz off$ok
printf 'Sorry, you can only label drives with reserved tracks'
jmp main$exit
off$ok:
lda drive$num
mov c,a
lxi h,buffer
call x$g$meta
lda DEFBUF ! mov c,a
cpi 0 ! jnz x$lab2
; ; Interactive label functionality here...
prompt:
; signature exists so label should be displayable
print old$lbl
; print label
lxi h,buffer
lxi d,meta$label
dad d
push h
pop d
mvi c,PRINTSTR
call BDOS
print crlf
print new$lbl
mvi c,READ$CON$BUF
lxi d,rcbuff
call BDOS
lda rclen
cpi 0
jnz length$ok
jmp main$exit
length$ok:
inr a
sta DEFBUF
mvi a,' '
sta DEFBUF+1
mov c,a
mvi b,0
lxi h,rcdata
lxi d,DEFBUF+2
ldir
print crlf
lda drive$num
mov c,a
; fall through to code below
;;; not$interactive:
public x$lab2
x$lab2:
; This routine can be used interactively or non-interactively.
; You can set up the default buffer at 80h and call x$lab2,
; or you can call x$label and it will interactively redo the label.
;
mov a,c
sta drive$num
lxi h,buffer
lxi d,meta$label
dad d
mvi a,' '
lxi b,meta$label$len ; max length of label
call x$memset
lda DEFBUF ; pick up length of command tail
cpi 18 ; compare with max size of label
jc lenok ; jump if size is within limits
mvi a,17 ; specify maximum size
sta DEFBUF ; and poke into default buffer size byte
lenok: lda DEFBUF ; pick up command tail size byte
dcr a ; decrement
mov c,a ; move to c reg as counter
mvi b,0
lxi h,buffer
lxi d,meta$label
dad d
xchg
lxi h,DEFBUF+2 ; set source index for move
ldir
lxi h,buffer
lxi d,meta$term
dad d
mvi a,'$'
mov m,a
lda drive$num
mov c,a
lxi h,buffer
call x$u$meta
cpi FAILURE
jz write$prot$err
lxi h,buffer
call x$p$meta
print suc$msg
jmp main$exit
write$prot$err:
print wr$prot$msg
jmp main$exit
readerr:
print rd$err$msg
jmp main$exit
writeerr:
print wr$err$msg
jmp main$exit
dontboth:
print usage$msg
main$exit:
ret
dseg
suc$msg db 'Label Written Successfully$'
rd$err$msg db 'Sorry, cannot read label sector$'
wr$err$msg db 'Sorry, cannot write label sector$'
wr$prot$msg db 'Sorry, metadata is write protected$'
usage$msg db 'usage - label <label>$'
ver$msg db 'Sorry, requires RomWBW or NuBios v1.5$'
def$label db 'Unlabeled ',0
init$msg db 'Label initialized$'
old$lbl db 'Old Label: $'
new$lbl db 'New Label: $'
copr$msg db 'Copyright (C) 2012 Douglas Goodall$'
lic$msg db 'Program licensed under the GPL v3$'
crlf db CR,LF
term db '$'
drive$num ds 1
rcbuff db MAX$LABEL
rclen db 0
rcdata ds MAX$LABEL
buffer ds 128
end start


View File

@@ -1,33 +0,0 @@
; labelib.lib 2/22/2012 dwg - label library macro front end
; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
;
; This file is part of NuBiosDWG and is free software: you can
; redistribute it and/or modify it under the terms of the GNU
; General Public License as published by the Free Software Foundation,
; either version 3 of the License, or (at your option) any later version.
; This file is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
; You should have received a copy of the GNU General Public License
; along with it. If not, see <http://www.gnu.org/licenses/>.
extrn x$label
label macro drivenumber
mvi c,drivenumber
call x$label
endm
extrn x$lab2
label2 macro drivenumber
mvi c,drivenumber
call x$lab2
endm
; eof - labelib.lib


File diff suppressed because it is too large Load Diff

View File

@@ -1,473 +0,0 @@
/* map.c 9/4/2012 dwg - added support for four more drives I: to L: */
/* map.c 8/3/2012 dwg - added DEV_PPPSD and DEV_HDSK, fixed end of drives */
/* map.c 6/7/2012 dwg - */
#include "portab.h"
#include "globals.h"
#include "stdio.h"
#include "stdlib.h"
#include "memory.h"
#include "cpmbind.h"
/* #include "cbioshdr.h" */
#include "infolist.h"
#include "dphdpb.h"
#include "dphmap.h"
#include "metadata.h"
#include "clogical.h"
#include "applvers.h"
#include "diagnose.h"
#include "cnfgdata.h"
#include "syscfg.h"
/* #define MAXDRIVE 12 */
#define BDOS 5 /* memory address of BDOS invocation */
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
/* Drive List Geometry */
#define COL1 5
#define COL2 25
#define COL3 45
#define COL4 65
#define LINE 3
/* Logical Unit List Geometry */
#define LGUT 5
#define COL1A 0
#define COL2A (80/3)
#define COL3A (2*COL2A)
/* Nomenclature Geometry */
#define LINE2 9
/* Misc Info Geometry */
#define CDLINE 7
/* BDOS Function number */
#define RETCURR 25
/* function defined in bdoscall.asm */
extern lurst();
struct BIOS * pBIOS;
struct DPH * pDPH;
struct CNFGDATA * pCNFGDATA;
struct SYSCFG * pSYSCFG;
int devunit;
int dev;
int unit;
int currlu;
int numlu;
int drivenum;
int drive;
int deflu;
char szTemp[128];
int readsec(drive,track,sector,buffer)
int drive;
int track;
int sector;
unsigned int buffer;
{
ireghl = pSELDSK;
iregbc = drive;
iregde = 0;
bioscall();
ireghl = pSETTRK;
iregbc = track;
bioscall();
ireghl = pSETSEC;
iregbc = sector;
bioscall();
ireghl = pSETDMA;
iregbc = buffer;
bioscall();
ireghl = pREAD;
bioscall();
return irega;
}
int haslu(dr)
int dr;
{
if(0 < lugnum(dr)) {
return TRUE;
} else {
return FALSE;
}
}
void dispdph(l,c,drive,ptr)
int l;
int c;
char drive;
struct DPH *ptr;
{
/*
unsigned int xlt;
unsigned int rv1;
unsigned int rv2;
unsigned int rv3;
unsigned int dbf;
unsigned int dpb;
unsigned int csv;
unsigned int alv;
unsigned char sigl;
unsigned char sigu;
unsigned int current;
unsigned int number;
*/
/* 8/3/2012 dwg - detect end of drives properly */
ireghl = pGETLU;
iregbc = drive-'A';
bioscall();
if(1 == irega) {
return;
}
crtlc(l,c);
printf("%c: ",drive);
devunit = lugdu(drive-'A');
dev = devunit & 0xf0;
unit = devunit & 0x0f;
currlu = lugcur(drive-'A');
switch(dev) {
case DEV_MD:
if(0 == unit) printf("ROM");
if(1 == unit) printf("RAM");
break;
case DEV_FD:
printf("FD%d",unit);
break;
case DEV_IDE:
printf("IDE%d",unit);
break;
case DEV_ATAPI:
printf("ATAPI%d",unit);
break;
case DEV_PPIDE:
printf("PPIDE%d",unit);
break;
case DEV_SD:
printf("SD%d",unit);
break;
case DEV_PRPSD:
printf("PRPSD%d",unit);
break;
case DEV_PPPSD:
printf("PPPSD%d",unit);
break;
case DEV_HDSK:
printf("HDSK%d",unit);
break;
default:
printf("UNK");
break;
};
if('L' == (unsigned char)ptr->sigl) {
if('U' == (unsigned char)ptr->sigu) {
/* printf("-LU%d",(int)ptr->current); */
printf("-LU%d",currlu);
}
}
/* printf("dpb=0x%04x, ",(unsigned int)ptr->dpb);
printf("sigl=0x%02x, ",(unsigned char)ptr->sigl);
printf("sigu=0x%02x, ",(unsigned char)ptr->sigu);
printf("curr=0x%04x, ",(unsigned int)ptr->current);
printf("numb=0x%04x", (unsigned int)ptr->number);
*/
}
int main(argc,argv)
int argc;
char *argv[];
{
int i;
int mylu;
int drivenum;
int column;
int l;
int line;
int startlu;
int limit;
char bRunning;
char szDrive[32];
char szLuNum[32];
char szWP[2];
struct INFOLIST * pINFOLIST;
if(argc == 3) {
strcpy(szDrive,argv[1]);
strcpy(szLuNum,argv[2]);
mylu = atoi(szLuNum);
if(strlen(szDrive) == 2) {
if(':' == szDrive[1]) {
switch(szDrive[0]) {
case 'a':
case 'A':
luscur(0,mylu);
break;
case 'b':
case 'B':
luscur(1,mylu);
break;
case 'c':
case 'C':
luscur(2,mylu);
break;
case 'd':
case 'D':
luscur(3,mylu);
break;
case 'e':
case 'E':
luscur(4,mylu);
break;
case 'f':
case 'F':
luscur(5,mylu);
break;
case 'g':
case 'G':
luscur(6,mylu);
break;
case 'h':
case 'H':
luscur(7,mylu);
break;
case 'i':
case 'I':
luscur(8,mylu);
break;
case 'j':
case 'J':
luscur(9,mylu);
break;
case 'k':
case 'K':
luscur(10,mylu);
break;
case 'l':
case 'L':
luscur(11,mylu);
break;
default:
break;
}
}
}
exit(1);
}
pBIOS = BIOSAD;
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
crtlc(0,0);
printf("MAP.COM %d/%d/%d v%d.%d.%d (%d)",
A_MONTH,A_DAY,A_YEAR,A_RMJ,A_RMN,A_RUP,A_RTP);
printf(" dwg - System Storage Drives and Logical Units");
ireghl = pGETINFO;
bioscall();
pINFOLIST = ireghl;
crtlc(CDLINE,COL3A+LGUT);
printf("infolist.version %d\n",pINFOLIST->version);
pDPHMAP = (struct DPHMAPA *)pINFOLIST->dphmap;
dispdph(LINE, COL1,'A',(struct DPH *)pDPHMAP->drivea);
dispdph(LINE+1,COL1,'B',(struct DPH *)pDPHMAP->driveb);
dispdph(LINE+2,COL1,'C',(struct DPH *)pDPHMAP->drivec);
dispdph(LINE ,COL2,'D',(struct DPH *)pDPHMAP->drived);
dispdph(LINE+1,COL2,'E',(struct DPH *)pDPHMAP->drivee);
dispdph(LINE+2,COL2,'F',(struct DPH *)pDPHMAP->drivef);
dispdph(LINE, COL3,'G',(struct DPH *)pDPHMAP->driveg);
dispdph(LINE+1,COL3,'H',(struct DPH *)pDPHMAP->driveh);
dispdph(LINE+2,COL3,'I',(struct DPH *)pDPHMAP->drivei);
dispdph(LINE ,COL4,'J',(struct DPH *)pDPHMAP->drivej);
dispdph(LINE+1,COL4,'K',(struct DPH *)pDPHMAP->drivek);
dispdph(LINE+2,COL4,'L',(struct DPH *)pDPHMAP->drivel);
dregbc = RETCURR;
bdoscall();
drive = drega;
crtlc(CDLINE,5);
printf("Current drive is %c:",'A'+drive);
devunit = lugdu(drive);
dev = devunit & 0xf0;
unit = devunit & 0x0f;
currlu = lugcur(drive);
deflu = currlu;
numlu = lugnum(drive);
crtlc(CDLINE,COL2A+LGUT);
printf("Number of LUs is %d\n",lugnum(drive));
if(0<numlu) {
crtlc(LINE2,COL1A+LGUT-1);
printf("LU P -----Label------");
crtlc(LINE2,COL2A+LGUT-1);
printf("LU P -----Label------");
crtlc(LINE2,COL3A+LGUT-1);
printf("LU P -----Label------");
startlu = 0;
limit = startlu+39;
if(limit>numlu) limit = numlu;
bRunning = 1;
while(1 == bRunning) {
line = LINE2+1;
column = 0;
for(l=0;l<13;l++) {
crtlc(line+l,0);
/* 1 2 3 4 */
/* 1234567890123456789012345678901234567890 */
printf(" ");
/* 5 6 7 */
/* 123456789012345678901234567890123456789 */
printf(" ");
}
for(i=startlu;i<limit;i++) {
int pad;
if (i >= 100)
pad = 0;
else if (i >= 10)
pad = 1;
else
pad = 2;
luscur(drive,i);
readsec(drive,0,11,&metadata);
metadata.term = 0;
if(TRUE == metadata.writeprot) strcpy(szWP,"*");
else strcpy(szWP," ");
switch(column++) {
case 0:
crtlc(line,COL1A+LGUT-2+pad);
printf("%d %s %s",i,szWP,metadata.label);
break;
case 1:
crtlc(line,COL2A+LGUT-2+pad);
printf("%d %s %s",i,szWP,metadata.label);
break;
case 2:
crtlc(line,COL3A+LGUT-2+pad);
printf("%d %s %s",i,szWP,metadata.label);
column = 0;
line++;
break;
}
}
crtlc(23,0);
printf("Options( N(ext), P(revious), Q(uit) )? ");
dregbc = 1; /* CONIN */
bdoscall();
switch(drega) {
case 'Q':
case 'q':
case 'X':
case 'x':
case 3:
bRunning = 0;
break;
case 'N':
case 'n':
case ' ':
startlu += 39;
if(startlu>numlu) startlu=0;
limit = startlu+39;
if(limit > numlu) limit = numlu;
break;
case 'P':
case 'p':
startlu -= 39;
if(startlu < 0) startlu = 0;
limit = startlu+39;
if (limit > numlu) limit = numlu;
break;
default:
printf("%c",7);
break;
}
} /* end of (1==bRunning) */
luscur(drive,deflu);
}
}
/****************/
/* eof - cmap.c */
/****************/

View File

@@ -1,27 +0,0 @@
; memory.asm 2/1/2012 dwg - memory library implementation
maclib z80
;memcpy macro h=src,d==dst,bc=size
public x$memcpy
x$memcpy:
ldir
ret
; memset macro h=dst,a=data,c=siz
public x$memset
x$memset:
push psw
x$ms$loop:
pop psw
mov m,a
inx h
dcx b
push psw
mov a,b
ora c
jnz x$ms$loop
pop psw
ret
; eof - memory.asm


View File

@@ -1,8 +0,0 @@
/* memory.h 3/13/2012 dwg - POSIX-like memory functions */
extern void memcmp();
extern void memcpy();
extern void memset();


View File

@@ -1,24 +0,0 @@
; memory.lib 2/17/2012 dwg - review for release 1.5.1.0
; memory.lib 2/11/2012 dwg - review for release 1.5
; memory.lib 2/04/2012 dwg - adjust for new macros
; memory.lib 1/13/2012 dwg - POSIX memcpy and memset
extrn x$memcpy
extrn x$memset
memcpy macro dst,src,siz
lxi d,dst ; load 1st positional parameter into reg
lxi h,src ; load 2nd positional parameter into reg
lxi b,siz ; load 3rd positional parameter into reg
call x$memcpy ; call actual routine in see memory.asm
endm
memset macro dst,data,siz
lxi h,dst ; load 1st positional parameter into reg
mvi a,data ; load 2nd positional parameter into reg
lxi b,siz ; load 3rd positional parameter into reg
call x$memset ; call actual routine in see memory.asm
endm
; eof - memory.lib


View File

@@ -1,184 +0,0 @@
/* menu.c 8/4/2012 dwg - framework of newcode */
/* This code is known to work in both ANSI and WSYSE termtype modes */
#include "stdio.h"
#include "portab.h"
#include "globals.h"
#include "cpmbios.h"
#include "bioscall.h"
#include "cpmbdos.h"
#include "bdoscall.h"
#include "sectorio.h"
#include "diagnose.h"
#include "ctermcap.h"
#include "clogical.h"
#include "metadata.h"
#include "applvers.h"
#include "cnfgdata.h"
#include "syscfg.h"
#define BDOS 5 /* memory address of BDOS invocation */
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
#define HORIZ "-"
#define VERTI "|"
#define SPACE ' '
struct SYSCFG * pSYSCFG = HIGHSEG;
struct MENUENT {
char * szName;
void (*meFunc)();
struct MENUENT * pmeNext;
};
mfFile();
mfEdit();
mfView();
mfOptions();
mfTransfer();
mfScript();
mfTools();
mfHelp();
struct MENUENT meHelp = { "Help", &mfHelp, NULL };
struct MENUENT meTools = { "Tools", &mfTools, &meHelp };
struct MENUENT meScript = { "Script", &mfScript, &meTools };
struct MENUENT meTransfer = { "Transfer", &mfTransfer, &meScripts };
struct MENUENT meOptions = { "Otions", &mfOptions, &meTransfer };
struct MENUENT meView = { "View", &mfView, &meOptions };
struct MENUENT meEdit = { "Edit", &mfEdit, &meView };
struct MENUENT meFile = { "File", &mfFile, &meEdit };
struct MENU {
struct MENUENT * pFirstEnt;
};
struct MENU mMain = { &meFile };
struct WINDOW {
char ull;
char ulc;
char lrl;
char lrc;
char bFill;
struct MENU * pMenu;
};
struct WINDOW wRoot = { 1, 1, 23, 80, SPACE, &mMain};
window(win)
struct WINDOW * win;
{ char width,height,x,y,filler,i;
struct MENU * pm;
struct MENUENT * pme;
i = 0;
width = win->lrc-win->ulc+1;
height = win->lrl-win->ull+1;
for(y=0;y<height;y++) {
crtlc(win->ull+y,win->lrc);
printf(VERTI);
}
for(y=0;y<height;y++) {
crtlc(win->ull+y,win->ulc);
printf(VERTI);
}
crtlc(win->ull,win->ulc);
for(x=0;x<width;x++) {
printf(HORIZ);
}
crtlc(win->lrl,win->ulc);
for(x=0;x<width;x++) {
printf(HORIZ);
}
filler = win->bFill;
if(0 != filler) {
width = win->lrc-win->ulc-1;
height = win->lrl-win->ull-1;
for(y=0;y<height;y++) {
crtlc(win->ull+y+1,win->ulc+1);
for(x=0;x<width;x++) {
printf("%c",filler);
}
}
}
pm = win->pMenu;
if(0 != pm) {
crtlc(win->ull+1,win->ulc+1);
pme = pm->pFirstEnt;
while(0 != pme) {
printf("%s ",pme->szName);
pme = pme->pmeNext;
}
}
}
mfFile()
{
}
mfEdit()
{
}
mfView()
{
}
mfOptions()
{
}
mfTransfer()
{
}
mfScript()
{
}
mfTools()
{
}
mfHelp()
{
}
main(argc,argv)
int argc;
char *argv[];
{
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
window(&wRoot);
crtlc(wRoot.lrl,wRoot.ulc);
}


View File

@@ -1,184 +0,0 @@
/* menu.c 8/4/2012 dwg - framework of newcode */
/* This code is known to work in both ANSI and WSYSE termtype modes */
#include "stdio.h"
#include "portab.h"
#include "globals.h"
#include "cpmbios.h"
#include "bioscall.h"
#include "cpmbdos.h"
#include "bdoscall.h"
#include "sectorio.h"
#include "diagnose.h"
#include "ctermcap.h"
#include "clogical.h"
#include "metadata.h"
#include "applvers.h"
#include "cnfgdata.h"
#include "syscfg.h"
#define BDOS 5 /* memory address of BDOS invocation */
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
#define HORIZ "-"
#define VERTI "|"
#define SPACE ' '
struct SYSCFG * pSYSCFG = HIGHSEG;
struct MENUENT {
char * szName;
void (*meFunc)();
struct MENUENT * pmeNext;
};
mfFile();
mfEdit();
mfView();
mfOptions();
mfTransfer();
mfScript();
mfTools();
mfHelp();
struct MENUENT meHelp = { "Help", &mfHelp, NULL };
struct MENUENT meTools = { "Tools", &mfTools, &meHelp };
struct MENUENT meScript = { "Script", &mfScript, &meTools };
struct MENUENT meTransfer = { "Transfer", &mfTransfer, &meScripts };
struct MENUENT meOptions = { "Otions", &mfOptions, &meTransfer };
struct MENUENT meView = { "View", &mfView, &meOptions };
struct MENUENT meEdit = { "Edit", &mfEdit, &meView };
struct MENUENT meFile = { "File", &mfFile, &meEdit };
struct MENU {
struct MENUENT * pFirstEnt;
};
struct MENU mMain = { &meFile };
struct WINDOW {
char ull;
char ulc;
char lrl;
char lrc;
char bFill;
struct MENU * pMenu;
};
struct WINDOW wRoot = { 1, 1, 23, 80, SPACE, &mMain};
window(win)
struct WINDOW * win;
{ char width,height,x,y,filler,i;
struct MENU * pm;
struct MENUENT * pme;
i = 0;
width = win->lrc-win->ulc+1;
height = win->lrl-win->ull+1;
for(y=0;y<height;y++) {
crtlc(win->ull+y,win->lrc);
printf(VERTI);
}
for(y=0;y<height;y++) {
crtlc(win->ull+y,win->ulc);
printf(VERTI);
}
crtlc(win->ull,win->ulc);
for(x=0;x<width;x++) {
printf(HORIZ);
}
crtlc(win->lrl,win->ulc);
for(x=0;x<width;x++) {
printf(HORIZ);
}
filler = win->bFill;
if(0 != filler) {
width = win->lrc-win->ulc-1;
height = win->lrl-win->ull-1;
for(y=0;y<height;y++) {
crtlc(win->ull+y+1,win->ulc+1);
for(x=0;x<width;x++) {
printf("%c",filler);
}
}
}
pm = win->pMenu;
if(0 != pm) {
crtlc(win->ull+1,win->ulc+1);
pme = pm->pFirstEnt;
while(0 != pme) {
printf("%s ",pme->szName);
pme = pme->pmeNext;
}
}
}
mfFile()
{
}
mfEdit()
{
}
mfView()
{
}
mfOptions()
{
}
mfTransfer()
{
}
mfScript()
{
}
mfTools()
{
}
mfHelp()
{
}
main(argc,argv)
int argc;
char *argv[];
{
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
window(&wRoot);
crtlc(wRoot.lrl,wRoot.ulc);
}


View File

@@ -1,153 +0,0 @@
/* menu.c 8/4/2012 dwg - framework of newcode */
/* This code is known to work in bot ANSI and WSYSE termtype modes */
#include "stdio.h"
#include "portab.h"
#include "globals.h"
#include "cpmbios.h"
#include "bioscall.h"
#include "cpmbdos.h"
#include "bdoscall.h"
#include "sectorio.h"
#include "diagnose.h"
#include "ctermcap.h"
#include "clogical.h"
#include "metadata.h"
#include "applvers.h"
#include "cnfgdata.h"
#include "syscfg.h"
#define BDOS 5 /* memory address of BDOS invocation */
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
struct SYSCFG * pSYSCFG = HIGHSEG;
#define NORMAL 0
#define BRIGHT 1
#define UNDER 4
#define BLINK 5
#define REVERSE 7
#define CANCEL 8
#define BLACK 0
#define RED 1
#define GREEN 2
#define YELLOW 3
#define BLUE 4
#define MAGENTA 5
#define CYAN 6
#define WHITE 7
#define FG 30
#define BG 40
struct BOX {
char ull;
char ulc;
char lrl;
char lrc;
char fgnd;
char bgnd;
};
struct BOX mainbx = { 1, 1, 23, 80, 0, 0};
char normalco[] = { 27, '[', NORMAL, ';', BG+BLACK, ';', FG+GREEN, 'm', 0 };
/* char mainco[] = { 27, '[', BRIGHT, ';', BG+RED, ';', FG+BLACK, 'm', 0 }; */
char mainco[] = { 27, '[', BG+RED, ';', FG+BLACK, 'm', 0 };
box(bx,borderco)
struct BOX * bx;
char * borderco;
{
char width;
char height;
char x;
char y;
/* printf("%s",borderco);
*/
width = bx->lrc-bx->ulc+1;
height = bx->lrl-bx->ull+1;
for(y=0;y<height;y++) {
crtlc(bx->ull+y,bx->lrc);
printf("|");
}
for(y=0;y<height;y++) {
crtlc(bx->ull+y,bx->ulc);
printf("|");
}
crtlc(bx->ull,bx->ulc);
for(x=0;x<width;x++) {
printf("-");
}
crtlc(bx->lrl,bx->ulc);
for(x=0;x<width;x++) {
printf("-");
}
}
fill(bx,filler,fillco)
struct BOX * bx;
char filler;
char * fillco;
{
char width;
char height;
char x;
char y;
width = bx->lrc-bx->ulc-1;
height = bx->lrl-bx->ull-1;
/* printf("%s",fillco);
*/
for(y=0;y<height;y++) {
crtlc(bx->ull+y+1,bx->ulc+1);
for(x=0;x<width;x++) {
printf("%c",filler);
}
}
}
main(argc,argv)
int argc;
char *argv[];
{
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
/* banner("MENU");
*/
box(&mainbx,mainco);
fill(&mainbx,'%',normalco);
crtlc(mainbx.lrl,mainbx.ulc);
}


View File

@@ -1,253 +0,0 @@
/* meta.c 6/7/2012 dwg - view and edit the metadata */
#include "stdio.h"
#include "portab.h"
#include "globals.h"
#include "cpmbios.h"
#include "bioscall.h"
#include "cpmbdos.h"
#include "bdoscall.h"
#include "sectorio.h"
#include "diagnose.h"
#include "ctermcap.h"
#include "clogical.h"
#include "metadata.h"
#include "applvers.h"
#include "cnfgdata.h"
#include "syscfg.h"
#define BDOS 5 /* memory address of BDOS invocation */
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
#define METALINE 7
#define METACOL 0
/* Application Globals */
int bRunning;
int deflu;
int drive;
int logunit;
int numlu;
struct SYSCFG * pSYSCFG = HIGHSEG;
char hexchar(val, bitoff)
{
static char hexmap[] = "0123456789ABCDEF";
return hexmap[(val >> bitoff) & 0xF];
}
char * fmthexbyte(val, buf)
unsigned char val;
char * buf;
{
buf[0] = hexchar(val, 4);
buf[1] = hexchar(val, 0);
buf[2] = '\0';
return buf;
}
char * fmthexword(val, buf)
unsigned int val;
char * buf;
{
buf[0] = hexchar(val, 12);
buf[1] = hexchar(val, 8);
fmthexbyte(val, buf + 2);
return buf;
}
display()
{
int i;
char buf[5];
/* Set Current Logical Unit */
luscur(drive,logunit);
/* Read the Prefix Sector */
rdsector(drive,0,11,&metadata);
crtlc(METALINE+0,METACOL);
printf("metadata.signature = 0x%s", fmthexword(metadata.signature, buf));
crtlc(METALINE+1,METACOL);
printf("metadata.platform = 0x%s", fmthexbyte(metadata.platform, buf));
crtlc(METALINE+2,METACOL);
printf("metadata.formatter = \"");
for(i=0;i<8;i++) {
printf("%c",metadata.formatter[i]);
}
printf("\"");
crtlc(METALINE+3,METACOL);
printf("metadata.drive = %c:",metadata.drive+'A');
if(metadata.logunit != logunit) {
metadata.logunit = logunit;
metadata.update++;
wrsector(drive,0,11,&metadata);
}
crtlc(METALINE+4,METACOL);
printf("metadata.logunit = %d(rel0) of %d ",metadata.logunit,numlu);
crtlc(METALINE+5,METACOL);
printf("metadata.writeprot = ");
switch(metadata.writeprot) {
case TRUE: printf("TRUE "); break;
case FALSE: printf("FALSE"); break;
default: printf("Unk!!"); break;
}
crtlc(METALINE+6,METACOL);
printf("metadata.update = %d",metadata.update);
crtlc(METALINE+7,METACOL);
printf("metadata.{ver} = %d.%d.%d.%d",
metadata.rmj,metadata.rmn,metadata.rup,metadata.rup);
crtlc(METALINE+8,METACOL);
printf("metadata.label = \"");
for(i=0;i<16;i++) {
printf("%c",metadata.label[i]);
}
printf("\"");
crtlc(METALINE+9,METACOL);
printf("metadata.infloc = 0x%s", fmthexword(metadata.infloc, buf));
crtlc(METALINE+10,METACOL);
printf("metadata.cpmloc = 0x%s", fmthexword(metadata.cpmloc, buf));
crtlc(METALINE+11,METACOL);
printf("metadata.cpmend = 0x%s", fmthexword(metadata.cpmend, buf));
crtlc(METALINE+12,METACOL);
printf("metadata.cpment = 0x%s", fmthexword(metadata.cpment, buf));
}
int menu(state)
int state;
{
int retcode;
crtlc(METALINE+14,METACOL);
printf(" ");
printf(" ");
crtlc(METALINE+14,METACOL);
printf("Options( ");
if(0 < logunit) {
printf(" -{prev lu}");
}
if(logunit < (numlu-1)) {
printf(" +{next lu}");
}
if(TRUE == metadata.writeprot) {
printf(" u{nprotect}");
}
if(FALSE == metadata.writeprot) {
printf(" p{rotect}");
}
printf(" x{quit} ): ");
dregbc = 1;
bdoscall();
retcode = TRUE;
switch(drega) {
case 'X':
case 'x':
retcode = FALSE; break;
case '+':
if(logunit < (numlu-1)) {
logunit++;
} else {
printf("%c",7);
}
break;
case '-':
if(0 < logunit) {
logunit--;
} else {
printf("%c",7);
}
break;
case 'p':
metadata.writeprot = TRUE;
metadata.update++;
wrsector(drive,0,11,&metadata);
break;
case 'u':
metadata.writeprot = FALSE;
metadata.update++;
wrsector(drive,0,11,&metadata);
break;
default: printf("%c",7); break;
}
return retcode;
}
main(argc,argv)
int argc;
char *argv[];
{
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
/* printf("TT is %d\n",pSYSCFG->cnfgdata.termtype); */
pSYSCFG = HIGHSEG;
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
crtlc(0,0);
banner("META");
dregbc = RETCURRDISK;
bdoscall();
drive = drega;
numlu = lugnum(drive);
deflu = lugcur(drive);
logunit = deflu;
bRunning = TRUE;
while(TRUE == bRunning) {
display();
bRunning = menu(1);
}
luscur(drive,deflu);
crtlc(23,0);
}


View File

@@ -1,523 +0,0 @@
; metadata.asm 7/30/2012 dwg - set c=0 for BIOS WRITE calls per Wayne
; metadata.asm 2/17/2012 dwg - review for release 1.5.1.0
; metadata.asm 2/11/2012 dwg - review for release 1.5
; metadata.asm 2/ 4/2012 dwg - metadata library implementation
; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
;
; This file is part of NuBiosDWG and is free software: you can
; redistribute it and/or modify it under the terms of the GNU
; General Public License as published by the Free Software Foundation,
; either version 3 of the License, or (at your option) any later version.
; This file is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
; You should have received a copy of the GNU General Public License
; along with it. If not, see <http://www.gnu.org/licenses/>.
maclib portab
maclib globals
maclib cpmbios
maclib cpmbdos
maclib memory ; has x$memset
maclib applvers ; has A$RMJ, A$RMN, A$RUP, A$RTP
maclib printers
maclib stdlib ; SUCCESS and FAILURE
; metadata.lib 1/31/2012 dwg - macros to manipulate drive metadata
;
; update$meta buffer | x$u$meta hl -> buffer
; init$meta buffer | x$i$meta hl -> buffer
; get$meta drive,buffer | x$g$meta hl -> buffer, c = drivenum
; put$meta drive,buffer | x$p$meta hl -> buffer, c = drivenum
; prot$meta drive | x$pr$meta c = drivenum
; unprot$meta drive | x$un$meta c = drivenum
;
;-------------------------------------------
;meta$debug equ TRUE
meta$debug equ FALSE
meta$sig5a equ 0
meta$siga5 equ 1
meta$prot equ 128-8-1-16-7
meta$updates equ 128-8-1-16-6
meta$rmj equ 128-8-1-16-4
meta$rmn equ 128-8-1-16-3
meta$rup equ 128-8-1-16-2
meta$rtp equ 128-8-1-16-1
meta$label equ 128-8-1-16
meta$term equ 128-8-1
meta$info$loc equ 128-8
meta$cpm$loc equ 128-6
meta$dat$end equ 128-4
meta$cpm$ent equ 128-2
meta$label$len equ meta$term-meta$label
;-----------------------------
crlf db CR,LF,'$'
;-----------------------------
page
public x$u$meta
x$u$meta:
shld x$u$bufptr
; lhld x$u$bufptr
lxi d,meta$prot
dad d
mov a,m
cpi TRUE ; is metadata write protected
jz x$u$proterr ; if so go around update code
; increment the update count
lhld x$u$bufptr
lxi d,meta$updates
dad d
mov e,m ; pick up LO byte into E
inx h
mov d,m ; pick up HO byte into D
inx d ; increment DE
mov m,d
dcx h
mov m,e
; update last written version quad
lhld x$u$bufptr
lxi d,meta$rmj
dad d
mvi a,A$RMJ
mov m,a
inx h
mvi a,A$RMN
mov m,a
inx h
mvi a,A$RUP
mov m,a
inx h
mvi a,A$RTP
mov m,a
lhld x$u$bufptr
lxi d,meta$term
dad d
mov a,m
cpi '$'
jz x$u$end
lhld x$u$bufptr
lxi d,meta$label
dad d
mvi a,' '
mvi c,16
call x$memset
lhld x$u$bufptr
lxi d,meta$term
dad d
mvi a,'$'
mov m,a
x$u$end:
mvi a,SUCCESS
ret
x$u$proterr:
mvi a,FAILURE
ret
x$u$bufptr ds 2
;-----------------------------
page
public x$i$meta
x$i$meta:
shld x$i$bufptr
lhld x$i$bufptr
lxi d,meta$sig5a
dad d
mvi a,05ah
mov m,a
inx h
mvi a,0a5h
mov m,a
lhld x$i$bufptr
lxi d,meta$prot
dad d
mvi a,FALSE
mov m,a
lhld x$i$bufptr
lxi d,meta$updates
dad d
mvi a,0
mov m,a
inx h
mov m,a
lhld x$i$bufptr
lxi d,meta$label
dad d ; hl -> dest
mvi a,' '
mvi c,meta$label$len
call x$memset
lhld x$i$bufptr
lxi d,meta$term
dad d
mvi a,'$'
mov m,a
lhld x$i$bufptr
lxi d,meta$updates
dad d
mvi a,0
mov m,a
inx h
mov m,a
lhld x$i$bufptr
call x$u$meta
ret
x$i$bufptr ds 2
;-------------------------------------------
page
public x$g$meta
x$g$meta;
shld x$g$bufptr ; entry hl has bufptr
mov a,c ; entry c has drivenum
sta x$g$drivenum
; lda x$g$drivenum
mov c,a
call BISELDSK
lxi b,0
call BISETTRK
lxi b,11
call BISETSEC
lhld x$g$bufptr
push h
pop b
call BISETDMA
call BIREAD
lhld x$g$bufptr
lxi d,meta$siga5
dad d
mov a,m
cpi 0a5h
jnz x$g$needs$init
lhld x$g$bufptr
lxi d,meta$sig5a
dad d
mov a,m
cpi 05ah
jnz x$g$needs$init
jmp x$g$fini
x$g$needs$init:
lhld x$g$bufptr
call x$i$meta
mvi c,0 ; default to 0 per Wayne
call BIWRITE
x$g$fini:
mvi c,13
call BDOS
ret
x$g$bufptr ds 2
x$g$drivenum ds 1
;-----------------------------------
page
public x$p$meta
x$p$meta:
shld x$p$bufptr
mov a,c
sta x$p$drivenum
IF meta$debug eq TRUE
conout 'x'
conout '$'
conout 'p'
conout '$'
printf 'meta called, drive='
lda x$p$drivenum
mov l,a
mvi h,0
call pr$d$word
printf ', buffer='
lhld x$p$bufptr
call pr$h$word
print crlf
ENDIF
; increment the update count
lhld x$p$bufptr ; hl -> buffer
lxi d,meta$updates ; de = offset to updates word
dad d ; hl -> updates word
mov e,m ; e = LO byte of updates
inx h ; hl -> HO byte
mov d,m ; d = HO byte of updates
inx d ; increment DE (updates)
mov m,d ; put back HO byte
dcx h ; back up ptr
mov m,e ; put back LO byte
; update last written version quad
lhld x$p$bufptr
lxi d,meta$rmj
dad d
mvi a,A$RMJ
mov m,a
inx h
mvi a,A$RMN
mov m,a
inx h
mov a,A$RUP
mov m,a
inx h
mvi a,A$RTP
mov m,a
lhld x$p$bufptr
lxi d,meta$prot
dad d
mov a,m
cpi TRUE ; if metadata is write protected
jz x$p$fini ; jump around update code
lda x$p$drivenum
mov c,a
call BISELDSK
lxi b,0
call BISETTRK
lxi b,11
call BISETSEC
lhld x$p$bufptr
push h
pop b
call BISETDMA
mvi c,0 ; default to 0 per Wayne
call BIWRITE
IF meta$debug eq TRUE
printf 'return from BIWRITE is '
mov l,a
mvi h,0
call pr$h$word
print crlf
ENDIF
x$p$fini:
ret
x$p$bufptr ds 2
x$p$drivenum ds 1
;-----------------------
page
public x$pr$meta
x$pr$meta:
mov a,c
sta x$pr$drivenum
IF meta$debug eq TRUE
conout 'x'
conout '$'
printf 'pr'
conout '$'
printf 'meta called, drive='
lda x$pr$drivenum
mov l,a
mvi h,0
call pr$d$word
print crlf
ENDIF
lda x$pr$drivenum
mov c,a
call BISELDSK
lxi b,0
call BISETTRK
lxi b,11
call BISETSEC
lxi b,x$pr$buffer
call BISETDMA
call BIREAD
IF meta$debug eq TRUE
printf 'return from BIREAD is '
mov l,a
mvi h,0
call pr$h$word
print crlf
ENDIF
lxi h,x$pr$buffer
lxi d,meta$prot
dad d
mvi a,TRUE
mov m,a
lxi h,x$pr$buffer
lxi d,meta$updates
dad d
mov e,m
inx h
mov d,m
inx d
mov m,d
dcx h
mov m,e
lda x$pr$drivenum
mov c,a
call BISELDSK
lxi b,0
call BISETTRK
lxi b,11
call BISETSEC
lxi b,x$pr$buffer
call BISETDMA
mvi c,0 ; default to 0 per Wayne
call BIWRITE
IF meta$debug eq TRUE
printf 'return from BIWRITE is '
mov l,a
mvi h,0
call pr$h$word
print crlf
ENDIF
mvi c,13
call BDOS
ret
x$pr$drivenum ds 1
x$pr$buffer ds 128
;-----------------------
page
public x$un$meta
x$un$meta:
mov a,c
sta x$un$drivenum
IF meta$debug eq TRUE
conout 'x'
conout '$'
printf 'un'
conout '$'
printf 'meta called, drive='
lda x$un$drivenum
mov l,a
mvi h,0
call pr$d$word
print crlf
ENDIF
lda x$un$drivenum
mov c,a
call BISELDSK
lxi b,0
call BISETTRK
lxi b,11
call BISETSEC
lxi b,x$un$buffer
call BISETDMA
call BIREAD
IF meta$debug eq TRUE
printf 'return from BIREAD is '
mov l,a
mvi h,0
call pr$h$word
print crlf
ENDIF
lxi h,x$un$buffer
lxi d,meta$prot
dad d
mvi a,FALSE
mov m,a
lxi h,x$un$buffer
lxi d,meta$updates
dad d
mov e,m
inx h
mov d,m
inx d
mov m,d
dcx h
mov m,e
lda x$un$drivenum
mov c,a
call BISELDSK
lxi b,0
call BISETTRK
lxi b,11
call BISETSEC
lxi b,x$un$buffer
call BISETDMA
mvi c,0 ; default to 0 per Wayne
call BIWRITE
IF meta$debug eq TRUE
printf 'return from BIWRITE is '
mov l,a
mvi h,0
call pr$h$word
print crlf
ENDIF
mvi c,13
call BDOS
ret
x$un$drivenum ds 1
x$un$buffer ds 128
;-----------------------
; eof - metadata.asm


View File

@@ -1,66 +0,0 @@
/*
* metadata.h 3/12/2012 dwg -
*
*/
extern initmeta();
extern getmeta();
extern putmeta();
/*
* This structure is the same as the metadata sector
* in RomWBW storage drives. (track 0 sector 11)
*
*/
struct MD_TAG {
char sig5a;
char siga5;
char platform;
char device;
char formatter[8];
char drive;
char lu;
char filler[128-34-12];
/* ... */
char prot;
int updates;
char rmj;
char rmn;
char rup;
char rtp;
char label[16];
char term;
unsigned int infoloc;
unsigned int cpmloc;
unsigned int datend;
unsigned int cpment;
};
struct METADATA {
unsigned int signature;
unsigned char platform;
unsigned char device;
unsigned char formatter[8];
unsigned char drive;
unsigned int logunit;
unsigned char unused[0x51];
unsigned char writeprot;
unsigned int update;
unsigned char rmj;
unsigned char rmn;
unsigned char rup;
unsigned char rtp;
unsigned char label[16];
unsigned char term;
unsigned int infloc;
unsigned int cpmloc;
unsigned int cpmend;
unsigned int cpment;
} metadata;


View File

@@ -1,86 +0,0 @@
; metadata.lib 2/17/2012 dwg - review for release 1.5.1.0
; metadata.lib 2/11/2012 dwg - review for release 1.5
; metadata.lib 2/ 3/2012 dwg - macro to manipulate drive metadata
;
;--------------------------------------------------------------------------
; update$meta buffer | x$u$meta hl -> buffer
; init$meta buffer | x$i$meta hl -> buffer
; get$meta drive,buffer | x$g$meta hl -> buffer, c = drivenum
; put$meta drive,buffer | x$p$meta hl -> buffer, c = drivenum
; prot$meta drive | x$pr$meta c = drivenum
; unprot$meta drive | x$un$meta c = drivenum
;--------------------------------------------------------------------------
; these must be kept in sync with prefix.asm and loader.asm
;
meta$sig5a equ 0 ; 1st signature byte
meta$siga5 equ 1 ; 2nd signature byte
meta$prot equ 128-8-1-16-7 ; write protect boolean
meta$updates equ 128-8-1-16-6 ; update counter
meta$rmj equ 128-8-1-16-4 ; Major Version
meta$rmn equ 128-8-1-16-3 ; Minor Version
meta$rup equ 128-8-1-16-2 ; Update Number
meta$rtp equ 128-8-1-16-1 ; Patch Number
meta$label equ 128-8-1-16 ; Drive Label (space padded)
meta$term equ 128-8-1 ; Dollar Sign String Term
meta$info$loc equ 128-8 ; pointer to info poked by ldr
meta$cpm$loc equ 128-6 ; location of CP/M
meta$dat$end equ 128-4 ; End of image load
meta$cpm$ent equ 128-2 ; Entryr point after relocation
;
meta$label$len equ meta$term-meta$label
;----------------------------------------------------------------------
extrn x$u$meta ; Update Metadata
extrn x$i$meta ; Initialize Metadata
extrn x$g$meta ; Get Metadata
extrn x$p$meta ; Put Metadata
extrn x$pr$meta ; Protect Metadata
extrn x$un$meta ; Unprotect Metadata
;----------------------------------------------------
; Read the metadata into the specified buffer from the specified drive
; (set up the entry registers then transfer to the library routine)
get$meta macro drive,buffer
mvi c,drive
lxi h,buffer
call x$g$meta
endm
;-----------------------------------
; Write the metadata from the specified buffer to the specified drive
; (set up the entry registers then transfer to the library routine)
put$meta macro drive,buffer
mov c,drive ; load 1st positional parameter into reg
lxi h,buffer ; load 2nd positional parameter into reg
call x$p$meta ; call actual routine in metadata.asm
endm
;-----------------------------------
; Update fields in the buffer with current data
; (set up the entry registers then transfer to the library routine)
update$meta macro buffer
lxi h,buffer ; load the parameter into reg as required
call x$u$meta ; call actual routine in metadata.asm
endm
;-----------------------------------
; Initialize the buffer with all required fields for first time use
; (set up the entry registers then transfer to the library routine)
init$meta macro buffer
lxi h,buffer ; load the parameter into reg as required
call x$i$meta ; call the actual routine in metadata.asm
endm
;-----------------------------------
; Write Protect the Metadata by setting the protect boolean
; (set up the entry registers then transfer to the library routine)
prot$meta macro drive
mvi c,drive ; load the parameter into reg as required
call x$pr$meta ; call the actual routine in metadata.asm
endm
;-----------------------------------
; Unprotect the Metadata by clearing the protect boolean
; (set up the entry registers then transfer to the library routine)
unprot$meta macro drive
mvi c,drive ; load the parameter into reg as required
call x$un$meta ; call the actual routine in metadata.asm
endm
;-----------------------------------
; eof - metadata.lib


View File

@@ -1,11 +0,0 @@
#include "stdio.h"
#include "rasm80.h"
main()
{
FILE * fd;
fd = fopen("rasm8080.com","w");
fwrite(rasm80,sizeof(rasm80),1,fd);
fclose(fd);
}


View File

@@ -1,115 +0,0 @@
/* monitor.c 7/22/2012 dwg - look around, see what's goin down */
#include "stdio.h"
#include "asmiface.h"
#include "ctermcap.h"
#include "cnfgdata.h"
#include "diagnose.h"
#include "syscfg.h"
struct SYSCFG * pSYSCFG;
char visible[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 00 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 10 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 20 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 30 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 40 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 50 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 60 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, /* 70 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 80 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 90 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* A0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* B0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* C0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* D0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* E0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* F0 */
};
display(sector)
char * sector;
{
int i,j;
int offset;
unsigned char byte;
offset = 0;
for(i=0;i<8;i++) {
printf("%04x: ",sector+offset);
offset += 16;
for(j=0;j<16;j++) {
printf("%02x ",sector[(i*8)+j]);
}
printf(" ");
for(j=0;j<16;j++) {
byte = sector[(i*8)+j];
if(1 == visible[byte]) {
printf("%c",byte);
} else {
printf(".");
}
}
printf("\n");
}
printf("\n");
}
#define HIGHSEG 0x0c000
#define GETSYSCFG 0x0f000
main()
{
char bRun;
unsigned int offset;
struct SYSCFG * pSYSCFG;
pSYSCFG = HIGHSEG;
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();crtlc(0,0);
printf("monitor.c 7/22/2012 dwg - view contents of memory");
offset = HIGHSEG;
bRun = 1;
while(1 == bRun) {
crtlc(3,0);
display(offset);
display(offset+128);
printf(
"Options: 0(0x0000) 1(0x1000) 2(0x2000) 3(0x3000) 4(0x4000) 5(0x5000)\n");
printf(
" 6(0x6000) 7(0x7000) 8(0x8000) 9(0x9000) a(0xa000) b(0xb000)\n");
printf(
" c(syscfg) n(ext) p(revious) q(uit) ?");
asmif(5,1,00);
printf("%c",0x0d);
switch(xrega) {
case '0': offset = 0x00000; break;
case '1': offset = 0x01000; break;
case '2': offset = 0x02000; break;
case '3': offset = 0x03000; break;
case '4': offset = 0x04000; break;
case '5': offset = 0x05000; break;
case '6': offset = 0x06000; break;
case '7': offset = 0x07000; break;
case '8': offset = 0x08000; break;
case '9': offset = 0x09000; break;
case 'a': offset = 0x0a000; break;
case 'b': offset = 0x0b000; break;
case 'd': offset = 0x0d000; break;
case 'c': offset = 0x0c000; break;
case 'n': offset += 2*128; break;
case 'p': offset -= 2*128; break;
case 'x':
case 'q': bRun = 0; break;
}
}
}


View File

@@ -1,477 +0,0 @@
/* multifmt.c 6/12/2012 dwg - */
/*
*
* The purpose of this program is to prepare a new mass storage device
* for use with the CP/M-80 Operating System with the RomWBW BIOS.
*
* Each Logical Unit has a prefix sector which must be initialized and
* a set of directory sectors that must be cleared to E5's in order that
* the directory entries wil be cleared for subsequent use.
*
* The Logical Units feature is implemented through the use of a DPH
* extention that contains a signature word, a "current LU" word, and
* a "number of LU's" word. The "number of LU's" word is assembled in
* based on the configurtion files present at system build time.
*
* The configuration of the LU feature has been managed by poking values
* into the "current" and "number of LU's" fields. As of the 2.0 BIOS,
* the LU feature is now managed via OEM BIOS calls to GETLU and SETLU.
*
* The following list of concepts contains the methods by which needed
* information can be accessed under the new architecture.
*
* To begin with, questions about disk drives can be answered through
* sequences of operations as described here.
*
* The first operation is to call GETLU and pass it a drive number. If
* the return code is 0, this means the drive exists. If a 1 is returned,
* this indicates an invalid drive number.
*
* Once you know that a drive number is valid, the next thing to know is
* the meaning of the Device/Unit returned by the call. The device numbers
* are hard coded in the STD.ASM, and derived from that a STD.H file which
* can be included into C programs. The known devices include DEV_MD,
* DEV_FD, DEV_IDE, DEV_PPIDE... The high nybble of the byte contains the
* device code, and the low nybble contains the unit number. The RAM disk
* and ROM disk are both DEV_MD devices. They just have different unit
* numbers. RAM and ROM drives do not have reserved tracks, and as well do
* not have a prefix sector. Because of this, there is no space to write a
* system image, and therefore are not usable for booting.
*
* The next more sophisticated storage device is the floppy disk. It does
* have reserved tracks and a prefix sector and can therefore have a system
* image written to it. Floppies, due to there size do not support "logical
* unit extentions".
*
* Things become much more interesting once you have a media adapter such
* as an IDE to compact flash adapter. Using a PPIDE miniboard attached
* to the parallel port, a media adapter may be attached, and a storage
* device as well, such as a CF chip.
*
* Compact Flash chips are generally many times larger than a maximum size
* of a CP/M-80 disk drive. The Logical Unit feature takes advatage of this
* by dividing the available space into a contiguous collection of 9MB slices
* which we describe as "logical units". The first one is numbered from zero
* and additional slices are numbered upwards from there.
*
* The maximum number of logical units supported on a single chip is 232.
*
* The RomWBW BIOS maps a device such as a PPIDE into four CP/M drives. By
* default, the drives are assigned to logical units 0 to 3. When using the
* DM_PPIDE configuration option, the four PPIDE drives are A: B: C: & D:.
*
* The A: drive is assigned to logical unit 0. The B: drive is assigned to
* logical unit 1. The C: drive is assigned to logical unit 2, and the D:
* drive is assigned to logical unit 3. This gives the appearance of having
* four individual 8MB drives.
*
* In order to make all the space on the media available, you can change
* the mapping of each of the drives through the use of the "MAP" program,
* or by making system calls to the BIOS function SETLU. It is common to
* lelave the A: drive mapped to logical unit 0. Then the A: drive can be
* backed up through a simple copy operation dto any of the mappable logical
* units on the media. Here is the sequence of operations used to back up
* the A: drive onto logical unit 8. (arbitrary)
*
* map d: 8
* clrdir d:
* pip d:=a:*.*
* label d: 6/1/2012-12:30
*
* this operation creates a complete backup of the A: drive (LU0) onto LU8,
* and labels the drive for future reference.
*
*
* The problem this programs solves is how to prepare a large media device a few
* logical units, or an entire device, possible having hundreds of logical
* units.
*
* The prefix sector of each logical unit has a label, and a write protect
* field. Once the logical united is protected, it makes it harder to
* destroy your data. As powerful as the MULTIFMT program is, if operated
* incorrectly, it can format hundreds of logical units in several minutes
* and potentially destroy a lot of your data and programs. Care is required.
*
* The program begins by asking for a starting and ending logical unit
* number which provides a range within which to operate. Within that range
* individual logical units can be protected or not. The program also asks
* if you would like to override all the protected logical units, and thereby
* format the entire device, regardless of prior contents.
*
* It should only be necessary to run multifmt once to create the prefixes
* and clear the directories. The clrdir program can be used ad hoc to clear
* individual logical units as needed.
*
* Now that a this is understood, the code of the program will make a lot
* more sense. The main function calls the gather funtion that queries the
* for constraints, then it call the logical formatter to deal with high
* level issues like how many logical units...
* The logical formatter calls the physical formatter to actually get the
* work done and make changes to the target media. Because of this structure,
* it is possible to operate the program in a sort of demo mode by disabling
* the operation of the physical format function.
*
*/
#include "portab.h"
#include "globals.h"
#include "stdio.h"
#include "stdlib.h"
#include "std.h"
#include "memory.h"
#include "cpmbios.h"
#include "bioscall.h"
#include "cpmbdos.h"
#include "bdoscall.h"
#include "sectorio.h"
#include "infolist.h"
#include "metadata.h"
#include "clogical.h"
#include "applvers.h"
#include "diagnose.h"
#include "cnfgdata.h"
#include "syscfg.h"
#define BDOS 5 /* memory address of BDOS invocation */
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
struct DPB * pDPB; /* a pointer to a disk parameter block */
struct DPH * pDPH; /* a pointer to a disk parameter header */
struct SYSCFG * pSYSCFG; /* a pointer to the system configuration data */
int gDrvNum; /* The global drive number, A:=0, B:=1... */
int gDevUnit; /* The globals drive's device type and unit */
int gDefLU; /* The global storage location for the default LU */
int gCurLU; /* The global storage location for the current LU */
int gNumLU; /* The global storage location for the number of LUs */
int gStatus;
int gRetcode;
int g1st; /* The global storage location for the first LU to format */
int gLast; /* The global storage location for the last LU to format */
int gOverAll; /* The global boolean indicating protection overrides */
char gTT; /* Terminal Type */
unsigned char e5buffer[128]; /* a buffer full of empty dir entries */
dispattr(fg)
char * fg;
{
printf("%c[%sm",27,fg);
}
clrline()
{
if(0 < gTT) {
crtlc(2,0);
}
printf("\r ");
printf(" \r");
}
/* The purpose of this routine is to access the BIOS GETDSK function
and determine the device, unit, current logical unit, and number
of logical units present on the media. */
getinfo(drnum)
{
ireghl = pGETLU;
iregbc= drnum;
bioscall();
gStatus = irega; /* 0=ok, 1=invdrv */
gDevUnit = iregbc;
gCurLU = iregde;
gNumLU = ireghl;
}
clrdir(line,col)
int line;
int col;
{
int sector;
int sectors;
if(0 == gTT) printf("clrdir(%d) ",gDrvNum);
memset(e5buffer,0x0e5,sizeof(e5buffer));
ireghl = pSELDSK;
iregbc = gDrvNum;
iregde = 0;
bioscall();
pDPH = ireghl;
pDPB = pDPH->dpb;
sectors = (pDPB->drm+1)/4;
wrsector(gDrvNum,pDPB->off,0,e5buffer,0);
for(sector=1;sector<sectors;sector++) {
if(-1 != line) {
crtlc(line,col-1);
printf("%d",sectors-sector);
}
wrsector(gDrvNum,pDPB->off,sector,e5buffer,1);
}
}
clrmeta(lu,line,col)
int lu;
int line;
int col;
{
if(0 == gTT) printf("clrmeta(%d) ",lu);
else {
crtlc(line,col-1);
printf("met");
}
rdsector(gDrvNum,0,11,&metadata,0);
metadata.signature = 0x0a55a;
metadata.platform = pSYSCFG->cnfgdata.platform;
memcpy(metadata.formatter,"multifmt",8);
metadata.drive = gDrvNum;
metadata.logunit = lu;
metadata.writeprot = FALSE;
metadata.rmj = A_RMJ;
metadata.rmn = A_RMN;
metadata.rup = A_RUP;
metadata.rtp = A_RTP;
memcpy(metadata.label,"[multiformatted]",16);
metadata.term = '$';
metadata.update = 0;
wrsector(gDrvNum,0,11,&metadata,0);
}
/* The purpose of the physical format routine is to do last minute
checks on logical unit protection status, and call the actual
routines that initialize the metadata and clear the directory */
physfmt(lu)
int lu;
{
int line,col;
rdsector(gDrvNum,0,11,&metadata,0);
if(TRUE == metadata.writeprot) {
if(gTT == 0) {
printf("LU%d is protected, ",lu);
}
if(FALSE == gOverAll) {
if(0==gTT) printf("Override is not enabled, ");
return FALSE;
}
if(gTT == 0) printf("Override is enabled, ");
}
/* LU is not protected or override is enabled */
if(0==gTT) {
printf("Formatting LU# %d\r",lu);
clrmeta(lu,-1,-1);
clrdir(-1,-1);
} else {
/* Produce formatted progress display */
line = lu / 16;
crtlc(26-16-4+line,0);
printf("%d...",lu & 0xf0);
col = lu & 15;
clrmeta(lu,24-16-2+line,((80-64)/2)+(col*4)+1);
clrdir( 24-16-2+line,((80-64)/2)+(col*4)+1);
crtlc(24-16-2+line,((80-64)/2)+(col*4));
printf(" OK");
}
return TRUE;
}
/* The purpose of the logical formatting routine is to implement the
main format loop that traverses the range of logical units, and
calls tyhe physical format routine above. */
lformat()
{
int index;
if(0 != gTT) {
for(index=0;index<16;index++) {
crtlc(24-16-2-2,((80-64)/2)+(index*4));
printf("+%d",index);
}
for(index=0;index<16;index++) {
crtlc(24-16-2-1,((80-64)/2)+(index*4));
printf("---");
}
}
gDefLU = lugcur(gDrvNum);
for(index=g1st;index<=gLast;index++) {
luscur(gDrvNum,index);
rdsector(gDrvNum,0,11,&metadata,0);
if(TRUE == metadata.writeprot) {
if(TRUE == gOverAll) {
physfmt(index);
}
} else {
physfmt(index);
}
}
luscur(gDrvNum,gDefLU);
}
/* The purpose of the dispinfo routie is to display the formatted
parameters gathered in the previous routine and ask the user
for permission to proceed with the formatting on that basis. */
int dispinfo()
{
if(1 == gRetcode) {
return FAILURE;
}
if(0 == gNumLU) {
return FAILURE;
}
printf("\nDrive %c:, ",gDrvNum+'A');
printf("Current LU is %d, ",gCurLU);
printf("Number of LU's is %d, ",gNumLU);
switch((gDevUnit>>8) & 0xf0) {
case DEV_IDE:
printf("Drive is IDE");
break;
case DEV_PPIDE:
printf("Drive is PPIDE");
break;
default:
printf("Drive is Unknown!!(%x)",gDevUnit);
break;
}
clrline();
printf("Would you like to format the logical units on this drive(Y/n)?");
dregbc = 1;
bdoscall();
switch(drega) {
case 'Y':
case 'y':
return TRUE;
default:
return FALSE;
}
}
/* The purpose of the gather routine is to have a dialog with the user
end obtain the range of logical units to be formatted and the choice
of whether logical unit protection will be overridden in the process. */
gather()
{
char szTemp[128];
clrline();
g1st = 1;
printf("Please enter first logical unit to format 0-%d (%d):",
gNumLU-1,g1st);
gets(szTemp);
if(0 < strlen(szTemp)) {
g1st = atoi(szTemp);
}
clrline();
gLast = gNumLU-1;
printf("Please enter last logical unit to format 0-%d (%d):",
gNumLU-1,gLast);
gets(szTemp);
if(0 < strlen(szTemp)) {
gLast = atoi(szTemp);
}
clrline();
gOverAll = FALSE;
printf("Do you want to override all protected logical units (Y/n): ");
dregbc = 1;
bdoscall();
if('Y' == drega) {
clrline();
printf("Do you really want to DESTROY all logical units (D/n): ");
dregbc = 1;
bdoscall();
if('D' == drega) {
gOverAll = TRUE;
}
} else {
printf("\n");
}
}
main(argc,argv)
int argc;
char *argv[];
{
int retcode;
struct INFOLIST * pINFOLIST;
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
/* printf("TT is %d\n",pSYSCFG->cnfgdata.termtype); */
gTT = pSYSCFG->cnfgdata.termtype;
crtinit(gTT);
if(0 < gTT) {
crtclr();
crtlc(0,0);
}
printf("MULTIFMT.COM %d/%d/%d v%d.%d.%d.%d",
A_MONTH,A_DAY,A_YEAR,A_RMJ,A_RMN,A_RUP,A_RTP);
printf(" dwg - Prepare new mass storage media for use");
ireghl = pGETINFO;
bioscall();
pINFOLIST = ireghl;
dregbc = RETCURRDISK;
bdoscall();
gDrvNum = drega;
getinfo(gDrvNum);
retcode = dispinfo();
if(FALSE == retcode) {
printf("\nFormat cancelled at user's request");
exit(1);
}
gather();
lformat();
}
/********************/
/* eof - multifmt.c */

View File

@@ -1,59 +0,0 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
PUBLIC main_
main_: lxi d,.2
call csave
LXI H,0
XCHG
LXI H,8-.2
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .lt
JZ .3
LXI H,.1+0
PUSH H
CALL printf_
POP D
.3:
LXI H,1
XCHG
LXI H,8-.2
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .lt
JZ .4
LXI H,.1+7
PUSH H
CALL printf_
POP D
.4:
LXI H,2
XCHG
LXI H,8-.2
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .lt
JZ .5
LXI H,.1+14
PUSH H
CALL printf_
POP D
.5:
RET
.2 EQU 0
.1:
DB 97,114,103,99,62,48,0,97,114,103,99,62,49,0,97
DB 114,103,99,62,50,0
extrn printf_
extrn .lt
END


View File

@@ -1,281 +0,0 @@
/* n8chars.c 9/12/2012 dwg - information from TI Docs */
/* http://www1.cs.columbia.edu/~sedwards/papers/TMS9918.pdf */
unsigned char charset[256*8] = {
/* 10000 */ 0,0,0,0,0,0,0,0,
/* 10001 */ 0,0,0,60,60,48,48,48,
/* 10002 */ 0,0,0,240,240,48,48,48,
/* 10003 */ 48,48,48,60,60,0,0,0,
/* 10004 */ 48,48,48,240,240,0,0,0,
/* 10005 */ 48,48,48,48,48,48,48,48,
/* 10006 */ 0,0,0,255,255,0,0,0,
/* 10007 */ 0,32,112,248,112,32,0,0,
/* 10008 */ 248,216,136,0,136,216,248,0,
/* 10009 */ 0,0,0,0,0,0,0,0,
/* 10010 */ 0,0,0,0,0,0,0,0,
/* 10011 */ 24,24,32,96,144,96,0,0,
/* 10012 */ 32,80,32,32,112,32,0,0,
/* 10013 */ 0,0,0,0,0,0,0,0,
/* 10014 */ 0,0,0,0,0,0,0,0,
/* 10015 */ 168,80,80,216,80,80,168,0,
/* 10016 */ 48,48,48,252,252,48,48,48,
/* 10017 */ 16,48,112,240,112,48,16,0,
/* 10018 */ 32,112,32,32,32,112,32,0,
/* 10019 */ 80,80,80,80,0,80,0,0,
/* 10020 */ 120,168,168,104,40,40,0,0,
/* 10021 */ 48,48,48,252,252,0,0,0,
/* 10022 */ 0,0,0,252,252,48,48,48,
/* 10023 */ 48,48,48,240,240,48,48,48,
/* 10024 */ 32,112,32,32,32,32,32,32,
/* 10025 */ 48,48,48,60,60,48,48,48,
/* 10026 */ 0,16,24,252,24,16,0,0,
/* 10027 */ 0,32,96,252,96,32,0,0,
/* 10028 */ 0,0,0,0,0,0,0,0,
/* 10029 */ 0,0,0,0,0,0,0,0,
/* 10030 */ 0,0,0,0,0,0,0,0,
/* 10031 */ 0,0,0,0,0,0,0,0,
/* 10032 */ 0,0,0,0,0,0,0,0,
/* 10033 */ 48,120,120,48,0,48,0,0,
/* 10034 */ 216,216,80,0,0,0,0,0,
/* 10035 */ 72,72,252,72,72,252,72,72,
/* 10036 */ 32,120,160,120,36,248,32,0,
/* 10037 */ 0,200,208,32,88,152,0,0,
/* 10038 */ 48,72,72,80,96,144,120,0,
/* 10039 */ 48,48,64,0,0,0,0,0,
/* 10040 */ 16,32,32,32,32,32,16,0,
/* 10041 */ 32,16,16,16,16,16,32,0,
/* 10042 */ 32,168,112,248,112,168,32,0,
/* 10043 */ 0,32,32,248,32,32,0,0,
/* 10044 */ 0,0,0,0,0,48,48,64,
/* 10045 0,0,0,252,0,0,0,0, */
/* 10045 */ 0,0,0,112,0,0,0,0,
/* 10046 */ 0,0,0,0,0,48,48,0,
/* 10047 */ 4,8,16,32,64,128,0,0,
/* 10048 */ 112,152,168,168,168,200,112,0,
/* 10049 */ 32,96,32,32,32,32,248,0,
/* 10050 32,80,16,32,64,128,248,0, */
/* 10050 */ 112,136,8,16,96,128,248,0,
/* 10051 */ 112,136,8,112,8,136,112,0,
/* 10052 */ 48,80,144,248,16,16,16,0,
/* 10053 */ 248,128,128,240,8,136,112,0,
/* 10054 */ 56,64,128,240,136,136,112,0,
/* 10055 */ 248,8,16,32,32,32,32,0,
/* 10056 */ 112,136,136,112,136,136,112,0,
/* 10057 */ 112,136,136,120,8,136,112,0,
/* 10058 */ 0,48,48,0,48,48,0,0,
/* 10059 */ 0,48,48,0,48,48,96,0,
/* 10060 */ 16,32,64,128,64,32,16,0,
/* 10061 */ 0,0,252,0,252,0,0,0,
/* 10062 */ 64,32,16,8,16,32,64,0,
/* 10063 */ 112,136,8,48,32,0,32,0,
/* 10064 */ 112,136,184,176,128,128,112,0,
/* 10065 */ 32,80,136,248,136,136,136,0,
/* 10066 */ 240,72,72,112,72,72,240,0,
/* 10067 */ 112,136,128,128,128,136,112,0,
/* 10068 */ 240,72,72,72,72,72,240,0,
/* 10069 */ 248,136,128,224,128,136,248,0,
/* 10070 */ 248,136,128,240,128,128,128,0,
/* 10071 */ 112,136,128,184,136,136,112,0,
/* 10072 */ 136,136,136,248,136,136,136,0,
/* 10073 */ 248,32,32,32,32,32,248,0,
/* 10074 */ 28,8,8,8,8,136,112,0,
/* 10075 */ 136,144,160,192,160,144,136,0,
/* 10076 */ 128,128,128,128,128,136,248,0,
/* 10077 */ 136,216,168,136,136,136,136,0,
/* 10078 */ 136,200,168,168,168,152,136,0,
/* 10079 */ 112,136,136,136,136,136,112,0,
/* 10080 */ 240,136,136,240,128,128,128,0,
/* 10081 */ 112,136,136,136,168,152,120,4,
/* 10082 */ 240,136,136,240,160,144,136,0,
/* 10083 */ 112,136,64,32,16,136,112,0,
/* 10084 */ 248,32,32,32,32,32,112-64-16,0,
/* 10085 */ 136,136,136,136,136,136,112,0,
/* 10086 */ 136,136,136,80,80,80,32,0,
/* 10087 */ 136,136,136,168,168,168,80,0,
/* 10088 */ 136,136,80,32,80,136,136,0,
/* 10089 */ 136,136,80,32,32,32,32,0,
/* 10090 */ 248,136,16,32,64,136,248,0,
/* 10091 */ 120,64,64,64,64,64,120,0,
/* 10092 */ 0,128,64,32,16,8,0,0,
/* 10093 */ 120,8,8,8,8,8,120,0,
/* 10094 */ 32,80,136,0,0,0,0,0,
/* 10095 */ 0,0,0,0,0,0,252,0,
/* 10096 */ 96,96,16,0,0,0,0,0,
/* 10097 */ 0,0,240,8,120,136,112,0,
/* 10098 */ 128,128,128,240,136,136,240,0,
/* 10099 */ 0,0,0,112,128,128,112,0,
/* 10100 */ 8,8,8,120,136,136,120,0,
/* 10101 */ 0,0,112,136,248,128,112,0,
/* 10102 */ 0,48,72,224,64,64,64,0,
/* 10103 */ 0,0,56,72,72,56,8,112,
/* 10104 */ 0,128,128,176,200,136,136,0,
/* 10105 */ 0,0,32,0,96,32,112,0,
/* 10106 */ 0,8,0,24,8,8,72,48,
/* 10107 */ 128,128,144,160,192,160,144,0,
/* 10108 */ 32,32,32,32,32,32,32,0,
/* 10109 */ 0,0,0,80,168,168,136,0,
/* 10110 */ 0,0,0,176,200,136,136,0,
/* 10111 */ 0,0,0,112,136,136,112,0,
/* 10112 */ 0,0,112,72,72,112,64,64,
/* 10113 */ 0,96,56,72,72,56,8,8,
/* 10114 */ 0,0,0,176,200,128,128,0,
/* 10115 */ 0,0,96,128,96,16,96,0,
/* 10116 */ 0,0,64,224,64,64,32,0,
/* 10117 */ 0,0,0,144,144,144,104,0,
/* 10118 */ 0,0,0,136,136,80,32,0,
/* 10119 */ 0,0,0,136,168,168,80,0,
/* 10120 */ 0,0,0,72,48,48,72,0,
/* 10121 */ 0,0,136,80,32,64,128,0,
/* 10122 */ 0,0,248,16,32,64,248,0,
/* 10123 */ 16,32,32,64,32,32,16,0,
/* 10124 */ 32,32,32,0,32,32,32,0,
/* 10125 */ 64,32,32,16,32,32,64,0,
/* 10126 */ 108,144,0,0,0,0,0,0,
/* 10127 */ 112,80,80,80,80,80,112,0,
/****************************************************************/
/* These are Douglas Goodall's personal tri-plex semi graphics */
/* 10128 */ 252,128,188,160,172,168,168,168, /* upper left */
/* 10129 */ 252,0,252,0,252,0,0,0, /* top horz */
/* 10130 */ 252,4,244,20,212,84,84,84, /* upper right */
/* 10131 */ 84,84,84,84,84,84,84,84, /* right vert */
/* 10132 */ 84,84,84,212,20,244,4,252, /* lower right */
/* 10133 */ 0,0,0,255,0,255,0,255, /* bottom horz */
/* 10134 */ 168,168,168,172,160,188,128,252, /* lower left */
/* 10135 */ 168,168,168,168,168,168,168,168, /* left vert */
/* 10136 */ 168,168,172,160,172,168,168,168, /* left joint */
/* 10137 */ 84,84,212,20,212,84,84,84, /* right joint */
/* 10138 */ 0,0,252,0,252,0,0,0, /* inner horz */
/****************************************************************/
/****************************************************************/
/* These are Douglas Goodall's personal uni-plex semi graphics */
/* 10139 */ 252,128,128,128,128,128,128,128, /* upper left */
/* 10140 */ 252,0,0,0,0,0,0,0, /* top horz */
/* 10141 */ 252,4,4,4,4,4,4,4, /* upper right */
/* 10142 */ 4,4,4,4,4,4,4,4, /* right vert */
/* 10143 */ 4,4,4,4,4,4,4,252, /* lower right */
/* 10144 */ 0,0,0,0,0,0,0,252, /* bottom horz */
/* 10145 */ 128,128,128,128,128,128,128,252, /* lower left */
/* 10146 */ 128,128,128,128,128,128,128,128, /* left vert */
/* 10147 */ 128,128,128,252,128,128,128,128, /* left joint */
/* 10148 */ 4,4,4,252,4,4,4,4, /* right joint */
/* 10149 */ 0,0,0,252,0,0,0,0, /* inner horz */
/****************************************************************/
/* 10150 */ 0,0,0,0,0,0,0,0,
/* 10151 */ 0,0,0,0,0,0,0,0,
/* 10152 */ 0,0,0,0,0,0,0,0,
/* 10153 */ 0,0,0,0,0,0,0,0,
/* 10154 */ 0,0,0,0,0,0,0,0,
/* 10155 */ 0,0,0,0,0,0,0,0,
/* 10156 */ 0,0,0,0,0,0,0,0,
/* 10157 */ 0,0,0,0,0,0,0,0,
/* 10158 */ 0,0,0,0,0,0,0,0,
/* 10159 */ 0,0,0,0,0,0,0,0,
/* 10160 */ 32,64,240,8,120,136,112,0,
/* 10161 */ 16,32,0,96,32,32,248,0,
/* 10162 */ 16,32,0,112,136,136,112,0,
/* 10163 */ 16,32,0,136,136,136,116,0,
/* 10164 */ 16,32,0,176,200,136,136,0,
/* 10165 */ 16,32,0,200,168,152,136,0,
/* 10166 */ 112,136,136,124,0,252,0,0,
/* 10167 */ 112,136,136,112,0,252,0,0,
/* 10168 */ 32,0,32,32,64,136,112,0,
/* 10169 */ 0,0,0,0,252,128,128,128,
/* 10170 */ 0,0,0,0,252,4,4,4,
/* 10171 */ 136,144,168,84,136,28,0,0,
/* 10172 */ 136,144,168,88,184,8,0,0,
/* 10173 */ 48,0,48,120,120,48,0,0,
/* 10174 */ 20,40,80,160,80,40,20,0,
/* 10175 */ 160,80,40,20,40,80,160,0,
/* 10176 */ 84,170,84,170,84,170,84,170,
/* 10177 */ 170,84,170,84,170,84,170,84,
/* 10178 */ 182,108,218,182,108,218,182,108,
/* 10179 */ 24,24,24,24,24,24,24,24,
/* 10180 */ 24,24,24,24,248,24,24,24,
/* 10181 */ 24,24,24,248,24,248,24,24,
/* 10182 */ 108,108,108,108,236,108,108,108,
/* 10183 */ 0,0,0,0,252,108,108,108,
/* 10184 */ 0,0,0,252,108,236,108,108,
/* 10185 */ 108,108,236,12,236,108,108,108,
/* 10186 */ 108,108,108,108,108,108,108,108,
/* 10187 */ 0,0,252,14,238,108,108,108,
/* 10188 */ 108,108,236,12,252,0,0,0,
/* 10189 */ 100,100,252,0,0,0,0,0,
/* 10190 */ 48,48,240,48,48,240,0,0,
/* 10191 */ 0,0,0,0,240,48,48,48,
/* 10192 */ 48,48,48,48,60,0,0,0,
/* 10193 */ 48,48,48,48,252,0,0,0,
/* 10194 */ 0,0,0,0,252,48,48,48,
/* 10195 */ 48,48,48,48,60,48,48,48,
/* 10196 */ 0,0,0,0,252,0,0,0,
/* 10197 */ 48,48,48,48,252,48,48,48,
/* 10198 */ 48,48,60,48,60,48,48,48,
/* 10199 */ 216,216,220,216,216,216,216,216,
/* 10200 */ 216,216,216,220,192,252,0,0,
/* 10201 */ 0,0,0,252,192,220,216,216,
/* 10202 */ 216,216,216,220,192,0,252,0,
/* 10203 */ 0,0,0,0,0,0,252,0,
/* 10204 */ 216,216,216,220,192,220,216,216,
/* 10205 */ 0,0,0,252,0,252,0,0,
/* 10206 */ 216,216,216,220,0,220,216,216,
/* 10207 */ 48,48,48,252,0,0,252,0,
/* 10208 */ 216,216,216,252,0,0,0,0,
/* 10209 */ 0,0,252,0,0,252,48,48,
/* 10210 */ 0,0,0,0,0,252,216,216,
/* 10211 */ 216,216,216,252,0,0,0,0,
/* 10212 */ 48,48,48,60,48,48,60,0,
/* 10213 */ 0,0,0,62,48,62,48,48,
/* 10214 */ 0,0,0,0,0,252,216,216,
/* 10215 */ 216,216,216,216,220,216,216,216,
/* 10216 */ 48,48,252,0,0,252,48,48,
/* 10217 */ 48,48,48,240,0,0,0,0,
/* 10218 */ 0,0,0,60,48,48,48,48,
/* 10219 */ 252,252,252,252,252,252,252,252,
/* 10220 */ 0,0,0,252,252,252,192,192,
/* 10221 */ 192,192,192,192,192,192,192,192,
/* 10222 */ 12,12,12,12,12,12,12,12,
/* 10223 */ 12,12,12,12,252,252,252,0,
/* 10224 */ 0,0,0,104,144,144,104,0,
/* 10225 */ 112,136,136,176,136,136,240,64,
/* 10226 */ 240,144,128,128,128,128,128,0,
/* 10227 */ 248,80,80,80,80,72,0,0,
/* 10228 */ 248,136,64,32,64,136,248,0,
/* 10229 */ 0,0,0,124,136,136,112,0,
/* 10230 */ 0,0,0,136,136,136,112,128,
/* 10231 */ 0,0,116,152,16,16,28,0,
/* 10232 */ 252,16,56,68,56,16,252,0,
/* 10233 */ 48,204,204,252,204,204,56,0,
/* 10234 */ 120,132,132,132,72,72,132,0,
/* 10235 */ 60,64,56,68,68,68,56,0,
/* 10236 */ 0,0,108,146,146,108,0,0,
/* 10237 */ 0,0,0,56,88,104,112,0,
/* 10238 */ 56,64,128,248,128,64,56,0,
/* 10239 */ 0,0,48,204,204,204,204,0,
/* 10240 */ 252,0,0,252,0,0,252,0,
/* 10241 */ 16,16,124,16,16,0,254,0,
/* 10242 */ 32,16,8,16,32,0,254,0,
/* 10243 */ 16,32,64,32,16,0,254,0,
/* 10244 */ 24,52,48,48,48,48,48,48,
/* 10245 */ 48,48,48,48,48,48,176,112,
/* 10246 */ 48,48,0,252,0,48,48,0,
/* 10247 */ 0,100,152,0,100,152,0,0,
/* 10248 */ 56,68,68,56,0,0,0,0,
/* 10249 */ 0,56,56,0,0,0,0,0,
/* 10250 */ 0,0,56,0,0,0,0,0,
/* 10251 */ 14,8,8,72,40,24,8,0,
/* 10252 */ 0,0,0,176,72,72,72,0,
/* 10253 */ 0,0,240,60,64,128,248,0,
/* 10254 */ 252,252,252,252,252,252,252,252,
/* 10255 */ 0,0,0,0,0,0,0,0
};
/*******************/
/* eof - n8chars.c */
/*******************/


View File

@@ -1,113 +0,0 @@
/* n8chars.h 9/12/2012 dwg - information from TI Docs */
/* http://www1.cs.columbia.edu/~sedwards/papers/TMS9918.pdf */
extern unsigned char charset[256*8];
/*******************/
/* eof - n8chars.h */
/*******************/
0,48,48,48,
/* 10003 */ 48,48,48,60,60,0,0,0,
/* 10004 */ 48,48,48,240,240,0,0,0,
/* 10005 */ 48,48,48,48,48,48,48,48,
/* 10006 */ 0,0,0,255,255,0,0,0,
/* 10007 */ 0,32,112,248,112,32,0,0,
/* 10008 */ 248,216,136,0,136,216,248,0,
/* 10009 */ 0,0,0,0,0,0,0,0,
/* 10010 */ 0,0,0,0,0,0,0,0,
/* 10011 */ 24,24,32,96,144,96,0,0,
/* 10012 */ 32,80,32,32,112,32,0,0,
/* 10013 */ 0,0,0,0,0,0,0,0,
/* 10014 */ 0,0,0,0,0,0,0,0,
/* 10015 */ 168,80,80,216,80,80,168,0,
/* 10016 */ 48,48,48,252,252,48,48,48,
/* 10017 */ 16,48,112,240,112,48,16,0,
/* 10018 */ 32,112,32,32,32,112,32,0,
/* 10019 */ 80,80,80,80,0,80,0,0,
/* 10020 */ 120,168,168,104,40,40,0,0,
/* 10021 */ 48,48,48,252,252,0,0,0,
/* 10022 */ 0,0,0,252,252,48,48,48,
/* 10023 */ 48,48,48,240,240,48,48,48,
/* 10024 */ 32,112,32,32,32,32,32,32,
/* 10025 */ 48,48,48,60,60,48,48,48,
/* 10026 */ 0,16,24,252,24,16,0,0,
/* 10027 */ 0,32,96,252,96,32,0,0,
/* 10028 */ 0,0,0,0,0,0,0,0,
/* 10029 */ 0,0,0,0,0,0,0,0,
/* 10030 */ 0,0,0,0,0,0,0,0,
/* 10031 */ 0,0,0,0,0,0,0,0,
/* 10032 */ 0,0,0,0,0,0,0,0,
/* 10033 */ 48,120,120,48,0,48,0,0,
/* 10034 */ 216,216,80,0,0,0,0,0,
/* 10035 */ 72,72,252,72,72,252,72,72,
/* 10036 */ 32,120,160,120,36,248,32,0,
/* 10037 */ 0,200,208,32,88,152,0,0,
/* 10038 */ 48,72,72,80,96,144,120,0,
/* 10039 */ 48,48,64,0,0,0,0,0,
/* 10040 */ 16,32,32,32,32,32,16,0,
/* 10041 */ 32,16,16,16,16,16,32,0,
/* 10042 */ 32,168,112,248,112,168,32,0,
/* 10043 */ 0,32,32,248,32,32,0,0,
/* 10044 */ 0,0,0,0,0,48,48,64,
/* 10045 0,0,0,252,0,0,0,0, */
/* 10045 */ 0,0,0,112,0,0,0,0,
/* 10046 */ 0,0,0,0,0,48,48,0,
/* 10047 */ 4,8,16,32,64,128,0,0,
/* 10048 */ 112,152,168,168,168,200,112,0,
/* 10049 */ 32,96,32,32,32,32,248,0,
/* 10050 32,80,16,32,64,128,248,0, */
/* 10050 */ 112,136,8,16,96,128,248,0,
/* 10051 */ 112,136,8,112,8,136,112,0,
/* 10052 */ 48,80,144,248,16,16,16,0,
/* 10053 */ 248,128,128,240,8,136,112,0,
/* 10054 */ 56,64,128,240,136,136,112,0,
/* 10055 */ 248,8,16,32,32,32,32,0,
/* 10056 */ 112,136,136,112,136,136,112,0,
/* 10057 */ 112,136,136,120,8,136,112,0,
/* 10058 */ 0,48,48,0,48,48,0,0,
/* 10059 */ 0,48,48,0,48,48,96,0,
/* 10060 */ 16,32,64,128,64,32,16,0,
/* 10061 */ 0,0,252,0,252,0,0,0,
/* 10062 */ 64,32,16,8,16,32,64,0,
/* 10063 */ 112,136,8,48,32,0,32,0,
/* 10064 */ 112,136,184,176,128,128,112,0,
/* 10065 */ 32,80,136,248,136,136,136,0,
/* 10066 */ 240,72,72,112,72,72,240,0,
/* 10067 */ 112,136,128,128,128,136,112,0,
/* 10068 */ 240,72,72,72,72,72,240,0,
/* 10069 */ 248,136,128,224,128,136,248,0,
/* 10070 */ 248,136,128,240,128,128,128,0,
/* 10071 */ 112,136,128,184,136,136,112,0,
/* 10072 */ 136,136,136,248,136,136,136,0,
/* 10073 */ 248,32,32,32,32,32,248,0,
/* 10074 */ 28,8,8,8,8,136,112,0,
/* 10075 */ 136,144,160,192,160,144,136,0,
/* 10076 */ 128,128,128,128,128,136,248,0,
/* 10077 */ 136,216,168,136,136,136,136,0,
/* 10078 */ 136,200,168,168,168,152,136,0,
/* 10079 */ 112,136,136,136,136,136,112,0,
/* 10080 */ 240,136,136,240,128,128,128,0,
/* 10081 */ 112,136,136,136,168,152,120,4,
/* 10082 */ 240,136,136,240,160,144,136,0,
/* 10083 */ 112,136,64,32,16,136,112,0,
/* 10084 */ 248,32,32,32,32,32,112-64-16,0,
/* 10085 */ 136,136,136,136,136,136,112,0,
/* 10086 */ 136,136,136,80,80,80,32,0,
/* 10087 */ 136,136,136,168,168,168,80,0,
/* 10088 */ 136,136,80,32,80,136,136,0,
/* 10089 */ 136,136,80,32,32,32,32,0,
/* 10090 */ 248,136,16,32,64,136,248,0,
/* 10091 */ 120,64,64,64,64,64,120,0,
/* 10092 */ 0,128,64,32,16,8,0,0,
/* 10093 */ 120,8,8,8,8,8,120,0,
/* 10094 */ 32,80,136,0,0,0,0,0,
/* 10095 */ 0,0,0,0,0,0,252,0,
/* 10096 */ 96,96,16,0,0,0,0,0,
/* 10097 */ 0,0,240,8,120,136,112,0,
/* 10098 */ 128,128,128,240,136,136,240,0,
/* 10099 */ 0,0,0,112,128,128,112,0,
/* 10100 */ 8,8,8,120,136,136,120,0,

Some files were not shown because too many files have changed in this diff Show More