Compare commits

...

1355 Commits

Author SHA1 Message Date
Wayne Warthen
fa12858bd3 Minor 2023-03-07 13:08:35 -08:00
Wayne Warthen
2f733ff1aa Merge pull request #322 from b1ackmai1er/dev
DMA updates
2023-03-07 12:39:16 -08:00
b1ackmai1er
ee0369c553 Update dmamon.asm 2023-03-06 17:01:59 +08:00
b1ackmai1er
d17f531d19 Update dmamon.asm 2023-03-06 15:56:44 +08:00
b1ackmai1er
0c4400920c Update dmamon.asm 2023-03-06 15:54:51 +08:00
b1ackmai1er
15b2dcb6b6 Update dbgmon.asm 2023-03-06 15:40:00 +08:00
b1ackmai1er
39f51a9620 Update fdu.doc 2023-03-06 15:32:37 +08:00
b1ackmai1er
632cc0e7db dma updates
Tidy up driver, standardize terminology half/full
Update dmamon so port address is not hardcoded.
2023-03-06 15:26:56 +08:00
Wayne Warthen
f5cb22da8f Minor Cosmetic Cleanup
No functional changes.
2023-03-05 07:10:22 -08:00
Wayne Warthen
7f186df54d Merge pull request #321 from b1ackmai1er/dev
Update dmamon.asm
2023-03-05 07:00:28 -08:00
b1ackmai1er
590f5cff9a Update dmamon.asm
Additional test enhancements
2023-03-05 14:18:04 +08:00
Wayne Warthen
e6908ee259 Merge pull request #320 from b1ackmai1er/dev
Minors
2023-02-26 06:56:45 -08:00
b1ackmai1er
5b7ca9d9e6 Update dmamon.asm
Stripped out all the speed selection stuff added an option for the velesoft datagear.
Speed selection can now be done from the command line. May add it back in later but will use HBIOS function call.
2023-02-26 14:58:32 +08:00
b1ackmai1er
93ac0ba5d0 Update SystemGuide.md
To match hbios
2023-02-26 14:09:49 +08:00
b1ackmai1er
5d3c1e2d4a Update util.asm 2023-02-26 11:42:23 +08:00
b1ackmai1er
f080f5b80a Merge pull request #49 from wwarthen/dev
Config File Fixes
2023-02-26 09:52:19 +08:00
Wayne Warthen
f1382b75ec Config File Fixes
I had accidentally set CRTACT to TRUE in a few standard configs inadvertently.
2023-02-25 12:56:44 -08:00
b1ackmai1er
d175981c71 Merge pull request #48 from wwarthen/dev
Dev
2023-02-24 16:00:37 +08:00
Wayne Warthen
5e42066874 Release Candidate for v3.2 2023-02-23 17:24:07 -08:00
Wayne Warthen
52a41663eb Regen Doc, Bump Version 2023-02-21 14:01:03 -08:00
Wayne Warthen
f0183bdd8a Merge pull request #319 from b1ackmai1er/dev
Update hbios.asm
2023-02-21 13:42:16 -08:00
b1ackmai1er
2398805617 Update HBIOS 2023-02-21 20:44:31 +08:00
b1ackmai1er
08168681b6 Update hbios.asm 2023-02-21 19:37:43 +08:00
b1ackmai1er
fa3874ec45 Update hbios.asm
Device display list improvements
2023-02-20 22:20:33 +08:00
Wayne Warthen
fc634380b0 Merge pull request #317 from b1ackmai1er/dev
vgmplay updates, romldr baud improvements, hbios/cbios low memory handling and other minors
2023-02-19 18:25:52 -08:00
b1ackmai1er
6b84dd36b0 Update vgmplay.asm
Cleanup, move init code so that memory can be reused.
2023-02-19 21:52:11 +08:00
b1ackmai1er
93245434c0 Device display optimizations 2023-02-19 21:47:51 +08:00
b1ackmai1er
06913144f8 Create ay-test.asm
From the archives ...
2023-02-19 18:52:19 +08:00
b1ackmai1er
04947015aa Update config.asm 2023-02-19 15:44:03 +08:00
b1ackmai1er
e7ab778929 Slightly better handling of low HBIOS heap memory
CBIOS reports *** HBIOS Heap Overflow, when the HBIOS is big (i.e. lots of included drivers)

Trigger build failure when CCP will not fit in heap.
Slightly more informative CBIOS error message
2023-02-19 15:42:59 +08:00
b1ackmai1er
147ab2ce4c minors 2023-02-19 13:55:07 +08:00
b1ackmai1er
af2a025cff AY-3-8910 MINORS 2023-02-19 13:06:45 +08:00
b1ackmai1er
2da5ba80ba Merge pull request #47 from wwarthen/dev
Dev
2023-02-19 10:53:10 +08:00
b1ackmai1er
d4700d0cdd Update vgmplay.asm 2023-02-19 10:50:37 +08:00
b1ackmai1er
e2426eff08 Update vgmplay.asm
Resync
2023-02-19 10:47:31 +08:00
Wayne Warthen
2b16617ea3 Fix Missing Files 2023-02-17 19:06:01 -08:00
Wayne Warthen
816234f0fa More Cleanup 2023-02-17 18:07:44 -08:00
b1ackmai1er
d960efdc4d Merge pull request #46 from wwarthen/dev
Dev
2023-02-17 17:57:18 +08:00
Wayne Warthen
bd664c3a1f More Cleanup 2023-02-16 13:59:15 -08:00
Wayne Warthen
dc151ad1a7 Rename PORTSWP -> PORTSCAN 2023-02-16 11:09:05 -08:00
Wayne Warthen
2f3fb51884 More Cleanup
- Tweaks to SURVEY and PORTSWP to improve port detection accuracy and handle Z280 better
- Recover a **lot** of wasted space in dbgmon using a few built-in utility routines instead of entire util.asm
- Improve the (D)evice command in romldr to use the HBIOS routine which is much more complete and saves space
2023-02-15 19:31:05 -08:00
b1ackmai1er
29c7f3a920 Merge pull request #45 from wwarthen/dev
Fix SURVEY.COM (again)
2023-02-15 17:46:24 +08:00
Wayne Warthen
36fe842bec Fix SURVEY.COM (again)
See Issue #316
2023-02-14 18:47:09 -08:00
b1ackmai1er
3a8a503c8e Merge pull request #44 from wwarthen/dev
Dev
2023-02-14 19:12:29 +08:00
Wayne Warthen
73213d4321 Fix Missing Files 2023-02-13 19:53:35 -08:00
Wayne Warthen
7d19d3e403 More Cleanup 2023-02-13 19:32:43 -08:00
Wayne Warthen
c157d52c1d More Cleanup
This check-in includes some refactoring of the configuration files.
2023-02-12 19:26:23 -08:00
Wayne Warthen
3034fb6b5b More Documentation Updates 2023-02-11 19:13:52 -08:00
Wayne Warthen
fee6f29cf0 More Documentation Updates 2023-02-10 20:20:39 -08:00
Wayne Warthen
a531551573 Missing Files 2023-02-10 13:25:21 -08:00
Wayne Warthen
53bdee68d5 Fixed SURVEY Crash on SBC Platform
Hacked to avoid bank switch problem.  See issue #316
2023-02-10 11:31:32 -08:00
Wayne Warthen
0b8cb94cc2 More Documentation Updates 2023-02-09 19:57:27 -08:00
b1ackmai1er
975656ef6f Merge pull request #43 from wwarthen/dev
Dev
2023-02-08 18:59:48 +08:00
Wayne Warthen
ce6622244d More Doc Updates
Mostly formatting cleanup this time.
2023-02-07 19:38:27 -08:00
Wayne Warthen
b649cf19ce Delete Readme.unix 2023-02-07 15:42:48 -08:00
Wayne Warthen
96902ae2bd More Doc Updates 2023-02-07 15:41:39 -08:00
Wayne Warthen
97cb2f1dfc Yet Another Iteration of Documentation Updates 2023-02-06 20:06:25 -08:00
b1ackmai1er
00158b0107 Merge pull request #42 from wwarthen/dev
Continuing Doc Update
2023-02-06 19:27:27 +08:00
Wayne Warthen
146826b142 Continuing Doc Update
Mostly done with User Guide now.
2023-02-05 16:36:23 -08:00
b1ackmai1er
979276e0b5 Merge pull request #41 from wwarthen/dev
Another Iteration of Documentation Updates
2023-01-31 19:38:47 +08:00
Wayne Warthen
0a6009b38f Another Iteration of Documentation Updates
... still a lot left to go.
2023-01-29 17:40:59 -08:00
b1ackmai1er
8656cf992e Merge pull request #40 from wwarthen/dev
First Round of Clean-up for Stable Release
2023-01-29 11:06:48 +08:00
Wayne Warthen
4f48e48a99 First Round of Clean-up for Stable Release
- Restructured documentation and started updates (much more to go)
- Added test app to test HBIOS banking API.
2023-01-27 15:49:32 -08:00
b1ackmai1er
6dac01102d Merge pull request #39 from wwarthen/dev
Update CF Card Detection
2023-01-22 17:51:11 +08:00
Wayne Warthen
cd161067db Update CF Card Detection
In the IDE and PPIDE drivers, a CF Card is differentiated from a Hard Disk using the first word of the result of the IDENTIFY DEVICE command.  The value 0x045A was recently added because it was seen from a CF<->SD Card adapter.  However, the value has now been seen from a spinning hard disk.  Since the value is ambiguous and not defined in the CF Card specs, I am removing it from the list of CF Card signatures.

Credit to Mark Elkin for identifying this and helping me track it down.
2023-01-21 14:56:12 -08:00
b1ackmai1er
a9173c076b Update ReadMe.txt 2023-01-20 00:37:03 +08:00
b1ackmai1er
8ffe53ea68 Merge pull request #38 from wwarthen/dev
Support Serial Keyboard with Video Displays
2023-01-20 00:34:38 +08:00
Wayne Warthen
4d9c93734f Support Serial Keyboard with Video Displays
Added configuration setting VDAEMU_SERKBD which can be used to specify any serial unit # to be used as the keyboard for the video terminal.  Default value is $FF which means to use the default hardware keyboard.  All other values mean that terminal input is to come from corresponding serial unit #.

Also a couple more tweaks to the p-System boot volume.
2023-01-18 14:29:19 -08:00
b1ackmai1er
83ff343186 Merge pull request #37 from wwarthen/dev
Finalize p-System Implementation
2023-01-17 17:05:23 +08:00
Wayne Warthen
71a8b2b177 Finalize p-System Implementation
- Implemented Extended BIOS functions
- p-System slices moved into partition
2023-01-16 15:41:21 -08:00
b1ackmai1er
c51963529d Merge pull request #36 from wwarthen/dev
Introducing p-System IV.0 for RomWBW
2023-01-14 21:54:27 +08:00
Wayne Warthen
979e763739 Introducing p-System IV.0 for RomWBW
A full implementation of UCSD p-System IV.0 for RomWBW.  Derived from the official Z80 Adaptable p-System.

My first real programming was on this system.  So many memories...
2023-01-13 16:58:52 -08:00
b1ackmai1er
834f2d7682 Merge pull request #35 from wwarthen/dev
Audio Driver Cleanup
2023-01-10 21:37:21 +08:00
Wayne Warthen
16475fe408 Audio Driver Cleanup
Resolved some consistency issues between the AY-3-8910 and SN76489 audio drivers.
2023-01-09 16:08:42 -08:00
b1ackmai1er
ec5b19acad Merge pull request #34 from wwarthen/dev
Enable WAIT Signal for 9958 Video
2023-01-09 17:50:09 +08:00
Wayne Warthen
d2e1e5be4b Enable WAIT Signal for 9958 Video
Credit to Alan Cox.  This seems to allow a 9958 video chip to run with a Z180 without added wait states.
2023-01-08 18:41:49 -08:00
b1ackmai1er
3603ef9c9d Update unlzsa2s.asm 2023-01-07 08:02:32 +08:00
b1ackmai1er
3aed60afe2 Merge pull request #33 from wwarthen/dev
Minor IDE/CF/SD Disk Handling Updates
2023-01-06 23:27:14 +08:00
b1ackmai1er
e1e2c2efa9 Update unlzsa2s.asm
ver.07 by spke (04-05/04/2022, 134(-5) bytes, +1% speed, using self-modifying code by default)
2023-01-06 23:24:53 +08:00
b1ackmai1er
55b4e1e26d Use new hbios routine for speed setting. 2023-01-05 20:56:49 +08:00
Wayne Warthen
2271c086b5 Minor IDE/CF/SD Disk Handling Updates
As suggested by Laszlo Szolnoki, I have added an additional CF Card signature to the IDE and PPIDE drivers.  He also pointed out a deficiency in the disk size printing which has been addressed.
2023-01-04 16:24:31 -08:00
b1ackmai1er
cb336c9ba5 Update vgmplay.asm
Reorganize and clarify some configuration settings
2023-01-03 19:50:59 +08:00
b1ackmai1er
ad0a6af047 Update romldr.asm
Rorder table to eliminate need for translation
2023-01-03 19:14:34 +08:00
b1ackmai1er
22afb8333c Merge pull request #32 from wwarthen/dev
Dev
2023-01-02 10:27:44 +08:00
Wayne Warthen
2b4631195a Misc Updates Based on Input from Eluan Miranda
I got a very nice email from Eluan Miranda.  He pointed out a few inconsistencies in the video and audio driver configurations.  I made a few adjustments to clean things up.
2023-01-01 15:26:42 -08:00
Wayne Warthen
d5f0699fc3 Regen Docs and Bump Version 2023-01-01 11:06:39 -08:00
Wayne Warthen
5c84fc6213 Merge pull request #313 from b1ackmai1er/dev
Change romldr to accept a baud rate
2023-01-01 11:02:10 -08:00
b1ackmai1er
d9f11b9f5e ym2612 minors 2022-12-31 21:30:01 +08:00
b1ackmai1er
bb2a68e066 Update romldr.asm 2022-12-31 11:22:34 +08:00
b1ackmai1er
cd426ba6ca Update GettingStarted.md 2022-12-31 10:43:29 +08:00
b1ackmai1er
491bbb68a6 Update romldr.asm 2022-12-31 01:00:06 +08:00
b1ackmai1er
b3bf3e27ee Update romldr.asm 2022-12-30 20:08:28 +08:00
b1ackmai1er
523ce60093 Update GettingStarted.md 2022-12-30 16:38:43 +08:00
b1ackmai1er
3f00cfbfb8 Merge pull request #31 from wwarthen/dev
Dev
2022-12-30 05:08:01 +08:00
Wayne Warthen
2dd9edd8ca Regenerate Docs and Bump Version 2022-12-29 10:14:02 -08:00
Wayne Warthen
6145383a65 Make VGM Names Lowercase (part 2) 2022-12-29 10:07:02 -08:00
Wayne Warthen
c0721a3f85 Make VGM Names Lowercase (part 1) 2022-12-29 10:05:58 -08:00
Wayne Warthen
c10497bd03 Merge pull request #312 from b1ackmai1er/dev
ym2612 driver updates
2022-12-29 09:15:09 -08:00
b1ackmai1er
5b1542e49b Update ym2612.asm 2022-12-29 18:57:50 +08:00
b1ackmai1er
96269a7f45 Update ym2612.asm 2022-12-21 22:53:47 +08:00
b1ackmai1er
bd03277bfe Update ym2612.asm 2022-12-21 05:31:38 +08:00
b1ackmai1er
c072027b87 Preserve registers 2022-12-20 17:19:12 +08:00
b1ackmai1er
e409391f14 Update Scales.asm 2022-12-19 21:54:17 +08:00
b1ackmai1er
030228e9b8 Update ym2612.asm 2022-12-18 22:44:05 +08:00
b1ackmai1er
d584d3d553 rename fm demo program 2022-12-18 21:03:10 +08:00
b1ackmai1er
2049b35ee2 Update ym2612.asm 2022-12-18 20:56:12 +08:00
b1ackmai1er
285bc6611f Update Scales.asm 2022-12-18 20:44:55 +08:00
b1ackmai1er
be8177b8a4 ym26112 driver 2022-12-18 20:41:29 +08:00
Wayne Warthen
9c80db786e Merge pull request #311 from b1ackmai1er/dev
Some vgmplayer updates
2022-12-16 19:29:43 -08:00
b1ackmai1er
d062b4345d Update YM2612.ASM
Tidy up
2022-12-16 22:31:25 +08:00
b1ackmai1er
03bf1527cc Adjust to fit on disk images 2022-12-15 22:02:58 +08:00
b1ackmai1er
38318262e9 reset defaults 2022-12-15 21:36:45 +08:00
b1ackmai1er
eefad65904 Remove tunes
They get copied over in build process. I think this is the right behaviour ?
2022-12-15 21:31:02 +08:00
b1ackmai1er
4d6a922402 Merge pull request #30 from wwarthen/dev
Dev
2022-12-15 21:26:46 +08:00
b1ackmai1er
e32d6e2d5d vgmplay updates
Still not in a terrific state but better
2022-12-15 21:25:56 +08:00
Wayne Warthen
9ea462ef7a Fix ZDE Default Config
Re-enable use of control-K to access menus.
2022-12-14 17:05:35 -08:00
Wayne Warthen
1681e159bd CP/NET update from Douglas Miller
Minor rev, but includes a fix for CPNBOOT.
2022-12-14 15:55:11 -08:00
Wayne Warthen
3b8973fa12 ZDE Updates from Lars Nelson
Lars has corrected some time stamp deficiencies in ZDE 1.6.  It is now v1.8.
2022-12-12 15:27:28 -08:00
b1ackmai1er
ef1989f600 vgm ym2612 updates 2022-12-12 21:41:18 +08:00
b1ackmai1er
023e54a9a8 Merge pull request #29 from wwarthen/dev
User Defined SD Interface
2022-12-12 17:13:16 +08:00
Wayne Warthen
73b0a3d941 User Defined SD Interface
Integrated code from Lanea to allow for an easy way to define a custom SD Card interface.  CSMODE_USR is not yet complete or tested!
2022-12-10 16:58:37 -08:00
b1ackmai1er
f86019a628 Merge pull request #28 from wwarthen/dev
Dev
2022-12-09 20:19:44 +08:00
Wayne Warthen
1839120e9d Update commit.yml 2022-12-06 15:03:01 -08:00
Wayne Warthen
8e110221a3 Update commit.yml 2022-12-06 13:51:45 -08:00
Wayne Warthen
8df7712633 Update commit.yml 2022-12-06 13:39:22 -08:00
b1ackmai1er
149ffb899b Merge pull request #27 from wwarthen/dev
Dev
2022-12-07 05:30:20 +08:00
Wayne Warthen
4f60cd4e57 Update commit.yml 2022-12-06 12:44:11 -08:00
Wayne Warthen
e83e26b6db Merge pull request #310 from b1ackmai1er/dev
ym2612 stub and minors
2022-12-06 11:49:29 -08:00
b1ackmai1er
4cd533117f ym2612 updates 2022-12-06 20:18:19 +08:00
b1ackmai1er
20cab617c7 Update SBC_std.asm 2022-12-06 13:40:36 +08:00
b1ackmai1er
323cfec931 Update hbios.asm 2022-12-06 13:38:11 +08:00
b1ackmai1er
ced09b2b95 Update ctc.asm 2022-12-06 13:15:29 +08:00
b1ackmai1er
93f8c67f9f Missing part 2022-12-03 07:10:51 +08:00
b1ackmai1er
999849c62b Alternate debug standardization method 2022-12-02 21:36:36 +08:00
b1ackmai1er
4babc51588 minors 2022-12-01 20:28:35 +08:00
b1ackmai1er
44ccc167ff Revert debug 2022-12-01 20:24:24 +08:00
b1ackmai1er
eae8295811 revert debug 2022-12-01 20:12:41 +08:00
b1ackmai1er
c76cb6737e revert debug_drv 2022-12-01 19:47:03 +08:00
b1ackmai1er
af723c5370 Update ym2612.asm 2022-11-26 21:40:22 +08:00
b1ackmai1er
57e4ed476c ym2612 fixups 2022-11-26 20:57:21 +08:00
b1ackmai1er
167c10fafc ctc debug updated 2022-11-26 19:43:40 +08:00
b1ackmai1er
6d1a9f5b7c Driver debug standardization 2022-11-26 16:03:09 +08:00
b1ackmai1er
bd0bb94c52 fixup incorrect commit 2022-11-26 14:34:24 +08:00
b1ackmai1er
e1a833b1a8 fixup incorrect commit 2022-11-26 14:32:33 +08:00
b1ackmai1er
7bd6df1e99 ym2612 config changes 2022-11-26 14:27:47 +08:00
b1ackmai1er
d3fcf8cea2 Update dsky.asm 2022-11-26 14:07:51 +08:00
b1ackmai1er
c7eb82e4dd Update hbios.asm 2022-11-26 14:04:45 +08:00
b1ackmai1er
20d07ded7b minor 2022-11-26 13:57:53 +08:00
b1ackmai1er
fc57ca4a68 ym2612 stub and hbios driver loading code cosmetics 2022-11-26 13:26:04 +08:00
b1ackmai1er
444c57fdfb Update ctc.asm 2022-11-12 22:13:46 +08:00
b1ackmai1er
ca61f340db Merge pull request #25 from wwarthen/dev
Dev
2022-11-09 17:32:56 +08:00
Wayne Warthen
601ac66762 Update commit.yml
Add also github-slug-action.
2022-11-08 16:29:11 -08:00
Wayne Warthen
c204110a6f Update commit.yml
Also explicit version for actions/upload-artifact.
2022-11-08 16:25:16 -08:00
Wayne Warthen
e8d0eedc2b Update commit.yml
Need to use explicit version for actions/checkout apparently.
2022-11-08 16:22:49 -08:00
Wayne Warthen
7b55b8ba86 Update commit.yml
Use "latest" version of all actions.
2022-11-08 16:16:19 -08:00
Wayne Warthen
069aa2b5be Merge pull request #306 from b1ackmai1er/dev
SYSCHK changes
2022-11-08 15:40:13 -08:00
b1ackmai1er
eeff03c7aa diag led fixups 2022-11-08 02:35:55 +08:00
b1ackmai1er
791fcea466 Different diag progress bar options 2022-11-07 20:56:09 +08:00
b1ackmai1er
f56c9007bb Update simrtc.asm 2022-11-07 17:32:04 +08:00
b1ackmai1er
360ba5ca95 Update Architecture.md 2022-11-06 20:25:49 +08:00
b1ackmai1er
7adf2038f1 Update hbios.asm 2022-11-06 20:21:53 +08:00
b1ackmai1er
a77744d8e6 Move diaglvl to config files 2022-11-06 19:57:02 +08:00
b1ackmai1er
dd47283fda minors 2022-11-06 18:24:32 +08:00
b1ackmai1er
5cc85e0444 Update Architecture.md
To reflect changes to syschk routine
2022-11-06 17:44:26 +08:00
b1ackmai1er
6e51070590 SYSCHK driver syncing 2022-11-06 11:18:05 +08:00
b1ackmai1er
a7853fe6d0 SYSCHK driver syncing 2022-11-06 11:12:14 +08:00
b1ackmai1er
590dcd0b4f SYSCHK driver syncing 2022-11-06 10:46:46 +08:00
b1ackmai1er
e25107309b SYSCHK changes
Display the error code of syschk enabled
2022-11-06 10:17:28 +08:00
b1ackmai1er
def29c7668 Merge pull request #24 from wwarthen/dev
Dev
2022-11-06 07:54:25 +08:00
Wayne Warthen
0c92c69ed8 Regenerate Documentation
Regenerated documentation to pick up Phil's updates.
2022-11-05 16:47:11 -07:00
Wayne Warthen
54ce18bb75 Merge pull request #305 from b1ackmai1er/dev
Notes about flash file system
2022-11-05 16:41:32 -07:00
b1ackmai1er
0ebde397fa Description of DIAG options 2022-11-05 21:45:33 +08:00
b1ackmai1er
8bf93619a0 Update Architecture.md
Errors and diagnostics - is this something you would be interested in including and expanding on?
2022-11-05 09:11:37 +08:00
b1ackmai1er
2727c02c56 Merge pull request #23 from wwarthen/dev
Merge pull request #304 from b1ackmai1er/dev
2022-11-05 08:08:58 +08:00
b1ackmai1er
d6ac15df40 Notes about flash file system 2022-11-05 08:04:38 +08:00
Wayne Warthen
c2a6c7fa22 Merge pull request #304 from b1ackmai1er/dev
Minors
2022-11-04 16:45:27 -07:00
b1ackmai1er
a742e5016e Attempt fix overlapping header 2022-11-05 07:42:05 +08:00
b1ackmai1er
248ef0e1b4 forth doc updates 2022-11-05 07:27:08 +08:00
b1ackmai1er
19101fda39 Minors 2022-11-05 07:17:31 +08:00
b1ackmai1er
9d1cfd4a22 Merge pull request #22 from wwarthen/dev
Sync DOS65
2022-11-02 22:19:22 +08:00
Wayne Warthen
cb20784685 Sync DOS65
- Update DOS65 disk image with latest binaries from Dan Werner
2022-09-13 19:36:45 -07:00
b1ackmai1er
66d524c096 Merge pull request #21 from wwarthen/dev
Dev
2022-07-27 17:20:26 +08:00
Wayne Warthen
aceef15481 Support DS1501 RTC
jpelletier provided a DS1501 RTC driver.  This commit integrates the driver into HBIOS.
2022-07-24 16:46:59 -07:00
Wayne Warthen
d4ca3de40f Update Makefile
When making ZCPR-D&J, also make the "demo" version.
2022-07-24 15:32:05 -07:00
Wayne Warthen
f0def03d0e ZCPR-D&J Fixes
Lars Nelson found a couple issues with ZCPR-D&J and provided an update:

- Buffer overflow
- Failure of default drive/user
2022-07-24 15:10:28 -07:00
b1ackmai1er
b2b070232d Merge pull request #20 from wwarthen/dev
Minor Tweaks to Build Process
2022-07-14 08:21:32 +08:00
Wayne Warthen
27935123cf Minor Tweaks to Build Process 2022-07-12 16:35:24 -07:00
b1ackmai1er
d40c6be60d Merge pull request #19 from wwarthen/dev
Dev
2022-07-11 20:59:47 +08:00
Wayne Warthen
aa93eb62f2 Refresh Documentation 2022-07-09 15:21:45 -07:00
Wayne Warthen
94c32c9fd0 Mostly Build Improvements
- ROMSIZE is now a configuration variable instead of a command line parameter.
- Added CP/M license information based on new email from Bryan Sparks.
2022-07-09 14:00:53 -07:00
Wayne Warthen
3b0951f6d5 MFPIC I/O Base Update
- Update MFPIC related I/O ports from $4x to $1x.  The default base address was changed to avoid conflicting with the default I/O range of $40-$7F on ECB Z180 boards.
2022-07-08 13:51:30 -07:00
Wayne Warthen
4385efb0f7 Unix Build Tweaks
Small stuff.  Mostly just gets the make diff mechanism working again.  Not sure if anyone actually uses it though.
2022-07-08 10:35:17 -07:00
Wayne Warthen
d241db5c11 Makefile Improvements
The clobber target has been removed and the clean target now does what most people would expect (actually cleans the entire build tree).
2022-07-06 16:39:03 -07:00
b1ackmai1er
d9a3a5086c Merge pull request #18 from wwarthen/dev
Dev
2022-07-04 19:39:16 +08:00
Wayne Warthen
0c61385df4 RomDsk Makefile Compatibility Improvement
Laszlo reported that the Unix make system was failing on openSuse Linux.  Turns out that it did not like the syntax in one line of the Makefile in the RomDsk directory.  This small change eliminates the incompatibility.
2022-07-03 15:21:30 -07:00
Wayne Warthen
cf142b3a91 Merge pull request #293 from b1ackmai1er/dev
vgmplay prelim ym2151 support + ym2612 mute
2022-07-02 19:27:25 -07:00
Wayne Warthen
9a503696c8 Improve CF Card Identification
Added additional CF Card signatures.  Credit to
Laszlo Szolnoki.
2022-07-02 19:25:06 -07:00
b1ackmai1er
bfdfd83f2a Update vgmplay.asm 2022-07-02 22:03:32 +08:00
b1ackmai1er
95f8c35c36 vgmplay prelim ym2151 support + ym2612 mute 2022-07-02 22:01:49 +08:00
b1ackmai1er
c065af147a Merge pull request #17 from wwarthen/dev
Dev
2022-06-28 21:39:45 +08:00
Wayne Warthen
11ea0c8c27 Add Speaker Beep
Added a generic routine in HBIOS to play a beep sound on the first available sound device.  Implemented the beep in the ANSI and TTY terminal emulators.
2022-06-27 15:35:54 -07:00
Wayne Warthen
dbea21fadd Correct Missing Config Entries for LPT Driver
Credit to Rodney Knapp for identifying this.
2022-06-27 13:11:27 -07:00
b1ackmai1er
4d5f2ab219 Merge pull request #16 from wwarthen/dev
Dev
2022-06-27 20:46:56 +08:00
Wayne Warthen
b82ff327cf CBIOS Fixes for UNA
Development in the dev branch on CBIOS had broken basic UNA functionality.  These fixes seem to correct the problems.  A full regression test of UNA has **not** yet been performed.
2022-06-26 16:54:46 -07:00
Wayne Warthen
44b17ccc3a Improve Centronics Compatibility
- Renamed Centronics driver from "CEN" to "LPT" based on input that LPT is the more recognized name for IBM compatible Centronics interfaces.
- Modified LPT hardware detection to be more generic (no longer depends on MBC-specific hardware implementation).
- Fix to CPU speed display for SBC v2 (004 and above) speed selection mechanism.
2022-06-26 14:25:32 -07:00
Wayne Warthen
b2e1294452 Correct AY38910 Off By 1 Octave Issue
I think this update corrects a long-standing issue in which the AY38910 driver played notes off by one octave.
2022-06-20 20:07:06 -07:00
b1ackmai1er
23a10343ca Merge pull request #15 from wwarthen/dev
Dev
2022-06-18 12:58:19 +08:00
Wayne Warthen
5805f13a62 Add Utilities to DOS65 Disk Image 2022-06-17 11:13:11 -07:00
Wayne Warthen
d39f0201f4 Bootable QP/M Disk
- Put a preconfigured image of QP/M on the system tracks of the QP/M disk images.
- Minor adjustment to dbgmon.asm for compatibility with UNA.
2022-06-17 10:25:48 -07:00
Wayne Warthen
94cf9a209e Merge pull request #290 from b1ackmai1er/dev
Build fixup (rtcdefval), recovery mode message, fixup for 3 sound devices
2022-06-17 10:21:29 -07:00
b1ackmai1er
691842c1bc Fix default 2022-06-17 21:49:08 +08:00
b1ackmai1er
eb255e7016 Add bank unset. Fix xmodem transfer bios call 2022-06-17 21:37:23 +08:00
b1ackmai1er
fe19472a2c Fixup restore of rtcval in ay-3-8910 driver 2022-06-17 18:39:18 +08:00
b1ackmai1er
526a1a5d33 Fixup restore of rtcval in ay-3-8910 driver 2022-06-17 18:35:46 +08:00
b1ackmai1er
719c993a60 MBC6502 support in dbgmon
Add an option in the monitor to switch to MBC6502. Excluded by default.
2022-06-17 18:30:35 +08:00
b1ackmai1er
70697a762c Merge pull request #14 from wwarthen/dev
Dev
2022-06-15 21:42:34 +08:00
Wayne Warthen
a62f5805ca Add BOOT_DELAY Configuration Variable
Some systems use terminal devices (Raspberry Pi, etc.) that take a few seconds to be ready to display console text.  The BOOT_DELAY setting can be used to introduce an arbitrary delay (in seconds) in the boot process just prior to text output.  This can be used to avoid missing some of the boot messages.
2022-06-09 15:36:36 -07:00
Wayne Warthen
87a6701464 Refresh DOS65 Disk Contents
- Updated DOS65 disk contents with latest binaries from Dan Werner.
2022-06-04 19:43:31 -07:00
Wayne Warthen
3f3a13bff6 Add QP/M Disk Image & Miscellaneous
- Minimal support for QP/M by adding a disk image.
- Disk image is not included in combo image, it must be added separately.
- Disk image boots into CP/M 2.2.  You must run QINSTALL to configure it and make the disk boot into QP/M.
- It is critical to review the ReadMe.txt file -- default QP/M configuration conflicts with RomWBW use of Page Zero.
- Added some stack space to SYSGEN.  It was failing when run with extra CBIOS debugging enabled.
- Cleanup of diskdefs file.
- Updated SIMH executable.
2022-06-04 19:21:35 -07:00
Wayne Warthen
982906757e Support QP/M TIMDAT Routine
QP/M is a CP/M 2.2 replacement for BDOS/CCP.  However, it adds it's own concept of date/time stamping.  Support for the QP/M date/time routine has been added.  You can configure QP/M to find the vector at address 0x0010.

A sidenote on QP/M.  By default, it uses 2 bytes at address 0x0008 to store the current drive/user.  This will conflict with RomWBW's use of RST 08 for API function calls.  I recommend using address 0x000E when configuring QP/M for the location of the current drive/user.
2022-06-02 13:05:42 -07:00
b1ackmai1er
c1412ee755 Fix boot failure with three sound devices 2022-06-01 19:19:56 +08:00
b1ackmai1er
e974a4a960 Recovery mode message, ay-3-8910 build fix 2022-05-31 21:06:02 +08:00
b1ackmai1er
0549cdcb36 Merge pull request #13 from wwarthen/dev
Dev
2022-05-17 21:02:36 +08:00
Wayne Warthen
0e32dd58fa Update version files
- Missed the version files in prior check-in
2022-05-14 12:54:56 -07:00
Wayne Warthen
69b54a000c Miscellaneous
- Bump version number
- Propagate config comments
2022-05-14 12:38:36 -07:00
Wayne Warthen
0d8b04ffa6 Merge pull request #289 from danwerner21/dev
Driver code for MBC VDP cards
2022-05-14 11:56:49 -07:00
danwerner21
9251f44dec Merge pull request #1 from danwerner21/dev_ddw_tms
Dev ddw tms
2022-05-14 12:09:46 -05:00
Dan Werner
fde0c285d2 MBC TMS updates 2022-05-14 12:06:49 -05:00
Dan Werner
44467f4725 MBC TMS updates 2022-05-14 11:23:55 -05:00
Dan Werner
0767a2ceff MBC TMS updates 2022-05-13 15:29:39 -05:00
Dan Werner
9b27118a3b MBC TMS updates 2022-05-13 13:25:04 -05:00
Wayne Warthen
b98ee17e14 Plumbing for uPD7220 GDC Driver 2022-04-04 11:54:34 -07:00
b1ackmai1er
c046f0365c Merge pull request #12 from wwarthen/dev
Dev
2022-04-04 20:35:39 +08:00
Wayne Warthen
16390d3159 Update ps2info.asm
- The prtchr routine was not saving and restoring the AF register.  This was fixed.
2022-04-02 16:35:21 -07:00
Wayne Warthen
1b34dc0941 Update ps2info.asm
- Updated PS2INFO to run tests individually via a menu.
2022-04-01 10:37:32 -07:00
Wayne Warthen
4a88e0bcae Improve Z180 Variant Handling
- There were several places that RomWBW was making incorrect assumptions about what the older Z180 CPUs could do.  These have been corrected.
2022-03-31 13:30:52 -07:00
Wayne Warthen
1e52a0b7f3 Add RPH Support to PS2INFO
- PS2INFO now provides a small startup menu to select either MBC or RHYOPHYRE (needs to be expanded to other platforms).
- Battery condition testing enabled by default in RHYOPHYRE.
- Z180 system timer enabled by default in RHYOPHYRE.
- Default ACR in RHYOPHYRE now turns on the status LED to indicate hardware is alive early in boot process.
2022-03-28 16:43:07 -07:00
Wayne Warthen
f6d0e7fea4 Initial RHYOPHYRE Support 2022-03-27 13:23:37 -07:00
b1ackmai1er
4af5d457eb Merge pull request #11 from wwarthen/dev
Dev
2022-03-27 17:47:27 +08:00
Wayne Warthen
e804326d54 Merge pull request #287 from danwerner21/dev
Update Centronics driver for Nhyodyne
2022-03-26 13:05:55 -07:00
Dan Werner
5b9e9ba6bf Update Centronics driver for Nhyodyne 2022-03-26 14:00:56 -05:00
Wayne Warthen
4f25cf1366 Miscellaneous
- Add hardware detect and initialization code to Centronics driver.
- Fix .gitignore to reflect subdirectory name changes under Tools/cpm/.
- Bump version number in TUNE to reflect Dan's changes.
- Detect Centronics hardware in MBC configuration by default.
2022-03-25 15:48:06 -07:00
Wayne Warthen
170ac7d9e8 Prep for Centronics Driver
- Added Centronics Driver shell
2022-03-25 11:15:36 -07:00
Wayne Warthen
eb208d735b Add License and Code of Conduct Files 2022-03-25 09:06:52 -07:00
Wayne Warthen
0efd08539e Fix Interrupt Management in CBIOS Initialization
There was a path through CBIOS initialization where interrupts were left disabled.  This only became apparent in the new "romless" configuration.
2022-03-23 14:52:49 -07:00
b1ackmai1er
291017f1a9 Merge pull request #10 from wwarthen/dev
Dev
2022-03-23 05:58:08 +08:00
Wayne Warthen
7549789248 Finalize ROM-Less Booting 2022-03-21 16:20:52 -07:00
Wayne Warthen
5d81574226 Preliminary Support for ROMless Booting 2022-03-20 19:53:32 -07:00
Wayne Warthen
9ccbbbd475 Merge pull request #284 from danwerner21/dev
Nhyodyne Sound Support
2022-03-20 11:13:07 -07:00
Dan Werner
f6285a8e6a Nhyodyne Sound Support 2022-03-20 11:12:12 -05:00
Wayne Warthen
9f3c9e180d Add PIO Driver
- Just a stub that detects and initializes the hardware.
2022-03-18 16:22:08 -07:00
Wayne Warthen
97bc3ba3b5 Add PIOMON 2022-03-17 20:16:29 -07:00
Wayne Warthen
8e414a3efc DMAMON Enhancements
- Added interrupt testing to DMAMON
- Updated FIND to latest
2022-03-14 10:46:11 -07:00
Wayne Warthen
a0d437357e Fix Build
I had updated SLR180.  The newer version switched the default file extension it looks for from .180 to .z80.  Changed filenames and build/make files to adjust to this.
2022-03-02 19:23:05 -08:00
Wayne Warthen
0b0b3611bb Housekeeping
- Minor updates to a few redistributed CP/M binary files.
2022-03-02 18:49:47 -08:00
Wayne Warthen
dd22c54f32 Minor ZXCC Updates
- Added a missing call to trackFile.
- Corrected close functions in track.c to properly handle WIN32 variant.
2022-03-02 16:02:37 -08:00
Wayne Warthen
4e153a2bc1 Add DOS/65 Boot Disk Image 2022-02-28 14:25:28 -08:00
Wayne Warthen
51d9bdb655 Minor ASSIGN Fixes, Add 2PIOTST
- Improved ASSIGN operation under CP/M 3 to better handle BIOS function invocations
- Added 2PIOTST for testing the DUALPIO MBC board
- Increased default RAM drive size for ZRC
2022-02-28 10:54:59 -08:00
Wayne Warthen
25374946e0 Update std.asm
Fix UNA build.
2022-02-18 17:54:12 -08:00
Wayne Warthen
689f8a2280 Update Makefile
Try to fix MacOS build.
2022-02-18 17:08:13 -08:00
Wayne Warthen
36b160f934 Minor Cosmetic Cleanup
Primarily fixed the Z280 config files to display the correct CPU speed in boot messages.
2022-02-18 16:36:14 -08:00
Wayne Warthen
bf965c2604 Minor Z280 Fixes
- Fixed the ROM VERIFY functionality on Z280.  It was indicating errors incorrectly.
- Revised the way that ZZRCC is built to remove a bunch of complexity that was causing issues.  An implication of this is that ZZRCC now treats the data loaded from the CF Card as a ROM disk instead of a RAM disk.
- Updated the assemblers to handle some more Z280 instructions used in HBIOS.
- When building ZZRCC, checks have been added to ensure the ROM image is exactly 256K.  The build defaults to 512K and that causes the ZZRCC disk image to be corrupted.  This will stop the build if the user fails to specify a 256K ROM size.
2022-02-17 11:34:31 -08:00
Wayne Warthen
e6b9d2dcfd Improve Z280 DMA Memory Copy
The Z280 interbank memory copy uses DMA and did not properly handle scenarios where the source or destination memory range crossed over the banked/common memory boundary.  It added a bunch of code, but it is fixed now.  This seems to be required by CP/M 3.
2022-02-15 15:20:33 -08:00
Wayne Warthen
33afeac10d Fix ZXCC Build Under MacOS
- Adding missing include directive.
2022-02-14 13:59:41 -08:00
Wayne Warthen
2c0b818aba ZXCC Cleanup
- I know I said I was done, but I found some more stuff to clean up.  I think I am really done now.
2022-02-14 13:36:06 -08:00
Wayne Warthen
c5043d66f9 Final ZXCC Cleanup
Honestly, ZXCC still deserves a lot of refactoring, but this will need to do for now.
2022-02-10 18:21:57 -08:00
Wayne Warthen
1b8e88e1a2 Update zxcbdos.c 2022-02-10 17:41:44 -08:00
Wayne Warthen
d599a3d57b Update config.h.darwin 2022-02-10 17:33:02 -08:00
Wayne Warthen
461d1ce512 Update config.h.darwin 2022-02-10 17:23:24 -08:00
Wayne Warthen
8c9ce2184e ZXCC Sync
- Attempting to sync ZXCC with latest source in repository by Tony Nicholson.  Generally a failure, but it is closer.
2022-02-10 16:51:33 -08:00
Wayne Warthen
e5b1d5afc8 Update Readme.unix 2022-02-08 10:07:01 -08:00
Wayne Warthen
214ed54584 Miscellaneous
- Fix build under Windows (credit to Dean Netherton for finding this).
- Fix ReadMe.md file format to remove superfluous junk at top.
- Improve RAM size detection (work in progress, not part of normal build).
2022-02-05 11:54:46 -08:00
Wayne Warthen
97aa0aae9f Bug Fix
Fixed a small issue in the boot management of the CPU speed for MBC and SBC platforms.
2022-02-02 17:39:36 -08:00
Wayne Warthen
92399fe537 More CPUSPD Tweaks
I know I said I was done, but I found a few more things I decided to tweak.  Functionality is unchanged.
2022-02-02 17:08:55 -08:00
Wayne Warthen
b6aa769f12 Finalize CPUSPD
The CPUSPD app is now considered stable and fully supported.  I have added the application and the API's to the documentation.
2022-02-01 17:42:31 -08:00
Wayne Warthen
21a38aed6e CPU Speed Change API
- Moved the CPU speed changing mechanism into the HBIOS as an API call.
- Added support for CPU speed changing on Z180 platforms.
2022-01-26 18:10:18 -08:00
Wayne Warthen
48c5f4da9d Cleanups and CPUSPD App
- Added very preliminary CPUSPD app which works only on MBC and SBC
- HBIOS initialization code cleanup
- Prep work on RAM size detection
2022-01-25 16:35:59 -08:00
Wayne Warthen
7b46b1a89b Update ZMRX/ZMTX
Update ZMTX/ZMRX to version 1.1
2022-01-23 11:49:44 -08:00
Wayne Warthen
85adb811bb Add CTC Hardware Detection 2022-01-22 17:15:07 -08:00
Wayne Warthen
79dc868e6e Support MBC CTCDART Board 2022-01-22 14:40:17 -08:00
Wayne Warthen
52cd458e76 Add PS2INFO
- Replaced kbdinfo with more comprehensive ps2info
- Started process of clarifying licensing
2022-01-07 14:06:15 -08:00
b1ackmai1er
59c523c575 Merge pull request #9 from wwarthen/dev
Miscellaneous Cleanup
2022-01-04 18:56:11 +08:00
Wayne Warthen
e0a0036aa0 Miscellaneous Cleanup
- Add MSEINFO from Andrew Lyncgh
- Update KBDTEST from Andrew Lynch
- Cleanup VGM build process
2022-01-03 10:52:20 -08:00
b1ackmai1er
4d3640caaa Merge pull request #8 from wwarthen/dev
Dev
2021-12-26 18:32:32 +08:00
Wayne Warthen
f4ab972e3a Update kbdinfo.asm
Final round of updates to KBDINFO.  Done with it for now unless there are issues.
2021-12-23 09:59:14 -08:00
Wayne Warthen
e698cd9a4a Keyboard Utilities
- Added KBDINFO which dumps low level info about keyboards.
- Updated KBDTEST and VDCTEST to put the keyboard controller into translation mode which is what these programs were intended to use.
2021-12-21 14:44:07 -08:00
Wayne Warthen
99f4e174ad CVDU CGA Tweaks
- Correct cursor setup so it is visible
- Correct attribute start position
- Added ZDE.DOC file
2021-12-15 15:58:11 -08:00
Wayne Warthen
476fe84570 Fix .gitignore
- .gitignore was blocking vdctest font.asm file from being checked in.
2021-12-14 16:33:33 -08:00
Wayne Warthen
6ac68029e4 VDC Test Programs
- Add kbdtest, cvdtest, and cvdonly test programs.  They apply to MBC platform only.
- Display more boot info in CVDU and KBD drivers.
- Separate floppy and hard disk content definition files.
2021-12-14 16:02:23 -08:00
b1ackmai1er
d02fe9d8df Merge pull request #7 from wwarthen/dev
Dev
2021-12-11 09:17:58 +08:00
Wayne Warthen
4d3e08fe38 Fix .gitignore 2021-12-10 16:43:00 -08:00
Wayne Warthen
e8ecdd0fac Support MBC VDC 2021-12-10 16:34:15 -08:00
b1ackmai1er
bc04d5ecb9 Merge pull request #6 from wwarthen/dev
ZPM3 Fixes
2021-12-09 16:45:36 +08:00
Wayne Warthen
da71f225ca ZPM3 Fixes
- Fixes to ZPMLDR to make it functional with RomWBW.
- Incorporate fixes from the Jon Saxton disassembly in ZPM3 itself.
- Credit to Lars Nelson for finding the ZPM3 source (disassembly).
2021-12-08 17:04:03 -08:00
b1ackmai1er
5439a12fe8 Merge pull request #5 from wwarthen/dev
Dev
2021-12-09 00:35:01 +08:00
Wayne Warthen
ca67ee41c5 Fix CBIOS Bug
- Corrects the dynamic disk buffer allocation routine in CBIOS and ASSIGN.COM.  They had the DPB assignments inverted causing slightly wrong buffer allocations for RAM and ROM disks.

Credit to Andrew Lynch for discovering this issue.
2021-12-06 13:22:27 -08:00
Wayne Warthen
a29139dccb Merge pull request #279 from b1ackmai1er/dev
VGMPLAY cosmetic cleanup
2021-11-30 16:25:58 -07:00
b1ackmai1er
ca30732f31 Update VGMPLAY.ASM
Only mute devices we have accessed
2021-11-28 22:08:09 +08:00
b1ackmai1er
8f1b6bb402 Update VGMPLAY.ASM
Add unknow device message
2021-11-28 10:41:23 +08:00
b1ackmai1er
b5a7c08fde Merge branch 'dev' of https://github.com/b1ackmai1er/RomWBW into dev 2021-11-28 10:19:22 +08:00
b1ackmai1er
8a54b391f3 Update VGMPLAY.ASM
optimization
2021-11-28 10:18:13 +08:00
b1ackmai1er
7911ffa835 Merge pull request #4 from wwarthen/dev
Merge pull request #278 from b1ackmai1er/dev
2021-11-28 07:45:15 +08:00
b1ackmai1er
48532231c9 Update VGMPLAY.ASM
Cosmetic cleanup
2021-11-28 07:44:10 +08:00
Wayne Warthen
9e3787b0a3 Merge pull request #278 from b1ackmai1er/dev
VGMPLAY Updates
2021-11-27 14:57:02 -08:00
b1ackmai1er
32005942e4 Update VGMPLAY.ASM 2021-11-27 22:28:23 +08:00
b1ackmai1er
a00a42b244 Update VGMPLAY.ASM
Assume default file name VGM, basic memory protection for large files
2021-11-27 19:16:04 +08:00
b1ackmai1er
288dd99f44 Merge pull request #3 from wwarthen/dev
Dev
2021-11-24 21:00:45 +08:00
Wayne Warthen
ed981de47a Update Makefile
- Minor correction to remove .LST file in clean.
2021-11-23 13:26:01 -08:00
Wayne Warthen
3b345f8525 Add Linux Disk Imaging Doc 2021-11-23 13:14:04 -08:00
Wayne Warthen
6d9aa9b676 Merge pull request #277 from b1ackmai1er/dev
Separate VGMPLAY into its own directory. Minor VGMPLAY updates
2021-11-23 13:57:05 -07:00
b1ackmai1er
ad8aa4a4a2 VGMPLAY updates 2021-11-23 20:54:17 +08:00
b1ackmai1er
1fe9fda31e Merge pull request #2 from wwarthen/dev
DMA Driver Speed Handling
2021-11-18 17:24:58 +08:00
Wayne Warthen
dd3dfff172 DMA Driver Speed Handling
- Updated DMA driver to leave system speed as it originally found it.
2021-11-17 14:01:26 -08:00
b1ackmai1er
336a3d5c81 Merge pull request #1 from wwarthen/dev
Dev
2021-11-14 20:44:03 +08:00
Wayne Warthen
c0af840fc1 Removing extraneous .VGM files 2021-11-10 11:17:54 -08:00
Wayne Warthen
4484d7f377 Merge pull request #276 from b1ackmai1er/dev
Impossibility Loop
2021-11-10 12:14:06 -07:00
b1ackmai1er
12b135a3db Fix Tunes Impossibility loop 2021-11-10 20:30:20 +08:00
b1ackmai1er
97e83e6fc5 Merge pull request #251 from wwarthen/dev
Dev
2021-11-10 19:39:16 +08:00
Wayne Warthen
891893c0e5 Fix DSD Driver
- Dual SD support in sd.asm was broken for two cards when the SC126 dual SD card support was added.  This should fix all scenarios.
2021-11-09 20:25:38 -08:00
Wayne Warthen
e15a1cb972 Merge branch 'dev' of https://github.com/wwarthen/RomWBW into dev 2021-11-09 18:07:14 -08:00
Wayne Warthen
d79adf24ba Add ZMTX-ZMRX
- Preliminary but functional ZModem send/receive.
2021-11-09 18:07:07 -08:00
b1ackmai1er
5998d66dc8 Early VGM Player implementation 2021-11-08 23:38:12 +08:00
b1ackmai1er
63e937314b Add VGM examples 2021-11-08 22:49:32 +08:00
b1ackmai1er
769a02829a sn76489 updates for ecb-vgm board 2021-11-08 22:08:26 +08:00
Wayne Warthen
513ff0b81e Merge pull request #274 from b1ackmai1er/dev
Update rz.asm
2021-11-04 09:04:07 -07:00
b1ackmai1er
47d2b3a1f1 Update rz.asm 2021-11-04 23:11:39 +08:00
b1ackmai1er
0d37a32d5c Merge pull request #250 from wwarthen/dev
Dev
2021-11-04 22:02:01 +08:00
Wayne Warthen
d5962681f1 UART Driver Update
- Some newer/multi-port UART chips now use MCR:3 to activate the interrupt pin(s), otherwise tri-state.  This update sets MCR:3 in all cases.
- Added UARTDUAL config variable that enables detection of a dual UART chip at 0x80 for MBC platform.
- Fixed a typo in TastyBasic Build script.
2021-11-03 15:28:59 -07:00
Wayne Warthen
662b679fdc Merge pull request #273 from b1ackmai1er/dev
Update rz.asm
2021-11-03 15:19:01 -07:00
b1ackmai1er
8d92e0f8c9 Merge pull request #249 from wwarthen/dev
Dev
2021-11-04 05:54:26 +08:00
b1ackmai1er
13dea5090a Update rz.asm 2021-11-03 17:06:12 +08:00
b1ackmai1er
ca14d29a62 Update rz.asm 2021-11-02 19:53:25 +08:00
Wayne Warthen
b544384225 Sync Windows Build
- Latest changes to Linux/MacOS build needed to be added to Windows build to restore binary identical build results.
2021-11-01 20:25:33 -07:00
Wayne Warthen
0281b8f854 Merge pull request #272 from dimitrit/dev
Include TastyBasic version details
2021-11-01 19:37:30 -07:00
b1ackmai1er
9d4330b754 Update rz.asm 2021-11-01 22:35:54 +08:00
dimitrit
b142dd45d5 Merge remote-tracking branch 'upstream/dev' into dev 2021-11-01 09:50:54 +00:00
dimitrit
f65e6b2ac5 Clean removes rom images 2021-11-01 09:06:07 +00:00
dimitrit
b0d93dadc0 Include TastyBasic version details 2021-11-01 08:13:01 +00:00
Wayne Warthen
6a69f3920f Build Tweaks
- Update TastyBasic to build correctly under MacOS.
- Updated build to integrate with RomWBW build system.
2021-10-31 12:26:46 -07:00
Wayne Warthen
725151cdc5 Merge pull request #271 from b1ackmai1er/dev
Update rz.asm
2021-10-31 11:55:53 -07:00
b1ackmai1er
f7027d3bbc Update rz.asm 2021-10-31 23:06:09 +08:00
b1ackmai1er
2472fe7951 Update rz.asm 2021-10-31 22:35:36 +08:00
b1ackmai1er
3432fe8822 Update rz.asm 2021-10-31 22:32:08 +08:00
b1ackmai1er
bcb32c3e74 Update rz.asm 2021-10-31 21:26:52 +08:00
b1ackmai1er
67c835c133 Update rz.asm 2021-10-31 19:49:46 +08:00
b1ackmai1er
93077c1f45 Update rz.asm 2021-10-31 18:06:39 +08:00
b1ackmai1er
1f690dd5c8 Update rz.asm 2021-10-31 17:34:45 +08:00
b1ackmai1er
9b6b19bf73 Update rz.asm 2021-10-31 17:00:02 +08:00
b1ackmai1er
807fa7624e Merge pull request #247 from wwarthen/dev
Dev
2021-10-31 14:45:40 +08:00
Wayne Warthen
fb21a1e257 Merge pull request #269 from b1ackmai1er/dev
Update rz.asm
2021-10-30 20:48:02 -07:00
Wayne Warthen
6d115df490 TastyBasic Build Adjustments
- Minor changes to the build process in TastyBasic to ensure binary identical results across all platforms.
2021-10-30 20:32:09 -07:00
Wayne Warthen
5af8996e66 Merge pull request #270 from dimitrit/dev
Update TastyBasic
2021-10-30 20:29:13 -07:00
b1ackmai1er
21403cedb2 Update rz.asm 2021-10-31 10:22:18 +08:00
b1ackmai1er
32d50a0185 Update rz.asm 2021-10-31 10:08:40 +08:00
b1ackmai1er
cd63ad38fc Update rz.asm 2021-10-31 09:50:17 +08:00
b1ackmai1er
ce16512905 Update rz.asm 2021-10-31 08:53:14 +08:00
b1ackmai1er
21ecc5de54 Update rz.asm 2021-10-31 08:42:03 +08:00
b1ackmai1er
611394b76a Update rz.asm 2021-10-31 07:57:27 +08:00
b1ackmai1er
171d4d4ae7 Update rz.asm 2021-10-31 07:24:41 +08:00
b1ackmai1er
05fb150ad3 Update rz.asm 2021-10-31 06:57:51 +08:00
b1ackmai1er
37490e7d44 Update rz.asm 2021-10-30 19:26:00 +08:00
b1ackmai1er
d1c75888cd Update rz.asm 2021-10-30 17:19:54 +08:00
b1ackmai1er
79dfbafc13 Update rz.asm 2021-10-30 16:36:58 +08:00
b1ackmai1er
4c3c078fa4 Update rz.asm 2021-10-30 15:53:14 +08:00
b1ackmai1er
c95ea4440e Update rz.asm 2021-10-30 13:58:49 +08:00
b1ackmai1er
1f0bd36c92 Update rz.asm 2021-10-30 12:50:48 +08:00
b1ackmai1er
b171fc8fef Merge pull request #246 from wwarthen/dev
Dev
2021-10-30 12:46:00 +08:00
dimitrit
df1a8df463 Update TastyBasic 2021-10-29 22:47:24 +01:00
Wayne Warthen
322c083531 8242 Support for TMS Driver
- Added TMSMODE_RCKBD to support an 8242 keyboard combined with TMS video.
- Worked around a syntax issue from uz80as in rz.asm.
- Improved mechanism to handle forcing a UART detection for SIMH.
2021-10-29 11:11:05 -07:00
Wayne Warthen
e017135963 Merge pull request #268 from b1ackmai1er/dev
Update rz.asm
2021-10-29 09:04:31 -07:00
b1ackmai1er
e87c975a24 Update rz.asm 2021-10-29 21:19:41 +08:00
Wayne Warthen
d03b348072 Merge pull request #267 from b1ackmai1er/dev
Update rz.asm
2021-10-28 09:45:02 -07:00
b1ackmai1er
18135d1bcf Update rz.asm 2021-10-28 21:33:41 +08:00
b1ackmai1er
cb37d34a52 Merge pull request #245 from wwarthen/dev
Dev
2021-10-28 20:22:36 +08:00
Wayne Warthen
ddb842ecd7 BPBIOS Support Library Update
- Updated the suportww.lbr and support.txt files from Lars Nelson.
2021-10-27 15:42:12 -07:00
Wayne Warthen
2e6122025d RAM Disk Auto-Format Improvements
- Detect the situation where the RAM disk area is all zeroes and handle it properly as uninitialized.
2021-10-27 15:06:24 -07:00
Wayne Warthen
535dc1314e Merge branch 'dev' of https://github.com/wwarthen/RomWBW into dev 2021-10-27 12:12:27 -07:00
Wayne Warthen
6b81146286 BPBIOS & Doc
- Updated transient SAVE command in BPBIOS with version 17 from Lars Nelson
- Updated document build process to improve consistency between documents.
2021-10-27 12:12:10 -07:00
b1ackmai1er
972d6a2dc8 Merge pull request #244 from wwarthen/dev
Dev
2021-10-27 20:19:45 +08:00
Wayne Warthen
d092349cd8 Merge pull request #266 from lynchaj/patch-26
Update sz.asm
2021-10-26 15:15:30 -07:00
Wayne Warthen
10a92791b8 Merge pull request #265 from lynchaj/patch-25
Update sz.asm
2021-10-26 15:14:41 -07:00
b1ackmai1er
c4e23fdaf5 Merge pull request #243 from wwarthen/dev
Dev
2021-10-27 06:04:28 +08:00
lynchaj
08ec3715b9 Update sz.asm 2021-10-26 17:54:32 -04:00
lynchaj
9968981fd0 Update sz.asm 2021-10-26 17:28:55 -04:00
Wayne Warthen
07e8eb1adf Merge pull request #264 from lynchaj/patch-24
Update sz.asm
2021-10-26 12:33:13 -07:00
Wayne Warthen
4a03ebdb37 Merge branch 'dev' into patch-24 2021-10-26 12:33:03 -07:00
Wayne Warthen
a6e4a67aec Merge pull request #263 from lynchaj/patch-23
Update sz.asm
2021-10-26 12:26:58 -07:00
Wayne Warthen
d2730018a8 Merge pull request #262 from lynchaj/patch-22
Update sz.asm
2021-10-26 12:26:21 -07:00
Wayne Warthen
7f0bfb6753 Merge pull request #261 from lynchaj/patch-21
Update sz.asm
2021-10-26 12:25:27 -07:00
Wayne Warthen
807ae04533 Merge pull request #260 from lynchaj/patch-20
Update sz.asm
2021-10-26 12:24:59 -07:00
Wayne Warthen
8d18b982da Merge pull request #259 from lynchaj/patch-19
Update sz.asm
2021-10-26 12:24:27 -07:00
Wayne Warthen
7e8bde717c Merge pull request #258 from b1ackmai1er/dev
Dev
2021-10-26 12:23:29 -07:00
lynchaj
3a468cbc50 Update sz.asm 2021-10-26 12:13:51 -04:00
lynchaj
c508929668 Update sz.asm 2021-10-26 11:37:56 -04:00
lynchaj
b07600b6ba Update sz.asm 2021-10-26 11:30:00 -04:00
lynchaj
964af4c94f Update sz.asm 2021-10-26 11:26:39 -04:00
lynchaj
c39009b5ee Update sz.asm 2021-10-26 11:17:48 -04:00
lynchaj
912c7a865e Update sz.asm 2021-10-26 10:47:07 -04:00
b1ackmai1er
dadf3d886b Update rz.asm 2021-10-26 20:16:26 +08:00
b1ackmai1er
5424726145 Update rz.asm 2021-10-26 18:19:49 +08:00
b1ackmai1er
55631c6a21 Merge pull request #242 from wwarthen/dev
Dev
2021-10-26 17:36:44 +08:00
Wayne Warthen
7f49a0699c Merge branch 'dev' of https://github.com/wwarthen/RomWBW into dev 2021-10-25 11:50:22 -07:00
Wayne Warthen
40d744f81f Add RZ/SZ Source Build
- Added source build of RZ and SZ from Andrew
- More needless tweaking of the document build process
2021-10-25 11:50:09 -07:00
Wayne Warthen
ac4d271961 Merge pull request #257 from b1ackmai1er/dev
Revert conflict concept. Fix incorrect comparison
2021-10-24 12:29:23 -07:00
b1ackmai1er
53fe7a60f3 Revert conflict concept 2021-10-24 21:04:30 +08:00
b1ackmai1er
68f00df56d Sanity check fro conflicting port settings
Hi Wayne, is this something you would be interested in? If so I will continue populating

E.g.

DMAENABLE	.SET	TRUE		; DMA: ENABLE DMA DRIVER (DMA.ASM)
DMABASE		.SET	$68		; DMA: DMA BASE ADDRESS
DMAMODE		.SET	DMAMODE_ECB	; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC
.....
SYSTEM TIMER: NONE
HBIOS INT STACK space: 54 bytes.
HBIOS TEMP STACK space: 20 bytes.
DSRTC occupies 697 bytes.
UART occupies 791 bytes.
VDU occupies 908 bytes.
DMA occupies 303 bytes.
FONTS occupy 0 bytes.
PPK occupies 1192 bytes.
MD occupies 5545 bytes.
FD occupies 2381 bytes.
RF occupies 378 bytes.
PPIDE occupies 1703 bytes.
TERM occupies 2078 bytes.
SPK occupies 714 bytes.
RTCDEF=40
WARNING : DEVICE PORT CONFLICT : UARTSBC 104-111:104-105
2021-10-23 23:07:47 +08:00
b1ackmai1er
e23065315f Merge pull request #241 from wwarthen/dev
Dev
2021-10-23 08:56:00 +08:00
Wayne Warthen
d9d95e76dc Regen Documentation 2021-10-22 15:50:55 -07:00
Wayne Warthen
2208441e86 Documentation Generation Tweaks 2021-10-22 13:25:27 -07:00
Wayne Warthen
196f551a1f Merge pull request #255 from b1ackmai1er/dev
dmamon cleanup, updater fix for 1024kb crc32
2021-10-22 11:07:46 -07:00
b1ackmai1er
2cc15070e8 dmamon linux build fix 2021-10-22 23:16:40 +08:00
b1ackmai1er
0480bf19cf dmamon cleanup 2021-10-22 22:40:42 +08:00
b1ackmai1er
bf9361b26b Revert 2021-10-22 21:45:14 +08:00
b1ackmai1er
df26984135 Merge pull request #240 from wwarthen/dev
Dev
2021-10-22 19:13:06 +08:00
b1ackmai1er
84edfeee28 Update updater.asm
Fixup option 3
2021-10-22 19:12:12 +08:00
Wayne Warthen
149f84f64a More Work on Document Creation Process
- Replaced m4 with gpp
2021-10-21 20:18:02 -07:00
Wayne Warthen
475596b7b4 Update Document Creation Process
- Add proper Build and Makefile files in Source/Doc directory
- Switch preprocessing from pp to m4 which is more supportable across platforms
- Building of documentation is still done manually as needed, but it is now easy to do under either Windows or Linux using provided files
2021-10-21 16:18:39 -07:00
b1ackmai1er
be1fb0836f dma updates 2021-10-21 23:14:35 +08:00
b1ackmai1er
711bf1c877 Merge pull request #239 from wwarthen/dev
Dev
2021-10-19 17:15:57 +08:00
Wayne Warthen
faa9db9394 Regen Doc 2021-10-18 13:01:29 -07:00
Wayne Warthen
9bae200836 Merge pull request #253 from b1ackmai1er/dev
Add new video function
2021-10-18 10:06:05 -07:00
b1ackmai1er
f82bd94d8c Update vdu.asm 2021-10-18 21:48:29 +08:00
b1ackmai1er
fdb5465e34 Merge branch 'dev' of https://github.com/b1ackmai1er/RomWBW into dev 2021-10-18 20:38:58 +08:00
b1ackmai1er
3bc8afcc87 Add VDA Read Character function
For your consideration. Seems to work.
2021-10-18 20:38:37 +08:00
b1ackmai1er
6e031f6e2e Merge pull request #238 from wwarthen/dev
Minor Tweaks
2021-10-18 20:38:19 +08:00
Wayne Warthen
1c993d454a Minor Tweaks
- Update SAVE binary in BPBIOS for Z33 compatibility
- Update srec_cat under Unix to use line endings consistent with Windows
2021-10-17 19:51:48 -07:00
b1ackmai1er
6de8d63913 Merge pull request #237 from wwarthen/dev
Dev
2021-10-17 11:32:20 +08:00
Wayne Warthen
f5806a1589 Miscellaneous
- Rename Dev.txt to ReadMe.txt for consistency
- Update Dev app Makefile to not copy the internal ReadMe file to the final output
- Remove obsolete constants in BPBIOS
- Minor patches to zx and cpmtools to workaround an odd behavior in Windows Subsystem for Linux that was  causing output to fail binary comparisons.
2021-10-16 20:21:36 -07:00
Wayne Warthen
e41f1b7bb5 Merge pull request #252 from b1ackmai1er/dev
Dev directory + Speed switching for MBC + ECB
2021-10-16 15:12:36 -07:00
b1ackmai1er
6c55035ddf Speed switch support 2021-10-16 19:46:22 +08:00
b1ackmai1er
b0d4458122 Update updater.asm 2021-10-16 19:12:07 +08:00
b1ackmai1er
90a1f814c1 Update hbios.asm 2021-10-16 17:51:33 +08:00
b1ackmai1er
3fd8c79898 getting linux build to work 2021-10-16 10:43:50 +08:00
b1ackmai1er
3ac788374b Update Makefile 2021-10-16 10:37:24 +08:00
b1ackmai1er
aa1acc9bf8 Update Makefile 2021-10-16 10:33:41 +08:00
b1ackmai1er
479b627451 Update Makefile 2021-10-16 10:30:53 +08:00
b1ackmai1er
ed117bdc88 Update Makefile 2021-10-16 10:26:46 +08:00
b1ackmai1er
4bd371a36b Update Makefile 2021-10-16 10:19:29 +08:00
b1ackmai1er
a4278f2e9e Update Makefile 2021-10-16 10:15:36 +08:00
b1ackmai1er
90b0eb8729 Update Makefile 2021-10-16 10:08:48 +08:00
b1ackmai1er
2625f6b6fc Skeleton development directory 2021-10-16 10:02:19 +08:00
b1ackmai1er
7b9e1af155 Speed change support 2021-10-16 09:49:54 +08:00
b1ackmai1er
74d7733138 Merge pull request #236 from wwarthen/dev
BPBIOS Dynamic RAM/ROM Disk Sizing
2021-10-16 09:43:52 +08:00
Wayne Warthen
5a1fd00c04 BPBIOS Dynamic RAM/ROM Disk Sizing 2021-10-15 16:02:39 -07:00
b1ackmai1er
47d9c4008d Prelim speed management framework 2021-10-16 01:59:46 +08:00
b1ackmai1er
24677d81be Update sn76489.asm
Fix speed reversion
2021-10-15 22:50:08 +08:00
b1ackmai1er
a6dcb90d36 Update usrrom.asm
Ensure message goes to current console
2021-10-15 22:32:39 +08:00
b1ackmai1er
440248fd47 Merge pull request #235 from wwarthen/dev
Dev
2021-10-15 21:03:05 +08:00
Wayne Warthen
bcd1cb8866 Stupid .gitignore
- Hate to sound like a broken record, but I hate .gitignore.
2021-10-14 15:50:19 -07:00
Wayne Warthen
6ad45ab0de ZMD Build Fix
- Trying to get past MLOAD25 in ZMD build on GitHub.  Updated ZX syntax to include a hyphen before the options.
2021-10-14 12:45:34 -07:00
Wayne Warthen
6bce5a567e Make Build Work
- The GitHub build process is getting stuck when running MLOAD25.  NO idea why, works fine on my local Linux.  I am removing the build of ZMD temporarily to get things working again.
2021-10-14 12:34:19 -07:00
b1ackmai1er
e4686cc50c Merge pull request #234 from wwarthen/dev
Dev
2021-10-14 18:32:08 +08:00
b1ackmai1er
6d70dd92fb Update Makefile 2021-10-14 18:31:38 +08:00
b1ackmai1er
fc28738edc Update Build.cmd 2021-10-14 18:25:58 +08:00
b1ackmai1er
72039fe414 Update Clean.cmd 2021-10-14 18:22:16 +08:00
b1ackmai1er
844b26d2e5 Update Clean.cmd 2021-10-14 18:16:13 +08:00
Wayne Warthen
7905429ea0 Update Makefile
Fix case
2021-10-13 17:42:55 -07:00
Wayne Warthen
d265f1323d Add ZMD 2021-10-13 17:33:40 -07:00
b1ackmai1er
f3d4c9adb5 Update hbios.inc 2021-10-13 22:17:54 +08:00
b1ackmai1er
0e7db1eb61 Merge pull request #233 from wwarthen/dev
BPBIOS Sync
2021-10-13 17:49:11 +08:00
Wayne Warthen
04acb4102a BPBIOS Sync 2021-10-12 16:23:51 -07:00
b1ackmai1er
cea11393db Merge pull request #232 from wwarthen/dev
BPBIOS Updates
2021-10-10 13:57:23 +08:00
b1ackmai1er
1db11ca924 Update uart.asm 2021-10-10 13:56:13 +08:00
b1ackmai1er
c834ff216a Development Stub 2021-10-09 08:51:52 +08:00
Wayne Warthen
32228eb89c BPBIOS Updates
- Removed concept of BPBIOS internal proxy (configuration N).
2021-10-07 15:56:54 -07:00
b1ackmai1er
120d180609 Merge pull request #231 from wwarthen/dev
Dev
2021-10-06 20:19:05 +08:00
Wayne Warthen
ccdd2091c1 Regen Doc 2021-10-05 15:10:24 -07:00
Wayne Warthen
eb33aeb63a Merge pull request #251 from b1ackmai1er/dev
Minor doc updates
2021-10-05 14:48:10 -07:00
Wayne Warthen
28bee54bbb BPBIOS Sync
- Add applications from Lars Nelson
2021-10-05 14:36:42 -07:00
b1ackmai1er
f160def46f Forth Enhancements 2021-10-05 21:47:01 +08:00
b1ackmai1er
2077852173 Forth enhancements 2021-10-05 21:42:42 +08:00
b1ackmai1er
7bfedd9ed0 Minor doc updates 2021-10-05 20:05:34 +08:00
b1ackmai1er
3ab531aeb8 Merge pull request #230 from wwarthen/dev
More BPBIOS Updates
2021-10-05 18:46:40 +08:00
Wayne Warthen
16aab25ccf More BPBIOS Updates 2021-10-04 14:36:07 -07:00
b1ackmai1er
3082f39ef4 Merge pull request #229 from wwarthen/dev
BPBIOS Sync
2021-10-04 19:32:08 +08:00
Wayne Warthen
2caeab542c BPBIOS Sync
- Updated BPBIOS based on contributions by Lars Nelson.
2021-10-03 20:00:33 -07:00
b1ackmai1er
14d2d25894 Merge pull request #228 from wwarthen/dev
Update md.asm
2021-10-03 11:34:15 +08:00
Wayne Warthen
c08692eae9 Update md.asm
Fixes a syntax error in TASM.
2021-10-02 17:11:00 -07:00
b1ackmai1er
9f12c1d28f Merge pull request #227 from wwarthen/dev
Dev
2021-10-03 05:42:13 +08:00
Wayne Warthen
2384f4ef1a Fix macro in md.asm
- A macro in md.asm was being mishandled by uz80as (not by TASM).  Adjusted syntax for compatibility.
2021-10-02 14:32:49 -07:00
Wayne Warthen
4413101e2a Bump Version Number 2021-10-01 11:21:17 -07:00
Wayne Warthen
d43fbc0c18 Merge pull request #250 from b1ackmai1er/dev
Update md.asm - Table size off by one. Fix endien confusion for flash id
2021-10-01 11:19:21 -07:00
b1ackmai1er
cfb146242d Update md.asm
Table size off by one. Fix endien confusion for flash id byte
2021-10-02 01:34:58 +08:00
Wayne Warthen
82f7ebe3df Merge pull request #249 from b1ackmai1er/dev
Add addition chip id's to md.asm/ffs
2021-09-29 17:35:04 -07:00
b1ackmai1er
39c4cfc563 Update md.asm 2021-09-29 22:39:28 +08:00
b1ackmai1er
524b368bf6 Merge pull request #226 from wwarthen/dev
Dev
2021-09-27 11:58:31 +08:00
Wayne Warthen
cab5c72f3d Update Makefile
- Fixed typo in directory name
2021-09-26 16:16:10 -07:00
Wayne Warthen
cd37599444 Test Apps Linux Build
- Complete the reorganization of the test apps by implementing Makefile changes.
2021-09-26 16:03:43 -07:00
Wayne Warthen
dd531b56b8 Merge pull request #248 from b1ackmai1er/dev
reorganize test applications. Improve dmamon
2021-09-26 13:53:45 -07:00
Wayne Warthen
017704172b UART Driver
- Fixed issue recently introduced that kept AFC from being enabled for '650 and '850 chips.
- Increase receive interrupt threshold to 8 which improves interrupt handler efficiency under stress.  Credit to Andrew Lynch.
2021-09-26 13:24:54 -07:00
b1ackmai1er
f466f16a4d Update Makefile 2021-09-26 15:38:10 +08:00
b1ackmai1er
a6a812e03f Update dmamon.asm 2021-09-26 15:00:26 +08:00
b1ackmai1er
abee120b4e reorganize test applications. Improve dmamon
linux build to be fixed yet
2021-09-26 14:58:15 +08:00
b1ackmai1er
68134d3ef2 Merge pull request #225 from wwarthen/dev
Dev
2021-09-24 13:56:30 +08:00
Wayne Warthen
756f538a70 Minor Cosmetic Tweaks 2021-09-23 19:16:52 -07:00
Wayne Warthen
ddb3169c28 HDIAG work in progress
- HDIAG updates
- Regen documentation updates from Phil
- Fix ZZR config
2021-09-23 15:43:51 -07:00
Wayne Warthen
522a7a8378 Merge pull request #247 from b1ackmai1er/dev
Doc updates and preparation for run time memory resizing
2021-09-23 13:55:57 -07:00
b1ackmai1er
3582fcedc5 Update hbios.asm 2021-09-23 21:03:07 +08:00
b1ackmai1er
c1083ce5b2 Update hbios.asm 2021-09-22 22:19:17 +08:00
b1ackmai1er
6e083f4cb6 Update GettingStarted.md 2021-09-22 22:14:37 +08:00
b1ackmai1er
145ae8baa1 run time memory size adjustment 2021-09-22 21:34:06 +08:00
b1ackmai1er
366293906e Update md.asm 2021-09-21 23:23:25 +08:00
b1ackmai1er
cc07f1745b Update ROM_Applications.md 2021-09-21 23:13:01 +08:00
b1ackmai1er
db9f1fe35c Merge branch 'dev' of https://github.com/b1ackmai1er/RomWBW into dev 2021-09-21 23:05:41 +08:00
b1ackmai1er
7057bfcf05 Speaker updates
CPU MHz is now rounded at hbios initialization.
2021-09-21 23:02:22 +08:00
b1ackmai1er
76ce394f7e Update Architecture.md 2021-09-21 22:19:01 +08:00
b1ackmai1er
5841cbc18e Merge pull request #224 from wwarthen/dev
Dev
2021-09-21 19:28:46 +08:00
Wayne Warthen
f8e0fb3a6f HDIAG Early Development
- Initial framework.  Just boots up and displays startup messages.
2021-09-20 19:51:19 -07:00
b1ackmai1er
5611608f91 remove assembly time memory constraints 2021-09-18 16:58:07 +08:00
b1ackmai1er
2c633d2d13 remove assembly time memory constraints 2021-09-18 11:53:06 +08:00
b1ackmai1er
fc2a6929bc minors 2021-09-18 09:10:02 +08:00
Wayne Warthen
f27c346565 Merge pull request #246 from lynchaj/patch-18
Create Readme.txt
2021-09-17 08:37:33 -07:00
lynchaj
72e7e0e478 Create Readme.txt 2021-09-16 19:26:53 -04:00
Wayne Warthen
e8752f9ddc Merge pull request #245 from b1ackmai1er/dev
Minor Documentation improvements
2021-09-16 08:55:09 -07:00
b1ackmai1er
9873c1a366 Documentation updates 2021-09-16 21:21:11 +08:00
b1ackmai1er
5d3839a864 Merge pull request #223 from wwarthen/dev
Finalize UART Interrupt Receive
2021-09-15 18:38:58 +08:00
b1ackmai1er
6c82fd1f0c typos and updates 2021-09-15 05:11:36 +08:00
Wayne Warthen
097777c043 Finalize UART Interrupt Receive 2021-09-14 13:29:20 -07:00
b1ackmai1er
333fc6c0f5 Merge pull request #222 from wwarthen/dev
Dev
2021-09-14 20:24:24 +08:00
Wayne Warthen
d6783e5a6e Regen Doc 2021-09-13 11:46:55 -07:00
Wayne Warthen
5942c2c561 Merge pull request #244 from b1ackmai1er/dev
Doc updates
2021-09-13 11:15:38 -07:00
b1ackmai1er
25c752a2de Doc updates 2021-09-13 21:23:05 +08:00
b1ackmai1er
d6f9a727b8 Merge pull request #221 from wwarthen/dev
Fix UART Driver
2021-09-13 19:44:09 +08:00
Wayne Warthen
aaae6c5446 Fix UART Driver
- Breakage in UART detection routine corrected.
2021-09-12 13:52:56 -07:00
b1ackmai1er
cb30cc37cd Merge pull request #220 from wwarthen/dev
Dev
2021-09-12 10:15:15 +08:00
Wayne Warthen
1c7c21cdf8 Update dbgmon.asm 2021-09-11 14:43:40 -07:00
Wayne Warthen
14b005d64e UART Driver Interrupt Driven Receive
- The UART driver has been enhanced to allow use of interrupt driven receive buffer and RTS flow control.  It will only be used if enabled and the chip detected has no auto-flow control capability.
2021-09-11 14:01:40 -07:00
Wayne Warthen
ed08e5a9bd Merge pull request #243 from b1ackmai1er/dev
Add ability to Transfer a file to memory by x-modem
2021-09-11 13:27:19 -07:00
b1ackmai1er
a7a0168655 Update dbgmon.asm
Eliminate need for 128 byte packet buffer
2021-09-12 01:51:31 +08:00
b1ackmai1er
443c1cf233 Update uf.asm 2021-09-11 23:45:38 +08:00
b1ackmai1er
217be93785 config updates for mbc dma 2021-09-11 23:04:11 +08:00
b1ackmai1er
f2664d31b0 Update cfg_mbc.asm 2021-09-11 22:56:24 +08:00
b1ackmai1er
5c44fcd88e xmodem + dump changes
x-modem transfer only included if dsky not enabled.
dump will now dump 100h bytes if no end address entered.
2021-09-11 22:38:48 +08:00
b1ackmai1er
62e2f41100 Prep for MBC DMA support 2021-09-11 22:35:19 +08:00
b1ackmai1er
5b501eb956 Update dbgmon.asm
Initial release for consideration. Not extensively tested. Proof of concept
2021-09-11 00:17:12 +08:00
b1ackmai1er
ceeb213756 Update dbgmon.asm
Preliminary xmodem
2021-09-10 23:23:44 +08:00
b1ackmai1er
64bd0c7965 Merge pull request #219 from wwarthen/dev
Dev
2021-09-08 21:18:12 +08:00
Wayne Warthen
b117fe4e18 Regen Doc
- Pickup doc updates from Phil.
2021-09-07 10:42:56 -07:00
Wayne Warthen
6d53c4534a Merge pull request #242 from b1ackmai1er/dev
Forth fixups, improvement and documentation updates
2021-09-07 10:27:44 -07:00
b1ackmai1er
6d1b61c7a3 Forth fixups, improvement and documentation updates 2021-09-07 21:52:37 +08:00
b1ackmai1er
d58d7146ba forth updates 2021-09-07 18:40:02 +08:00
b1ackmai1er
61aae6b47a Merge pull request #218 from wwarthen/dev
Dev
2021-09-07 17:03:56 +08:00
Wayne Warthen
37cb6d7d19 Misc
- Regen doc to pick up changes from Phil.
- Add rz/sz applications (CP/M 3)
2021-09-06 13:36:19 -07:00
Wayne Warthen
42b9f18f65 Merge pull request #241 from b1ackmai1er/dev
Formatting and typo fixes and some stuff about Forth
2021-09-06 13:30:41 -07:00
b1ackmai1er
7e17598fd9 Update updater.asm 2021-09-06 22:35:06 +08:00
b1ackmai1er
63d9867705 Formatting and typo fixes and some stuff about Forth 2021-09-06 22:32:50 +08:00
b1ackmai1er
851646f7fa Merge pull request #217 from wwarthen/dev
Dev
2021-09-06 19:03:33 +08:00
Wayne Warthen
615454a5bc Regen Doc
- Pick up changes in ROM Applications document from Phil.
2021-09-03 17:59:11 -07:00
Wayne Warthen
4ff893467d Merge pull request #240 from b1ackmai1er/dev
Xmodem Flash Updater documentation
2021-09-01 21:07:59 -07:00
b1ackmai1er
d8d5fbd621 Update ROM_Applications.md
Xmodem Flash Updater
2021-09-01 23:02:31 +08:00
b1ackmai1er
517d7ec897 Merge pull request #216 from wwarthen/dev
Dev
2021-08-30 16:18:32 +08:00
Wayne Warthen
c6207155f6 Regen Documentation
Picking up changes to "ROM Applications" from Phil.
2021-08-29 15:58:07 -07:00
Wayne Warthen
cb82e3ef27 Merge pull request #239 from b1ackmai1er/dev
2048 game instructions added
2021-08-29 15:38:07 -07:00
b1ackmai1er
d5c001aad7 Update ROM_Applications.md
2048 game instructions added
2021-08-29 14:37:52 +08:00
b1ackmai1er
964d2e639b Merge pull request #215 from wwarthen/dev
Dev
2021-08-29 09:55:50 +08:00
Wayne Warthen
219c7d12e2 More Disk Image REfactoring
- The NZCOM disk image is now a fully configured, ready-to-run disk image.
- Working on ReadMe.txt files for each of the disk images.
2021-08-28 16:04:04 -07:00
Wayne Warthen
4f9a63349c Merge pull request #238 from b1ackmai1er/dev
dbgmon enhancements
2021-08-28 15:14:22 -07:00
b1ackmai1er
2cd0486837 dbymon changes
(p)rogram command will now display value of current byte.
r(un) command will now return to the monitor if program executed a return. On return registers are displayed. Run can now optionally pass values to A and BC
2021-08-28 22:57:18 +08:00
b1ackmai1er
e4ce57b9d5 Merge pull request #214 from wwarthen/dev
Dev
2021-08-28 09:10:43 +08:00
Wayne Warthen
e1cb974e76 ROM Applications Document
Phil's new ROM Applications document has been added to the documents generated and added to the /Doc directory.
2021-08-27 08:49:50 -07:00
Wayne Warthen
72eddcf699 Merge pull request #237 from b1ackmai1er/dev
Create ROM Applications.md
2021-08-27 08:07:04 -07:00
b1ackmai1er
76c2bef1a1 Create ROM Applications.md
Hi Wayne, Are you interested in including this?
2021-08-27 21:42:40 +08:00
b1ackmai1er
feaf747b25 Merge pull request #213 from wwarthen/dev
Dev
2021-08-27 18:13:31 +08:00
Wayne Warthen
74dc98b140 Fix DSKY Initialization
- Missed a couple things in the last round of DSKY changes.
2021-08-26 17:23:52 -07:00
Wayne Warthen
4f941de39c Miscellaneous
- Improve handling of RTC latch shadow
- Hardware auto-detect on DSKY and DSKYNG
- Regen documentation
2021-08-26 15:24:59 -07:00
Wayne Warthen
7e9010ed04 Merge pull request #236 from b1ackmai1er/dev
Add reference to Updater
2021-08-26 15:17:12 -07:00
b1ackmai1er
66fa6d9944 Merge pull request #212 from wwarthen/dev
Merge pull request #235 from b1ackmai1er/dev
2021-08-26 23:51:26 +08:00
b1ackmai1er
afb2711120 Update GettingStarted.md 2021-08-26 23:46:57 +08:00
Wayne Warthen
9b9b3b4210 Merge pull request #235 from b1ackmai1er/dev
Reformat and optimize
2021-08-26 08:36:13 -07:00
b1ackmai1er
a9aa50d128 Update zmo-rw01.z80 2021-08-26 20:31:50 +08:00
b1ackmai1er
cbe8ec2aff Update zmo-rw01.z80
Optimization and driver clean-up
2021-08-26 17:18:27 +08:00
b1ackmai1er
9b7a530ee9 Update zmo-rw01.z80 2021-08-25 21:33:25 +08:00
b1ackmai1er
3d278042d6 Merge pull request #211 from wwarthen/dev
Dev
2021-08-25 17:34:13 +08:00
Wayne Warthen
87579e5b65 More ZX Fixes
Credit to Tony Nicholson & Russell Marks
2021-08-24 13:59:12 -07:00
Wayne Warthen
a13ec71c7a Merge pull request #234 from b1ackmai1er/dev
zmp support command line port setting
2021-08-24 13:35:35 -07:00
b1ackmai1er
727847fd83 Update zmo-rw01.z80 2021-08-24 22:22:26 +08:00
b1ackmai1er
23eaab4f35 Delete zmp.doc 2021-08-24 22:20:13 +08:00
b1ackmai1er
f4595f9c08 zmp support command line port setting
- Restore cursor on normal program exit.
- Revert original HBIOS conout and default console code as there
  is no associated facility for direct HBIOS conin.
- Allow setting port 0 and port 1 CIO device from command line
  ZMP 2 sets comms port to CIO 2. Can set primary and secondary
  i.e. ZMP 21 but only primary supported on this ZMP version.
  Untested on Ron Murrays ZMP15
- Space getting short so messages shortened.
2021-08-24 22:18:05 +08:00
b1ackmai1er
3227f6a6bc Merge pull request #210 from wwarthen/dev
Dev
2021-08-24 16:46:59 +08:00
Wayne Warthen
fa5616a17f Fix .gitignore
Yet another .gitignore debacle.
2021-08-23 15:01:37 -07:00
Wayne Warthen
6aa216e040 ZMP LInux/MacOS Build
- Added new ZMP application to Linux/MacOS Build
- More ZX cleanup
2021-08-23 14:43:55 -07:00
Wayne Warthen
17e36df0a0 Merge pull request #233 from b1ackmai1er/dev
Initial mecparts zmodem release
2021-08-23 11:34:36 -07:00
b1ackmai1er
43914c45c1 Initial mecparts zmodem release
No linux makefile
2021-08-23 22:58:06 +08:00
b1ackmai1er
9a3193012c Merge pull request #209 from wwarthen/dev
Dev
2021-08-23 18:21:47 +08:00
Wayne Warthen
67279fbe17 Fix ZX Fixes 2021-08-20 19:25:42 -07:00
Wayne Warthen
3a8ae3cfae Minor ZX Improvements
- Modified so that CPM3 GENCPM output is displayed properly.
2021-08-20 18:16:56 -07:00
Wayne Warthen
a1a2ff05b9 Merge branch 'dev' of https://github.com/wwarthen/RomWBW into dev 2021-08-20 10:50:38 -07:00
Wayne Warthen
b26614c468 ZX Cleanup
- Coalesced Unix and Windows source
- Incorporated relevant fixes from Tony Nicholson
2021-08-20 10:50:30 -07:00
b1ackmai1er
7503e2a868 Merge pull request #208 from wwarthen/dev
Dev
2021-08-19 09:43:44 +08:00
Wayne Warthen
488d56e699 Update commit.yml 2021-08-18 12:57:15 -07:00
Wayne Warthen
1a44d170c3 Version Number Bump 2021-08-17 16:30:11 -07:00
Wayne Warthen
2e72b206d7 Update commit.yml 2021-08-17 16:10:41 -07:00
Wayne Warthen
80ee13e0f4 Misc
- Update TUNE.COM to mute sound card at end of playback when playing via HBIOS.
- Update SN76489 sound driver to use proper default port addresses.
- Modify Phil's CPU MHz speed rounding function to round up anytime speed in KHz is withing 500 KHz of next MHz increment.
2021-08-17 14:55:17 -07:00
b1ackmai1er
44e666d053 Merge pull request #207 from wwarthen/dev
Dev
2021-08-15 08:23:56 +08:00
Wayne Warthen
0ef6694526 Fix .gitignore
I really hate .gitignore
2021-08-14 14:20:08 -07:00
Wayne Warthen
9f2a59fea8 Update hbios.asm
- Fix typo
2021-08-14 13:22:10 -07:00
Wayne Warthen
8b9be05bea Continuing Disk Image Cleanup
- Reorganized most of the "common" files into special directories.
- Fixed bug affecting application boot related to ROM checksum test.
- Added support for LiNC sound card at default port address.
2021-08-14 13:08:59 -07:00
Wayne Warthen
bfe03a5f5e Merge pull request #227 from b1ackmai1er/dev
Round reported CPU Mhz up if  within 20hz of next MHz increment
2021-08-14 13:04:20 -07:00
b1ackmai1er
206ed87210 Adjust reported CPU speed
Round reported CPU Mhz up if  within 20hz of next MHz increment
2021-08-13 17:48:38 +08:00
b1ackmai1er
052800ae0e Merge pull request #206 from wwarthen/dev
Small Build Tweak
2021-08-13 15:49:38 +08:00
Wayne Warthen
3c22269bf5 Small Build Tweak 2021-08-06 17:33:25 -07:00
b1ackmai1er
7b9051f08c Merge pull request #205 from wwarthen/dev
Disk Image Reorg
2021-08-06 17:37:00 +08:00
Wayne Warthen
ac2f10996a Disk Image Reorg
Trying to make sense out of the disk image creation process so that it is easier to maintain going forward.  This is just the initial round of changes.
2021-08-05 16:55:49 -07:00
b1ackmai1er
a4ef0fbaa9 Merge pull request #204 from wwarthen/dev
Dev
2021-08-05 20:36:54 +08:00
Wayne Warthen
b5c9c70822 Revert "Disk Image Cleanup"
This reverts commit 68ed12541a.
2021-08-04 11:21:49 -07:00
Wayne Warthen
51bcfbe767 Revert "Rename Part 1"
This reverts commit 4f495d1b1c.
2021-08-04 11:21:39 -07:00
Wayne Warthen
246c87f46a Revert "Rename Part 2"
This reverts commit 196d51d143.
2021-08-04 11:21:26 -07:00
b1ackmai1er
44a5ef3fd6 Merge pull request #203 from wwarthen/dev
Dev
2021-08-04 21:43:38 +08:00
Wayne Warthen
196d51d143 Rename Part 2 2021-08-03 19:32:46 -07:00
Wayne Warthen
4f495d1b1c Rename Part 1 2021-08-03 19:31:23 -07:00
Wayne Warthen
68ed12541a Disk Image Cleanup 2021-08-03 19:04:45 -07:00
Wayne Warthen
db4e31793e Update Build.cmd
- Fix some instances where build would not abort on bad return code from TASM.
2021-08-03 13:25:17 -07:00
Wayne Warthen
de5f2b1308 Update dskyng.asm
When clearing the 8259 display ram, it is necessary to wait for a status bit to clear before continuing.
2021-08-02 20:57:53 -07:00
Wayne Warthen
acd1b52893 Merge branch 'dev' of https://github.com/wwarthen/RomWBW into dev 2021-08-02 13:45:19 -07:00
Wayne Warthen
7dce259068 Update Z80 Test Apps
The Z80 test apps have been updated to exclude the port I/O instructions.  This is because it is impossible to have consistent expected port I/O across all systems.
2021-08-02 13:45:13 -07:00
Wayne Warthen
86f14cf744 Merge pull request #226 from b1ackmai1er/dev
DMA fall-back mode for md.asm driver
2021-08-02 11:44:52 -07:00
b1ackmai1er
da882d26a5 DMA fall-back mode for md.asm driver 2021-08-01 22:45:50 +08:00
b1ackmai1er
e92613c747 Merge pull request #202 from wwarthen/dev
Add Z80 Instruction Test
2021-07-31 14:48:34 +08:00
Wayne Warthen
65c5f973e4 Add Z80 Instruction Test
A suite of Z80 instruction test applications has been added to user area 5 of CP/M 2.2 and ZSDOS disk images.

The location of these applications is likely to change.
2021-07-30 14:33:23 -07:00
b1ackmai1er
5cc6f7fcd0 Merge pull request #201 from wwarthen/dev
Dev
2021-07-30 14:43:17 +08:00
Wayne Warthen
450b3aff88 BPBIOS Doc Updates 2021-07-29 20:50:04 -07:00
Wayne Warthen
5e12bc3199 ROM Checksum & Verification
A ROM checksum is now imbedded at the end of the ROM code banks.  At boot, this checksum is verified with results displayed during boot.
2021-07-29 13:11:04 -07:00
Wayne Warthen
d6a348d110 Inject ROM Checksum
- A ROM checksum is now injected into the last byte of the ROM banks.  This does not apply to the ROM disk banks, just the first 4 banks that contain code images.
- Fix build prompting
- Fix SCOPY help files
2021-07-29 09:40:41 -07:00
Wayne Warthen
150a02358e Support MBC FDC in HBIOS
- Not yet tested.
2021-07-28 17:19:31 -07:00
Wayne Warthen
fc3b7f43ce Update Makefile 2021-07-28 16:52:15 -07:00
Wayne Warthen
e544e21f04 Make Refactoring 2021-07-28 16:28:02 -07:00
Wayne Warthen
2809ba5b6d More Make and Build Tweaks 2021-07-27 12:10:33 -07:00
Wayne Warthen
e2d586ca3c More Make and Build Tweaks 2021-07-27 11:40:10 -07:00
Wayne Warthen
2a754c8fc6 Update Build.sh 2021-07-26 20:29:20 -07:00
Wayne Warthen
7fafb5cc4b More Make and Build Tweaks 2021-07-26 20:04:03 -07:00
Wayne Warthen
637174373f Make and Build Tweaks 2021-07-26 19:01:49 -07:00
Wayne Warthen
aa29fe79f6 Regen Documentation 2021-07-26 13:13:53 -07:00
Wayne Warthen
88670cc3eb Update FDU.txt 2021-07-26 12:24:40 -07:00
Wayne Warthen
6a796a2f8d Add Support for MBC FDC in FDU
- The FDU support is not yet tested!
- The MBC FDU is not yet supported in HBIOS!
2021-07-26 11:50:21 -07:00
Wayne Warthen
5e0f2f89c1 Update .gitignore 2021-07-26 10:49:15 -07:00
Wayne Warthen
1a78927854 Make and Build Refactoring 2021-07-26 10:00:04 -07:00
b1ackmai1er
92eb635700 Merge pull request #200 from wwarthen/dev
Dev
2021-07-25 13:19:05 +08:00
Wayne Warthen
073a698a6a Build Process Refactoring 2021-07-24 19:27:21 -07:00
Wayne Warthen
8e17067104 Build Improvements
Corrects some situations where build fails, but kept going.
2021-07-24 11:24:48 -07:00
Wayne Warthen
1d0a42215c Merge pull request #225 from b1ackmai1er/dev
Add facility for updater to nominate suggested baud rate.
2021-07-24 10:52:32 -07:00
b1ackmai1er
deca27006e Add recommended baud rate 2021-07-24 23:19:14 +08:00
b1ackmai1er
d3fd46451f Merge pull request #199 from wwarthen/dev
Dev
2021-07-24 22:45:51 +08:00
Wayne Warthen
0710dd563f Merge pull request #224 from b1ackmai1er/dev
Merge pull request #198 from wwarthen/dev
2021-07-24 07:00:51 -07:00
b1ackmai1er
57380905f6 Update uart.asm 2021-07-24 14:18:29 +08:00
b1ackmai1er
93cb50b244 Preliminary integrated baud rate change 2021-07-24 14:03:06 +08:00
Wayne Warthen
d32beb4a9f New Apps
Lars Nelson has contributed 3 new apps.
- XSUB1 is an improved version of DRI XSUB that allows it to be removed from memory using RMXSUB1
- EX is an early variant of the ZEX batch file processor, but EX runs on ZSDOS (does not require later versions of ZCPR).
- SCOPY is a visual file copy utility which requires ZCPR 3+.  It is included on the ZPM disk image.
2021-07-23 18:07:31 -07:00
b1ackmai1er
a0bf6659f1 Merge pull request #198 from wwarthen/dev
Dev
2021-07-23 16:27:13 +08:00
Wayne Warthen
600aa2b2fb Merge branch 'dev' of https://github.com/wwarthen/RomWBW into dev 2021-07-22 11:20:44 -07:00
Wayne Warthen
182e60e700 Fix SPI I/O Contention
Alan's emulator found an issue where the RTC code could contend with the I2C/SPI signals on SC126.
2021-07-22 11:20:34 -07:00
Wayne Warthen
370199e17b Merge pull request #223 from b1ackmai1er/dev
Add MBC
2021-07-22 08:09:37 -07:00
b1ackmai1er
20838c2f89 Adding MBC 2021-07-22 19:43:45 +08:00
b1ackmai1er
7fcd36f11c Merge pull request #197 from wwarthen/dev
Dev
2021-07-22 17:53:56 +08:00
Wayne Warthen
314bf15395 Merge pull request #222 from lynchaj/patch-17
Update dbgmon.asm
2021-07-21 11:06:40 -07:00
Wayne Warthen
e9febecab1 Merge pull request #221 from lynchaj/patch-16
Update dbgmon.asm
2021-07-21 11:06:22 -07:00
lynchaj
f6f520591e Update dbgmon.asm 2021-07-21 09:31:14 -04:00
lynchaj
8b7f126263 Update dbgmon.asm 2021-07-21 09:28:29 -04:00
lynchaj
b33e7db70f Update dbgmon.asm 2021-07-21 06:55:24 -04:00
b1ackmai1er
11449b0832 Merge pull request #196 from wwarthen/dev
Dev
2021-07-21 18:32:19 +08:00
Wayne Warthen
b234881503 Merge pull request #220 from lynchaj/patch-15
Update dbgmon.asm, fix data bus check
2021-07-20 19:30:09 -07:00
lynchaj
cdb0f5be29 Update dbgmon.asm 2021-07-20 20:42:11 -04:00
Wayne Warthen
17ed17be08 Minor Updates 2021-07-20 17:14:42 -07:00
Wayne Warthen
c3fe71112e Merge pull request #219 from lynchaj/patch-14
Update RAM fail routine
2021-07-20 16:40:09 -07:00
Wayne Warthen
a5b9cd4630 Merge pull request #218 from b1ackmai1er/dev
show baud rate in updater + other minors
2021-07-20 16:39:42 -07:00
lynchaj
dda7a3e183 Update RAM fail routine
Change RAM fail to abort on error in page and move on to next page
2021-07-20 11:37:37 -04:00
b1ackmai1er
2e570b368c Merge pull request #195 from wwarthen/dev
Dev
2021-07-20 23:05:32 +08:00
b1ackmai1er
28bacbee41 Update duart.asm 2021-07-20 23:03:53 +08:00
b1ackmai1er
484ef274e9 Update updater.asm
Display device baud rate
2021-07-20 23:03:31 +08:00
b1ackmai1er
436c9d0db2 Update GettingStarted.md 2021-07-20 22:54:48 +08:00
Wayne Warthen
3c710f3094 Merge pull request #217 from lynchaj/patch-13
Added Address Bus verification
2021-07-19 18:44:48 -07:00
lynchaj
4e087fc608 Update dbgmon.asm 2021-07-19 20:43:16 -04:00
lynchaj
6739422b9a Added Address Bus verification
Verify Address Bus functionality prior to starting individual RAM memory location test
2021-07-19 18:30:06 -04:00
Wayne Warthen
e4f638a17a Add Bank Selection to Debug Monitor
- The debug monitor will not display the current bank id in the prompt
- The debug monitor has a new command to set the current bank for the lower 32K
NOTE: Bank selection is not possible when running under interrupt mode 1.  The command will be rejected with an error.
2021-07-19 13:44:44 -07:00
Wayne Warthen
4df77e3fac Merge pull request #216 from lynchaj/patch-12
Update dbgmon.asm, add data bus verification routine before beginning RAM test
2021-07-19 12:59:03 -07:00
lynchaj
3349f68213 Update dbgmon.asm 2021-07-19 15:37:33 -04:00
lynchaj
7587f1fbba Update dbgmon.asm 2021-07-19 14:46:33 -04:00
b1ackmai1er
cc0f2ce3b2 Update util.asm
Fix data stored inline with code.
2021-07-19 18:08:40 +08:00
b1ackmai1er
eab1eef242 Merge pull request #194 from wwarthen/dev
Dev
2021-07-19 16:49:17 +08:00
Wayne Warthen
9fd81e03e9 Fix TSTDSKNG
- Fix a small mistake in the TSTDSKNG app
2021-07-18 17:41:59 -07:00
Wayne Warthen
5852349e15 RAMTEST & DSKNGTST
- Integrate RAMTEST app from Andrew into mainline build process.
- Enhance DSKNGTST app to test on any arbitrary PPI port.

NOTE TO USERS: RAMTEST app is currently only compatible with SBC and MBC hardware.
2021-07-18 17:12:53 -07:00
Wayne Warthen
8655a7b0d8 Merge pull request #215 from lynchaj/patch-11
Create ramtest.bat

NOTE TO USERS:  This application is only compatible with the SBC and MBC hardware platforms.
2021-07-18 16:29:20 -07:00
Wayne Warthen
25306df2cd Merge pull request #214 from lynchaj/patch-10
Create ramtest.sh

NOTE TO USERS:  This application is only compatible with the SBC and MBC hardware platforms.
2021-07-18 16:29:04 -07:00
Wayne Warthen
31ec81bb19 Merge pull request #213 from lynchaj/patch-9
Create loader.asm

NOTE TO USERS:  This application is only compatible with the SBC and MBC hardware platforms.
2021-07-18 16:28:22 -07:00
Wayne Warthen
9d96f5c4de Merge pull request #212 from lynchaj/patch-8
Create dbgmon.asm

NOTE TO USERS:  This application is only compatible with the SBC and MBC hardware platforms.
2021-07-18 16:28:03 -07:00
lynchaj
78af325b22 Create ramtest.bat
build file for ramtest on Windows.  Uses TASM for assembler
2021-07-18 19:04:18 -04:00
lynchaj
1bcf3ef77e Create ramtest.sh
build file for ramtest on Linux platform.  Uses uz80as as assembler
2021-07-18 19:02:32 -04:00
lynchaj
a3522d4eaa Create loader.asm
loader is to allow ramtest to be run as a regular CP/M program.  Relocates ramtest into upper RAM page for execution
2021-07-18 19:00:34 -04:00
lynchaj
c75f719923 Create dbgmon.asm
RAM test for Z80 MBC.  Should also work for Z80 SBC V1 & V2.  Possibly others depending on bank switching logic
2021-07-18 18:58:06 -04:00
b1ackmai1er
09e5df5ad6 Merge pull request #193 from wwarthen/dev
Handle 1MB RAM in MBC Memory Mapper
2021-07-18 08:59:45 +08:00
Wayne Warthen
ff55b0d8f0 Handle 1MB RAM in MBC Memory Mapper 2021-07-17 15:03:39 -07:00
b1ackmai1er
6c98f67413 Merge pull request #192 from wwarthen/dev
Dev
2021-07-17 13:25:41 +08:00
Wayne Warthen
29878ceefb More DSKY Cleanup 2021-07-15 19:14:16 -07:00
Wayne Warthen
1de6f8f8ab Add ROM Updater to Boot Loader
- Phil Summers' ROM Updater has been given an official/permanent place in the Boot Loader menu.
- Rearranged the order and sizing of the modules in the third ROM bank to allow space for above.
- Made a few minor updates to the DSKYng support code.
2021-07-15 13:28:53 -07:00
b1ackmai1er
12d4204465 Merge pull request #191 from wwarthen/dev
Dev
2021-07-14 20:30:55 +08:00
Wayne Warthen
e60bf088c9 DSKY Disk Activity Cleanup
- The DSKY(ng) can display disk I/O activity as the system runs.  This capability was implemented very erratically.  This update overhauls the mechanism, makes it consistent, and implements it across all disk drivers.
2021-07-13 17:11:35 -07:00
Wayne Warthen
995d0a8c1c Merge pull request #211 from danwerner21/dw-071121-dbgmon-work
Dw 071121 dbgmon work
2021-07-13 16:47:48 -07:00
Dan Werner
036dad095c add DSKYng features to monitor and boot 2021-07-13 17:08:54 -05:00
Dan Werner
111aa66405 add DSKYng features to monitor and boot 2021-07-13 17:03:56 -05:00
Wayne Warthen
24d0a22d35 Update commit.yml
Update upload-artifact to v2
2021-07-13 14:08:01 -07:00
b1ackmai1er
3fa576a94e Merge pull request #190 from wwarthen/dev
Dev
2021-07-13 17:47:46 +08:00
Wayne Warthen
c30f107c68 Merge pull request #210 from b1ackmai1er/dev
Update updater.asm
2021-07-12 15:17:06 -07:00
Wayne Warthen
f126b9ff63 Linux Permissions (cont)
- Added chmod +x  commands for shell scripts (casefn.sh & Build.sh)
2021-07-12 14:22:02 -07:00
b1ackmai1er
7d707b4b88 Merge pull request #189 from wwarthen/dev
Increase Monitor Size
2021-07-12 16:20:39 +08:00
b1ackmai1er
222f4c5831 Update updater.asm
add A29010B & A29040B (untested)
2021-07-12 16:01:06 +08:00
Wayne Warthen
10724379c4 Increase Monitor Size
Monitor code now occupies 0xEE00-0xFE00
2021-07-11 19:05:52 -07:00
b1ackmai1er
9da722d5e2 Merge pull request #188 from wwarthen/dev
Dev
2021-07-12 09:46:29 +08:00
Wayne Warthen
39185fa8b3 Linux Permissions
Attempt to fix the permission issue that some users are hitting with the Linux build.
2021-07-11 18:45:41 -07:00
Wayne Warthen
f89d609de2 Merge pull request #209 from danwerner21/dw-071121-dskyng-work
Dw 071121 dskyng work
2021-07-11 18:29:35 -07:00
Wayne Warthen
f48a7e3974 FLASH4 & Build Fixes
- Upgraded FLASH4 from Will Sowerbutts to v1.3.5
- Miscellaneous build cleanups
2021-07-11 15:43:34 -07:00
Dan Werner
b28e2094cb Support for the new DSKYng PCB 2021-07-11 17:02:51 -05:00
Dan Werner
a200192f42 Support for the new DSKYng PCB 2021-07-11 16:58:30 -05:00
Wayne Warthen
40e94ebd99 Merge pull request #206 from b1ackmai1er/dev
ECB-DMA initial release. I2C rearrangement
2021-07-11 14:18:49 -07:00
Wayne Warthen
44b5f16793 Merge pull request #207 from lynchaj/patch-7
Update rtc.asm
2021-07-11 14:01:26 -07:00
b1ackmai1er
91c7c1dbba Add graceful exit for DS1307 utility 2021-07-11 22:52:23 +08:00
b1ackmai1er
9b9f9ded08 Add graceful fail to i2c clock driver 2021-07-11 13:01:44 +08:00
lynchaj
d755be8a41 Update rtc.asm 2021-07-10 14:02:18 -04:00
b1ackmai1er
90fac52c16 Delete rtcds7.asm 2021-07-10 12:10:07 +08:00
b1ackmai1er
e9ef9e0c93 dma & i2c changes
Resync & cleanup
2021-07-10 12:01:32 +08:00
b1ackmai1er
830100cd84 Merge pull request #187 from wwarthen/dev
Dev
2021-07-10 09:21:45 +08:00
b1ackmai1er
1726744650 resync 2021-07-10 09:14:59 +08:00
b1ackmai1er
1603556577 resync 2021-07-10 09:13:23 +08:00
b1ackmai1er
2bd6158b36 resync 2021-07-10 08:57:56 +08:00
b1ackmai1er
fe8425deef resync 2021-07-09 15:25:35 +08:00
b1ackmai1er
0ebfebe8d1 DMA updates
Add hardware probe at initialization and status checks after DMA transfers
2021-07-09 14:57:35 +08:00
Wayne Warthen
e79770dcea Cleanup MBC LEDs
- LED behavior was not quite right.
- Enable MBC speaker by default
2021-07-08 16:45:57 -07:00
Wayne Warthen
d4a542150b DSKYng Support
- DSKYng now has same features as original DSKY including debug monitor
- Added support for MBS LEDs
- Elevated MBS to a platform instead of just a sub-config of SBC
2021-07-08 12:03:32 -07:00
Wayne Warthen
88e7b7b7ae Update mode.asm
Fix for Linux build.
2021-07-06 20:27:31 -07:00
Wayne Warthen
3593a7fabd Filename Case Problems
In order to get the Linux/Mac and Windows builds to result in a binary identical result, I have changed the case of some filenames.  Windows and Linux handle directory sorting differently for upper/lower case in filenames.
2021-07-06 19:50:50 -07:00
Wayne Warthen
7416f5f79e Test Apps
- Converted tstdskng to TASM and added to build scripts.
- Moved MBC specific test apps to their own directory.
2021-07-06 18:45:40 -07:00
Wayne Warthen
3e8fe0c64c Add ppidetst to build
- ppidetst was updated to TASM syntax and is now built automatically
- completed the function within ppidetst to dynamically set the PPI base port address
- cleaned up the formatting a bit
2021-07-06 17:28:08 -07:00
Wayne Warthen
f74f0fa64c Merge pull request #205 from lynchaj/patch-6
Create tstdksyng.asm
2021-07-06 17:24:38 -07:00
Wayne Warthen
6152d58a69 Merge pull request #204 from lynchaj/patch-5
Create tone3.asm
2021-07-06 17:24:11 -07:00
Wayne Warthen
a663278f05 Merge pull request #203 from lynchaj/patch-4
Create LEDs2.asm
2021-07-06 17:23:50 -07:00
Wayne Warthen
7696c01670 Merge pull request #202 from lynchaj/patch-3
Create button2.asm
2021-07-06 17:23:34 -07:00
lynchaj
8c38429439 Create tstdksyng.asm 2021-07-06 19:34:05 -04:00
lynchaj
6c9a1db8b8 Create tone3.asm 2021-07-06 19:31:11 -04:00
lynchaj
d22fd28d1d Create LEDs2.asm 2021-07-06 19:29:02 -04:00
lynchaj
d1779989ed Create button2.asm 2021-07-06 19:26:01 -04:00
Wayne Warthen
d531a0e4c3 Merge pull request #201 from lynchaj/patch-2
Create ppidetst.asm
2021-07-06 14:33:08 -07:00
lynchaj
8fb07c725b Create ppidetst.asm 2021-07-06 17:13:46 -04:00
Wayne Warthen
b876889c7e MBC Cleanup
Fixed a couple of cosmetic display issues.
2021-07-03 17:00:39 -07:00
b1ackmai1er
1e1ad94b6d Minors 2021-07-02 16:37:55 +08:00
b1ackmai1er
4d208094e7 I2C updates 2021-07-02 16:37:28 +08:00
b1ackmai1er
ef71aa7460 Initial ecb-dma support 2021-07-02 15:30:56 +08:00
b1ackmai1er
06a379c281 Merge pull request #186 from wwarthen/dev
Dev
2021-07-02 03:58:37 +08:00
Wayne Warthen
86e55f7968 Preliminary Support for MBC
- Added new memory manager to support Andrew Lynch's MBC system.
2021-06-21 13:28:56 -07:00
Wayne Warthen
e463959fee Minor MKY Driver Enhancements
- Allow any system timer to drive MKY interrupt, not just the TMS driver interrupt.
- Add a build check to ensure that when MKY is enabled, a system timer is also enabled.
2021-06-13 15:18:08 -07:00
Wayne Warthen
226c24d666 Move KIO Support to Dedicated Module 2021-06-09 20:01:31 -07:00
Wayne Warthen
8e4ea799af FDC Detection Improvement
- Some FDC modules startup with the FDC reset signal active.  This fix ensures that reset is not asserted when FDC hardware prove is performed.
2021-06-01 15:44:16 -07:00
Wayne Warthen
c7e4978d44 ZCPRD&J and UNZIPZ4
Contributions from Lars Nelson:

- ZCPRD&J has been slightly enhanced and a couple minor bugs fixed.
- UNZIPZ4 generally handles modern ZIP compression algorithms.
2021-05-31 17:32:39 -07:00
Wayne Warthen
b9d1cb12fe Misc. Cleanup
- No functional changes
2021-05-26 14:40:30 -07:00
Wayne Warthen
ef6b9acbb4 Update tms.asm
- Fix minor build issue.
2021-05-24 11:36:32 -07:00
Wayne Warthen
415ccc313f Merge pull request #199 from vipoo/dean/yellow-msx-boards
Dean/yellow msx boards
2021-05-24 11:27:23 -07:00
Wayne Warthen
31b09f4ab9 Update fd.asm
- Improve FDC hardware detection.
2021-05-24 11:26:10 -07:00
b1ackmai1er
b8a0515791 Create I2C directory. Add i2cscan 2021-05-23 18:40:21 +08:00
b1ackmai1er
b00d25b0ab Merge pull request #185 from wwarthen/dev
FDC hardware auto-detection
2021-05-23 18:20:15 +08:00
Dean Netherton
53d4f657af V9958/KEYBOARD: Added disabled entries in RCZ80_std.asm for the V9958, MSX-KEYBOARD and RP5C01 RTC modules 2021-05-22 16:17:10 +10:00
Dean Netherton
3e0771acf3 V9958: Updated TMS driver to support V9958 2021-05-22 16:17:10 +10:00
Dean Netherton
ea10810934 MSX-KEYBOARD: optimised interrupt handler 2021-05-22 16:17:10 +10:00
Dean Netherton
8173414bf5 MSX-KEYBOARD: some optimisation of interrupt handler 2021-05-22 16:17:09 +10:00
Dean Netherton
a919292386 Added msx compatible keyboard driver for use in MSX 2021-05-22 16:17:09 +10:00
Dean Netherton
83529a7f76 RP5RTC: Fixed issue with clock not enabled 2021-05-22 16:17:09 +10:00
Dean Netherton
0c4f82c881 RP5C01: Added support for read/write nvram byte and detect board present 2021-05-22 16:17:08 +10:00
Dean Netherton
9aef5b0977 RPC501: Added leap year support 2021-05-22 16:17:08 +10:00
Dean Netherton
8981a255a7 RP5C01: Added support for assign date/time 2021-05-22 16:17:08 +10:00
Dean Netherton
99358a7aaf Initial commit for RP5C01 RTC driver 2021-05-22 16:17:06 +10:00
Wayne Warthen
242dc59471 FDC hardware auto-detection
- FD driver will now detect presence of FDC hardware and install if found in all standard configurations
- Does *not* detect type of FDC which must still be set in config
- Added default FD driver MODE to all configs
- Thanks to Alan Cox for the technique!
2021-05-14 17:53:34 -07:00
b1ackmai1er
a473322a98 Merge pull request #184 from wwarthen/dev
Dev
2021-05-13 17:01:58 +08:00
Wayne Warthen
099a9331bf Miscellaneous
- Fixed Linux/MacOS build
- Fixed error reporting in some disk drivers
2021-05-12 18:01:44 -07:00
Wayne Warthen
9a77dd28f9 Changing case of filenames for Linux/MacOS 2021-05-12 17:59:17 -07:00
Wayne Warthen
4baa629894 Merge pull request #198 from b1ackmai1er/dev
Initial I2C support for PCF8584/DS1307 on ECB-4PIO-I2C
2021-05-12 17:05:20 -07:00
b1ackmai1er
74edbb7934 Makefile update rtcds7 2021-05-12 18:45:52 +08:00
b1ackmai1er
16afe4b778 Update platform config files 2021-05-12 18:22:34 +08:00
b1ackmai1er
fc98d8e953 Initial PCF8584/DS1307 implementation
Only HBIOS read time function implemented
2021-05-12 18:00:17 +08:00
b1ackmai1er
be34e9d396 Add DS1307 to architecture document
Align hbios.inc RTC clock codes to match architecture document
2021-05-12 12:48:47 +08:00
b1ackmai1er
9fee763265 Architecture support for DS1307 I2C 2021-05-12 12:28:06 +08:00
b1ackmai1er
7c789ba2a5 Add DS1307 RTC app to build 2021-05-12 11:39:39 +08:00
b1ackmai1er
fb3dcccc01 Merge pull request #183 from wwarthen/dev
Dev
2021-05-11 21:34:21 +08:00
Wayne Warthen
12fea8a1d0 Fixes for MT011 in SD driver
Credit to Douglas Miller for these.
2021-05-02 18:02:07 -07:00
Wayne Warthen
ab3abb7936 CP/NET Stuff
- Added the MT011-based CP/NET work of Douglas Miller and Jay Cotton in user area 4.
- Added network boot (CP/NOS) from Douglas to Boot Loader
2021-04-29 15:29:00 -07:00
Wayne Warthen
c4a0548e76 Miscellaneous Fixes
- SDCNT was not properly implemented in all cases
- ParPortProp debug formatting fix
2021-04-27 14:35:00 -07:00
b1ackmai1er
b71d9655be Merge pull request #182 from wwarthen/dev
Dev
2021-04-25 12:20:33 +08:00
Wayne Warthen
ff6d854298 Received Char Reboot
Allow specifying a character code which, upon receipt, will reboot system.  Only useful/implemented for interrupt driven serial drivers.  Currently only implemented for ASCI and SIO.  Do *not* use this unless you fully understand the ramifications!!!
2021-04-21 16:53:42 -07:00
Wayne Warthen
a72802470a Miscellaneous
- Correct and enhance some diskdefs entries.  Added RC2014 definitions.
- Change NETBOOT binary from 32K to 8K
2021-04-18 11:38:15 -07:00
Wayne Warthen
0b92e41935 Prototype Network Boot Support 2021-04-17 17:00:42 -07:00
Wayne Warthen
1dea4a28dc ZZRCC Build Tweak 2021-04-16 14:57:05 -07:00
Wayne Warthen
518ddd9f46 Update ZZR Monitor 2021-04-16 14:02:21 -07:00
Wayne Warthen
b912761fcc Update FAT.COM, Add MBASIC Manual
- Minor update to FAT.COM for CP/NET compatibility.  Who knew the CP/NET requestor code mucks with the IX & IY register?
- Add David Reese's excellent recreation of Microsoft BASIC manual.
2021-04-13 15:45:27 -07:00
Wayne Warthen
63da5a821a Delete FAT.com 2021-04-13 15:41:56 -07:00
b1ackmai1er
588fdb34eb Merge pull request #181 from wwarthen/dev
Allow swapping MT011 SPI ports
2021-04-13 16:34:27 +08:00
Wayne Warthen
4cbe3212a5 Allow swapping MT011 SPI ports
- Config variable SDMTSWAP will swap the logical order of the SPI ports of MT011
- Updated COPY.COM from v1.72 -> v1.73
2021-04-11 16:39:53 -07:00
b1ackmai1er
e18c2bb4fc Merge pull request #180 from wwarthen/dev
Dev
2021-04-10 15:04:28 +08:00
Wayne Warthen
41061179b5 Miscellaneous
- Improved Linux build to pass actual processor type to uz80as
- Modified Z280 system timer to handle faster CPU clocks accurately
2021-04-01 17:08:16 -07:00
Wayne Warthen
ca55193d23 Added a few single-sided formats to FDU 2021-03-24 17:46:21 -07:00
Wayne Warthen
1945c0f52d CBIOS default drive assignment cleanup
Improved the way that the default drive is assigned in the scenario where you are booting to a ROM-based OS.  This should allow removal of either the RAM drive or the ROM drive without causing unexpected consequences.
2021-03-20 11:55:12 -07:00
Wayne Warthen
ccda402b9b Add Z180 & Z280 timer config settings
Allows Z180 & Z280 system periodic timer to be enabled/disabled via config.  Enabled by default.
2021-03-18 10:37:08 -07:00
Wayne Warthen
9d2e465356 Fix Build 2021-03-17 18:15:40 -07:00
Wayne Warthen
7236aec3fe ZZRCC Disk Image Enhancements
Bill has provided an improved mechanism to allow ZZRCC to boot directly from CF Card.  This work has been incorporated directly into the diskimage creation process for the ZZRCC disk image.
2021-03-17 17:59:29 -07:00
Wayne Warthen
75d2cc4dfe Fix CP/M 3 ZZRCC RAM/ROM disk handling
- Clearing of RAM disk was corrupting non-RAM Disk banks on ZZRCC.
- On ZZRCC, CP/M 3 failed to make RAM/ROM disk DPB adjustments at startup.
2021-03-16 19:17:19 -07:00
Wayne Warthen
63a31593b4 Update ZPM3 TCAP & add TCSELECT
Updated tcap.z3t for ZPM3 slice.  Previous definition was VT-525.  New definition is specifically VT-100.
Credit to Marco Maccaferri for all of this.
2021-03-16 10:57:40 -07:00
b1ackmai1er
5903ed606b Merge pull request #179 from wwarthen/dev
Dev
2021-03-15 17:52:58 +08:00
Wayne Warthen
aa05f2c2bb Fix Build 2021-03-13 19:55:09 -08:00
Wayne Warthen
18bca83deb Fix Build 2021-03-13 19:36:32 -08:00
Wayne Warthen
b47afe8bfb Update .gitignore 2021-03-13 19:22:27 -08:00
Wayne Warthen
db800480bf ZZRCC Linux Build Fixes 2021-03-13 19:04:28 -08:00
Wayne Warthen
4edc408893 ZZRCC Build Improvements
- Creation of hex load file is now automated.
2021-03-13 16:42:06 -08:00
Wayne Warthen
9cf9893ed4 Miscellaneous
- Update romldr to stop using address space >= 0xA000
- ZZRCC work in progress (not finished)
2021-03-12 15:11:15 -08:00
Wayne Warthen
bc2e7a89cc CP/M 3 Time Routines Cleanup 2021-03-11 15:02:03 -08:00
b1ackmai1er
fdae83e0a2 Merge pull request #178 from wwarthen/dev
Dev
2021-03-11 20:24:10 +08:00
Wayne Warthen
65db7a3b15 Implement CP/M 3 RTC date setting 2021-03-10 16:42:27 -08:00
Wayne Warthen
db659da876 Build script improvements
- Allow building a 128KB ROM with 0KB ROM disk
- Move Z280 UART driver to top of device list to make it the highest priority driver for Z280 platforms
2021-03-08 10:25:13 -08:00
Wayne Warthen
82a8792153 Fix Z280 Cold Restart 2021-03-07 19:01:29 -08:00
Wayne Warthen
0053a840b7 Support ZZRCC 2021-03-07 16:21:49 -08:00
b1ackmai1er
106bea2a40 Merge pull request #177 from wwarthen/dev
Implement BOOTCON
2021-03-04 16:29:20 +08:00
Wayne Warthen
33ef02cfc0 Implement BOOTCON
Added BOOTCON config variable to allow setting the boot console device.  This replaces FORCECON and removes the code that used to rearrange the PCINITTBL.
2021-03-03 15:12:57 -08:00
b1ackmai1er
9cd6f9872a Merge pull request #176 from wwarthen/dev
Dev
2021-02-27 13:55:56 +08:00
Wayne Warthen
12d1ce4000 Build Process Tweaks 2021-02-25 14:37:33 -08:00
Wayne Warthen
d4e7cb8d5f Tweaks
- Small optimization in Z180 invalid opcode handler
- Improve ZRC disk image generation script
2021-02-25 13:28:04 -08:00
Wayne Warthen
953dd70052 Z180 Invalid Opcode Tweaks
Thanks and credit to Phillip Stevens for his significant contributions to this enhancement.
2021-02-22 18:49:31 -08:00
Wayne Warthen
e17fee85e9 Add Z180 Invalid Opcode Handler 2021-02-22 14:18:01 -08:00
Wayne Warthen
6a46f8b74c Z280 UART Flow Control
- Implement RTS flow control on Z280 UART using C/T 2 output pin.  Must be supported on PCB and wired properly at serial adapter.
2021-02-21 13:18:57 -08:00
Wayne Warthen
a1a25465da Bug Fixes 2021-02-20 16:49:36 -08:00
Wayne Warthen
78b668687d Add Missing Files 2021-02-19 19:15:53 -08:00
Wayne Warthen
c9a62b6b08 Fix Unix Build 2021-02-19 18:56:13 -08:00
Wayne Warthen
9da58082a7 Z280 Cleanup 2021-02-19 15:47:33 -08:00
Wayne Warthen
f20addf39d Support ZZ80MB 2021-02-18 17:29:08 -08:00
b1ackmai1er
c0e411dab2 Merge pull request #175 from wwarthen/dev
Z280 Tweaks
2021-02-14 09:59:55 +08:00
Wayne Warthen
0d6c792282 Z280 Tweaks
- Interrupt routines that change the Z280 I/O page register now save and restore the original value.
2021-02-13 17:14:59 -08:00
b1ackmai1er
09c2af28c9 Merge pull request #174 from wwarthen/dev
Dev
2021-02-12 20:32:14 +08:00
Wayne Warthen
50abfd7e39 Update hbios.asm
- Remove LED macro temporary diagnostic.
2021-02-11 15:27:59 -08:00
Wayne Warthen
8e7e9039f9 Additional SK Z80-512K Support
- Added support for UART clock divider (CLK2).
2021-02-11 14:28:26 -08:00
b1ackmai1er
d97cf675de Merge pull request #173 from wwarthen/dev
Perliminary support for Sergey's Z80-512K
2021-02-11 21:13:00 +08:00
Wayne Warthen
4791d5f040 Perliminary support for Sergey's Z80-512K
- Watchdog functionality will be enabled if a system timer is operational.
- LED indicates boot progress and thereafter disk I/O.
2021-02-10 15:47:23 -08:00
b1ackmai1er
e565011a1c Merge pull request #172 from wwarthen/dev
Dev
2021-02-10 16:36:55 +08:00
Wayne Warthen
22b651917b Fix small build issue 2021-02-09 16:55:40 -08:00
Wayne Warthen
d21318b753 Bump Version Number 2021-02-09 16:44:01 -08:00
Wayne Warthen
01272308b4 Merge pull request #191 from feilipu/dev
acia - RTS fix and minor updates
2021-02-09 16:38:48 -08:00
Phillip Stevens
f6ecaa7cb5 acia - make reset consistent / correct 2021-02-10 02:58:57 +11:00
Phillip Stevens
38531bc983 acia - receive test optimisation 2021-02-09 18:11:40 +11:00
Phillip Stevens
36ba566c95 acia - assert RTS fix 2021-02-09 18:04:02 +11:00
Phillip Stevens
b41f865c1d acia.asm whitespace 2021-02-09 17:59:54 +11:00
Phillip Stevens
08b8a17d30 fix more divergence from wwarthen-dev 2021-02-09 17:54:56 +11:00
Phillip Stevens
74d25aa2df fix divergence from wwarthen-dev 2021-02-09 17:51:16 +11:00
Phillip Stevens
33d2f59055 fix divergence from wwarthen-dev 2021-02-09 17:42:13 +11:00
Phillip Stevens
9f328f84a5 Merge branch 'wwarthen-dev' into dev 2021-02-09 17:31:23 +11:00
Phillip Stevens
0d26818e81 updates to dev 2021-02-09 17:30:49 +11:00
Phillip Stevens
7ceaa06800 Merge pull request #30 from wwarthen/master
update to dev
2021-02-09 16:58:11 +11:00
Phillip Stevens
bec1c46d21 acia - whitespace 2021-02-09 16:44:05 +11:00
b1ackmai1er
c4ddfe4a2e Merge pull request #171 from wwarthen/dev
Mo' Faster
2021-02-07 22:15:14 +08:00
Wayne Warthen
2ac9f33be7 Mo' Faster
- Some minor Z280 speed optimizations.
2021-02-05 18:20:03 -08:00
b1ackmai1er
8c1a9763e6 Merge pull request #170 from wwarthen/dev
Miscellaneous
2021-02-05 23:45:05 +08:00
Wayne Warthen
7956074746 Miscellaneous
- Fix minor ACIA bug that only occurs if setting a non-standard baud rate.
- Enhance Z280 UART driver to use C/T for more baud rates and to use Z280 opcodes to speed up interrupt handler a bit.
2021-02-04 13:35:21 -08:00
b1ackmai1er
5a3a249af5 Merge pull request #169 from wwarthen/dev
Z280 Optimizations
2021-02-03 21:14:22 +08:00
Wayne Warthen
4cc21948bc Z280 Optimizations
- New Z280 bank selection routine that does not require gigantic table and is about as fast.
- Bump Z280 UART driver to 128 byte buffer.
- Truncate unused portion of Z280 IVT at end.
2021-02-02 16:52:25 -08:00
b1ackmai1er
f6435291f5 Merge pull request #168 from wwarthen/dev
Resync
2021-02-02 15:38:38 +08:00
Wayne Warthen
166bfe5abd Config File Cleanup 2021-02-01 14:28:39 -08:00
Wayne Warthen
c43283b3ec Enable ACIA on Interrupt Modes 2 & 3
ACIA driver will now allow use of the driver in interrupt modes 2 & 3, but will operate in polling mode.
2021-02-01 09:48:46 -08:00
b1ackmai1er
b68fcc71dd Merge pull request #167 from wwarthen/dev
Resync
2021-02-01 15:54:29 +08:00
Wayne Warthen
b91ad2aba0 Fix Typo 2021-01-31 15:38:20 -08:00
Wayne Warthen
f67e5bc023 Merge branch 'dev' of https://github.com/wwarthen/RomWBW into dev 2021-01-31 15:12:57 -08:00
Wayne Warthen
6e6e3d2059 Cleanup 2021-01-31 15:12:55 -08:00
b1ackmai1er
c35ddcfc1f Merge pull request #165 from wwarthen/dev
Resync
2021-01-31 16:43:41 +08:00
Wayne Warthen
443b67024a Update commit.yml 2021-01-30 19:03:48 -08:00
Wayne Warthen
40810aa896 Update commit.yml
Use Pacific Time Zone for build.
2021-01-30 18:48:08 -08:00
Wayne Warthen
8a7bc97fea Update commit.yml
Trying to get GitHub build scripts to use Pacific Time Zone.
2021-01-30 18:46:03 -08:00
Wayne Warthen
8945580ff5 Z280 Cleanup
- Z280 UART MODE command support
- BNKCALL handles calls into HBIOS using system mode
2021-01-30 16:17:34 -08:00
b1ackmai1er
d8b7dc4693 Merge pull request #164 from wwarthen/dev
Add System Timer to Z280 IM3
2021-01-29 21:37:51 +08:00
Wayne Warthen
8fa14863f8 Add System Timer to Z280 IM3
- Z280 counter/timer is now used to implement 50Hz system timer based on CPU oscillator.
- Bug fix in EI <mask> opcodes.
2021-01-28 16:41:33 -08:00
b1ackmai1er
dec4d83b51 Merge pull request #163 from wwarthen/dev
Resync
2021-01-29 08:30:28 +08:00
Wayne Warthen
7e2bad5643 Merge pull request #187 from b1ackmai1er/dev
updater xmodem loop optimization + Minors
2021-01-28 10:58:25 -08:00
Wayne Warthen
fe14a4b2a8 Z280 UART in all interrupt modes
By using polling mode, the Z280 UART can be utilized in interrupts modes 0/1/2.
2021-01-28 10:39:57 -08:00
b1ackmai1er
c6164ae2ab Update hbios.asm
fixup
2021-01-28 19:38:31 +08:00
b1ackmai1er
9e05028c05 Update usrrom.asm
fixup
2021-01-28 19:34:23 +08:00
b1ackmai1er
c2bd5aa5ac Update hbios.asm
Typo + explanation
2021-01-28 19:30:38 +08:00
b1ackmai1er
c3c3782f27 Update updater.asm
Xmodem receive loop optmization
2021-01-28 19:11:24 +08:00
b1ackmai1er
25fb106c8a Merge branch 'dev' of https://github.com/b1ackmai1er/RomWBW into dev 2021-01-28 19:08:03 +08:00
b1ackmai1er
5c9fc2f61f Update usrrom.asm
fixup
2021-01-28 19:07:36 +08:00
b1ackmai1er
63ca119e92 Merge pull request #162 from wwarthen/dev
Z280 Internal UART Support
2021-01-28 18:59:58 +08:00
b1ackmai1er
886621397e Update hbios.asm
Resync
2021-01-28 18:58:50 +08:00
b1ackmai1er
bccbec90e7 Update cvdu.asm
fixup
2021-01-28 18:53:13 +08:00
b1ackmai1er
0f2d68e492 Update usrrom.asm
xmodem receive loop optimizations
2021-01-28 15:36:59 +08:00
Wayne Warthen
2d12da4903 Z280 Internal UART Support
Z280 UART can only be used w/ native memory & interrupt mode 3.
2021-01-27 19:33:37 -08:00
b1ackmai1er
b6d5516e84 Minors
Note to self CCF <> Clear Carry Flag LoL
2021-01-28 10:04:29 +08:00
b1ackmai1er
6ba1a95767 Merge pull request #161 from wwarthen/dev
Z280 Native Mode Completion
2021-01-25 18:43:52 +08:00
Wayne Warthen
75c468d897 Z280 Native Mode Completion
Z280 Native Mode using Interrupt Mode 3 is now stable.  The built-in UART is not yet supported.  Also, RomWBW application style boot is not yet supported.
2021-01-24 15:54:31 -08:00
b1ackmai1er
d282d13d35 Merge pull request #160 from wwarthen/dev
Z280 Work in Progress
2021-01-24 10:30:56 +08:00
Wayne Warthen
bbb986c48f Z280 Work in Progress
- Fixed PEEK/POKE
- Misc. cleanup
2021-01-23 17:55:11 -08:00
Wayne Warthen
d3d59d6922 Update commit.yml 2021-01-23 09:02:12 -08:00
Wayne Warthen
1101384705 Merge pull request #186 from cocoacrumbs/master
Fix for multiple definition of 'verbose' in RomWBW/Tools/unix/uz80as/uz80as.h
2021-01-23 08:59:08 -08:00
Cocoacrumbs
705e1944c9 Fix for multiple definition of 'verbose' in RomWBW/Tools/unix/uz80as/uz80as.h 2021-01-23 15:38:41 +01:00
b1ackmai1er
83d6be39d6 Merge pull request #159 from wwarthen/dev
Resync
2021-01-23 14:36:23 +08:00
Wayne Warthen
3f8cc830f7 Bump Version 2021-01-22 20:43:47 -08:00
Wayne Warthen
06ac451aa6 Z280 Native Bug Fix
- Fix CP/M 3 and ZPM3 disk boot issue.
- Relocate Z280 BNKCPY to HBIOS bank.
2021-01-22 20:43:04 -08:00
Wayne Warthen
6a0837e908 Z280 Work in Progress
- API callls now run in system mode
- Expansion of proxy size has been reverted
2021-01-22 16:45:43 -08:00
Wayne Warthen
10259b5fd2 Merge pull request #185 from b1ackmai1er/dev
Adjustments for new hbios proxy location
2021-01-22 08:59:53 -08:00
b1ackmai1er
ac3a4be7b0 Update updater.asm
debug off
2021-01-22 21:08:58 +08:00
b1ackmai1er
2308f35e66 Adjustments for new hbios proxy location 2021-01-22 21:07:39 +08:00
b1ackmai1er
fd3e957f33 Merge pull request #158 from wwarthen/dev
Resync
2021-01-22 19:50:02 +08:00
Wayne Warthen
e9ae0a8e6d Z280 Interrupt Mode 3 Work in Progress 2021-01-21 20:06:45 -08:00
Wayne Warthen
10d875ffbb Z280 Work in Progress, SC140 Config
- Early support for native mode memory for Z280.
- Added support for SC140 as new standard build.
2021-01-20 11:21:24 -08:00
Wayne Warthen
48bfaaa50e Merge pull request #184 from b1ackmai1er/dev
Update ZSM from v4.1 to V4.2
2021-01-18 08:47:22 -08:00
b1ackmai1er
6e8f62df24 Update ZSM from v4.1 to V4.2 2021-01-18 23:43:17 +08:00
Wayne Warthen
8483e747ff Merge pull request #183 from b1ackmai1er/dev
Updater and md improvements
2021-01-17 15:50:04 -08:00
b1ackmai1er
76eb6cff48 Update updater.asm
Remove test code
2021-01-18 04:26:10 +08:00
b1ackmai1er
8ea441fe4b Merge branch 'dev' of https://github.com/b1ackmai1er/RomWBW into dev 2021-01-18 02:10:23 +08:00
b1ackmai1er
47d2ff82a9 Update updater.asm
Add support for other 512K flash devices. Devices that do not support sector erase will be chip erased prior to writing. Only AM29F040 tested. Additional debug options added
2021-01-18 02:10:10 +08:00
b1ackmai1er
e21fa6477e Update md.asm
Move code space check into flashlib
2021-01-18 02:08:01 +08:00
b1ackmai1er
4c65e244f5 Update flashlib.inc
Add chip erase support. Consolidate code space check here. Only display on error.
2021-01-18 02:07:19 +08:00
b1ackmai1er
99a91c4987 Merge pull request #157 from wwarthen/dev
Resync
2021-01-17 20:53:43 +08:00
b1ackmai1er
0d7a2c3c20 md.asm flash updates
Flash relocating routine now only copies  what is required rather than full 64 bytes every time.
2021-01-16 15:02:36 +08:00
Wayne Warthen
a3a60fca98 Regenerate Documentation 2021-01-15 15:19:27 -08:00
Wayne Warthen
6322574a96 Merge pull request #182 from b1ackmai1er/dev
Extract flash routines from md.asm and updater.asm to common library flashlib.inc
2021-01-15 15:09:04 -08:00
b1ackmai1er
cd77c037de Update GettingStarted.md
Fix RTC reference.

Also note the Booting Disks section refers to the old boot menu.
2021-01-15 23:43:49 +08:00
b1ackmai1er
80439d1ec0 Extract flash routines to common library between md.asm and updater,asm 2021-01-15 21:19:19 +08:00
b1ackmai1er
c12316f5b4 md,asm cleanup af/af' push/pops 2021-01-15 20:50:14 +08:00
Wayne Warthen
06b9f2b882 Merge pull request #181 from b1ackmai1er/dev
romloader baudrate setting. updater improvements
2021-01-14 09:48:24 -08:00
b1ackmai1er
e7022d434d Update updater.asm
Fix startup message when console swapped.  Cleanup
2021-01-15 00:46:31 +08:00
b1ackmai1er
9f17ba102b Update romldr.asm
Add capability to change baud rates when changing console.
2021-01-15 00:20:21 +08:00
b1ackmai1er
f483edfeaa Update updater.asm
Revert AF/AF' PUSH/POP changes to cater for other banking routines other than SBC
2021-01-14 16:07:54 +08:00
b1ackmai1er
9d229e3f31 Update updater.asm
Extend debug info. Add Teraterm usage info,  Other flash device prework
2021-01-14 14:24:21 +08:00
b1ackmai1er
6773924a3a Update updater.asm
Optimize some stack usage and jumps. Enhance timeout check debug option
2021-01-13 15:30:50 +08:00
Wayne Warthen
0e3cdaa15d Merge pull request #180 from b1ackmai1er/dev
updater bank select fix
2021-01-12 10:51:26 -08:00
b1ackmai1er
8d0282f24e commit fix 2021-01-13 01:58:32 +08:00
b1ackmai1er
2310597ada Updater bank select fix
Added CRC32 calculation
2021-01-13 01:56:08 +08:00
b1ackmai1er
725c447cef Merge pull request #156 from wwarthen/dev
Resync
2021-01-11 10:00:24 +08:00
Wayne Warthen
2987c4950e Update md.asm
Preserve AF across calls to BNKSEL in Flash Filesystem.
2021-01-10 11:21:39 -08:00
Wayne Warthen
e4cdc3d167 More SD Card Compatibility Changes
Based on a logic analyzer trace from Andy Cooper, it appears that some SD cards want the unused CRC byte of the command packet to be 0xFF instead of the 0x00 filler I was using.  Changed to put 0xFF in the CRC byte when unused.
2021-01-10 10:18:30 -08:00
Wayne Warthen
430bbd2ccf Another SD Card Driver Tweak 2021-01-09 17:13:49 -08:00
Wayne Warthen
92374ab879 Bump Version 2021-01-09 11:01:20 -08:00
Wayne Warthen
07f6a8889b Merge branch 'dev' of https://github.com/wwarthen/RomWBW into dev 2021-01-09 10:41:07 -08:00
Wayne Warthen
49de66fb85 SD Card Driver Compatibility Improvement
Handle SD Cards that do not support ACMD41 by using CMD1 instead.
2021-01-09 10:39:29 -08:00
Wayne Warthen
2a03295c41 Merge pull request #178 from b1ackmai1er/dev
Add facility to backup flash
2021-01-08 11:57:17 -08:00
b1ackmai1er
506ecfe3e2 Add facility to backup flash 2021-01-08 19:46:20 +08:00
b1ackmai1er
fa3e1c139a Merge pull request #155 from wwarthen/dev
Resync
2021-01-08 15:12:19 +08:00
Wayne Warthen
e72886cfaf Build Tweaks
- Propagate build enhancements from Phil to Unix/Mac build.
- Add removal of .upd files to Clean.cmd script in Binary directory.
2021-01-07 14:32:58 -08:00
Wayne Warthen
04ffc17466 Merge pull request #176 from b1ackmai1er/dev
Fix updater bank display output
2021-01-07 14:12:30 -08:00
b1ackmai1er
1ec37bb983 lzsa2 unix update 2021-01-06 22:01:24 +08:00
b1ackmai1er
adf82645e3 Update Build.ps1
Remove looping construct to create *.upd file
2021-01-06 21:34:23 +08:00
b1ackmai1er
f18bd9fb0a Fix updater bank display output
Also loads derfault console and serial device number now for consistance with boot rom.
2021-01-06 21:18:57 +08:00
b1ackmai1er
f237a4cafa Merge pull request #154 from wwarthen/dev
Resync
2021-01-06 16:12:45 +08:00
Wayne Warthen
1b185bd7f9 Regenerate documentation 2021-01-05 16:38:17 -08:00
Wayne Warthen
ce1b43fb0c Merge pull request #175 from b1ackmai1er/dev
Support System Update process for systems with 39SF040 flash chips
2021-01-05 16:21:07 -08:00
b1ackmai1er
50d449e0e3 Update Build.ps1
Remove compressed update image option. Project for another time maybe.
2021-01-04 21:14:21 +08:00
b1ackmai1er
fca73867fa ReadMe.md Getting \Started.md
Revert change to ReadMe and add document change to GettingStarted.

Hope this is right :)
2021-01-04 21:09:47 +08:00
b1ackmai1er
59de9a01a9 Update updater.asm
Fixups and optimization
2021-01-03 22:12:13 +08:00
b1ackmai1er
9bd2dda749 Update updater.asm
Documented serial limitations.
Improved error handling and messages.
Tried to optimize packet read loop
Tried to optimize character read polling
Added some debug options for testing
2021-01-03 20:25:15 +08:00
b1ackmai1er
e9947c0a68 Create updater.asm
Beta release for romwbw xmodem flash updater
2021-01-01 20:26:55 +08:00
b1ackmai1er
4c52a0dc41 Update md.asm
Remove cache'ng of flash routine . didn't work hxb_buf must be getting trashed by other processes.
2020-12-30 21:59:10 +08:00
b1ackmai1er
4a9fcbc4af Support System Update process for systems with 39SF040 flash chips
Generate an update file.
Updated docs.
md.asm minors
Update compression application
2020-12-30 21:51:48 +08:00
b1ackmai1er
ae9105bd5b Merge pull request #153 from wwarthen/dev
Resync
2020-12-28 12:48:15 +08:00
Wayne Warthen
60ec6c87c2 Merge pull request #172 from b1ackmai1er/dev
Stack and calling optimizations
2020-12-26 20:18:55 -08:00
b1ackmai1er
4ecbb98b17 Update md.asm
minor
2020-12-27 11:56:44 +08:00
b1ackmai1er
0de99d2436 Update md.asm
cleanup
2020-12-27 11:48:45 +08:00
b1ackmai1er
32c1071265 Update md.asm
Sstack use optimization
2020-12-27 11:39:47 +08:00
b1ackmai1er
822f433005 Update md.asm
stack use cleanup
2020-12-27 11:27:51 +08:00
b1ackmai1er
7ee5a68880 Update md.asm
cleanup
2020-12-27 11:06:49 +08:00
b1ackmai1er
83e102a043 Update md.asm
Calculate bank and sector only when needed
2020-12-27 10:52:25 +08:00
Wayne Warthen
af2639ef42 Enhance CSIO handling in sd.asm
Enhance CSIO to play nice(r) with other users of Z180 CSIO by restoring the CSIO speed to default upon function return.
2020-12-26 17:36:33 -08:00
Wayne Warthen
a2c2ed0aef Global Initialization of Z180 CSIO
Initialize CSIO speed at system startup.  A constant called Z180_CNTR_DEF has been created to hold the default value.  This value can be used by drivers to restore the default value after modification.
2020-12-26 11:58:31 -08:00
Wayne Warthen
5463ae21f8 Merge branch 'dev' of https://github.com/wwarthen/RomWBW into dev 2020-12-26 10:46:54 -08:00
Wayne Warthen
890119db3c Update sd.asm
Fix for Issue #170.  Correct use of OUT to OUT0 during CSIO speed change.   Credit to Douglas Miller for finding this bug.

Co-Authored-By: Douglas Miller <16920069+durgadas311@users.noreply.github.com>
2020-12-26 10:46:29 -08:00
b1ackmai1er
a6ebdca958 Update md.asm 2020-12-26 16:58:22 +08:00
b1ackmai1er
8d445533e7 Update Build.ps1
minor
2020-12-26 10:32:45 +08:00
b1ackmai1er
dc302afece Update md.asm
Further optimization of loops utilizing alternate register AF'
2020-12-26 10:32:06 +08:00
Wayne Warthen
eb946d468c Merge pull request #169 from b1ackmai1er/dev
Update md.asm
2020-12-25 15:56:01 -08:00
b1ackmai1er
5b8bfd26cd Update md.asm
Further optimization of loops utilizing alternate register AF'
2020-12-26 01:38:21 +08:00
Wayne Warthen
a4d76603c1 Merge pull request #168 from b1ackmai1er/dev
md.asm minor optimizations for flash file system
2020-12-24 15:51:23 -08:00
b1ackmai1er
dae73fafae Update md.asm
Optimizations
2020-12-24 18:34:59 +08:00
b1ackmai1er
eaa4ceaa38 Update md.asm
Simplify stack setup for relocatable code
2020-12-24 14:24:56 +08:00
b1ackmai1er
5f5737fcfe Merge pull request #152 from wwarthen/dev
Resync
2020-12-24 14:08:04 +08:00
Wayne Warthen
99ecb0b22b Update md.asm
- Fix typo
- Propagate flash write fix to flash erase routine
2020-12-23 11:33:37 -08:00
Wayne Warthen
edf960805e Merge pull request #167 from b1ackmai1er/dev
Add verify after write as default, restructure local stacks in flash file system
2020-12-23 11:24:54 -08:00
b1ackmai1er
f2c3e51ef4 Update md.asm
minors
2020-12-23 22:16:42 +08:00
b1ackmai1er
7c67fc18c8 Update md.asm
Restructure local stack setup for relocatable flash routines.
2020-12-23 22:04:18 +08:00
b1ackmai1er
608dc61e24 Add verify after write as default 2020-12-23 19:17:47 +08:00
b1ackmai1er
8c5c4c9840 Merge pull request #151 from wwarthen/dev
Resync
2020-12-23 17:01:28 +08:00
Wayne Warthen
9e29236a0c Small Fixes
- Properly rerport HBIOS heap overflow in CBIOS
- Adjust write sequence in FFS for high speed operation
2020-12-22 16:41:29 -08:00
Wayne Warthen
0524e02ac4 Merge pull request #165 from b1ackmai1er/dev
Update md.asm
2020-12-22 09:07:23 -08:00
b1ackmai1er
011a8a83d6 Merge branch 'dev' of https://github.com/b1ackmai1er/RomWBW into dev 2020-12-22 20:34:56 +08:00
b1ackmai1er
86fceb962b Update md.asm
With  flash file system enabled and verbose enabled, boot message will display if file system is enabled or disabled.
2020-12-22 20:34:16 +08:00
b1ackmai1er
708f6d36d6 Update Build.ps1
Revert
2020-12-22 20:31:18 +08:00
b1ackmai1er
366ad2a9ef Create an update image for flashing 2020-12-20 21:08:12 +08:00
b1ackmai1er
681077bd81 Merge pull request #150 from wwarthen/dev
Resync
2020-12-17 19:55:31 +08:00
Wayne Warthen
8ac46112f0 Update Build.sh
Fix build issue.
2020-12-16 16:06:15 -08:00
Wayne Warthen
f147e902a4 Update FDU for SmallZ80 I/O Port Changes
Also regenerate PDF documents.
2020-12-16 15:20:27 -08:00
Wayne Warthen
fa6709f8bb Merge pull request #164 from b1ackmai1er/dev
Flash file system optimizations
2020-12-16 14:57:18 -08:00
b1ackmai1er
ef82f9ef71 Update md.asm
update code comments after inlining
2020-12-16 22:53:34 +08:00
b1ackmai1er
e415afa5d0 Update md.asm
cleanup after inlining
2020-12-16 22:26:35 +08:00
b1ackmai1er
cc970afc30 Update md.asm
inline calls to flash code
2020-12-16 22:11:57 +08:00
b1ackmai1er
07ed3f976e Update md.asm
minors
2020-12-16 21:14:43 +08:00
b1ackmai1er
ebaef4c6e3 Update md.asm
minors
2020-12-16 21:04:40 +08:00
b1ackmai1er
3297906fd5 Update md.asm
minors
2020-12-16 20:34:49 +08:00
b1ackmai1er
e84ab3c6bc Update md.asm
minors
2020-12-16 20:05:06 +08:00
Wayne Warthen
995f144166 Merge pull request #163 from b1ackmai1er/dev
Beta release of flash file system driver
2020-12-15 17:49:00 -08:00
b1ackmai1er
e3fa34e524 Update md.asm
Finalize
2020-12-15 22:02:01 +08:00
b1ackmai1er
4327d0a0f1 Update md.asm
Optimization and cleanup
2020-12-15 21:36:37 +08:00
b1ackmai1er
f40a1c963d Update md.asm
Code cleanup
2020-12-15 20:00:03 +08:00
b1ackmai1er
fd5dd15506 Update config files 2020-12-15 18:17:57 +08:00
b1ackmai1er
ad1b2423e1 Update md.asm
First successful write/verify to flash
2020-12-14 21:21:34 +08:00
b1ackmai1er
17cfce2a12 md updates
Trim flash portions of driver. with flash filesystem enabled,   rad routine now used flash drive code to read 4k secctors. Twice as slow as normal rom read routine.
2020-12-13 09:37:46 +08:00
b1ackmai1er
2e62948309 md updates 2020-12-11 21:19:41 +08:00
b1ackmai1er
bf313e7c43 Update Architecture.md
Can you please check and confirm that upper 32k limitation has now been removed. I think the limitation is that you  cant/shouldnt cross a boundary. Sorry if I'm wrong on that.
2020-12-11 20:21:45 +08:00
b1ackmai1er
681432ff4d Merge pull request #149 from wwarthen/dev
MD Driver Bug Fixes
2020-12-11 16:50:40 +08:00
Wayne Warthen
7d4f01e9af MD Driver Bug Fixes
Corrected to return accurate block size (credit to Phil Summers) and to show correct capacity during boot.
2020-12-10 11:56:05 -08:00
b1ackmai1er
ff080fe6ac Merge pull request #148 from wwarthen/dev
Resync
2020-12-08 17:27:51 +08:00
Wayne Warthen
f9662479b4 Fix Doc Typo per Issue #161 2020-12-06 15:50:46 -08:00
b1ackmai1er
d7e5a445a9 Revert new media id 2020-12-07 06:28:23 +08:00
b1ackmai1er
65d2445237 Update md.asm
Add some flash read / write hooks for flash
2020-12-06 22:45:52 +08:00
b1ackmai1er
bdbe5df54e Update Build.ps1
Make all the rom / flash disk files read only for additional protection.
2020-12-06 14:52:03 +08:00
b1ackmai1er
f3437487e5 Memory disk driver updates
Updates to disk media id's
2020-12-06 14:09:49 +08:00
b1ackmai1er
5707815f2a Initial integration of flash r/w code into md.asm 2020-12-06 10:25:09 +08:00
b1ackmai1er
9022962734 Update flashfs.asm
Final update before integration in md.asm
2020-12-06 10:15:47 +08:00
Wayne Warthen
6ee684029e Merge pull request #159 from b1ackmai1er/dev
Update to flashfs
2020-12-04 09:47:49 -08:00
b1ackmai1er
5623155624 Update flashfs.asm
Allow write source to be in low memory
2020-12-04 17:22:32 +08:00
b1ackmai1er
434c5c69e9 Update flashfs.asm
Add option to use HBX_BUF for relocatable code
2020-12-04 15:57:54 +08:00
b1ackmai1er
90bc8c9ef5 Update flashfs.asm
Create common funtion. Add read sector capability
2020-12-04 14:38:16 +08:00
b1ackmai1er
7675ec79e4 Merge pull request #147 from wwarthen/dev
Resync
2020-12-04 09:03:58 +08:00
Wayne Warthen
42db238cdb Update FLASH.COM Application
Update Will Sowerbutts' FLASH.COM to v1.3.4.
2020-12-03 12:01:10 -08:00
Wayne Warthen
f92ff496b0 Merge pull request #158 from b1ackmai1er/dev
Documentation corrections, Forth updates, Flash updates
2020-12-03 11:34:23 -08:00
b1ackmai1er
7b8bab4cd3 Sync Forth to RC2014 version 2020-12-03 23:21:37 +08:00
b1ackmai1er
5b31f676f9 Update Architecture.md
Reset function should be 0xF0 not 0xFD
2020-12-03 21:46:27 +08:00
b1ackmai1er
63cb45980c Merge pull request #146 from wwarthen/dev
Resync
2020-12-01 21:11:52 +08:00
Wayne Warthen
e2c530adfb Update commit.yml 2020-11-24 17:28:00 -08:00
Wayne Warthen
9d87f0bbd3 Update commit.yml
Fix github-slug-action reference
2020-11-24 17:25:21 -08:00
Wayne Warthen
9faec8c56a Update commit.yml
Update github-slug-action
2020-11-24 17:23:26 -08:00
Wayne Warthen
8eb216c1de Merge branch 'dev' of https://github.com/wwarthen/RomWBW into dev 2020-11-24 17:15:45 -08:00
Wayne Warthen
0ac5e4e239 Add TCVIEW and Z3LOC
Added ZCPR utilities TCVIEW and Z3LOC to ZPM disk image.
2020-11-24 17:15:33 -08:00
b1ackmai1er
28af890329 Update flashfs.asm
optimization
2020-11-03 21:40:29 +08:00
Wayne Warthen
33bc0cca26 Merge pull request #157 from b1ackmai1er/dev
Add write sector to flashfs.asm
2020-11-01 10:08:34 -08:00
b1ackmai1er
03635f32af Update flashfs.asm
Add stack space requirements monitoring
2020-11-01 15:58:48 +08:00
b1ackmai1er
9d1de187e4 Update flashfs.asm
Add write sector.
2020-11-01 14:23:24 +08:00
Wayne Warthen
3c35c6c64d Merge pull request #155 from b1ackmai1er/dev
Add Sector erase to flashfs.asm
2020-10-23 09:35:34 -07:00
b1ackmai1er
2c500ffb14 Update flashfs.asm
Add sector erase
2020-10-23 16:22:08 +08:00
Wayne Warthen
c1e9f783c3 Merge pull request #154 from mlukasek/master
EIPC_MEM_xWS values corrected
2020-10-11 16:52:03 -07:00
mlukasek
f078b98c5d EIPC_MEM_xWS values corrected 2020-10-10 02:54:29 +02:00
b1ackmai1er
dba255d118 Update flashfs.asm
Add chip erase error/timeout detection
2020-09-28 00:14:12 +08:00
b1ackmai1er
427c762eec Update flashfs.asm
Implement Chip Erase
2020-09-26 11:55:31 +08:00
b1ackmai1er
3be07568a5 Merge pull request #144 from wwarthen/dev
Dev
2020-09-26 09:58:47 +08:00
Wayne Warthen
69b2293201 Build Tweaks 2020-09-25 17:24:46 -07:00
Wayne Warthen
872bf11ac9 Merge pull request #153 from b1ackmai1er/dev
Dev - Preliminary Flash support
2020-09-25 17:12:34 -07:00
b1ackmai1er
b1b3a8ab84 Merge pull request #143 from wwarthen/dev
Support PropIO V2 on RC2014 Bus
2020-09-26 01:56:04 +08:00
b1ackmai1er
9112938369 Flash file system
First steps - chip identification
2020-09-26 01:54:10 +08:00
Wayne Warthen
87d95f1ce8 Support PropIO V2 on RC2014 Bus
Updated config files to improve support for Colin MacArthur's PropIO V2 board for RC2014 bus
2020-09-24 13:17:02 -07:00
b1ackmai1er
d79de72f1b Merge pull request #142 from wwarthen/dev
Dev
2020-09-14 18:19:31 +08:00
Wayne Warthen
2eff2f6888 Finalize Ed Brindley YM/AY v6 Support 2020-09-03 14:16:08 -07:00
Wayne Warthen
f2579353ab Update Readme.unix 2020-09-02 13:54:27 -07:00
Wayne Warthen
0074e4c6cc Fix Build 2020-09-02 13:03:42 -07:00
Wayne Warthen
a2ab4dbc06 Update Makefile 2020-09-02 12:52:02 -07:00
Wayne Warthen
2d1aab4a62 Improved build processing for ZRC
ZRC CF image prefix is now created dynamically and imbeds ROM image from current build.
2020-09-02 12:30:00 -07:00
Wayne Warthen
6a574bfa4f Copy ZRC prefix file to Binary folder in build 2020-09-01 16:18:55 -07:00
Wayne Warthen
12b3bf0d01 Create hd1024_zrc_prefix.dat
Special hard disk image prefix for ZRC.
2020-09-01 15:57:54 -07:00
Wayne Warthen
e0152f84b5 Update ReadMe.txt 2020-08-31 08:47:14 -07:00
Wayne Warthen
474a00f9e8 Fix Build 2020-08-30 15:58:14 -07:00
Wayne Warthen
e2d3a41dcb Update Makefile 2020-08-30 15:39:25 -07:00
Wayne Warthen
05d76a70d9 HD Image Creation Cleanup
Attempt to clean up the hard disk image creation process to better handle the existence of the two formats (hd512 and hd1024).
2020-08-30 14:35:41 -07:00
Wayne Warthen
892aee68e4 Build Diagnostics 2020-08-23 11:13:49 -07:00
Wayne Warthen
ad05186769 Build Consistency Improvements 2020-08-23 09:06:18 -07:00
Wayne Warthen
0c8c1436ae Fix More Build Anomalies 2020-08-22 19:28:03 -07:00
Wayne Warthen
25111deacb Fix MacOS Build Again 2020-08-22 15:43:53 -07:00
Wayne Warthen
964483a031 Fix Mac OS Build Again 2020-08-22 15:18:12 -07:00
Wayne Warthen
b8982cddd0 Fix MacOS Build Again 2020-08-22 15:02:50 -07:00
Wayne Warthen
4f0569e985 Fix MacOS Build Again 2020-08-22 14:50:41 -07:00
Wayne Warthen
e4e3580535 MacOS Build Fix Again 2020-08-22 14:14:11 -07:00
Wayne Warthen
f69c9722c6 MacOS Build Fix Again 2020-08-22 14:11:35 -07:00
Wayne Warthen
6a7d38b083 MacOS Build Fix Again 2020-08-22 13:55:49 -07:00
Wayne Warthen
ea123856f4 MacOS Build Fix 2020-08-22 13:03:59 -07:00
Wayne Warthen
87f0c0838b Merge pull request #152 from electrified/dev
Additionally build on macos
2020-08-22 12:36:27 -07:00
unknown
695fbcdb07 Build on macos 2020-08-22 19:35:40 +01:00
Wayne Warthen
5919a796a7 Tiny Z80 Support
Propagated Sergey's Tiny Z80 support into dev branch.
2020-08-20 13:45:31 -07:00
Wayne Warthen
a5e5c500cf Merge pull request #150 from skiselev/master
Z80 EIPC Support - Add and use register definitions
2020-08-01 21:31:43 -07:00
Sergey Kiselev
18f9be2c61 Merge remote-tracking branch 'upstream/master' 2020-08-01 13:26:10 -07:00
Sergey Kiselev
78cd69e34d Use definitions for Z80 EIPC / Z84C15
Signed-off-by: Sergey Kiselev <skiselev@gmail.com>
2020-08-01 13:24:43 -07:00
Sergey Kiselev
f482801b94 Add definitions for Z80 EIPC / Z84C15
Signed-off-by: Sergey Kiselev <skiselev@gmail.com>
2020-08-01 13:24:13 -07:00
Wayne Warthen
754f02f9bb Merge pull request #149 from skiselev/master
Support for Tiny Z80 SBC
2020-07-28 20:00:30 -07:00
Sergey Kiselev
b4713fa3ff Add Tiny Z80 image file name
Signed-off-by: Sergey Kiselev <skiselev@gmail.com>
2020-07-27 18:26:53 -07:00
Sergey Kiselev
b18dd28caf Add configuration for Tiny Z80
Signed-off-by: Sergey Kiselev <skiselev@gmail.com>
2020-07-27 18:24:42 -07:00
Wayne Warthen
ebedc88bfa Merge pull request #148 from electrified/rename-rev6-ay-mode
Rename AYMODE_RC_REV6 option to AYMODE_MSX
2020-07-22 19:34:35 -07:00
ed
5fc1da5209 Rename AYMODE_RC_REV6 option to AYMODE_MSX 2020-07-22 19:38:36 +01:00
Wayne Warthen
fc748fcb19 Merge pull request #145 from electrified/add-ay-rev6-support
Add port configuration for new Rev 6 AY sound card
2020-07-16 09:53:54 -07:00
ed
ab26f089bf Add port configuration for new Rev 6 AY sound card 2020-07-15 21:55:54 +01:00
Wayne Warthen
b6555a0022 Merge pull request #144 from electrified/gcc10-fix
Fix for building uz80as on GCC 10
2020-07-12 14:54:53 -07:00
ed
c6026f1aa6 Fix for building uz80as on GCC10 2020-07-12 22:27:51 +01:00
Wayne Warthen
339c6620a2 ZRC support courtesy Bill Shen 2020-07-03 15:29:10 -07:00
Wayne Warthen
a67d0d9da2 Update Tune.asm
Small message formatting change.
2020-06-16 17:21:05 -07:00
Wayne Warthen
8a46395bcb Merge pull request #143 from electrified/dev
Tune: Add printing of song name and artist for PT2 and PT3s
2020-06-16 16:57:33 -07:00
ed
10b320c6c0 Tune: Add printing of song name and artist for PT2 and PT3s 2020-06-17 00:04:14 +01:00
Wayne Warthen
ee2d8d31f4 Update Survey.asm
- Make SURVEY.COM port probing compatible with Z280
2020-06-09 18:17:36 -07:00
Wayne Warthen
a5a590cc4a Update hbios.asm
- No dynamic speed detection for Z280 at this point.
2020-06-08 09:46:29 -07:00
Wayne Warthen
fbfd1e6cb9 Fix Bugs
- Initial Z280 work caused some regression.
2020-06-07 12:40:30 -07:00
Wayne Warthen
7c23f8c431 Regenerate Docs and bump Version 2020-06-06 16:04:34 -07:00
Wayne Warthen
7a70d6a51e Merge pull request #140 from vipoo/dean/dev-20
TMS: update the VDAFN data payload to include ports and register mirror
2020-06-06 15:32:13 -07:00
Wayne Warthen
8ef4456323 Multiple
- Complete initial support for Karl's Z280 module w/ 512K RAM/ROM module
- Allow swapping Z180 serial ports via ASCISWAP config variable
- Fix Z180 include file per Issue #141 from J.B. Lang
2020-06-06 15:13:48 -07:00
b1ackmai1er
cc5fa3c859 Merge pull request #141 from wwarthen/dev
Dev
2020-06-06 20:01:47 +08:00
Dean Netherton
a36eff096b TMS: update the VDAFN data payload to include ports and register mirror 2020-06-06 12:50:48 +10:00
Wayne Warthen
e1145f58aa Merge branch 'dev' of https://github.com/wwarthen/RomWBW into dev 2020-06-05 16:10:48 -07:00
Wayne Warthen
26194e7e21 Add SBC "max" configuration
- The max configurastion is intended solely for testing the build process with most options enabled.  It is not built as part of the production build process.
2020-06-05 16:10:38 -07:00
Wayne Warthen
0c1877449d Merge pull request #138 from codorjan/duart
DUART: fix detection of SC26C92 devices
2020-06-05 15:45:18 -07:00
Chris Odorjan
c766c8bc60 DUART: fix detection of SC26C92 devices
for some reason MR0[3] is always 1 when read; mask this out since all we want to know is if bit 1 was set or not
2020-06-05 14:51:33 -04:00
Wayne Warthen
34238b12eb Update Makefile
- Fix Unix build.
2020-06-03 17:13:23 -07:00
Wayne Warthen
9ee7737c34 Miscellaneous
- Make new XModem the default.  Old version is retained on disk images as XMOLD.COM.
- Preliminary Z280 support.
2020-06-03 16:41:39 -07:00
Wayne Warthen
e9b9092e7d Fix CTC divisor derivation 2020-06-03 10:13:23 -07:00
b1ackmai1er
f0459f9a8d Merge pull request #140 from wwarthen/dev
More XModem Tuning
2020-05-31 08:32:49 +08:00
Wayne Warthen
08f40d88df More XModem Tuning
- Fix bug in USB-FIFO specific driver of XMX
- Tighten receive loop (now achieves 38400 baud w/o flow control on 4MHz CPU system)
2020-05-30 13:26:14 -07:00
b1ackmai1er
3e0ae01acf Merge pull request #139 from wwarthen/dev
XModem Port Specification
2020-05-30 16:05:34 +08:00
Wayne Warthen
717ce95500 XModem Port Specification
- You can now specify an HBIOS Character Unit number on the XM.COM command line.  Currently only available in XMX.COM.
- Add version check in CBIOS to warn user if CBIOS and HBIOS versions do not match.
2020-05-29 19:01:30 -07:00
b1ackmai1er
8fde665936 Merge pull request #138 from wwarthen/dev
Dev
2020-05-29 18:51:08 +08:00
Wayne Warthen
e8ae14d5e4 Update tms.asm
Properly handle TMS I/O delay all variants of Z180, not just the N8.
2020-05-28 12:48:54 -07:00
Wayne Warthen
736ca494e6 Update hbios.asm
Fix issue I created when I updated the SNDDEV ids.
2020-05-27 20:06:04 -07:00
Wayne Warthen
9857dda5b5 Finish DEVICE API extension 2020-05-27 16:44:52 -07:00
Wayne Warthen
b3ec557ab9 CIO DEVICE API update
- Updates DEVICE call for all CIO devices to return unit mode and I/O base address
- Improved experimental XModem (XMX.COM) that uses direct hardware I/O for UART and USB-FIFO devices
2020-05-26 15:33:31 -07:00
b1ackmai1er
bae82e20fe Merge pull request #137 from wwarthen/dev
Cleanup
2020-05-26 17:21:29 +08:00
Wayne Warthen
e5860f90c5 Cleanup 2020-05-25 16:52:21 -07:00
b1ackmai1er
78889a04b4 Merge pull request #136 from wwarthen/dev
Update Note/Octave Table
2020-05-25 17:16:37 +08:00
Wayne Warthen
2227e2a32a Update Note/Octave Table
- Updated formatting of the Note/Octave Table in the Architecture document because Markdown does not support column spanning.
2020-05-24 15:57:58 -07:00
b1ackmai1er
66605777f2 Merge pull request #135 from wwarthen/dev
Dev
2020-05-25 06:17:12 +08:00
Wayne Warthen
cbb963b1ea XModem Improvements
New **experimental** adaptation of XModem called XMX.COM:
- Fixes occasional "stall" at startup (I think)
- Reduces HBIOS overhead substantially
- Automatically uses the console port no matter what COM port the console is on
2020-05-24 14:33:47 -07:00
Wayne Warthen
15563adbb2 Merge pull request #134 from b1ackmai1er/dev
audio update
2020-05-24 13:27:45 -07:00
b1ackmai1er
ff31cce0ab Update time.asm 2020-05-24 18:45:40 +08:00
b1ackmai1er
0bf6caa437 Initial audio duration code 2020-05-24 18:21:16 +08:00
b1ackmai1er
dc0b436e19 revert sn76489 2020-05-24 09:16:02 +08:00
b1ackmai1er
5bdfcd0769 Update hbios.inc 2020-05-24 00:30:28 +08:00
b1ackmai1er
bc5f7c2b0f Merge branch 'dev' of https://github.com/b1ackmai1er/RomWBW into dev 2020-05-24 00:24:26 +08:00
b1ackmai1er
42b09856fd resync 2020-05-24 00:23:34 +08:00
b1ackmai1er
d6fa3621e8 Delete cfg_state.inc 2020-05-24 00:22:47 +08:00
b1ackmai1er
534fb67dc5 resync 2020-05-24 00:14:22 +08:00
b1ackmai1er
b923f51271 resync 2020-05-24 00:11:04 +08:00
b1ackmai1er
55e8cb4a55 Update std.asm 2020-05-24 00:05:12 +08:00
b1ackmai1er
506a2a1032 Update biosldr.z80 2020-05-24 00:01:36 +08:00
b1ackmai1er
3a020341cb Update cbios.asm 2020-05-23 23:56:04 +08:00
b1ackmai1er
b015cecb2a Audio driver updates 2020-05-23 23:23:45 +08:00
b1ackmai1er
a3a03f2851 Merge pull request #134 from wwarthen/dev
Dev
2020-05-23 19:37:29 +08:00
b1ackmai1er
4359d1ddef Update ver.lib 2020-05-23 19:37:01 +08:00
b1ackmai1er
1c0bdfab69 Update ver.inc 2020-05-23 19:35:59 +08:00
b1ackmai1er
cc7d024604 Update RomList.txt 2020-05-23 19:32:56 +08:00
b1ackmai1er
bd91cb1873 Update hbios.asm 2020-05-23 19:28:37 +08:00
b1ackmai1er
c7b94163ee Update spk.asm 2020-05-23 19:21:45 +08:00
b1ackmai1er
65202c9460 Update spk.asm
Calculate tone table at assembly from frequency
2020-05-23 18:09:33 +08:00
b1ackmai1er
88b6c7c477 Update spk.asm
Align note table to architrecture standard.
Quarter notes not supported - returns error status.
Round detected cpu frequency up
2020-05-23 10:03:08 +08:00
Wayne Warthen
1b832b82f7 Update RCZ80_duart.asm
Typo
2020-05-22 16:12:12 -07:00
Wayne Warthen
cc102eab0f Bump Version 2020-05-22 16:02:08 -07:00
Wayne Warthen
3eac8d164c Cleanup
- Minor build script cleanup for DUART driver
2020-05-22 15:40:36 -07:00
Wayne Warthen
8399114748 Merge pull request #133 from codorjan/duart
DUART driver
2020-05-22 15:16:57 -07:00
Wayne Warthen
1b0d5c3670 Miscellaneous
- Generate listing file in Forth build
- Realign EPDSER ports for new silkscreen
2020-05-22 13:44:08 -07:00
Wayne Warthen
180b7fddec Update uart.asm
Fixed some stuff in 16C2552 support
- Concurrent write was being enabled unintentionally
- Swapped the EPDSER UART base ports to match the boards annotations
2020-05-22 09:58:04 -07:00
b1ackmai1er
2eedec1a39 Update ay38910.asm 2020-05-22 16:03:16 +08:00
b1ackmai1er
78c11124e2 Update ay38910.asm 2020-05-22 15:56:26 +08:00
b1ackmai1er
ea0938a699 Merge pull request #133 from wwarthen/dev
Dev
2020-05-22 15:56:01 +08:00
b1ackmai1er
79ddc8d44d Update ay38910.asm 2020-05-22 15:55:15 +08:00
Chris Odorjan
c57de18593 DUART: don't build in the standard configuration
add a separate RCZ80_duart configuration, at least until it gets more testing
2020-05-21 20:30:28 -04:00
Chris Odorjan
24b4492abc Merge remote-tracking branch 'upstream/dev' into duart 2020-05-21 20:09:10 -04:00
Wayne Warthen
d331fcbdef More Cleaning 2020-05-21 14:30:05 -07:00
Wayne Warthen
0cfb30459a Minor Cleanup 2020-05-21 11:34:06 -07:00
Chris Odorjan
909d15aa5d Merge remote-tracking branch 'upstream/dev' into duart 2020-05-21 10:08:46 -04:00
b1ackmai1er
3a4819c5b8 Merge pull request #132 from wwarthen/dev
Dev
2020-05-21 16:31:44 +08:00
Wayne Warthen
5e8e5424dc Cleanup 2020-05-20 21:20:24 -07:00
Wayne Warthen
5c565f8c3e Miscellaneous
- CP/M 3 loader space improvement
- Minor doc update (thanks Radek)
- Preliminary diag level management
- Minor cosmetic bugs
2020-05-20 12:06:19 -07:00
b1ackmai1er
2cb863a163 Merge pull request #131 from wwarthen/dev
Dev
2020-05-20 17:54:20 +08:00
Wayne Warthen
844aee7350 Merge pull request #132 from vipoo/dean/dev-5
Documentation: minor correction of parameters for reset functions
2020-05-19 09:59:58 -07:00
Dean Netherton
df22e1b205 Documentation: minor correction of parameters for reset functions 2020-05-19 20:01:17 +10:00
b1ackmai1er
e8945d4de3 Merge pull request #130 from wwarthen/dev
Dev
2020-05-19 17:45:33 +08:00
Wayne Warthen
054970f642 Adjust TMS driver for RC2014
- Minor config tweaks to TMS driver to formally support TMS9918 board from JB Lang on RC platform.
- Using MSX standard ports to allow use of card in Z180 systems.
2020-05-18 17:18:07 -07:00
Wayne Warthen
3f46921c6c Change PANIC behavior a bit
- Also includes a fix for a build issue in PPIDE identified by Richard Deane.
2020-05-18 15:33:28 -07:00
b1ackmai1er
64e8803ec4 Merge pull request #129 from wwarthen/dev
Dev
2020-05-17 10:34:44 +08:00
Wayne Warthen
1bf4065b6a Global Error Codes 2020-05-16 18:38:26 -07:00
Wayne Warthen
c0410624b5 CP/M 3 improvement in SYSCOPY
- Under CP/M 3, sectors per track must be adjusted for physical sector size.
2020-05-16 12:52:31 -07:00
b1ackmai1er
0a7eed3276 Sound driver changes
Add scaling to the tone table period to maintain maximum range and minimize error.
2020-05-16 10:25:55 +08:00
b1ackmai1er
cfe9548b25 Update hbios.asm
Change order of sound initialization. Least common last. Most common/detectable first.
2020-05-16 09:11:05 +08:00
b1ackmai1er
e9219e89f3 Merge pull request #128 from wwarthen/dev
More system restart options
2020-05-16 08:39:15 +08:00
Wayne Warthen
6afc56a7ca More system restart options 2020-05-15 16:25:31 -07:00
Chris Odorjan
e861611611 Merge remote-tracking branch 'upstream/dev' into duart 2020-05-15 16:45:35 -04:00
Chris Odorjan
74d357ed4b DUART: actually support 26C92 baud rate generator
also improve detection
2020-05-15 16:42:41 -04:00
b1ackmai1er
67300cfe47 Update audio.inc
Optimization
2020-05-15 20:27:25 +08:00
b1ackmai1er
ae76ba82e1 Update audio.inc
Commentry
2020-05-15 20:12:25 +08:00
b1ackmai1er
cd56294d44 Merge pull request #127 from wwarthen/dev
Dev
2020-05-15 18:02:11 +08:00
Wayne Warthen
b474445c52 Update to CLRDIR for CP/M 3
Thanks to Max Scane for this update.  It fixes a situation where CLRDIR may not clear all directory entries under CP/M 3 depending on the disk geometry.
2020-05-13 12:51:10 -07:00
Wayne Warthen
58740a74c3 Merge pull request #128 from vipoo/dean/dev-3
Dean/dev 3
2020-05-13 11:43:01 -07:00
Wayne Warthen
2dec8dacc9 Improve Build and Doc for CP/M 3 and ZPM3
- Put CP/M 3 and ZPM3 built system files into Binary directory to make them easier to access for manual upgrades.
- Improve upgrade documentation.
2020-05-13 11:19:13 -07:00
b1ackmai1er
c4cdaca038 Merge pull request #126 from wwarthen/dev
Dev
2020-05-13 18:00:19 +08:00
Dean Netherton
6f00dd56c4 AY38910: Fix issue with interrupt handling 2020-05-13 13:10:01 +10:00
Dean Netherton
9aaa929800 AY38910: Fix issue with interrupt handling during boot beep 2020-05-13 12:50:33 +10:00
Wayne Warthen
84d206ced4 Misc. Cleanup
- Regenerate documentation
- Improve CP/M 3 drive assignment handling
- Fixed SYSCOPY issue with new partition handling
2020-05-12 13:32:06 -07:00
Wayne Warthen
93de0030bb Merge pull request #127 from vipoo/dean/dev-2
Dean/dev 2
2020-05-12 10:25:11 -07:00
Chris Odorjan
10bddd8a17 Merge remote-tracking branch 'upstream/dev' into duart 2020-05-11 21:56:49 -04:00
Chris Odorjan
0f0eae6bd7 26C92 support (untested)
cleanup
remove debugging (it didn't work when the DUART was the primary device anyways)
simplify configuration tables
2020-05-11 21:54:33 -04:00
Dean Netherton
8f6e33bd79 sounddriver: updated documentation - musical note scale 2020-05-12 09:44:14 +10:00
Dean Netherton
05e2c5c52c tune.com: Added optional switch shift ocatves 2020-05-12 09:44:14 +10:00
Dean Netherton
49359cc221 ay38910: Updated boot beep to use a timer, if active for termination of boot beep sound 2020-05-12 09:44:13 +10:00
b1ackmai1er
dd641937eb Merge pull request #125 from wwarthen/dev
Fix CPM3/ZPM3 Disk Reassignment Issue
2020-05-12 06:22:00 +08:00
Wayne Warthen
d534aa41d5 Fix CPM3/ZPM3 Disk Reassignment Issue
- Improve the behavior of the ASSIGN command to notify CPM3/ZPM3 BDOS of disk change when a drive is reassigned.
2020-05-11 09:47:30 -07:00
b1ackmai1er
519474da1c Merge pull request #124 from wwarthen/dev
Dev
2020-05-11 05:37:24 +08:00
Wayne Warthen
df195ee75c ZPM3 Drive Map Fix
- Workaround to make ZPM3 consider all drives (A-P) valid so that subsequent drive ASSIGNments work properly.
2020-05-10 11:52:44 -07:00
Wayne Warthen
103a2fc2ae Small Cleanup 2020-05-10 10:38:22 -07:00
Wayne Warthen
e363d48356 Merge pull request #126 from vipoo/dean/dev-14
Dean/dev 14
2020-05-10 10:33:58 -07:00
b1ackmai1er
989ab9bf05 Sound devices in Device Summary 2020-05-10 22:43:03 +08:00
Dean Netherton
45cd12b77e Sn76489: Updated todo list 2020-05-10 14:08:34 +10:00
Dean Netherton
ab84a43d33 Sound drivers: support/rejection of zero value for period
SN76489:
The SN76489 chip will produce a note for value 0 - but the driver will reject
this value - but it does allow value $400 - (logically the same) to produce the lowest note

AY38910:
This chip does not produce a sound for period of 0 - so its also rejected
The max value for this driver is still $0FFF
2020-05-10 14:04:19 +10:00
Dean Netherton
5e65fcba13 AY38910: Refactored to use a common function for note mapping as SN76489 driver 2020-05-10 14:04:18 +10:00
Dean Netherton
625e696f68 whitespace 2020-05-10 14:02:59 +10:00
Dean Netherton
7330928dca SN76489: Moved clock configuration from driver to platform config files 2020-05-10 14:02:59 +10:00
Dean Netherton
98a63cefa9 SN76489: refactor - remove custom div16 function - use common hbios util div16 function 2020-05-10 14:02:59 +10:00
Dean Netherton
8c2c0f45b5 sn76489: refactor to support full note range
No need to full mapping table
Range can be consistent with all sound drivers
2020-05-10 14:02:59 +10:00
b1ackmai1er
8a346da051 Merge branch 'dev' of https://github.com/b1ackmai1er/RomWBW into dev 2020-05-10 11:45:19 +08:00
b1ackmai1er
5ba63020d1 Merge pull request #123 from wwarthen/dev
Dev
2020-05-10 11:29:52 +08:00
Wayne Warthen
2aa43a8063 Propeller VGA Signal Timing Update
- Propeller VGA signal now uses 60Hz refresh for  better compatibility with all VGA monitors
2020-05-09 19:23:11 -07:00
Wayne Warthen
a22085d8db Cleanup 2020-05-09 17:07:33 -07:00
Wayne Warthen
df1421b163 Small Cleanup 2020-05-09 16:48:30 -07:00
Wayne Warthen
f871b5561e Merge pull request #125 from b1ackmai1er/dev
Initial sound driver update for spk.asm
2020-05-09 10:09:00 -07:00
b1ackmai1er
d6bccde06d Update spk.asm 2020-05-09 23:05:24 +08:00
b1ackmai1er
989fa57047 Merge pull request #122 from wwarthen/dev
Dev
2020-05-09 22:34:28 +08:00
b1ackmai1er
48001b6115 Update Tune.asm 2020-05-09 22:33:12 +08:00
b1ackmai1er
180f901594 Initial sound driver update for spk.asm 2020-05-09 22:27:59 +08:00
Wayne Warthen
33da94a4bd Regenerate Doc 2020-05-08 19:27:20 -07:00
Wayne Warthen
198da97f0e Merge pull request #124 from b1ackmai1er/dev
Sound driver updates
2020-05-08 18:28:49 -07:00
Wayne Warthen
c072052b38 Merge pull request #123 from vipoo/dean/dev-12
Dean/dev 12
2020-05-08 18:28:15 -07:00
b1ackmai1er
c1f8cc0f7b Merge branch 'dev' of https://github.com/b1ackmai1er/RomWBW into dev 2020-05-09 09:16:32 +08:00
b1ackmai1er
db81a4a3e7 Merge pull request #121 from wwarthen/dev
Disk I/O Cleanup
2020-05-09 09:15:50 +08:00
b1ackmai1er
75c25c813d ay-3-8910 updates
Implement full BBC Micro note table
Note table now calculated at assembly based on selected frequency.
Code optimization
2020-05-09 09:14:53 +08:00
Dean Netherton
3b05013b62 HBIOS: Get timer tick now include the tick frequency 2020-05-09 10:38:53 +10:00
Dean Netherton
4369b1f288 Documentation: removed reference to function Inc Timer, as its not implemented 2020-05-09 10:38:53 +10:00
Dean Netherton
4700ea92db sn76489: minor fix to tracing for SN7_NOTE 2020-05-09 10:38:53 +10:00
Wayne Warthen
182dd322a5 Disk I/O Cleanup 2020-05-08 15:46:30 -07:00
b1ackmai1er
1ba2d767a8 Merge pull request #120 from wwarthen/dev
Dev
2020-05-08 14:12:11 +08:00
Wayne Warthen
fc36eed4cd Merge pull request #122 from b1ackmai1er/dev
tune.com --hbios check for devicesDev
2020-05-07 17:13:53 -07:00
Wayne Warthen
612e589016 Fix .gitignore 2020-05-07 17:05:39 -07:00
Wayne Warthen
1859eb0310 Experimental partition support 2020-05-07 16:58:38 -07:00
b1ackmai1er
2ac67e04b6 Merge branch 'dev' of https://github.com/b1ackmai1er/RomWBW into dev 2020-05-08 06:22:56 +08:00
b1ackmai1er
f6467e8671 Update cli.inc 2020-05-08 06:22:27 +08:00
b1ackmai1er
c304415b07 Merge pull request #119 from wwarthen/dev
Merge pull request #121 from b1ackmai1er/dev
2020-05-08 06:21:26 +08:00
b1ackmai1er
7a10702355 tune.com --hbios check for devices
Don't panic if no --hbios supported devices
2020-05-08 06:18:10 +08:00
Wayne Warthen
112a94c69d Merge pull request #121 from b1ackmai1er/dev
Sound driver tweaks
2020-05-06 19:05:08 -07:00
b1ackmai1er
2ec05940f7 Update ay38910.asm 2020-05-06 21:46:11 +08:00
b1ackmai1er
b3f8cce0ae Basic ay-3-8910 harware detection 2020-05-06 20:48:35 +08:00
b1ackmai1er
7cbb9d081b sound and tune optimizations
sn76489 not tested
2020-05-06 19:02:05 +08:00
b1ackmai1er
8409a62a6a Merge pull request #118 from wwarthen/dev
Dev
2020-05-05 16:34:51 +08:00
Wayne Warthen
c4fae3c1dd Bug fixes
- Fixed build issue in cbios.asm
- Flow improvement in romldr.asm
2020-05-04 14:37:42 -07:00
Wayne Warthen
a1be614279 Cleanup 2020-05-04 13:34:36 -07:00
Wayne Warthen
ce3f7f2224 Small bug fix
- Build error in romldr.asm when using custom boot timeout.
- Handle CP/M 3 error mode variable properly.
2020-05-04 09:07:09 -07:00
b1ackmai1er
55eef6370e Merge pull request #117 from wwarthen/dev
Early partition table support
2020-05-04 16:48:35 +08:00
Wayne Warthen
ee0fac37f9 Early partition table support
Adding infrastructure for partition table support.  Backward compatible.  Not ready for end user usage yet.

Bumped version to 3.1.1 to demarcate this change.
2020-05-03 19:05:44 -07:00
b1ackmai1er
2cf86f41fa Merge pull request #116 from wwarthen/dev
Dev
2020-05-04 06:18:25 +08:00
Wayne Warthen
74e79a6c59 Regenerate Doc, Bump Version
blah, blah, blah
2020-05-03 09:46:23 -07:00
Wayne Warthen
c3bfc44ec3 Merge pull request #120 from b1ackmai1er/dev
Replace ay driver with new ay38910 driver
2020-05-03 09:31:51 -07:00
b1ackmai1er
24b79880d0 Update ay38910.asm
code optimizations
2020-05-03 23:05:08 +08:00
b1ackmai1er
cea46daba9 replace ay driver with ay38910 2020-05-03 21:59:45 +08:00
b1ackmai1er
afbc00d78c ay38910 updates
cleanups, optimizations, protect registers
2020-05-03 20:28:44 +08:00
b1ackmai1er
b5a085dd23 Merge pull request #115 from wwarthen/dev
Dev
2020-05-03 11:31:19 +08:00
Wayne Warthen
849ec56421 Merge pull request #119 from vipoo/dean/dev-9
Sound drivers
2020-05-02 18:57:00 -07:00
Dean Netherton
41318639f8 Sound Drivers: Fix issue when attempting to add 2 sound drivers
Needed to increase buffer for active drivers (SND_MAX) from 2 to 3
2020-05-03 11:27:05 +10:00
Dean Netherton
eb552ab7a2 Sound Drivers: fixed building image issue
Duplicate labels fixed for when building AY38910 and SN76489 drivers into the same image
2020-05-03 11:25:32 +10:00
Dean Netherton
f85205afb8 whitespace: ay38910 and hbios 2020-05-03 11:24:14 +10:00
Wayne Warthen
1a8cfb91e7 Changes from Dean Netherton
- Allow immediate autoboot (no timeout)
- Allow configuring number of floppy devices
2020-05-02 14:58:07 -07:00
Wayne Warthen
a457e797ee Update sd.asm
Significantly improve compatibility of SD Cards w/ Z180 -K CPU.
2020-05-02 13:00:15 -07:00
Wayne Warthen
e418b04c3e Regenerate Documentation 2020-05-02 10:54:32 -07:00
Wayne Warthen
abf2ee968a Merge pull request #117 from b1ackmai1er/dev
ay-3-8910 sound driver initial release
2020-05-02 10:35:18 -07:00
b1ackmai1er
7f1b8c8aa6 ay-3-8910 sound drive tone table development 2020-05-02 20:59:12 +08:00
b1ackmai1er
f399c2e9fa Update ay38910.asm
Remove debug output
2020-05-02 12:54:04 +08:00
b1ackmai1er
a62d69c1c4 fixup platform builds and restore tune default behaviour 2020-05-02 12:47:06 +08:00
b1ackmai1er
3dfeaabe2f ay-3-8910 sound driver updates 2020-05-02 12:28:35 +08:00
b1ackmai1er
5ff9dbb67e Merge pull request #114 from wwarthen/dev
Dev
2020-05-02 11:40:08 +08:00
Wayne Warthen
ae02d6aea0 Regenerate Documentation 2020-05-01 17:43:34 -07:00
Wayne Warthen
50acf56ec8 Merge pull request #116 from vipoo/dean/dev-7
sound driver: minor doc updates
2020-05-01 17:39:44 -07:00
Wayne Warthen
eeab786848 Update sd.asm
Optimize SD Card protocol timing delay for CSIO interface.
2020-05-01 17:30:12 -07:00
Dean Netherton
6cb33ca334 sound driver: minor doc updates 2020-05-02 09:42:55 +10:00
b1ackmai1er
c20036297f Delete SBC_std_zpp.asm 2020-05-02 00:48:07 +08:00
b1ackmai1er
20ad992a7b Initial ay-3-8910 driver 2020-05-02 00:42:11 +08:00
b1ackmai1er
eaaf213902 Merge pull request #113 from wwarthen/dev
Dev
2020-04-30 17:38:21 +08:00
Wayne Warthen
b3c044ab65 Fix HBIOS Breakage! 2020-04-29 22:13:57 -07:00
Wayne Warthen
6cbcdb694d Update Documentation 2020-04-29 19:42:58 -07:00
Wayne Warthen
0834acc020 RTC Device Info Functions 2020-04-29 19:30:24 -07:00
Wayne Warthen
e50f5f0935 Add support for EPFDC
Credit to Alan Cox for the changes.
2020-04-29 17:45:04 -07:00
Chris Odorjan
f86e871f07 Merge remote-tracking branch 'upstream/dev' into duart 2020-04-29 13:48:50 -04:00
Chris Odorjan
ceb1826bed DUART: try not to step on 16x50 UART configuration 2020-04-29 13:45:39 -04:00
Wayne Warthen
36dff411fd Minor Doc Update 2020-04-28 10:58:48 -07:00
Wayne Warthen
90e0a99486 Merge pull request #115 from vipoo/dean/dev-6
Dean/dev 6
2020-04-28 10:42:05 -07:00
Dean Netherton
c51fa1fcae SN76489: Renamed variable 'pitch' to 'period' 2020-04-28 20:40:46 +10:00
Dean Netherton
9cdbc5b981 SN76489: Do not play when period is overflowing 2020-04-28 20:40:46 +10:00
Dean Netherton
7542fa8032 TracingBug: PRTHEXWORDHL was tracing DE not HL 2020-04-28 19:50:29 +10:00
Dean Netherton
b1bb684a04 SN76489: Prevent and return error code if a pitch greater than 03FF is attempted to be set 2020-04-28 18:35:20 +10:00
Dean Netherton
ade954ab69 SN76489: Added support for BF_SNDQ_DEV/SN7_QUERY_DEV query
And updated some driver docs
2020-04-28 18:17:56 +10:00
b1ackmai1er
9f8adfee9b Merge pull request #112 from wwarthen/dev
Minor updates to FDISK and KERMIT apps
2020-04-27 20:57:06 +08:00
Wayne Warthen
297c246570 Minor updates to FDISK and KERMIT apps 2020-04-26 19:15:58 -07:00
b1ackmai1er
13e6712721 Merge pull request #111 from wwarthen/dev
Dev
2020-04-26 19:35:44 +08:00
Chris Odorjan
dce4496393 Merge remote-tracking branch 'upstream/dev' into duart 2020-04-26 00:27:20 -04:00
Chris Odorjan
db24d6e435 detect/initialize DUART _after_ 16550
prevents 16550 detection from stomping on DUART registers
(untested: does the DUART detection stomp on the 16550?)

add DUART to serial device strings list
2020-04-25 23:46:37 -04:00
Chris Odorjan
3bd2eb431a spelling + fixes 2020-04-25 23:46:12 -04:00
Wayne Warthen
e247c99cd5 Merge pull request #114 from vipoo/dean/dev-5
Dean/dev 5
2020-04-25 19:50:43 -07:00
Wayne Warthen
072f0f7562 Updated KERMIT applications with VT100 terminal support
Provided by Jim McGinnis.
2020-04-25 19:42:43 -07:00
Dean Netherton
392e729d57 tms: Correctly implemented pre-init to disable interrupts 2020-04-26 10:48:34 +10:00
Dean Netherton
f7748cc6db Tune.asm - removed typo 'FAIL' labels 2020-04-26 10:28:01 +10:00
Dean Netherton
6d9172f635 Replace FAIL with git statusgit status! to force assembler to error 2020-04-26 10:27:19 +10:00
Wayne Warthen
c3e78ec8f5 Minor Cleanup 2020-04-25 10:48:35 -07:00
Wayne Warthen
5b9cf0f834 Merge pull request #113 from vipoo/dean/dev-4
Dean/dev 4
2020-04-25 10:24:08 -07:00
Dean Netherton
0381c72ca2 Fix issue with TMS interrupt support - some default configurations were missing 2020-04-25 22:23:30 +10:00
Dean Netherton
d156aba1f9 tune.com: Updated to support using HBIOS sound driver
A new command line switch has been added '--hbios'.

Using this switch after the filename, will cause tune.com to play thru
the HBIOS sound driver

MYM file types are not supported thru HBIOS yet.
2020-04-25 17:14:51 +10:00
Dean Netherton
1388b8495c whitespace: removed trailing whitespaces from Tune.asm 2020-04-25 17:14:51 +10:00
Dean Netherton
ef52d17303 ChangeLog: Added entries for TMS/SYSTIME 2020-04-25 17:12:30 +10:00
Dean Netherton
9957fbfd33 ChangeLog: Whitespace and updated D?N to DEN 2020-04-25 17:12:07 +10:00
Dean Netherton
ff2ebbb09f TMS: Enable support for using VSYNC interrupt
Use the VSYNC interrupt to trigger the sys timer event
2020-04-25 17:11:32 +10:00
Dean Netherton
7d6b011362 Whitespace: adjusted whitespace for tms.asm 2020-04-25 17:11:31 +10:00
Chris Odorjan
e911e93aaf DUART: preliminary implementation
assumes XR88C681 for now
2020-04-25 00:50:18 -04:00
Wayne Warthen
8b7c167592 Cleanup loader console assignment 2020-04-24 11:33:15 -07:00
b1ackmai1er
868f332706 Merge pull request #110 from wwarthen/dev
Dev
2020-04-24 19:11:00 +08:00
Wayne Warthen
e654c5739e Disk Catalog & Loader Console Command
- Disk Catalog document has been added to the Doc directory courtesy of Mykl Orders.
- Loader enhanced to allow switching the console device before booting OS or ROM app.
2020-04-23 22:08:19 -07:00
Wayne Warthen
a6aff72d86 Update cfg_zeta2.asm
Missed Zeta 2 configuration file in last update.
2020-04-23 17:34:17 -07:00
Wayne Warthen
dc2f55570c Make tick frequency configurable 2020-04-23 17:28:18 -07:00
b1ackmai1er
22f21f752c Merge pull request #109 from wwarthen/dev
Dev
2020-04-24 06:22:38 +08:00
b1ackmai1er
78f65522b7 Dev (#108)
* added hack to handle tunes

* quiet clean

* added chmod for execution

* suppress warnings

* Multi-boot fixes

* the windows build somehow thinks that these filesystems are cpm3.

* credit and primitive instructions

* Update sd.asm

Cosmetic fix.

* make compile shut up about conditionals

* Add bin2asm for linus and update build to process font files under linix

* fixed quoted double quote bug, added tests

* added tests

* added bin2asm for font file source creation

* Revert linux bin2asm font stuff

* added rule for font source generation

* build fonts

* 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.

* removed strip.  breaks osx

* added directory tag so . isn't matched all over the place

* added real cache validation

* fixed build

* this file is copied from optdsk.lib or optcmd.lib

* install to ../HBIOS

* prerequisite verbosity

* diff soft failure and casefn speedup

* added lzsa

* added lzsa

* removed strip. breaks on osx

* added clobber

* added code to handle multiple platform rom builds with rom size override

* added align and 0x55 hex syntax

* default to hd64180

* added N8 capability

* added SBC_std.rom to default build

* added support for binary diff

* diff fixes

* clean, identical build.  font source generator emitted .align.  this does not match the windows build

* Upgrade NZCOM to latest

* Misc. Cleanup

* fixed expression parser bug : ~(1|2) returned 0xfe

* added diff build option

* Update Makefile

Makefile enhancement to better handle ncurses library from Bob Dunlop.

* Update sd.asm

Back out hack for uz80as now that Curt fixed it.

* Misc. Cleanup

* UNA Catchup

UNA support was lacking some of the more recent behavior changes.  This corrects most of it.

* Add github action for building RomWBW

* Bump Pre-release Version

* Update build.yml

Added "make clean" which will remove temporary files without removing final binary outputs.

* Update Makefile

Build all ROM variants by default in Linux/Mac build.

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update for GitHub Build

Case issue in TASM includes showing up in GitHub build.  This should correct that.

* Added an gitignore files to exclude generated files

* Removed Tunes/clean.cmd and Tunes/ReadMe.txt - as make clean removes them

* Build.sh: marked as executable

chmod +x Build.sh

* 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.

* Update Microsoft NASCOM BASIC.docx

Nascom manual, text version by Jan S (full name unknown)

* Fix issue with Apps/Tune not making

If dest directory does not exist, fails to make Apps

* Create ReadMe.txt

* Update Makefile

* Update Build.sh

* Make .gitignores for Tools/unix more specific

* cpmtools Update

Updated cpmtools applications (Windows only).  Removed hack in diskdefs that is no longer required.

* 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.

* Update ReadMe.txt

* HBIOS - clean up TMPSTK

* Update hbios.asm

Minor cosmetic changes.

* Build Process Updates

Minor udpates to build process to improve consistency between Windows and Mac/Linux builds.

* Update hbios.asm

Add improved interrupt protection to HBIOS PEEK, POKE, and BNKCPY functions.

* hbios - wrap hbx_bnkcpy

* hbios - adjust hbx_peek hbx_poke guards

* 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.

* Add HBIOS MuTex

* Initial Nascom basic ecb-vdu graphics

set and reset for 80x25b screen with 256 character mod

* Finalize Pre-release 34

Final support for FreeRTOS

* Update nascom.asm

Optimization, cleanup, tabs and white spaces

* IDE & PPIDE Cleanup

* Clean up

Make version include files common.

* Update Makefile

* Update Makefile

* Build Test

* Build Test

* Build Fixes

* Update nascom.asm

Cleanup

* Update nascom.asm

Optimization

* hbios - temp stack tweak

* Update hbios.asm

Comments on HBX_BUF usage.

* Update nascom.asm

Optimization

* Update nascom.asm

Setup ECB-VDU build option, remove debug code

* Update nascom.asm

Set default build. update initialization

* Update nascom.asm

Make CLS clear vdu screen

* Update nascom.asm

Fixup top screen line not showing

* Add SC131 Support

Also cleaned up some ReadMe files.

* HBIOS SCZ180 - remove mutex special files

* HBIOS SCZ180 - adjust mutex comment

* Misc. Cleanup

Includes some minor improvements to contents in some disk images.

* Delete FAT.COM

Changing case of FAT.COM extension to lowercase.

* Create FAT.com

Completing change of case in extension of FAT.com.

* Update Makefile

Remove ROM variants that just have the HBIOS MUTEX enabled.  Users can easily enable this in a custom build.

* Cleanup

Removed hack from Images Makefile.  Fixed use of DEFSERCFG in various places.

* GitHub CI Updates

Adds automation of build and release assets upon release.

* Prerelease 36

General cleanup

* Build Script Cleanups

* Config File Cleanups

* Update RomWBW Architecture

General refresh for v2.9.2

* Update vdu.asm

Removed a hack in VDU driver that has existed for 8 years.  :-)

* Fix CONSOLE Constant

Rename CIODEV_CONSOLE constant to CIO_CONSOLE because it is a unit code, not a device type code.

Retabify TastyBasic.

* Minor Bug Fixes

- Disk assignment edge case
- CP/M 3 accidental fall thru
- Cosmetic updates

* Update util.z80

* Documentation Cleanup

* Documentation Update

* Documentation Update

* Documentation Updates

* Documentation Updates

* Create Common.inc

* Documentation Updates

* Documentation Updates

* doc - a few random fixes

* Documentation Cleanup

* Fix IM 0 Build Error in ACIA

* Documentation Updates

* Documentation Cleanup

* Remove OSLDR

The OSLDR application was badly broken and almost impossible to fix with new expanded OS support.

* Bug Fixes

- Init RAM disk at boot under CP/M 3
- Fix ACR activation in TUNE

* FD Motor Timeout

- Made FDC motor timeout smaller and more consistent across different speed CPUs
- Added "boot" messaging to RTC

* Cleanup

* Cleanup

- Fix SuperZAP to work under NZCOM and ZPM3
- Finalize standard config files

* Minor Changes

- Slight change to ZAP configuration
- Added ZSDOS.ZRL to NZCOM image

* ZDE Upgrade

- Upgraded ZDE 1.6 -> 1.6a

* Config File Tuning

* Pre-release for Testing

* cfg - mutex consistent config language

* Bump to Version 3.0

* Update SD Card How-To

Thanks David!

* update ReadMe.md

Remove some odd `\`.

* Update ReadMe.txt

* Update ReadMe.md

* Update Generated Doc Files

* Improve XModem Startup

- Extended startup timeout for XM.COM so that it doesn't timeout so quickly while host is selecing a file to send.
- Updated SD Card How-To from David Reese.

* XModem Timing Refinements

* TMS Driver Z180 Improvements

- TMS driver udpated to insert Z180 I/O waitstates internally so other code can run at full speed.
- Updated How-To documents from David.
- Fixed TUNE app to properly restore Z180 I/O waitstates after manipulating them.

* CLRDIR and ZDE updates

- CLRDIR has been updated by Max Scane for CP/M 3 compatibility.
- A minor issue in the preconfigured ZDE VT100 terminal escape sequences was corrected.

* Fix Auto CRT Console Switch on CP/M 3

* Handle lack of RTC better

DSRTC driver now correctly returns an error if there is no RTC present.

* Minor RTC Updates

* Finalize v3.0.1

Cleanup release for v3.0

* New ROMLDR and INTRTC driver

- Refactored romldr.asm
- Added new periodic timer based RTC driver

* CP/M 3 Date Hack

- Hack to allow INTRTC to increment time without destroying the date

* Update romldr.asm

Work around minor Linux build inconsistency

* Update Apps for New Version

* Revert "Update Apps for New Version"

This reverts commit ad80432252.

* Revert "Update romldr.asm"

This reverts commit 4a9825cd57.

* Revert "CP/M 3 Date Hack"

This reverts commit 153b494e61.

* Revert "New ROMLDR and INTRTC driver"

This reverts commit d9bed4563e.

* Start v3.1 Development

* Update FDISK80.COM

Updated FDISK80 to allow reserving up to 256 slices.

* Update sd.asm

For Z180 CSIO, ensure that xmit is finished, before asserting CS for next transaction.

* Add RC2014 UART, Improve SD protocol fix

- RC2014 and related platforms will autodetect a UART at 0xA0 and 0xA8
- Ensure that CS fully brackets all SD I/O

* ROMLDR Improvements

.com files can now be started from CP/M and size of .com files has been reduced so they always fit.

* Update commit.yml

Run commit build in all branches

* Update commit.yml

Run commit build for master and dev branches

* Improved clock driver auto-detect/fallback

* SIO driver now CTC aware

The SIO driver can now use a CTC (if available) to provide much more flexible baud rate programming.

* CTC driver fine tuning

* Update xmdm125.asm

Fixed a small issue in core XM125 code that caused a file write error message to not be displayed when it should be.

* CF Card compatibility improvement

Older CF Cards did not reset IDE registers to defaults values when reset.  Implemented a work around.

* Update ACIA detection

ACIA should no longer be detected if there is also a UART module in the system.

* Handle CTC anomaly

Small update to accommodate CTC behavior that occurs when the CTC trigger is more than half the CTC clock.

* Update acia.asm

Updated ACIA detection to use primary ACIA port instead of phantom port.

* Update acia.asm

Fix bug in ACIA detection.

Thanks Alan!

* MacOS Build Improvement

Build script updated to improve compatibility with MacOS.

Credit to Fredrik Axtelius for this.

* HBIOS Makefile - use env vars for target

Allow build ROM targets to be restricted to just one platform thru use of ENV vars:

ROM_PLATFORM - if defined to a known platform, only this platform is build - defaults to std config
ROM_CONFIG - sets the desired platform config - defaults to std

if the above ENVs are not defined, builds all ROMs

* Added some more gitignores

* Whitespace changes (crlf)

* HBIOS: Force the assembly to fail for vdu drivers if function table count is not correct

* Whitespace: trailing whitespaces

* makefile: updated some make scripts to use  when calling subdir makefiles

* linux build: update to Build.sh fix for some platforms

The initialization of the Rom dat file used the pipe (|) operator to build an initial empty file.

But the pipe operator | may sometimes return a non-zero exit code for some linux platforms, if the
the streams are closed before dd has fully processed the stream.

This issue occured on a travis linux ubuntu image.

Solution was to change to redirection.

* Bump version

* Enhance CTC periodic timer

Add ability to use TIMER mode in CTC driver to generate priodic interrupts.

* HBIOS: Added support for sound drivers

New sound driver support with initial support for the SN76489 chip

New build configuration entry:
* SN76489ENABLE

Ports are currently locked in with:
* SN76489_PORT_LEFT       .EQU    $FC     ; PORTS FOR ACCESSING THE SN76489 CHIP (LEFT)
* SN76489_PORT_RIGHT      .EQU    $F8     ; PORTS FOR ACCESSING THE SN76489 CHIP (LEFT)

* Miscellaneous Cleanup

No functional changes.

Co-authored-by: curt mayer <curt@zen-room.org>
Co-authored-by: Wayne Warthen <wwarthen@gmail.com>
Co-authored-by: ed <linux@maidavale.org>
Co-authored-by: Dean Netherton <dnetherton@dius.com.au>
Co-authored-by: ed <ed@maidavale.org>
Co-authored-by: Phillip Stevens <phillip.stevens@gmail.com>
Co-authored-by: Dean Netherton <dean.netherton@gmail.com>
2020-04-24 06:17:22 +08:00
Wayne Warthen
d14cf27acf Miscellaneous Cleanup
No functional changes.
2020-04-22 11:26:32 -07:00
Wayne Warthen
94176776fb Merge pull request #112 from vipoo/dean/dev/sound-driver
HBIOS: Added support for sound drivers
2020-04-22 09:26:21 -07:00
Dean Netherton
890f9262e0 HBIOS: Added support for sound drivers
New sound driver support with initial support for the SN76489 chip

New build configuration entry:
* SN76489ENABLE

Ports are currently locked in with:
* SN76489_PORT_LEFT       .EQU    $FC     ; PORTS FOR ACCESSING THE SN76489 CHIP (LEFT)
* SN76489_PORT_RIGHT      .EQU    $F8     ; PORTS FOR ACCESSING THE SN76489 CHIP (LEFT)
2020-04-22 21:12:52 +10:00
Wayne Warthen
f57e3bed00 Enhance CTC periodic timer
Add ability to use TIMER mode in CTC driver to generate priodic interrupts.
2020-04-21 12:46:31 -07:00
Wayne Warthen
08b112a20f Bump version 2020-04-21 09:43:31 -07:00
Wayne Warthen
83f3b80a8c Merge pull request #111 from vipoo/dean/dev/general-tooling
Dean/dev/general tooling
2020-04-21 09:26:48 -07:00
Dean Netherton
ae7714aeff linux build: update to Build.sh fix for some platforms
The initialization of the Rom dat file used the pipe (|) operator to build an initial empty file.

But the pipe operator | may sometimes return a non-zero exit code for some linux platforms, if the
the streams are closed before dd has fully processed the stream.

This issue occured on a travis linux ubuntu image.

Solution was to change to redirection.
2020-04-21 17:04:33 +10:00
Dean Netherton
66c893e251 makefile: updated some make scripts to use when calling subdir makefiles 2020-04-21 16:50:48 +10:00
Dean Netherton
74c7d865d7 Whitespace: trailing whitespaces 2020-04-21 16:37:29 +10:00
Dean Netherton
d4ebc44a98 HBIOS: Force the assembly to fail for vdu drivers if function table count is not correct 2020-04-21 16:34:51 +10:00
Dean Netherton
8c08f55d8f Whitespace changes (crlf) 2020-04-21 16:34:33 +10:00
Dean Netherton
8198da1aa4 Added some more gitignores 2020-04-21 16:34:23 +10:00
Dean Netherton
92a3501c81 HBIOS Makefile - use env vars for target
Allow build ROM targets to be restricted to just one platform thru use of ENV vars:

ROM_PLATFORM - if defined to a known platform, only this platform is build - defaults to std config
ROM_CONFIG - sets the desired platform config - defaults to std

if the above ENVs are not defined, builds all ROMs
2020-04-21 16:34:13 +10:00
Wayne Warthen
aac4a51f23 MacOS Build Improvement
Build script updated to improve compatibility with MacOS.

Credit to Fredrik Axtelius for this.
2020-04-20 14:59:27 -07:00
Wayne Warthen
1b3e85f0fb Update acia.asm
Fix bug in ACIA detection.

Thanks Alan!
2020-04-20 14:39:46 -07:00
Wayne Warthen
c6eee95a55 Update acia.asm
Updated ACIA detection to use primary ACIA port instead of phantom port.
2020-04-20 14:14:56 -07:00
Wayne Warthen
4ce0e1f657 Handle CTC anomaly
Small update to accommodate CTC behavior that occurs when the CTC trigger is more than half the CTC clock.
2020-04-20 13:08:49 -07:00
Wayne Warthen
98463d6774 Update ACIA detection
ACIA should no longer be detected if there is also a UART module in the system.
2020-04-19 17:11:54 -07:00
Wayne Warthen
7d022f709b CF Card compatibility improvement
Older CF Cards did not reset IDE registers to defaults values when reset.  Implemented a work around.
2020-04-18 15:19:10 -07:00
Wayne Warthen
fd8a9195fb Update xmdm125.asm
Fixed a small issue in core XM125 code that caused a file write error message to not be displayed when it should be.
2020-04-18 10:16:37 -07:00
Wayne Warthen
57f78d1a6b CTC driver fine tuning 2020-04-17 15:53:17 -07:00
Wayne Warthen
8ad2bdbb29 SIO driver now CTC aware
The SIO driver can now use a CTC (if available) to provide much more flexible baud rate programming.
2020-04-17 11:25:28 -07:00
Phillip Stevens
0fa5ef45e2 Merge pull request #27 from wwarthen/dev
update to dev
2020-04-13 17:17:29 +10:00
Wayne Warthen
257f784318 Improved clock driver auto-detect/fallback 2020-04-12 14:54:30 -07:00
Wayne Warthen
e66d997557 Update commit.yml
Run commit build for master and dev branches
2020-04-11 13:37:12 -07:00
Wayne Warthen
7e85253f26 Update commit.yml
Run commit build in all branches
2020-04-11 13:35:23 -07:00
Wayne Warthen
e84a1bc3ea ROMLDR Improvements
.com files can now be started from CP/M and size of .com files has been reduced so they always fit.
2020-04-11 13:32:55 -07:00
Wayne Warthen
f4daaa91a4 Add RC2014 UART, Improve SD protocol fix
- RC2014 and related platforms will autodetect a UART at 0xA0 and 0xA8
- Ensure that CS fully brackets all SD I/O
2020-04-09 11:49:09 -07:00
Wayne Warthen
5c3f75d504 Update sd.asm
For Z180 CSIO, ensure that xmit is finished, before asserting CS for next transaction.
2020-04-08 19:09:04 -07:00
Wayne Warthen
0901e77866 Update FDISK80.COM
Updated FDISK80 to allow reserving up to 256 slices.
2020-04-06 17:35:00 -07:00
Wayne Warthen
621175533b Start v3.1 Development 2020-04-06 12:54:23 -07:00
Wayne Warthen
565400eec5 Merge pull request #110 from wwarthen/master
Sync
2020-04-06 12:49:56 -07:00
Wayne Warthen
9d5e792b34 Revert "New ROMLDR and INTRTC driver"
This reverts commit d9bed4563e.
2020-04-06 12:44:52 -07:00
Wayne Warthen
ee62847781 Revert "CP/M 3 Date Hack"
This reverts commit 153b494e61.
2020-04-06 12:44:43 -07:00
Wayne Warthen
077fd2bf21 Revert "Update romldr.asm"
This reverts commit 4a9825cd57.
2020-04-06 12:44:14 -07:00
Wayne Warthen
982b6c08d9 Revert "Update Apps for New Version"
This reverts commit ad80432252.
2020-04-06 12:43:55 -07:00
Wayne Warthen
ad80432252 Update Apps for New Version 2020-04-05 19:45:19 -07:00
Wayne Warthen
4a9825cd57 Update romldr.asm
Work around minor Linux build inconsistency
2020-04-05 17:47:04 -07:00
Wayne Warthen
153b494e61 CP/M 3 Date Hack
- Hack to allow INTRTC to increment time without destroying the date
2020-04-05 17:03:17 -07:00
Wayne Warthen
d9bed4563e New ROMLDR and INTRTC driver
- Refactored romldr.asm
- Added new periodic timer based RTC driver
2020-04-05 16:01:04 -07:00
Wayne Warthen
2e2d2bebd7 Finalize v3.0.1
Cleanup release for v3.0
2020-04-04 10:48:34 -07:00
Wayne Warthen
77cc5d14a9 Minor RTC Updates 2020-03-31 15:22:02 -07:00
Wayne Warthen
99dadbc17c Handle lack of RTC better
DSRTC driver now correctly returns an error if there is no RTC present.
2020-03-31 11:30:11 -07:00
Wayne Warthen
663a532967 Fix Auto CRT Console Switch on CP/M 3 2020-03-30 14:54:53 -07:00
Wayne Warthen
c615fd239b CLRDIR and ZDE updates
- CLRDIR has been updated by Max Scane for CP/M 3 compatibility.
- A minor issue in the preconfigured ZDE VT100 terminal escape sequences was corrected.
2020-03-30 11:19:06 -07:00
Wayne Warthen
a8b29e44f3 TMS Driver Z180 Improvements
- TMS driver udpated to insert Z180 I/O waitstates internally so other code can run at full speed.
- Updated How-To documents from David.
- Fixed TUNE app to properly restore Z180 I/O waitstates after manipulating them.
2020-03-29 18:02:07 -07:00
Wayne Warthen
6156c4c765 XModem Timing Refinements 2020-03-29 15:42:46 -07:00
Wayne Warthen
a94fa2917e Improve XModem Startup
- Extended startup timeout for XM.COM so that it doesn't timeout so quickly while host is selecing a file to send.
- Updated SD Card How-To from David Reese.
2020-03-29 12:52:15 -07:00
Wayne Warthen
1be2007b9e Merge pull request #109 from wwarthen/master
Sync
2020-03-27 17:22:25 -07:00
1634 changed files with 122449 additions and 147033 deletions

View File

@@ -4,28 +4,75 @@ on:
push:
branches:
- master
- dev
tags-ignore:
- v*
jobs:
build:
buildLinux:
runs-on: ubuntu-latest
steps:
- uses: rlespinasse/github-slug-action@1.1.0
- uses: rlespinasse/github-slug-action@v4.4.0
- uses: actions/checkout@v2
- uses: actions/checkout@v3.1.0
- name: Build
run: |
export TZ='America/Los_Angeles'
sudo apt-get install libncurses-dev
make
make clean
sudo apt-get install srecord
make dist
rm -rf .git*
- name: List Output
run: |
cd Binary
ls -l
find -type f -exec md5sum '{}' \;
- name: Upload Artifact
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v3.1.1
with:
name: RomWBW-${{env.GITHUB_REF_SLUG}}-${{env.GITHUB_SHA_SHORT}}
path: .
name: RomWBW_Linux-${{env.GITHUB_REF_SLUG}}-${{env.GITHUB_SHA_SHORT}}
path: .
- name: Create Package Archive
run: |
zip -r RomWBW-SnapShot-Package.zip .
- name: Post SnapShot
uses: wwarthen/actions/packages/automatic-releases@built-packages
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "SnapShot"
prerelease: true
title: "RomWBW Development SnapShot Build"
files: |
RomWBW-SnapShot-Package.zip
buildMacOS:
runs-on: macOS-12
steps:
- uses: actions/checkout@v3.1.0
- name: Build
run: |
export TZ='America/Los_Angeles'
brew install srecord
make dist
rm -rf .git*
- name: List Output
run: |
cd Binary
ls -l
find . -type f -exec md5 -r -- '{}' +;
- name: Upload Artifact
uses: actions/upload-artifact@v3.1.1
with:
name: RomWBW_MacOS
path: .

View File

@@ -26,8 +26,7 @@ jobs:
- name: Build
run: |
sudo apt-get install libncurses-dev
make
make clean
make dist
rm -rf .git*
- name: Upload Artifact

26
.gitignore vendored
View File

@@ -20,6 +20,7 @@
Binary/**/*.mym
Binary/**/*.pt3
!Binary/cpnos-wbw.sys
Source/**/eeprom
Source/Apps/Assign.com
@@ -49,6 +50,9 @@ Source/Images/blankhd
Source/Prop/Spin/ParPortProp.list
Source/Prop/Spin/PropIO.list
Source/Prop/Spin/PropIO2.list
Source/Prop/ParPortProp.list
Source/Prop/PropIO.list
Source/Prop/PropIO2.list
Source/ZPM3/bnkbios3.spr
Source/ZPM3/gencpm.com
Source/ZPM3/gencpm.com
@@ -73,24 +77,34 @@ Tools/unix/zx/zx
!Source/ver.lib
!Source/Apps/FAT/FAT.COM
!Source/Apps/ZMP/zmpx.com
!Source/Apps/ZMD/zmdsubs.rel
!Source/Apps/Test/vdctest/font.asm
!Source/BPBIOS/bpbuild.com
!Source/BPBIOS/movp112.com
!Source/BPBIOS/*.lib
!Source/BPBIOS/Z34RCP11/cledinst.com
!Source/BPBIOS/Z34RCP11/cledsave.com
!Source/Fonts
!Source/Images/**/*.[Cc][Oo][Mm]
!Source/RomDsk/**/*.[Cc][Oo][Mm]
!Source/Fonts/*
!Source/Images/**
!Source/RomDsk/**
!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/ZRC/*.bin
!Source/ZZRC/*.bin
!Source/ZZRC/*.hex
!Tools/cpm/**
!Tools/unix/zx/*
!Tools/zx/*
Source/ZPM3/gencpm.com
Source/ZPM3/startzpm.com
Source/ZPM3/zccp.com
Source/ZPM3/zpmldr.com
Source/ZPM3/genbnk.dat
Source/ZSDOS/zsdos.err

View File

@@ -2,5 +2,11 @@
setlocal
if exist *.com del *.com
if exist *.ovr del *.ovr
if exist *.doc del *.doc
if exist *.hlp del *.hlp
if exist Tunes\*.pt? del Tunes\*.pt?
if exist Tunes\*.mym del Tunes\*.mym
if exist Tunes\*.vgm del Tunes\*.vgm
pushd Test && call Clean || exit /b 1 & popd

View File

@@ -1,10 +1,11 @@
TOOLS = ../../Tools
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.com Tunes/*)
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.com)
SUBDIRS = Test
include $(TOOLS)/Makefile.inc
all::
mkdir -p Tunes
clobber::
rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom *.COM *.BIN Tunes/*.mym Tunes/*.pt?
clean::
@rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom *.ovr *.hlp *.doc *.COM *.BIN Tunes/*.mym Tunes/*.pt? Tunes/*.vgm

View File

@@ -11,4 +11,11 @@ are specific to RomWBW. The source for these applications is found
in the Source\Apps directory of the distribution.
The Tunes subdirectory contains some sample ProTracker and MYM sound
files that can be played by the TUNE application.
files that can be played by the TUNE application.
All of these files are already included in the pre-built boot disk
images. They are also included on the ROM disk except for
FAT.COM, TUNE.COM, and the sample tune files in the Tunes directory.
If you upgrade your ROM to a new version, you should also copy
these files over to any hard disk images you are using.

View File

@@ -0,0 +1,4 @@
@echo off
setlocal
if exist *.com del *.com

View File

@@ -0,0 +1,7 @@
TOOLS = ../../../Tools
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.com)
include $(TOOLS)/Makefile.inc
clean::
@rm -f *.com

View File

@@ -0,0 +1,16 @@
***********************************************************************
*** ***
*** R o m W B W ***
*** ***
*** Z80/Z180 System Software ***
*** ***
***********************************************************************
This directory contains various hardware test application files that
are specific to RomWBW. The source for these applications is found
in the Source\Apps\Test directory of the distribution.
These files are included on the pre-built disk images in user area 2.
N.B., these files may be specific to certain hardware. They should
be used as directred by the instructions for your specific hardware.

View File

@@ -7,4 +7,4 @@
***********************************************************************
This directory contains some sample ProTracker and MYM sound
files that can be played by the TUNE application.
files that can be played by the TUNE or VGMPLAY application.

11
Binary/CPM3/Clean.cmd Normal file
View File

@@ -0,0 +1,11 @@
@echo off
setlocal
if exist *.spr del *.spr
if exist *.com del *.com
if exist *.sys del *.sys
if exist *.pat del *.pat
if exist *.dat del *.dat
if exist *.1st del *.1st
if exist *.spr del *.spr
if exist *.pat del *.pat

7
Binary/CPM3/Makefile Normal file
View File

@@ -0,0 +1,7 @@
TOOLS = ../../Tools
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr)
include $(TOOLS)/Makefile.inc
clean::
@rm -f *.spr *.com *.sys *.dat cpm3fix.pat readme.1st

17
Binary/CPM3/ReadMe.txt Normal file
View File

@@ -0,0 +1,17 @@
***********************************************************************
*** ***
*** R o m W B W ***
*** ***
*** Z80/Z180 System Software ***
*** ***
***********************************************************************
This directory contains the CP/M 3 system files for the RomWBW CP/M 3
adaptation. All of these files are already included on the CP/M 3
boot disk images. However if you are creating a CP/M 3 boot disk
manually, you should copy all of these files to the boot disk.
These files should also be copied to any CP/M 3 boot disks on your
system when you upgrade your ROM firmware. Some of these files
*must* match the version of the RomWBW firmware you are using for
proper operation of your system.

View File

@@ -2,11 +2,15 @@
setlocal
if exist *.bin del *.bin
if exist *.dat del *.dat
if exist *.com del *.com
if exist *.img del *.img
if exist *.rom del *.rom
if exist *.hex del *.hex
if exist *.upd del *.upd
if exist *.pdf del *.pdf
if exist *.log del *.log
if exist *.eeprom del *.eeprom
setlocal & cd Apps && call Clean || exit /b 1 & endlocal
pushd Apps && call Clean || exit /b 1 & popd
pushd CPM3 && call Clean || exit /b 1 & popd
pushd ZPM3 && call Clean || exit /b 1 & popd

View File

@@ -17,6 +17,12 @@ a floppy or hard/CF/SD disk. You can use your modern computer
media. The disk media will then be ready to use in your RomWBW
System.
WARNING: The hdnew_*.img disk images are part of a new disk
format that is a work in progress. Do not use these disk
images without knowing exactly what you are doing! The
hd_*.img disk images continue to be the images you should
be using under normal circumstances.
A description of the disk images is provided later in this file.
For more information on the creatioin of these images including
instructions for customizing them or creating your own, refer to

View File

@@ -1,8 +1,8 @@
TOOLS = ../Tools
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.img *.rom *.com *.eeprom)
SUBDIRS = Apps
SUBDIRS = Apps CPM3 ZPM3
include $(TOOLS)/Makefile.inc
clobber::
rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom
clean::
@rm -f *.bin *.com *.img *.rom *.upd *.hex *.pdf *.log *.eeprom *.dat

View File

@@ -42,6 +42,15 @@ MK4_custom.rom will be added to this directory.
Documentation of the pre-built ROM Images is contained in the
RomList.txt file in this directory.
ROM Firmware Update Images (<plt>_<cfg>.upd)
-------------------------------------
The files with a ".upd" extension are binary images identical to the
.rom files, but they only have the first 128K bytes. The first 128K
is the system image without the ROM disk contents. These files can be
used to update the system image without modifying the ROM disk
contents. Refer to the Getting Started document for more information.
ROM Executable Images (<plt>_<cfg>.com)
---------------------------------------
@@ -66,8 +75,8 @@ The VDU video board requires a dedicated onboard ROM containing the
font data. The "vdu.rom" file contains the binary data to program
onto that chip.
Disk Images (fd_*.img, hd_*.img)
------------------------------
Disk Images (fd_*.img, hd_*.img, psys.img)
------------------------------------------
RomWBW includes a mechanism for generating floppy disk and hard disk
binary images that are ready to copy directly to a floppy, hard disk,
@@ -87,10 +96,18 @@ RawWriteWin (as long as you have access to a floppy drive on your
Windows computer). The resulting floppy disks will be usable on any
RomWBW-based system with floppy drive(s).
Likewise, the hd_*.img files are hard disk images. Each file is
intended to be copied to the start of any type of hard disk media
(typically a CF Card or SD Card). The resulting media will be usable
on any RomWBW-based system that accepts the corresponding media type.
Likewise, the hd512_*.img and hd1k_*.img files are hard disk images.
Each file is intended to be copied to the start of any type of hard
disk media (typically a CF Card or SD Card). The resulting media will
be usable on any RomWBW-based system that accepts the corresponding
media type.
NOTE: The hd512_*.img files are equivalent to the hd_*.img
files in previous distributions. The hd1k_*.img files
contained a revised file system format that increases the
maximum number of CP/M directory entries from 512 to 1024.
Refer to the ReadMe.txt in the Source/Images directory
for details.
Documentation of the pre-built disk images is contained in the
DiskList.txt file in this directory.
@@ -100,6 +117,12 @@ the BuildImages.cmd script in the Source directory. Additional
information on how to generate custom disk images is found in the
Source\Images ReadMe.txt file.
The psys.img file contains a full implementation of the UCSD p-System
for the Z80 running under RomWBW. This image file must be placed on
disk media by itself (not appended or concatenated with hd*.img files.
Refer to the Source/pSys/ReadMe.txt file for more information on the
p-System implementation.
Propeller ROM Images (*.eeprom)
-------------------------------

View File

@@ -1,218 +0,0 @@
***********************************************************************
*** ***
*** R o m W B W ***
*** ***
*** Z80/Z180 System Software ***
*** ***
***********************************************************************
This directory ("Binary") is part of the RomWBW System Software
distribution archive. Refer to the ReadMe.txt file in this
directory for more information on the overall contents of the
directory.
When distributed, RomWBW contains a set of pre-built ROM images that
are ready to program onto the EEPROM of any of the Z80/Z180 based
RetroBrew Computers CPU boards. Additionally, any custom built ROM
images will be placed in this directory.
All of the pre-built ROM images are 512KB. This size is compatible
with all of the Z80/Z180 systems. Some systems can accept different
size ROM images. Creating alternative sizes requires a custom ROM
build (see ReadMe.txt in the Source directory).
It is critical that the right ROM Imgae be selected for the target
platform being used. The table below indicates the correct ROM
image to use for each platform:
SBC V1/V2 SBC_std.rom
SBC SimH SBC_simh.rom
Zeta V1 ZETA_std.rom
Zeta V2 ZETA2_std.rom
N8 N8_std.rom
Mark IV MK4_std.rom
RC2014 w/ Z80 RCZ80_std.rom
RC2014 w/ Z180 RCZ180_nat.rom (native Z180 memory addressing)
RC2014 w/ Z180 RCZ180_ext.rom (external 512K RAM/ROM module)
SC-series SC126, SC130
Easy Z80 EZZ180_std.rom
Dyno DYNO_std.rom
You will find there is one additional ROM image called
"UNA_std.rom". This ROM image is an UNA-based RomWBW ROM image. As
such, this ROM image can be used on any Z80/Z180 platform supported
by John Coffman's UNA BIOS. Refer to RetroBrew Computers Wiki for
more information on UNA hardware support.
For each of the ROM Images (".rom"), there are corresponding files
with the extensions of ".com" and ".img". The .com variant can be
copied to a functional RomWBW-based system and executed like a
normal application under CP/M or Z-System. This will load the new
ROM on-the-fly. It is an excellent way to test a ROM Image before
actually burning it. Similarly, the .img files can be loaded using
the UNA FAT loader for testing.
WARNING: In a few cases the .com file is too big to load. If you get
a message like "Full" or "BAD LOAD" when trying to load one of the
.com files, it is too big. In these cases, you will not be able to
test the ROM prior to programming it.
All of the standard ROM Images are configured for:
- 512KB ROM Disk
- 512KB RAM Disk
- 38.4Kbps baud serial console (*)
- Auto-discovery of all serial ports
* RC2014 and Stephen Cousins' kits run at 115,200Kbps baud
All hard disk type devices (IDE, PPIDE, CF Card, SD Card) will be
automatically assigned two drive letters per device. The drive
letters will refer to the first 2 slices of the device. The ASSIGN
command can be used to display and reassign drives to disk devices
and slices as desired.
Standard ROM Image Notes
------------------------
The standard ROM images will detect and install support for certain
devices and peripherals that are on-board or frequently used with
each platform as documented below. If the device or peripheral is
not detected at boot, the ROM will simply bypass support
appropriately.
SBC (SBC_std.rom):
- CPU speed is detected at startup
- Console on onboard UART serial port at 38400 baud
- Includes support for PPIDE/CF Card(s) connected to on-board
parallel port.
- Includes support for CVDU and VGA3 boards. If detected at
startup, support for video and keyboard is installed
including VT-100/ANSI terminal emulation.
- Auto-detects PropIO or PropIO V2 and installs associated
video, keyboard and SD Card support if present.
- If PropIO, PropIO V2, CVDU, or VGA hardware is detected,
initial console output is determined by JP2. If JP2 is
shorted, console will go to on-board serial port, if JP2
is open, console will go to the detected video and keyboard
ports.
- SBC V1 has a known race condition in the bank switching
circuit which is likely to cause system instability. SBC
V2 does not have this issue.
SBC (SBC_simh.rom):
- SBC variant customized to run under SimH
- Implments two emulated SimH hard disk images
- Uses SimH RTC
ZETA (ZETA_std.rom):
- CPU speed is detected at startup
- Console on onboard UART serial port at 38400 baud
- Includes support for on-board floppy disk controller and
two attached floppy disks.
- Auto-detects ParPortProp and includes support for it if it
is attached.
- If ParPortProp is installed, initial console output is
determined by JP1. If JP1 is shorted, console will go to
on-board serial port, if JP1 is open, console will go to
ParPortProp video and keyboard ports.
ZETA2 (ZETA2_std.rom):
- CPU speed is detected at startup
- Console on onboard UART serial port at 38400 baud
- Includes support for on-board floppy disk controller and
two attached floppy disks.
- Auto-detects ParPortProp and includes support for it if it
is attached.
- Uses CTC to generate periodic timer interrupts.
- If ParPortProp is installed, initial console output is
determined by JP1. If JP1 is shorted, console will go to
on-board serial port, if JP1 is open, console will go to
ParPortProp video and keyboard ports.
N8 (N8_std.rom):
- CPU speed is detected at startup
- Console on Z180 onboard primary ASCI serial port at 38400 baud
- Includes support for on-board floppy disk controller and
two attached floppy disks.
- Includes support for on-board TMS9918 video and keyboard
including VT-100/ANSI terminal emulation.
- Includes support for on-board SD Card as hard disk and
assumes a production level N8 board (date code >= 2312).
MK4 (MK4_std.rom):
- CPU speed is detected at startup
- Console on Z180 onboard primary ASCI serial port at 38400 baud
- Includes support for on-board IDE port (CF Card via adapter).
- Includes support for on-board SD Card port.
- Auto-detects PropIO or PropIO V2 and installs associated
video, keyboard and SD Card support if present.
- Includes support for CVDU and VGA3 boards. If detected at
startup, support for video and keyboard is installed
including VT-100/ANSI terminal emulation.
RCZ80 (RCZ80_std.rom):
- Assumes CPU oscillator of 7.3728 MHz
- Requires 512K RAM/ROM module
- Auto detects Serial I/O Module (ACIA) and Dual Serial
Module (SIO/2). Either one may be used.
- Console on whichever serial module is installed,
but will use the SIO/2 if both are installed. Baud
rate is determined by hardware, but normally 115200.
- Includes support for RC2014 Compact Flash Module
- Support for RC2014 PPIDE Module may be enabled in config
- Support for Scott Baker SIO board may be enabled in config
- Support for Scott Baker floppy controllers (SMC & WDC) may
be enabled in config
RCZ80 w/ KIO (RCZ80_kio.rom):
- Assumes CPU oscillator of 7.3728 MHz
- Requires 512K RAM/ROM module
- Requires KIO module
- Console on KIO primary serial port at 115200 baud
- Includes support for RC2014 Compact Flash Module
- Includes support for RC2014 PPIDE Module
- Support for Scott Baker SIO board may be enabled in config
- Support for Scott Baker floppy controllers (SMC & WDC) may
be enabled in config
RCZ180 (RCZ180_nat.rom & RCZ180_ext.rom):
- Assumes CPU oscillator of 18.432 MHz
- Console on Z180 onboard primary ASCI serial port at 115200 baud
- Includes support for RC2014 Compact Flash Module
- Includes support for RC2014 PPIDE Module
- Support for alternative serial modules may be enabled in config
- Support for Scott Baker floppy controllers (SMC & WDC) may
be enabled in config
- You must pick the _nat or _ext variant depending on which
memory module you are using:
- RCZ180_nat.rom uses the built-in Z180 memory manager
for use with memory modules allow direct physical
addressing of memory, such as the SC119
- RCZ180_ext.rom uses external bank management to access
memory, such as the 512K RAM/ROM module.
SCZ180 (SCZ180_126.rom, SCZ180_130.rom, SCZ180_131.rom):
- Assumes CPU oscillator of 18.432 MHz
- Console on Z180 onboard primary ASCI serial port at 115200 baud
- Includes support for RC2014 Compact Flash Module
- Includes support for RC2014 PPIDE Module
- Support for alternative serial modules may be enabled in config
- Support for Scott Baker floppy controllers (SMC & WDC) may
be enabled in config
- The 3 different variants of SCZ180 are provided to match the
3 corresponding systems (SC126, SC130, and SC131) designed by
Stephen Cousins.
EZZ80 (EZZ80_std.rom):
- Assumes CPU oscillator of 10.000 MHz
- Console on primary SIO serial port at 115200 baud
- Includes support for on-board SIO
- Includes support for RC2014 Compact Flash Module
- Includes support for RC2014 PPIDE Module
DYNO (DYNO_std.rom):
- Assumes CPU oscillator of 18.432 MHz
- Console on Z180 onboard serial ports at 38400 baud
- Includes support for BQ4842 RTC
- Includes support for onboard PPIDE
- Support for Dyno floppy controllers may be enabled in config

10
Binary/ZPM3/Clean.cmd Normal file
View File

@@ -0,0 +1,10 @@
@echo off
setlocal
if exist *.spr del *.spr
if exist *.com del *.com
if exist *.sys del *.sys
if exist *.pat del *.pat
if exist *.dat del *.dat
if exist *.zpm del *.zpm
if exist *.spr del *.spr

7
Binary/ZPM3/Makefile Normal file
View File

@@ -0,0 +1,7 @@
TOOLS = ../../Tools
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr)
include $(TOOLS)/Makefile.inc
clean::
@rm -f *.spr *.com *.sys *.dat *.zpm

17
Binary/ZPM3/ReadMe.txt Normal file
View File

@@ -0,0 +1,17 @@
***********************************************************************
*** ***
*** R o m W B W ***
*** ***
*** Z80/Z180 System Software ***
*** ***
***********************************************************************
This directory contains the ZPM3 system files for the RomWBW ZPM3
adaptation. All of these files are already included on the ZPM3
boot disk images. However if you are creating a CP/M 3 boot disk
manually, you should copy all of these files to the boot disk.
These files should also be copied to any ZPM3 boot disks on your
system when you upgrade your ROM firmware. Some of these files
*must* match the version of the RomWBW firmware you are using for
proper operation of your system.

BIN
Binary/cpnos-wbw.sys Normal file

Binary file not shown.

6
Build.cmd Normal file
View File

@@ -0,0 +1,6 @@
@echo off
setlocal
pushd Source && call Build %* || exit /b & popd
if "%*" == "" pause

128
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
wwarthen@gmail.com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

5
Clean.cmd Normal file
View File

@@ -0,0 +1,5 @@
@echo off
setlocal
pushd Binary && call Clean || exit /b 1 & popd
pushd Source && call Clean || exit /b 1 & popd

View File

@@ -1,3 +1,105 @@
Version 3.1.1
-------------
- WBW: Version bumped due to pervasive changes
- WBW: Preliminary hard disk partition support (backward compatible)
- WBW: Change Propeller VGA signal timings to 60Hz refresh
- WBW: Enhanced SYSTEM RESET function to allow a warm start back to boot loader
- C?O: Add DUART driver
- WBW: Early Z280 support (requires 512K RAM/ROM board)
- HCS: ZRC memory manager support
- S?K: Support for Tiny Z80 by Sergey
- E?B: Support for v6 YM/AY sound card
- C?M: Support for RCBus bus PropIO V2
- W?S: Updated FLASH software to v1.3.4
- PMS: Preliminary support for writing to FLASH ROMs
- PMS: Creation of process to update ROM system area w/o updating ROM disk contents
- PMS: Added "updater.asm" which allows uploading and updating ROM in one step
- WBW: Support for Z280 w/ native memory and interrupt mode 3
- WBW: Support for Z280 UART (interrupt driven only in interrupt mode 3)
- WBW: Add support Z80-512K (watchdog and LED)
- WBW: Add support for ZZ80MB address map
- PLS: Add support for Z180 invalid opcode trap
- WBW: Add support for ZZRCC
- WBW: Allow selection of RAM/ROM disk individually in build
- WBW: Support 256KB ROM size
- WBW: CP/M 3 RTC support is now complete (reads and writes RTC date/time)
- WBW: Add config to allow swapping logical order of MT011 SPI ports
- WBW: COPY.COM updated from v1.72 -> v1.73 throughout distribution
- D?M: CP/NET for CP/M 2.2 and CP/M 3 (requires MT011)
- D?M: SD driver fixes for MT011
- J?C: Added FIND application from Jay Cotton
- PMS: Preliminary support for I2C-based DS1307 clock
- WBW: FD driver auto hardware detect (thanks Alan Cox)
- D?N: Added support for TMS V9958 VDU
- D?N: Added support for MSX keyboard
- D?N: Added support for RP5C01 RTC
- L?N: Slightly enhanced ZCPRD&J w/ a couple bug fixes
- L?N: UNZIPZ4 which handles most modern ZIP file compression algorithms
- AJL: Preliminary support for MBC systems
- WBW: Added preliminary support for DSKYng
- WBW: Elevated MBC to a platform
- WBW: Added support for MBC user LEDs
- PMS: Early DMA support
- W?S: Updated FLASH software to v1.3.5 (supports 128KB A29010B, 512KB A29040B)
- DDW: Support for DSKYng capabitlities
- WBW: Added Phil Summers' ROM Updater into ROM Loader
- AJL: Added ramtest app (requires SBC and MBC for now)
- L?N: Provided SCOPY, XSUB01, and EX applications
- WBW: Added support for MBC FDC to FDU application
- WBW: Added support for MBC FDC to HBIOS
- WBW: Refactored make process
- WBW: Added ROM verification to boot process
- WBW: Added Z80 instruction test apps to user area 5 in CP/M & ZSDOS
- WBW: Add support for LINC sound card
- WBW: Add interrupt receive support to UART driver
- PMS: Add XModem transfer within Debug Monitor
- PMS & AJL: Add DMAMON test application
- PMS: Add ZMP adaptation
- LWN: Substantial BPBIOS cleanup
- AJL: Add ZMD adaptation
- D?T: Substantial update to TastyBasic incuding a .COM executable
- PMS: Added VGM audio file player
- WBW: ZPMLDR and ZPM3 fixes, credit to Lars Nelson for finding ZPM3 source!
- DDW: Add support for MBC sound card
- WBW: Add support for "romless" booting
- L?N: Fixes for ZCPR-D&J (buffer overflow, default drive/user)
- J?P: Add support for DS1501 RTC
- LLS: Added a user defined mode for SD Card interfaces (not complete)
- L?N: Updated ZDE to v1.8 including time stamp preservation fixes
- D?M: Minor update to CP/NET client files, fix to CPNBOOT
- WBW: Added p-System IV.0 Z80 implementation
- WBW: Hacked SURVEY to work around bank switching crash
Version 3.1
-----------
- WBW: Refactored ROM Loader
- WBW: INTRTC periodic timer based clock
- WBW: FDISK80 updated to allow reserving up to 256 slices
- WBW: Added support dual 16C550 UART on RCBus platform
- WBW: Made .com images smaller (contain only Z-System now)
- WBW: Support automatic clock hardware detection and fallback
- WBW: Support use of CTC for SIO baud rate divisors
- WBW: Updated IDE and PPIDE drivers to improve old CF Card compatibility
- WBW: Support TIMER mode in CTC driver
- DEN: Added sound driver support
- DEN: Added SN76489 sound chip driver
- M?O: RomWBW Disk Catalog document
- DEN: Updated TMS to optionally trigger SYSTIMER interrupt (TMSTIMENABLE)
- J?M: Updated KERMIT applications with VT100 terminal support
- A?C: Added support for EPFDC
- PMS: Added AY driver with new sound API support
- DEN: Allow immediate autoboot startup
- DEN: Support for floppy device count parameter
Version 3.0.1
-------------
- WBW: Increase XModem timeout waiting for host to start sending
- WBW: Update TMS driver to dynamically increase Z180 I/O W/S inside driver
- MJS: Update CLRDIR for CP/M 3 compatibility
- WBW: Corrected cursor on/off esc sequence in pre-configured ZDE
- WBW: Fix automatic CRT console switching under CP/M 3 and ZPM3
- WBW: DSRTC driver now correctly returns an error if there is no RTC present
Version 3.0.0
-------------
- WBW: v2.9.2 -> 3.0 version upgrade due to scope of changes
@@ -11,8 +113,8 @@ Version 2.9.2
- WBW: Support two SIO modules w/ auto-detection
- PMS: Support ECB USB-FIFO board
- WBW: Fixed ASSIGN issue with incorrect DPB selection
- WBW: Add RC2014 Z180 AY sound support to TUNE app
- WBW: Add RC2014 AY sound support to AY driver
- WBW: Add RCBus Z180 AY sound support to TUNE app
- WBW: Add RCBus AY sound support to AY driver
- WBW: Add SC126 platform
- WBW: Config files cleanup
- WBW: Add interrupt support to ASCI driver
@@ -31,7 +133,7 @@ Version 2.9.2
- PMS: Add sound support to NASCOM BASIC
- WBW: Updated FAT to add MD and FORMAT commands
- WBW: Add CP/M 3 (experimental)
- M?T: Support Shift register SPI WIZNET for RC2014
- M?T: Support Shift register SPI WIZNET for RCBus
- PLS: Added seconds register in HBIOS
- WBW: More flexible table-driven config in TUNE.COM
- PMS: Added timer support for Zilog Peripherals ECB Board
@@ -59,7 +161,7 @@ Version 2.9.2
Version 2.9.1
-------------
- E?B: Added support for RC2014 RTC
- E?B: Added support for RCBus RTC
- WBW: Converted PTXPLAY to TUNE (now plays PT2/PT3/MYM sounds files)
- WBW: Updated Win32DiskImager to v1.0
- WBW: Implemented character attributes on Propeller based consoles
@@ -69,7 +171,7 @@ Version 2.9.1
- WBW: Update default IOBYTE so that LST:=LPT: by default
- WBW: Fixed missing drive/head setup for writes in PPIDE
- WBW: Fixed XModem HBIOS console driver for file send operations
- WBW: Preliminary support for RC180 platform (Z180 module in RC2014)
- WBW: Preliminary support for RC180 platform (Z180 module in RCBus)
- WBW: Added NZCOM distribution files to third slice of hard disk image
- WBW: Fixed getnum32 bug in MODE command (found by Phil Summers)
- PMS: Added serial support for Zilog Peripherals Baord
@@ -81,32 +183,32 @@ Version 2.9.1
- PMS: Added Forth, Nascom BASIC, and Tasty BASIC to ROM
- PMS: Refactored ROM Loader to support more ROM images, now table driven
- WBW: Refactored DSKY code
- SK: Initial support for Easy Z80
- S?K: Initial support for Easy Z80
- PMS: Enhance VDU driver to support alternative screen dimensions
- WBW: DDT and DDTZ modified to use RST 30 instead of RST 38 to avoid conflicts with IM 1 interrupts
- WBW: Added timer interrupt support for CTC under Zeta 2 and Easy Z80
- WBW: Support LBA style access in floppy driver
- WBW: Added beta version of FAT filesystem utility (copy, dir, del, ren)
- SCC: Added support for native memory addressing on Z180-based RC2014
- SCC: Added support for native memory addressing on Z180-based RCBus
- PMS: Dynamically discover and display processor type at boot
- J?L: Added German keyboard support to PPK and KBD drivers
Version 2.9.0
-------------
- WBW: Implemented multi-sector I/O in all disk drivers
- WBW: Added support for RC2014 SMB Floppy controller modules (SMC and WDC)
- WBW: Added support for RCBus SMB Floppy controller modules (SMC and WDC)
- WBW: New function dispatching for character/disk/video drivers
- WBW: Updated FDU app to support RC2014 floppy controllers
- WBW: Updated FDU app to support RCBus floppy controllers
- WBW: Added TIMER app to display system timer value
- WBW: Refactored interrupt management code
- WBW: Added PTXPLAY application and sample tunes
Version 2.8.6
-------------
- WBW: Added support for RC2014 (SIO and ACIA drivers primarily)
- WBW: Added support for RCBus (SIO and ACIA drivers primarily)
- WBW: Automatically detect and run PROFILE.SUB on boot drive if it exists
- WBW: Fixed Dual SD Board detection
- WBW: Added console support to XModem (for RC2014 primarily)
- WBW: Added console support to XModem (for RCBus primarily)
- E?B: Fixed IDE/PPIDE when used with non-CF drives
- WBW: Patched SUBMIT.COM so that it always puts temp file on A: for immediate execution
- WBW: Accommodate spin up time for true IDE hard disks (IDE or PPIDE)
@@ -259,7 +361,7 @@ Version 2.0
- DWG: Entire new suite of Apps written in Aztec C
- DWG: BANKER.COM - displays bank identification and version information
- DWG: CPMNAME.COM - displays CBIOS header data and SYSCFG data, names and vaues
- DWG: CHARS.COM - displays ascii map as reference
- DWG: CHARS.COM - displays ascii map as reference
- DWG: CLS.COM - clears screen
- DWG: LABEL.COM - displays and changes drive labels for drives with reserved tracks
- DWG: MAP.COM - like old map command, displays drives and logical unit labels and changes LU values
@@ -291,7 +393,7 @@ Version 1.5.1
- WBW: Added ZSDOS clock drivers (see Support\Clock)
- WBW: Overhaul of ZSystem ROM Disk (see Doc\ZSystem.txt)
- WBW: Update PropIO ANSI emulation for compatiblity with ASSIGN
- DWG: Added version tags to all applications, and IDENT program to
- DWG: Added version tags to all applications, and IDENT program to
check version of utilities.
- DWG: Added MULTIFMT program which prepares new media for use by
initializing the metadata and clearing the directory sectors of
@@ -301,8 +403,8 @@ Version 1.5.1
- DWG: ANALYSE and HELLO programs removed from ROM due space concerns
- DWG: Additional macro librarties added supporting program identification
(IDENTITY.LIB/ASM) and access to drive metadata (METADATA.LIB/ASM),
and realtime selection of logical units from within new application
programs (LOGICALS.LIB/ASM).
and realtime selection of logical units from within new application
programs (LOGICALS.LIB/ASM).
- DWG: Added TERM_VT52 for VDU compatbility, all apps now compliant
- DGG: Contributed Linux build (see Doc\BuildLinux.txt)
@@ -330,7 +432,7 @@ Version 1.4
- DWG: Add various .SUB files used for application maintenance
- DWG: Enhanced utility building .SUB files to only contain libs utilitized
- DWG: Add BUILD.SUB to build all applications and DEVFILES.LBR
- DWG: Add/update RMAC macro libraries used in Apps -
- DWG: Add/update RMAC macro libraries used in Apps -
- DWG: BIOSHDR, STDLIB, STRCPY, STRLEN, CPMBIOS, CPMBDOS, TERMINAL, HARDWARE,
- DWG: CPMAPPL, GLOBALS, ATOI, LUBIND, APPLVERS, MEMORY(memcpy,memset), PORTAB
- DWG: Add/Repair BIOS support for Boot Drive login during CP/M Coldstart
@@ -349,7 +451,7 @@ Version 1.4
- DWG: Add LABEL utility to insert label into drive/slice metadata
- DWG: Add 16 char label field to metadata
- DWG: ASSIGN utility displays and manipulates DPH/DPB & logical unit parameters
- DWG/WBW: Collaborated on design of Logical Unit DPH enhancemnt
- DWG/WBW: Collaborated on design of Logical Unit DPH enhancemnt
- WBW: Proposed MAP utility functionality
- WBW: Implement slice selection API for DSK devices
- WBW: Record boot drive in config memory at load time

39
Doc/Contrib/PPI_Bus.txt Normal file
View File

@@ -0,0 +1,39 @@
PPI Signal PPIDE PPISD DSKY DSKYNG (PROTO) DSKYNG (FINAL)
---------- ----- ----- ----- ----- -----
PA0 <>D0 >ID0 <>D0 <>D0
PA1 <>D1 >ID1 <>D1 <>D1
PA2 <>D2 >ID2 <>D2 <>D2
PA3 <>D3 >ID3 <>D3 <>D3
PA4 <>D4 >ID4 /SHUTDOWN <>D4 <>D4
PA5 <>D5 >ID5 /DECODE <>D5 <>D5
PA6 <>D6 >ID6 HEXA/CODEB <>D6 <>D6
PA7 <>D7 >ID7 DAT_COMING <>D7 <>D7
PB0 <>D8 +<ROW5
PB1 <>D9 +<ROW4
PB2 <>D10 +<ROW3
PB3 <>D11 +<ROW2
PB4 <>D12 +<ROW1
PB5 <>D13 +<ROW0
PB6 <>D14 +
PB7 <>D15 <MISO +
PC0 >DA0 >MOSI >COL0 >A0 >A0
PC1 >DA1 >CLK >COL1 >/WR
PC2 >DA2 >COL2 >/RD
PC3 >CS0* >COL3 >CS&* >CS&*
PC4 >CS1* >/CS >CS&* >CS&*
PC5 >DIOW* >/WR
PC6 >DIOR* >/WR >/RD
PC7 >RESET* >MODE >RESET >RESET
* Inverted by adapter
+ Pullup
& Both signals must be asserted
Compatibility:
- PPISD & DSKY
- PPIDE & DSKYNG
- PPISD & DSKYNG

View File

@@ -1,564 +0,0 @@
DDTZ v2.7
by C.B. Falconer
edited by George A. Havach
Introduction:
============
DDTZ v2.7 is a complete replacement for DDT, Digital Research's
famous Dynamic Debugging Tool, with improved functionality, bug
extermination, and full Z80 support. In general, DDTZ is fully
compatible with the original utility, but it has extra and
extended commands and many fewer quirks. All Z80-specific
instructions can be (dis)assembled, though in Intel rather then
Zilog format. Furthermore, DDTZ will correctly trace ('T' and 'U'
commands) both 8080 and Z80 instructions, depending on which CPU
is operating. On startup, the program announces which CPU it is
running on.
DDTZ v2.7 now handles the 64180 added opcodes. It does NOT test
for a 64180 CPU, since this cannot be done without executing
illegal Z80 instructions, which in turn will crash some
simulators. However v2.7 does not execute any 64180 instructions
internally, only in the subject program.
This issue supplies the "M" version assembled, to avoid errors
when switching between MSDOS and CPM systems. The command table
is updated accordingly. Most CPM users are also MSDOS users, but
not vice-versa.
The program is invoked by typing
ddtz<ret>
or
ddtz [d:]filespec<ret>
In the second form, DDTZ will load the specified file into
memory starting at 0100H, unless it's a .HEX file that sets its
own load address. Besides reporting the NEXT free address and
the PC (program counter) after a successful load, DDTZ also shows
the number of memory pages needed for a SAVE. Instead of having
to write all this down, just use the 'X' command at any time to
redisplay these three values for the current application.
NOTE: loading more code above the NEXT pointer revises these
values.
As in DDT, when a program is loaded above the area holding the
'A' and 'U' (and now 'W') command code, these commands are
disabled, and the extra memory is released to the user. Thus,
DDTZ can occupy as little as 3K total memory space. Unlike DDT,
however, DDTZ will not overwrite itself or the system on program
loads (except .HEX files).
At initialization, the stack pointer (SP) points to a return to
DDTZ, just like for the CCP. Thus, programs that normally return
to the CCP will be returned to DDTZ. The 'B' command
reinitializes this condition.
The intercept vector copies the BDOS version number, etc., so
an object program does not know that DDTZ is running (except
for BIOS-BDOS vector size). Thus, programs that check the version
number should execute correctly under DDTZ.
All input parameters can now be entered in any of three formats:
(1) hexadecimal (as in DDT),
(2) decimal, by adding a leading '#' character,
(3) ASCII, by enclosing between either single or double
quotes; either one or two characters are allowed.
Leading blanks in command lines and parameters are absorbed.
Either a comma or a (single) space is a valid delimiter.
Either uppercase or lowercase input is accepted.
The default command (for anything not otherwise recognizable)
is 'H'. This allows convenient calculation, along with the other
features described below. So, to convert a number, just enter
it!
As in DDT, the prompt character is '-', and the only error
message is the query ('?'), which generally kicks you back to
command mode.
New Commands (Over DDT):
=======================
NOTE: letters in parenthesis, e.g. "(U)", show the equivalent
command for DDTZM version (compatible with MSDOS debug).
@ Sets or shows (with no parameter) the internally stored
"base" value. Also used with the 'S' and 'D' commands as
an optional parameter (though without the '@') to display
memory from an arbitrary base marker (offset). When set to
zero (the default), it does not affect any screen displays.
B B)egin: resets the USER stack pointer to its initial value,
such that any program that exits by an RET will return to
DDTZ. DDTZ provides a default stack space of
approximately 24 bytes for user programs.
C C)ompare first_address,last_address,against_address: shows
all the byte differences between two memory areas, in the
format
XXXX aa YYYY bb
where XXXX and YYYY are the comparative memory addresses,
and aa and bb are the corresponding byte values. Can be
used to verify the identity of two files by first
loading them into different memory areas with the 'R'
command (see below).
W Write: stores the modified memory area to disk under the
(K) filename specified by the 'I' command, overwriting the
original file from which it was loaded (the user is queried
before doing so). By default, the image of memory from
0100H through the "NEXT" value -1 is saved. "K first_addr,
last_address" overrides this and allows writing ANY memory
area to a file. Almost a necessity for CPM 3.0 (no SAVE!).
K)eep on DDTZ
X eXamine: redisplays the "NEXT PC SAVE" report at any time.
(Q) Q)uery size on DDTZ.
S S)earch first_address, last_addr, value: searches the
(W) specified memory area for the value (a 16-bit word, not a
byte) and shows the locations of all such. Very useful for
finding CALL's or JMP's to a particular address, etc.
W)here on DDTZ
Y Y)our_option parm1,parm2,address: executes an arbitrary
routine at the specified address, with the BC and DE
registers set to parm1 and parm2, respectively.
Z Displays (but does not alter) the Z80's alternate register
set, including the index registers (disabled if running on
an 8080). On Z80's, automatically included as the last
part of the display by the 'X' command.
Based (Offset) Displays:
=======================
The 'D' and 'E' commands can use a stored base value (offset),
as set by the '@' command. The current @ value may be
overridden for a single execution of these commands by adding the
base as an extra parameter in the command line. The effect is
to add this value to the first/last address and display
accordingly. The address listing on the left becomes XXXX:YYYY,
where XXXX is the offset address and YYYY is the actual memory
address being displayed. For example, if you have a data area
located at 42B7H and wish to preserve easy access, just enter
"@42b7". Now, "d0,3f" will dump memory starting at 4237H.
Further Changes from DDT:
========================
A A)ssemble now accepts the full Z80 as well as 8080
instruction set, although it expects them in Intel rather
than Zilog format (see notes below under the 'L'
command). When in doubt, see the mnemnonic list below.
D D)isplay or D)ump will accept an optional third parameter
to set the base value for a single execution only. Format
has been cleaned up.
H H)ex_arithmetic on two values also shows their
difference in decimal. With only one value, converts to
hexadecimal, decimal, and ASCII (low-order byte only).
N N)ame now allows drive specification (d:...) and sets up
(I) the complete command line, including both FCB's (at
addresses 005CH and 006CH). The tail (stored at 0081H up)
is NOT upshifted.
I)nput on DDTZ
U U)nassemble now displays the raw hexcode, especially handy
(L) when examining non-code areas. Intel (8080 style) mnemonics
are used, so some disassembled instructions may look
strange. E.g., the Z80's 'IN B,(C)' and 'OUT (C),B' become
'INP B' and 'OUTP B', respectively; 'LD (nnnn),BC' becomes
'SBCD nnnn', 'ADD IX, BC' becomes 'DADX B', and 'JP (IX)'
becomes 'PCIX'.
L)ist on DDTZ
L L)oad now permits loading a file into memory with an
(R) offset, which is added to the default load address of
0100H. When reading in a .HEX file with a preset bias,
the 'R' command will not transfer control to an invalid
execution point. Another execution of the 'R' command will
reread the input file, e.g.:
n blah<ret>
l<ret>
...modify the code and generally mess about...
l<ret>
The original file is reloaded, and the modifications are
removed.
R)ead on DDTZ
E E)nter, like D)isplay, now accepts an optional second
(S) parameter to set the base value for a single execution
only.
S)ubstitute or S)et on DDTZ
T T)rap/trace on termination now shows the complete CPU
state. Traps and traces no longer lock up when a user RST
7 instruction is executed. Tracing of BDOS/BIOS calls is
heavily trun cated, avoiding clutter and preventing system
crashes.
NOTE: Most of the UNDOCUMENTED Z80 op-codes are handled. Others
can crash the system.
R R)egisters also shows what two-byte values the HL and SP
(X) registers are actually pointing to. On Z80's, displays the
alternate register set.
eX)amine on DDTZ
NOTE: Any use of the 'W' or 'L' command resets the system DMA
transfer address to the standard default value of 0080H.
; This is the output of DDTZ when disassembling OPTYPE.TRY
NOP LDA 06A4 MOV M,H
LXI B,06A4 DCX SP MOV M,L
STAX B INR A HLT
INX B DCR A MOV M,A
INR B MVI A,20 MOV A,B
DCR B CMC MOV A,C
MVI B,20 MOV B,B MOV A,D
RLC MOV B,C MOV A,E
EXAF MOV B,D MOV A,H
DAD B MOV B,E MOV A,L
LDAX B MOV B,H MOV A,M
DCX B MOV B,L MOV A,A
INR C MOV B,M ADD B
DCR C MOV B,A ADD C
MVI C,20 MOV C,B ADD D
RRC MOV C,C ADD E
DJNZ 0134 MOV C,D ADD H
LXI D,06A4 MOV C,E ADD L
STAX D MOV C,H ADD M
INX D MOV C,L ADD A
INR D MOV C,M ADC B
DCR D MOV C,A ADC C
MVI D,20 MOV D,B ADC D
RAL MOV D,C ADC E
JR 0134 MOV D,D ADC H
DAD D MOV D,E ADC L
LDAX D MOV D,H ADC M
DCX D MOV D,L ADC A
INR E MOV D,M SUB B
DCR E MOV D,A SUB C
MVI E,20 MOV E,B SUB D
RAR MOV E,C SUB E
JRNZ 0134 MOV E,D SUB H
LXI H,06A4 MOV E,E SUB L
SHLD 06A4 MOV E,H SUB M
INX H MOV E,L SUB A
INR H MOV E,M SBB B
DCR H MOV E,A SBB C
MVI H,20 MOV H,B SBB D
DAA MOV H,C SBB E
JRZ 0134 MOV H,D SBB H
DAD H MOV H,E SBB L
LHLD 06A4 MOV H,H SBB M
DCX H MOV H,L SBB A
INR L MOV H,M ANA B
DCR L MOV H,A ANA C
MVI L,20 MOV L,B ANA D
CMA MOV L,C ANA E
JRNC 0134 MOV L,D ANA H
LXI SP,06A4 MOV L,E ANA L
STA 06A4 MOV L,H ANA M
INX SP MOV L,L ANA A
INR M MOV L,M XRA B
DCR M MOV L,A XRA C
MVI M,20 MOV M,B XRA D
STC MOV M,C XRA E
JRC 0134 MOV M,D XRA H
DAD SP MOV M,E XRA L
XRA M JPE 06A4 SLAR M
XRA A XCHG SLAR A
ORA B CPE 06A4 SRAR B
ORA C XRI 20 SRAR C
ORA D RST 5 SRAR D
ORA E RP SRAR E
ORA H POP PSW SRAR H
ORA L JP 06A4 SRAR L
ORA M DI SRAR M
ORA A CP 06A4 SRAR A
CMP B PUSH PSW SLLR B
CMP C ORI 20 SLLR C
CMP D RST 6 SLLR D
CMP E RM SLLR E
CMP H SPHL SLLR H
CMP L JM 06A4 SLLR L
CMP M EI SLLR M
CMP A CM 06A4 SLLR A
RNZ CPI 20 SRLR B
POP B RST 7 SRLR C
JNZ 06A4 RLCR B SRLR D
JMP 06A4 RLCR C SRLR E
CNZ 06A4 RLCR D SRLR H
PUSH B RLCR E SRLR L
ADI 20 RLCR H SRLR M
RST 0 RLCR L SRLR A
RZ RLCR M BIT 0,B
RET RLCR A BIT 0,C
JZ 06A4 RRCR B BIT 0,D
CZ 06A4 RRCR C BIT 0,E
CALL 06A4 RRCR D BIT 0,H
ACI 20 RRCR E BIT 0,L
RST 1 RRCR H BIT 0,M
RNC RRCR L BIT 0,A
POP D RRCR M BIT 1,B
JNC 06A4 RRCR A BIT 1,C
OUT 20 RALR B BIT 1,D
CNC 06A4 RALR C BIT 1,E
PUSH D RALR D BIT 1,H
SUI 20 RALR E BIT 1,L
RST 2 RALR H BIT 1,M
RC RALR L BIT 1,A
EXX RALR M BIT 2,B
JC 06A4 RALR A BIT 2,C
IN 20 RARR B BIT 2,D
CC 06A4 RARR C BIT 2,E
SBI 20 RARR D BIT 2,H
RST 3 RARR E BIT 2,L
RPO RARR H BIT 2,M
POP H RARR L BIT 2,A
JPO 06A4 RARR M BIT 3,B
XTHL RARR A BIT 3,C
CPO 06A4 SLAR B BIT 3,D
PUSH H SLAR C BIT 3,E
ANI 20 SLAR D BIT 3,H
RST 4 SLAR E BIT 3,L
RPE SLAR H BIT 3,M
PCHL SLAR L BIT 3,A
BIT 4,B RES 3,D SET 2,H
BIT 4,C RES 3,E SET 2,L
BIT 4,D RES 3,H SET 2,M
BIT 4,E RES 3,L SET 2,A
BIT 4,H RES 3,M SET 3,B
BIT 4,L RES 3,A SET 3,C
BIT 4,M RES 4,B SET 3,D
BIT 4,A RES 4,C SET 3,E
BIT 5,B RES 4,D SET 3,H
BIT 5,C RES 4,E SET 3,L
BIT 5,D RES 4,H SET 3,M
BIT 5,E RES 4,L SET 3,A
BIT 5,H RES 4,M SET 4,B
BIT 5,L RES 4,A SET 4,C
BIT 5,M RES 5,B SET 4,D
BIT 5,A RES 5,C SET 4,E
BIT 6,B RES 5,D SET 4,H
BIT 6,C RES 5,E SET 4,L
BIT 6,D RES 5,H SET 4,M
BIT 6,E RES 5,L SET 4,A
BIT 6,H RES 5,M SET 5,B
BIT 6,L RES 5,A SET 5,C
BIT 6,M RES 6,B SET 5,D
BIT 6,A RES 6,C SET 5,E
BIT 7,B RES 6,D SET 5,H
BIT 7,C RES 6,E SET 5,L
BIT 7,D RES 6,H SET 5,M
BIT 7,E RES 6,L SET 5,A
BIT 7,H RES 6,M SET 6,B
BIT 7,L RES 6,A SET 6,C
BIT 7,M RES 7,B SET 6,D
BIT 7,A RES 7,C SET 6,E
RES 0,B RES 7,D SET 6,H
RES 0,C RES 7,E SET 6,L
RES 0,D RES 7,H SET 6,M
RES 0,E RES 7,L SET 6,A
RES 0,H RES 7,M SET 7,B
RES 0,L RES 7,A SET 7,C
RES 0,M SET 0,B SET 7,D
RES 0,A SET 0,C SET 7,E
RES 1,B SET 0,D SET 7,H
RES 1,C SET 0,E SET 7,L
RES 1,D SET 0,H SET 7,M
RES 1,E SET 0,L SET 7,A
RES 1,H SET 0,M DADX B
RES 1,L SET 0,A DADX D
RES 1,M SET 1,B LXI X,06A4
RES 1,A SET 1,C SIXD 06A4
RES 2,B SET 1,D INX X
RES 2,C SET 1,E DADX X
RES 2,D SET 1,H LIXD 06A4
RES 2,E SET 1,L DCX X
RES 2,H SET 1,M INR [X+05]
RES 2,L SET 1,A DCR [X+05]
RES 2,M SET 2,B MVI [X+05],20
RES 2,A SET 2,C DADX SP
RES 3,B SET 2,D MOV B,[X+05]
RES 3,C SET 2,E MOV C,[X+05]
MOV D,[X+05] DSBC B DADY B
MOV E,[X+05] SBCD 06A4 DADY D
MOV H,[X+05] NEG LXI Y,06A4
MOV L,[X+05] RETN SIYD 06A4
MOV [X+05],B IM0 INX Y
MOV [X+05],C LDIA DADY Y
MOV [X+05],D INP C LIYD 06A4
MOV [X+05],E OUTP C DCX Y
MOV [X+05],H DADC B INR [Y+05]
MOV [X+05],L LBCD 06A4 DCR [Y+05]
MOV [X+05],A RETI MVI [Y+05],2
MOV A,[X+05] LDRA DADY SP
ADD [X+05] INP D MOV B,[Y+05]
ADC [X+05] OUTP D MOV C,[Y+05]
SUB [X+05] DSBC D MOV D,[Y+05]
SBB [X+05] SDED 06A4 MOV E,[Y+05]
ANA [X+05] IM1 MOV H,[Y+05]
XRA [X+05] LDAI MOV L,[Y+05]
ORA [X+05] INP E MOV [Y+05],B
CMP [X+05] OUTP E MOV [Y+05],C
POP X DADC D MOV [Y+05],D
XTIX LDED 06A4 MOV [Y+05],E
PUSH X IM2 MOV [Y+05],H
PCIX LDAR MOV [Y+05],L
SPIX INP H MOV [Y+05],A
RLCR [X+05] OUTP H MOV A,[Y+05]
RRCR [X+05] DSBC H ADD [Y+05]
RALR [X+05] shld 06A4 ADC [Y+05]
RARR [X+05] RRD SUB [Y+05]
SLAR [X+05] INP L SBB [Y+05]
SRAR [X+05] OUTP L ANA [Y+05]
SRLR [X+05] DADC H XRA [Y+05]
BIT 0,[X+05] lhld 06A4 ORA [Y+05]
BIT 1,[X+05] RLD CMP [Y+05]
BIT 2,[X+05] INP M POP Y
BIT 3,[X+05] OUTP M XTIY
BIT 4,[X+05] DSBC SP PUSH Y
BIT 5,[X+05] SSPD 06A4 PCIY
BIT 6,[X+05] INP A SPIY
BIT 7,[X+05] OUTP A RLCR [Y+05]
RES 0,[X+05] DADC SP RRCR [Y+05]
RES 1,[X+05] LSPD 06A4 RALR [Y+05]
RES 2,[X+05] LDI RARR [Y+05]
RES 3,[X+05] CCI SLAR [Y+05]
RES 4,[X+05] INI SRAR [Y+05]
RES 5,[X+05] OTI SRLR [Y+05]
RES 6,[X+05] LDD BIT 0,[Y+05]
RES 7,[X+05] CCD BIT 1,[Y+05]
SET 0,[X+05] IND BIT 2,[Y+05]
SET 1,[X+05] OTD BIT 3,[Y+05]
SET 2,[X+05] LDIR BIT 4,[Y+05]
SET 3,[X+05] CCIR BIT 5,[Y+05]
SET 4,[X+05] INIR BIT 6,[Y+05]
SET 5,[X+05] OTIR BIT 7,[Y+05]
SET 6,[X+05] LDDR RES 0,[Y+05]
SET 7,[X+05] CCDR RES 1,[Y+05]
INP B INDR RES 2,[Y+05]
OUTP B OTDR RES 3,[Y+05]
RES 4,[Y+05] SET 0,[Y+05] SET 4,[Y+05]
RES 5,[Y+05] SET 1,[Y+05] SET 5,[Y+05]
RES 6,[Y+05] SET 2,[Y+05] SET 6,[Y+05]
RES 7,[Y+05] SET 3,[Y+05] SET 7,[Y+05]
; These are the result of disassembling 64180OPS.TRY
; These opcodes are available ONLY on the 64180 CPU
; DDTZ will both assemble and disassemble these.
IN0 B,20 TST E MLT B
OUT0 20,B IN0 H,20 MLT D
TST B OUT0 20,H TSTI 20
IN0 C,20 TST H MLT H
OUT0 20,C IN0 L,20 TSIO 20
TST C OUT0 20,L SLP
IN0 D,20 TST L MLT SP
OUT0 20,D TST M OTIM
TST D IN0 A,20 OTDM
IN0 E,20 OUT0 20,A OIMR
OUT0 20,E TST A ODMR
; The following are UNDOCUMENTED z80 opcodes from XTDOPS.TRY.
; DDTZ will disassemble these, but will not assemble them.
; They use xh/xl (or yh/yl) as separate byte registers.
; Use these at your own risk.
INRX H ACXR H MOVY H,B
DCRX H ACXR L MOVY H,C
MVIX H,20 SUXR H MOVY H,D
INRX L SUXR L MOVY H,E
DCRX L SBXR H MOVY H,A
MVIX L,20 SBXR L MOVY L,B
MOVX B,H NDXR H MOVY L,C
MOVX B,L NDXR L MOVY L,D
MOVX C,H XRXR H MOVY L,E
MOVX C,L XRXR L MOVY L,A
MOVX D,H ORXR H MOVY A,H
MOVX D,L ORXR L MOVY A,L
MOVX E,H CPXR H ADYR H
MOVX E,L CPXR L ADYR L
MOVX H,B INRY H ACYR H
MOVX H,C DCRY H ACYR L
MOVX H,D MVIY H,20 SUYR H
MOVX H,E INRY L SUYR L
MOVX H,A DCRY L SBYR H
MOVX L,B MVIY L,20 SBYR L
MOVX L,C MOVY B,H NDYR H
MOVX L,D MOVY B,L NDYR L
MOVX L,E MOVY C,H XRYR H
MOVX L,A MOVY C,L XRYR L
MOVX A,H MOVY D,H ORYR H
MOVX A,L MOVY D,L ORYR L
ADXR H MOVY E,H CPYR H
ADXR L MOVY E,L CPYR L
Command Summary:
===============
DDTZM command DDTZ command
============= ============
@ (base)
A)ssemble first_address A
B)egin {i.e., initialize stack and return} B
C)ompare first_address,last_address,against_address C
D)ump first_address[,last_address[,base]] D
E)nter_in_memory first_address[,base] S)ubstitute
F)ill first_address,last_address,value F
G)o_to [address][,trap1[,trap2]] G
H)ex_arithmetic value1(,value2) H
L)oad_file (offset) R)ead
M)ove first_address,last_address,destination M
N)nput FCBs_command_line I)nput
Q)uit (not avail)
R)egister examine/change [register|flag] X)amine
S)earch first_address,last_address,word W)hereis
T)race_execution [count] T
Untrace_execution [count] (i.e. do count instr) U)ntrace
U)nassemble_code first_address[,last_address] L)ist code
W)rite [first_address,last_address] K)eep
X)amine {i.e. display memory parameters for application} Q)uery
Y)our_option BC:=parm1,DE:=parm2,call_address Y
Z)80_register_display Z
If you find this program useful, contributions will be gratefully
accepted and will encourage further development and release of
useful CPM programs. My practice is to include source.
C.B. Falconer
680 Hartford Turnpike,
Hamden, Conn. 06517 (203) 281-1438
DDTZ and its associated documentation and other files are
copyright (c) 1980-1988 by C.B. Falconer. They may be freely
copied and used for non-commercial purposes ONLY.
ôÙ

Binary file not shown.

Binary file not shown.

View File

@@ -67,6 +67,12 @@ RomWBW Architecture ("RomWBW Architecture.pdf")
Document describing the architecture of the RomWBW HBIOS. It
includes reference information for the HBIOS calls.
ROM Applications ("ROM Applications.pdf")
-----------------------------------------
Breif instructions for the ROM based applications included in
in the boot ROM.
Z180 ASCI Baud Rate Options ("Z180 ASCI Baud Rate Options.pdf")
---------------------------------------------------------------

Binary file not shown.

Binary file not shown.

BIN
Doc/RomWBW Disk Catalog.pdf Normal file

Binary file not shown.

BIN
Doc/RomWBW Errata.pdf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Doc/RomWBW System Guide.pdf Normal file

Binary file not shown.

BIN
Doc/RomWBW User Guide.pdf Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -23,7 +23,7 @@ Zeta 2 (X)
- Test FD driver
- Test FDU app
RC2014 (X)
RCBus (X)
------
- Test SIO driver (Serial Module)
- Test ACIA driver (Dual Serial Module)

Binary file not shown.

Binary file not shown.

765
Doc/ZCPR-DJ.doc Normal file
View File

@@ -0,0 +1,765 @@
A Personal Note
===============
Somehow, I've managed to get by for the last 14 years using just ZCPR.
But like some of you, I have fiddled with the standard ZCPR and
modified it to suit my tastes. As I added new commands or enriched old
ones, I've always remained compatible with existing programs, all the
BDOS replacements, and, most important of all, stayed within the 800H
space allocation of the original Digital Research CCP. Here are the
fruits of my labors, I hope you enjoy this CCP replacement as much as I
do.
Don Kirkpatrick
17595 S.W. Pheasant Lane
Beaverton, Oregon 97006
<Donald.C.Kirkpatrick@tek.com>
Introduction
============
This console replacement is designed to run under CP/M 2.2 or any of
the 2.2 BDOS replacements. It requires a Z80 or better. If you are
running DRI's CCP or older versions of ZCPR1, this program is a
significant improvement. If you are running ZCPR3, CP/M 3.0, CP/M
Plus, or MP/M, this will probably be a disappointment.
If you are familiar with ZCPR3, you will recognize many of the
enhancements here: comments on a command line, search path for the .com
file, drive/user change with simple du:, CLEVEL3 command processing,
proper SUBMIT file facility, and so on. Nothing has been removed from
DRI's CCP, only new features added. AND IT ALL STILL FITS IN THE
ORIGINAL 800H, THE SAME SPACE AS THE DIGITAL RESEARCH FIVE COMMAND
CCP.
Many of the standard commands have been enhanced. For example, TYPE
and LIST now have options to turn on or off page breaks. Moreover, the
console check for abort has been improved.
Two commands have been added for use in submit files - SAK and BELL.
These commands allow you to pause or ring the bell during submit file
execution.
Before you install this version of ZCPR onto your boot disks, try it by
running it as a .com file. Just edit the few customizing options and
assemble the source. After you decide it really is better, load it
onto your boot track and make it your standard. Complete instructions
are located at the end of this document.
The complete built-in command list is:
DIR - directory command enhanced to list optionally all user areas
REN - standard rename command
USER- move to new user number area on same drive
SAVE- save specified number of TPA pages or records in a file
TYPE- display a file on the console with optional page break pauses
LIST- print command plus optional form feed insertion
PAGE- send form feed to list device
ERA - standard file erase command
ERAQ- file erase with confirmation query at each file
DFU - set default user number for .com search path
BELL- send a bell character to the console
SAK - pause until a key is struck on the console (Strike Any Key)
SCL - toggle multiple commands per line (Single Command on a Line)
GET - load a file into the TPA at any specified location
JUMP- process command tail and execute program at specified address
GO - process command tail and execute program loaded at 100H
PEEK- display hexadecimal byte string starting with specified address
POKE- load hexadecimal byte string starting with specified address
BOOT- execute BIOS cold boot routine
Filename Processing
===================
The standard ZCPR3 du: drive/user file specification has been
implemented. Any filename can be in the du:fn.ft form. For example:
A>era c4:junk*.*
erases files on the C drive, user area 4 without leaving drive A user
0. When a user number is found in a filename, that user number is
placed in S1 of the default FCB. Bit 7 of S1 is set to inform the
program using the FCB a user number was found.
The * in an ambiguous file name has been improved. Now a trailing *
causes the remainder of the ambiguous name to be filled with '?', not
just the fn field. For example:
A>era c4:junk*
is the same as the example above. Previously, junk* was defined as
'junk????. '. If you need the ft field blank, type 'junk*.'. The
question mark still works as a single character wild card.
Command Line Processing
=======================
The current user number is included as part of the command prompt for
all non-zero user numbers. The prompt is of the form du>, for example
A2> or B10>. If the SUPRES equate is true, the user number is
suppressed for user 0 only.
Multiple commands are typed on a single line separated by a command
separator character. Occasionally, you need to type the separator
character in a command tail. The SCL command toggles the multiple
command enable. The CMDCHR equate determines the command separator
character. A ';' has been chosen as the separator character in this
distribution version.
Comments are allowed on a command line. When the comment separator
character is encountered as the first character of a command, the
remainder of the line is ignored. The COMCHR equate determines the
comment separator character. A ';' has been chosen as the separator
character in this distribution version. Here is an example containing
comments and multiple commands on a single line:
A>get 100 junk;peek 100;;this is a comment.
A>;this is also a comment.
There exists a built-in search path for transient commands. First, the
current drive/user is searched. Next, the current drive/default user
is searched. Last, drive A/default user is searched. The DEFUSR
equate determines the default user number, currently set to user 0 in
this distribution version. The default user is temporarily changed
with the DFU command. If a drive is specified in the transient
command, the current and default user areas on the specified drive are
searched. If a user number is specified, that user area on the current
and default drive are searched. If both the drive and user number are
specified, no search is performed. The same drive/user area is never
searched twice.
Transient commands are always "called." If a program terminates via a
return rather than a warm boot, subsequent multiple commands on the
command line are executed. Any program exiting by a warm boot reloads
ZCPR and the subsequent commands lost.
A default command can be placed in the command buffer and control
passed to ZCPR for processing. The only thing required, besides
placing the command in the buffer and jumping to CPRLOC, is to
initialize the command character counter at the start of the buffer.
The procedure is compatible with the original DRI CCP default command
processing. If ZCPR is entered at CPRLOC+3 jump, default command
processing is suppressed. Either way, register C must contain a valid
drive/user, just like the original CCP.
Submit File Processing
======================
A basic design choice had to be made in the design of ZCPR concerning
the execution of submit files. The original CCP had a problem. It
ALWAYS looked for the $$$.SUB file on drive A and the submit program
would place it on the current default drive. When the you were logged
onto drive B and you issued a submit command, the $$$.SUB was placed on
drive B and not executed.
After much debate it was decided to have ZCPR perform the same type of
function as CCP (look for the $$$.SUB file on drive A), but the problem
with SUBMIT.COM still exists. Hence, RGF designed SuperSUB and RLC
took his SuperSUB and designed SUB from it; both programs are set up to
allow the selection at assembly time of creating the $$$.SUB on the
default drive or on drive A. If you don't have one of these newer
submit programs, a procedure for patching the standard SUBMIT.COM has
been included at the end.
The fixed drive choice permits a submit file to contain a series of
commands exactly as they would be entered from a CP/M console. This
permits things like:
A>dir
A>b:
B>dir
to be executed, even though the currently default drive is changed
during execution. If the $$$.SUB file were present on the default
drive, the above series of commands would not work. ZCPR would be
looking for $$$.SUB on the default drive, and switching default drives
without moving the $$$.SUB file would cause processing to abort. Note
that the same problem occurs if the user number of the $$$.SUB file is
not predefined. ZCPR assumes that the $$$.SUB file is located on user 0
of drive A.
The trick of using the $ flag returned by the BDOS disk reset is used
to speed the search for a $*.* file on drive A. This trick will not
work if the $$$.SUB file were located on another drive.
The '>' prompt character is replaced by a special character while a
submit file is in execution. The SPRMPT equate defines this special
character, currently set to '$' in this distribution version.
Command Syntax
==============
Multiple commands can be placed on one line. If the comment character
is encountered where a command should start, the rest of the line is
ignored. Any command can be renamed by editing the command table.
Command names can be up to eight characters long and are terminated by
bit 7 high. If there is a conflict between an internal ZCPR command
and a transient program of the same name, the internal command is
executed. Type the command with the du: included if the external
transient command is the one desired. Here is a complete alphabetized
list of all the resident commands with their syntax:
=============================================================================
Command: BELL
Function: To ring terminal bell.
Forms: BELL
Options: None.
Uses: This command is designed to be placed in a submit file to
ring the bell to indicate significant checkpoints.
=============================================================================
Command: BOOT
Function: To execute BIOS cold boot routine.
Forms: BOOT
Options: REBOOT equate controls the inclusion/exclusion of this command.
Uses: Reboots the system without pushing the reset button. The
cold boot entry point in the BIOS must be supported for this
command to work.
=============================================================================
Command: DFU
Function: To set the Default User Number for transient commands.
Forms: DFU <usrnum>
Options: DEFUSR equate defines the default user choice until this
command is entered.
NUMBASE equate defines the character that specifies a
hexadecimal number. The distribution version is set to 'H'.
Uses: The default user area is searched after a transient command
cannot be found in the current user area. If the transient
command still has not been found, the default user on the
default drive is searched last. The new default user number
is in decimal, but hexadecimal numbers are entered by
appending an 'H'. The next warm boot will restore the
original default user number.
=============================================================================
Command: DIR
Function: To display a directory listing of the files on a drive.
Forms: DIR <afn> Display the DIR files
DIR <afn> S Display the SYS files
DIR <afn> B Display both DIR and SYS files
DIR <afn> A Display both DIR and SYS files for all user areas
Options: TWOCOL equate controls the number of columns in the display.
Forty-column terminals are limited to two-column displays.
WIDE equate controls the spacing between the columns and
change the horizontal width of a directory display.
FENCE equate specifies the character separator between the
directory columns.
USRDLM equate specifies the character between the user number
and the filename.
USRFLG, SYSFLG, and SOFLG equates specify the command line
tail character that control the display of system and
non-system files.
Uses: Displays a directory listing of files in specific drive/user
area.
=============================================================================
Command: ERA
Function: To erase files.
Forms: ERA <afn>
Options: None.
Uses: Deletes files. Names of erased files are displayed.
=============================================================================
Command: ERAQ
Function: To erase files with individual query.
Forms: ERAQ <afn>
<afn>? y File erased
<afn>? <CR> File not erased
Options: None.
Uses: Deletes a subset of a set of ambiguously specified files.
Any answer other than 'Y' (either case) will cause the file
to be skipped and not erased.
=============================================================================
Command: GET
Function: To load the specified file from disk to the specified address.
Forms: GET <hexadr> <ufn>
Options: None.
Uses: Loads a file into the TPA for patching purposes. This command
searches for the specified file along the same search path as
the transient command loader.
=============================================================================
Command: GO
Function: To call the program in the TPA without loading from disk.
Forms: GO <command tail>
Options: None.
Uses: Most useful to rerun a program already loaded into the TPA.
Saves time and wear on disk drives. The command tail is
entered exactly as it would appear if GO were replaced by the
program name. Same as JUMP 100H, but more convenient,
especially when used with parameters for programs like STAT.
=============================================================================
Command: JUMP
Function: To call the program at a specified address.
Forms: JUMP <hexadr> <command tail>
Options: None.
Uses: Executes code not located at 100H. For example, JUMP 0
warm boots. The code must already reside at the specified
address.
=============================================================================
Command: LIST
Function: To print specified file on list device.
-
Forms: LIST <ufn> Print file
LIST <ufn> P Print file without default paging
Options: NLINEP equate determines the number of lines per page.
FFKILL equate controls the suppression of form feeds before
printable text.
PGDFLG equate determines the command line tail character that
toggles the default form feed insertion every NLINEP lines.
NOSTAT equate controls the use of the BIOS list status call.
Uses: Prints files with/without pagination on LST: device. A
listing is aborted by a console ^C. Any submit file in
process is terminated and control is returned gracefully to
the console prompt.
=============================================================================
Command: PAGE
Function: To eject a page on list device via a form feed.
Forms: PAGE
Options: NOSTAT equate controls the use of the BIOS list status call.
Uses: Sends a form feed to the LST: device. The page eject can
be aborted by a console ^C if the system hangs because the
printer is not ready. If aborted, any submit file in process
is terminated and control is returned gracefully to the
console prompt.
=============================================================================
Command: PEEK
Function: To display hex values beginning at a specified address.
Forms: PEEK <hexadr> [<hexcnt>]
Options: None.
Uses: Displays hexadecimal values anywhere in the entire address
space. The maximum value for <hexcnt> is 0FFH, but the
default <hexcnt> is 256.
=============================================================================
Command: POKE
Function: To poke a string of hex values into a set of consecutive
addresses.
Forms: POKE <hexadr> <hexval> [...<hexval>]
Options: None.
Uses: Modifies values anywhere in the entire address space. Each
<hexval> represents one byte and is separated from the next
by a space. The number of <hexval> are limited only by the
size of the command line buffer. The address is incremented
for each <hexval>. Excellent for hand patching code.
=============================================================================
Command: REN
Function: To change the name of an existing file.
Forms: REN <newufn>=<oldufn>
REN <newufn>=<oldufn> Existing <newufn>
Delete? y File deleted
Options: None.
Uses: Changes the names of files. Any du: on <oldufn> is ignored;
the optional du: is on <newufn>. If there already exists a
<newufn>, the console is queried for conformation. Any
response except 'Y' (either case) aborts the command, kills
any submit file in process, and returns gracefully to the
command prompt.
=============================================================================
Command: SAK
Function: To pause until a key is struck.
Forms: SAK
? <any key>
Options: None.
Uses: Pauses a submit file until a keystroke is entered. Any
character other than a ^C will resume execution. A ^C kills
the submit file, any commands remaining on the command the
line are ignored, and control returns gracefully to the
prompt.
=============================================================================
Command: SAVE
Function: To save the contents of TPA onto disk as a file.
Forms: SAVE <Number of Pages> <ufn>
SAVE <Number of Records> <ufn> R
Options: RECFLG equate determines the command tail character that
specifies records rather than pages.
NUMBASE equate defines the character that specifies a
hexadecimal number. The distribution version is set to 'H'.
Uses: Saves the TPA to a file. Records are 128 bytes long, pages
are 256 bytes long. Number of pages or records is in
decimal, but a hexadecimal number is entered by appending an
'H'. Saved area begins at 100H.
=============================================================================
Command: SCL
Function: To force ZCPR to parse only a single command per line.
Forms: SCL
Options: MULTPL equate determines the inclusion/exclusion of this
command and whether or not multiple commands are allowed.
CMDCHR equate determines the character separating multiple
commands.
Uses: Some transient commands require the command separator in the
command tail. This command turns off multiple command
parsing so the entire command tail is sent to the transient
program. Multiple command format is reset at the next warm
boot. SCL toggles.
=============================================================================
Command: TYPE
Function: To display specified file on console.
Forms: TYPE <ufn> Display file
TYPE <ufn> P Display file without default paging
Options: NLINES equate determines the number of lines per screen.
FFKILL equate controls the suppression of form feeds before
printable text.
PGDFLG equate determines the command line tail character that
toggles the default form feed insertion every NLINEP lines.
Uses: Displays files with/without pagination on CON: device. A
display is aborted by a console ^C. If aborted, any submit
file in process terminates and control returns gracefully to
the console prompt. When page breaks are enabled, any
console character except ^C will display the next page of
text.
=============================================================================
Command: USER
Function: To change current user number.
Forms: USER <usrnum>
Options: SUPRES equate controls the display of the user number in the
prompt when the user number is zero.
MAXUSR equate controls the maximum allowable user number.
NUMBASE equate defines the character that specifies a
hexadecimal number. The distribution version is set to 'H'.
Uses: This command changes the current user number. The new user
number is in decimal, but a hexadecimal number is entered by
appending an 'H'. This command has been retained for
compatibility purposes only. It is far easier to change
disk/user by typing du:.
=============================================================================
Error Messages
==============
If any error is encountered as a command line is being parsed, a
message will be printed and, for serious errors, the remainder of the
line is ignored. Below is a complete list of all ZCPR error messages.
Any error message encountered that is not on this list came from some
program other than ZCPR.
"?"
An error was detected in the command. The an item on the command
line was not what was expected. The command line is echoed up to
the position where the error was detected, as close as can be
determined, and the "?" printed. Any commands remaining on the
command the line are ignored and any $$$.SUB file erased.
"Full"
If ZCPR was attempting to load a transient program, one of two
things has gone wrong: either the program is so large that it won't
fit into the TPA or a read error was returned from the BDOS. If
ZCPR was attempting to save a file, the BDOS write call returned
failure. Either the disk or the directory is full. Any commands
remaining on the command line are ignored and any $$$.SUB file
erased.
"No File"
No file could be found matching the filename specified in the
command. This message is also be printed if the BDOS read command
returns failure. If ZCPR was looking for a transient command, any
commands remaining on the command line are ignored and any $$$.SUB
file erased.
"Name Error"
The specified filename has a user number larger than the allowable
maximum or an ambiguous filename was entered where only an
unambiguous filename is permitted. Any commands remaining on the
command line are ignored and any $$$.SUB file erased.
"Delete?"
Not really an error, but there already exists a file with the same
name as the requested new name in the REN command. Any response
except 'Y' (either case) aborts the command, any commands remaining
on the command line are ignored, and any $$$.SUB file erased.
"All?"
Not really an error, but a check to verify that all files on the
drive/user area are to be erased. Any response except 'Y' (either
case) aborts the command and any commands remaining on the command
line are ignored.
Installation Instructions
=========================
1) The first task is to determine the location of your BDOS because you
MUST set the P2DOS equate to this value. If you do not know the
location of your BDOS, use ZCPRDEMO to find it. If you do not
already have ZCPRDEMO.COM, assemble ZCPR with the TEST equate true
to make it. A bootstrap loader will be included and you can run the
.com file. This program assembles without errors using Microsoft's
M80/L80:
A>m80 =zcpr
A>l80 zcpr,zcprdemo/n/e
Other assemblers can be used, but ZCPR.MAC will probably require
editing to convert it to a form compatible. The major decision in
converting is to determine how the .PHASE pseudo is to be handled.
Probably the best solution to the .PHASE is to generate a .hex
file and load it with an offset using DDT/SID/ZSID. Consult the
"r" command in the DDT/SID/ZSID manaul.
Run ZCPRDEMO and peek at low memory:
A>zcprdemo
A<peek 0 10
0000 C3 03 F2 00 00 C3 06 E4 00 00 00 00 00 00 00 00
A<^C
Notice the prompt character has changed from a '>' to a '<'. This
tells you the special debug version of ZCPR is running. See the
debug section at the end for details. Address 0 contains a jump 3
beyond the start of the BIOS and address 5 contains a jump 6 beyond
the start of the BDOS.
Be careful if you attempt to execute a transient program from
ZCPRDEMO. Some transient programs, like NSWP, return rather than
warm boot when done. These programs don't know that ZCPRDEMO is at
address 8000H rather than just under the BDOS. If they overwrite
ZCPRDEMO, then the return is to random code. Of course, this is not
a problem when ZCPR is installed just under the BDOS.
2) You MUST edit the code to place your BDOS/P2DOS/Z80DOS/ZRDOS start
address in the P2DOS equate. Set COMLD true (and TEST false if you
set it true in step 1 above) and make ZCPR.COM. A bootstrap loader
will be included.
Assuming you successfully assemble it, just type "zcpr" to run it.
However, every time there is a warm boot, it will be replaced by
the boot track CCP. If you like what you see, place a copy on the
boot track to make it available all the time.
3) Reassemble, this time with COMLD false to make ZCPRNBLD.COM (ZCPR
No Boot LoaDer).
4) Run SYSGEN to load a copy of the boot track into memory.
B>; Sample terminal session for integrating ZCPR
B>sysgen
SYSGEN VER 2.2
SOURCE DRIVE NAME (OR RETURN TO SKIP)a
SOURCE ON A, THEN TYPE RETURN <cr>
FUNCTION COMPLETE
DESTINATION DRIVE NAME (OR RETURN TO REBOOT) <cr>
5) Run SAVE to save a track image to a file (eg: SAVE 32 BOOTFILE).
The number on the save command depends on the size of your boot
track loader; it can be as small as 31 and as large as 44. If you
have extra disk space or are not sure, play it safe and use 44.
B>save 44 cpm56.com <-- We now have a SYSGEN image of CP/M
6) Find the location of the stock CCP by peeking at the boot file. It
is normally located at address 980H in the file. Using ZCPR:
B>zcpr <-- Reload zcpr.com version
B>get 100 cpm56.com
and search for the start of the console processor:
B>peek 980
0980 C3 xx xx C3 xx xx 7F 00 43 4F 50 59 52 49 47 48
0990 54 20 ...
If you don't find the start of the CCP at 980H, don't be
discouraged. It is there, but at a higher address. Keep looking.
7) When you find the location of the CCP, patch it with the new ZCPR
image.
B>get 980 zcprnbld.com
8) Place the new file onto the boot track of a test disk, not your
original, using SYSGEN, and try it out.
B>sysgen
SYSGEN VER 2.2
SOURCE DRIVE NAME (OR RETURN TO SKIP) <cr> <-- Use memory image
DESTINATION DRIVE NAME (OR RETURN TO REBOOT)b <-- Load onto drive B
DESTINATION ON B, THEN TYPE RETURN <cr>
FUNCTION COMPLETE
DESTINATION DRIVE NAME (OR RETURN TO REBOOT) <cr>
You should now have a ZCPR system boot disk. Notice you did all
your work on drive B so you wouldn't destroy the original.
This may seem like a great number of steps, but each is only a single
CP/M command line, total time is only 5 minutes or so after you get
ZCPR to run as a .com file.
Debugging ZCPR
==============
Special provisions have been make to ease the debugging of ZCPR.
Setting the TEST equate true causes the assembler to build a version of
ZCPR that executes in the TPA. This allows the use of a debugger like
DDT, ZSID, or Z8E to load and monitor execution. To identify the debug
version, the prompt character is changed from '>' to '<' when it runs.
CPRLOC for the test version is 8000H. A bootstrap loader is included
at the beginning to move the image to this address. Do not try to set
a breakpoint until after the loader has moved ZCPR. The easiest way to
accomplish this is to single-step through the loader and then set your
breakpoints. Change the execution address to something lower if 8000H
does not leave enough space for the debugger.
A small amount of code is also added at the end of the debug version to
compute the BIOS list status and cold boot entry points at run time.
This permits the demo version to execute properly without setting the
BDOS location equate.
Patching SUBMIT.COM
===================
SUBMIT.COM is patched to run with ZCPR by the following procedure.
This is recommended if the user does not have one of the newer public
domain versions of submit. This patch simply makes SUBMIT.COM always
place the $$$.SUB file on drive A. Illustrative terminal session
follows:
A>get 100 submit.com;peek 5bb 2
05BB 00 24 <-- Patch is at 5BB Hex
A>poke 5bb 1 <-- Change 0 (default drive) to 1 (drive A)
A>peek 5b0 20 <-- Let's check just to make sure
05B0 00 00 00 00 00 00 30 30 31 20 24 01 24 24 24 20
05C0 20 20 20 20 53 55 42 00 00 00 1A 1A 1A 1A 1A 1A
A>save 5 newsubmt.com <-- Save new SUBMIT.COM file
Pretty simple, huh?
ny error message encountered that is not on this list came from some
prog

BIN
Doc/qcp27.pdf Normal file

Binary file not shown.

BIN
Doc/qdos27.pdf Normal file

Binary file not shown.

BIN
Doc/qpm27.pdf Normal file

Binary file not shown.

661
LICENSE Normal file
View File

@@ -0,0 +1,661 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<https://www.gnu.org/licenses/>.

View File

@@ -1,19 +1,19 @@
all:
cd Tools/unix ; make
cd Source ; make
cd Source/Images ; make
$(MAKE) --directory Tools
$(MAKE) --directory Source
clean:
cd Tools/unix ; make clean
cd Source ; make clean
cd Binary ; make clean
$(MAKE) --directory Tools clean
$(MAKE) --directory Source clean
$(MAKE) --directory Binary clean
rm -f make.log
clobber:
cd Tools/unix ; make clobber
cd Source ; make clobber
cd Binary ; make clobber
rm -f typescript
clobber: clean
diff:
cd Source ; make diff
$(MAKE) --directory Source diff
dist:
$(MAKE) ROM_PLATFORM=dist 2>&1 | tee make.log
$(MAKE) --directory Source clean
$(MAKE) --directory Tools clean

1304
ReadMe.md

File diff suppressed because it is too large Load Diff

1291
ReadMe.txt

File diff suppressed because it is too large Load Diff

View File

@@ -1,49 +0,0 @@
this tree now contains makefiles and tools to build on Linux and MacosX
Linux is rather more thoroughly tested compared to os-x.
to get here, TASM and the propeller generation tools needed to be replaced,
and since the unix filesystem is usually case-sensitive, and CP/M and windows
are not, the cpm tools were made case-insensitive.
TASM was replaced with uz80as, which implements a subset of TASM and fixes some
bugs. however, I needed to add some functionality to make it build the sources
as they exist in this tree. in particular, one thing to be very careful of is
that TASM is not entirely consistent with respect to the .DS directive.
it's usually a bad idea to mix .DS, .FILL, .DB with .ORG.
.DS n is best thought of as .ORG $ + n
.ORG changes the memory pointer, but does not change the file output point.
it works a lot more like M80, SLR* .phase
it assumes that you have some standard system tools and libraries installed
specifically: gcc, gnu make, libncurses
to build:
cd to the top directory and type make.
heavy use is made of make's include facility and pattern rules.
the master rule set is in Tools/Makefile.inc. changes here will affect
almost every Makefile, and where exceptions are needed, the overrides are
applied in the lower Makefiles.
these tools can run a windows-linux regression test, where all the binaries are
compared to a baseline windows build.
Credit:
uz80as was written by Jorge Giner Cordero, jorge.giner@hotmail.com,
and the original source can be found at https://github.com/jorgicor/uz80as
the propeller tools use bstc and openspin, parallax tools from
http://www.fnarfbargle.com/bst.html https://github.com/parallaxinc/OpenSpin
note that bst is not open source or even currently maintained, so I could
not generate a version for 64 bit osx.
cpmtools were the most current I could find, and it has been hacked to do
case-insensitivity. these are not marked, and are not extensive.
zx is from distributed version, and also has local hacks for case insensitivity.
both zx and cpmtools ship with an overly complicated makefile generation system
and this is ignored.
this whole linux build framework is the work of Curt Mayer, curt@zen-room.org.
use it for whatever you like; this is not my day job.

View File

@@ -4,45 +4,47 @@ setlocal
set TOOLS=../../Tools
set APPBIN=..\..\Binary\Apps
set PATH=%TOOLS%\tasm32;%TOOLS%\zx;%PATH%
set PATH=%TOOLS%\tasm32;%TOOLS%\zxcc;%PATH%
set TASMTABS=%TOOLS%\tasm32
set ZXBINDIR=%TOOLS%/cpm/bin/
set ZXLIBDIR=%TOOLS%/cpm/lib/
set ZXINCDIR=%TOOLS%/cpm/include/
set CPMDIR80=%TOOLS%/cpm/
call :asm SysCopy || goto :eof
call :asm Assign || goto :eof
call :asm Format || goto :eof
call :asm Talk || goto :eof
call :asm Mode || goto :eof
call :asm RTC || goto :eof
call :asm Timer || goto :eof
call :asm180 IntTest || goto :eof
call :asm syscopy || exit /b
call :asm assign || exit /b
call :asm format || exit /b
call :asm talk || exit /b
call :asm mode || exit /b
call :asm rtc || exit /b
call :asm timer || exit /b
call :asm rtchb || exit /b
zx Z80ASM -SYSGEN/F
zxcc Z80ASM -SYSGEN/F || exit /b
zx MAC SURVEY.ASM -$PO
zx MLOAD25 -SURVEY.COM=SURVEY.HEX
pushd XM && call Build || exit /b & popd
pushd FDU && call Build || exit /b & popd
pushd Tune && call Build || exit /b & popd
pushd FAT && call Build || exit /b & popd
pushd Test && call Build || exit /b & popd
pushd ZMP && call Build || exit /b & popd
pushd ZMD && call Build || exit /b & popd
pushd Dev && call Build || exit /b & popd
pushd VGM && call Build || exit /b & popd
pushd cpuspd && call Build || exit /b & popd
pushd Survey && call Build || exit /b & popd
setlocal & cd XM && call Build || exit /b 1 & endlocal
setlocal & cd FDU && call Build || exit /b 1 & endlocal
setlocal & cd Tune && call Build || exit /b 1 & endlocal
setlocal & cd FAT && call Build || exit /b 1 & endlocal
copy *.com %APPBIN%\
copy *.com %APPBIN%\ || exit /b
goto :eof
:asm
echo.
echo Building %1...
tasm -t80 -g3 -fFF %1.asm %1.com %1.lst
tasm -t80 -g3 -fFF %1.asm %1.com %1.lst || exit /b
goto :eof
:asm180
echo.
echo Building %1...
tasm -t180 -g3 -fFF %1.asm %1.com %1.lst
tasm -t180 -g3 -fFF %1.asm %1.com %1.lst || exit /b
goto :eof

View File

@@ -7,7 +7,14 @@ if exist *.lst del *.lst
if exist *.hex del *.hex
if exist *.prn del *.prn
setlocal & cd XM && call Clean || exit /b 1 & endlocal
setlocal & cd FDU && call Clean || exit /b 1 & endlocal
setlocal & cd Tune && call Clean || exit /b 1 & endlocal
setlocal & cd FAT && call Clean || exit /b 1 & endlocal
pushd XM && call Clean || exit /b 1 & popd
pushd FDU && call Clean || exit /b 1 & popd
pushd Tune && call Clean || exit /b 1 & popd
pushd FAT && call Clean || exit /b 1 & popd
pushd Test && call Clean || exit /b 1 & popd
pushd ZMP && call Clean || exit /b 1 & popd
pushd ZMD && call Clean || exit /b 1 & popd
pushd Dev && call Clean || exit /b 1 & popd
pushd VGM && call Clean || exit /b 1 & popd
pushd cpuspd && call Clean || exit /b 1 & popd
pushd Survey && call Clean || exit /b 1 & popd

14
Source/Apps/Dev/Build.cmd Normal file
View File

@@ -0,0 +1,14 @@
@echo off
setlocal
set TOOLS=../../../Tools
set PATH=%TOOLS%\tasm32;%PATH%
set TASMTABS=%TOOLS%\tasm32
echo Building Dev...
tasm -t80 -g3 -fFF dev.asm dev.com %dev.lst || exit /b
copy /Y dev.com ..\..\..\Binary\Apps\ || exit /b
rem copy /Y *.ovr ..\..\..\Binary\Apps\ || exit /b
rem copy /Y *.hlp ..\..\..\Binary\Apps\ || exit /b
rem copy /Y *.doc ..\..\..\Binary\Apps\ || exit /b

View File

@@ -0,0 +1,7 @@
@echo off
setlocal
if exist dev.com del dev.com
if exist *.hex del *.hex
if exist *.lst del *.lst
if exist *.zip del *.zip

10
Source/Apps/Dev/Makefile Normal file
View File

@@ -0,0 +1,10 @@
OBJECTS = dev.com
#DOCS = dev.txt
DEST = ../../../Binary/Apps
DOCDEST = ../../../Binary/Apps
TOOLS = ../../../Tools
include $(TOOLS)/Makefile.inc
%.com: USETASM=1

View File

@@ -0,0 +1 @@
THE DEV DIRECTORY IS A SKELETON DIRECTORY TO AID SETTING UP A BUILD PROCESS FOR A NEW PROGRAM

32
Source/Apps/Dev/dev.asm Normal file
View File

@@ -0,0 +1,32 @@
;===============================================================================
; Dev - Developement Stub
;===============================================================================
;
; AUTHOR:
;
; Usage:
;
;_______________________________________________________________________________
;
; Change Log:
;
;_______________________________________________________________________________
;
; ToDo:
;
;_______________________________________________________________________________
;
;===============================================================================
; Definitions
;===============================================================================
;
;
;===============================================================================
; Code Section
;===============================================================================
;
;
.org $100
ret
.end

View File

@@ -4,4 +4,4 @@ setlocal
REM FAT.com is currently distributed as a binary application, so
REM it is not built here.
copy /Y FAT.com ..\..\..\Binary\Apps\
copy /Y fat.com ..\..\..\Binary\Apps\ || exit /b

Binary file not shown.

View File

@@ -1,5 +1,5 @@
OBJECTS = FAT.com
NODELETE = FAT.com
OBJECTS = fat.com
NODELETE = fat.com
DEST = ../../../Binary/Apps
TOOLS=../../../Tools

View File

@@ -1,7 +1,7 @@
RomWBW HBIOS CP/M FAT Utility ("FAT.COM")
Author: Wayne Warthen
Updated: 11-Oct-2019
Updated: 12-Apr-2021
Application to manipulate and exchange files with a FAT (DOS)
filesystem. Runs on any HBIOS hosted CP/M implementation.
@@ -47,7 +47,7 @@ NOTES:
"C:README.TXT" refers to CP/M file README.TXT on CP/M drive C
"README.TXT" refers to CP/M file README.TXT on current CP/M drive
- Files with SYS, HIDDEN, or R/O only attributes are not given
- FAT files with SYS, HIDDEN, or R/O only attributes are not given
any special treatment. Such files are found and processed
like any other file. However, any attempt to write to a
read-only file will fail and the application will abort.
@@ -70,7 +70,7 @@ BUILD NOTES:
- Application is based on FatFs. FatFs source is included.
- SDCC compiler is required to build (v3.9.0 known working).
- SDCC compiler is required to build (v4.0.0 known working).
- ZX CP/M emulator is required to build (from RomWBW distribution).
@@ -88,6 +88,8 @@ TO DO:
- Do something intelligent with R/O and SYS files on FAT
- Support UNA
HISTORY:
2-May-2019: v0.9 (beta) initial release
7-May-2019: v0.9.1 (beta) added REN and DEL
@@ -98,4 +100,5 @@ HISTORY:
10-Oct-2019: v0.9.6 (beta) added FORMAT
11-Oct-2019: v0.9.7 (beta) fix FORMAT to use existing partition table entries
add attributes to directory listing
12-Apr-2021: v0.9.8 (beta) support CP/NET drives

BIN
Source/Apps/FAT/fat.com Normal file

Binary file not shown.

View File

@@ -5,9 +5,7 @@ set TOOLS=../../../Tools
set PATH=%TOOLS%\tasm32;%PATH%
set TASMTABS=%TOOLS%\tasm32
tasm -t80 -b -fFF FDU.asm FDU.com FDU.lst
tasm -t80 -b -fFF fdu.asm fdu.com fdu.lst || exit /b
if errorlevel 1 goto :eof
copy /Y FDU.com ..\..\..\Binary\Apps\
copy /Y FDU.txt ..\..\..\Doc\
copy /Y fdu.com ..\..\..\Binary\Apps\ || exit /b
copy /Y fdu.doc ..\..\..\Binary\Apps\ || exit /b

View File

@@ -1,514 +0,0 @@
================================================================
Floppy Disk Utility (FDU) v5.3 for RetroBrew Computers
Disk IO / Zeta / Dual-IDE / N8 / RC2014 / SmallZ80 / Dyno
================================================================
Updated January 5, 2020
by Wayne Warthen (wwarthen@gmail.com)
Application to test the hardware functionality of the Floppy
Disk Controller (FDC) on the ECB DISK I/O, DISK I/O V3, ZETA
SBC, Dual IDE w/ Floppy, or N8 board.
The intent is to provide a testbed that allows direct testing
of all possible media types and modes of access. The
application supports read, write, and format by sector, track,
and disk as well as a random read/write test.
The application supports access modes of polling, interrupt,
INT/WAIT, and DRQ/WAIT. At present, it supports 3.5" media at
DD (720KB) and HD (1.44MB) capacities. It also now supports
5.25" media (720KB and 1.2MB) and 8" media (1.11MB) as well.
Additional media will be added when I have time and access to
required hardware. Not all modes are supported on all
platforms and some modes are experimental in all cases.
In many ways this application is merely reinventing the wheel
and performs functionality similar to existing applications,
but I have not seen any other applications for RetroBrew
Computers hardware that provide this range of functionality.
While the application is now almost entirely new code, I would
like to acknowledge that much was derived from the previous
work of Andrew Lynch and Dan Werner. I also want to credit
Sergio Gimenez with testing the 5.25" drive support and Jim
Harre with testing the 8" drive support. Support for Zeta 2
comes from Segey Kiselev. Thanks!
General Usage
-------------
In general, usage is self explanatory. At invocation, you
must select the floppy disk controller (FDC) that you are
using. Subsequently, the main menu allows you to set the
unit, media, and mode to test. These settings MUST match your
situation. Read, write, format, and verify functions are
provided. A sub-menu will allow you to choose sector, track,
disk, or random tests.
The verify function requires a little explanation. It will
take the contents of the current in-memory disk buffer, save
it, and compare it to the selected sectors. So, you must
ensure that the sectors to be verified already have been
written with the same pattern as the buffer contains. I
typically init the buffer to a pattern, write the pattern to
the entire disk, then verify the entire disk.
Another submenu is provided for FDC commands. This sub-menu
allows you to send low-level commands directly to FDC. You
*must* know what you are doing to use this sub-menu. For
example, in order to read a sector using this sub-menu, you
will need to perform specify, seek, sense int, and read
commands specifying correct values (nothing is value checked
in this menu).
Required Hardware/BIOS
----------------------
Of course, the starting point is to have a supported hardware
configuration. The following Z80 / Z180 based CPU boards are
supported:
- SBC V1/2
- Zeta
- Zeta 2
- N8
- Mark IV
- RC2014 w/ SMC
- RC2014 w/ WDC
- SmallZ80
- Dyno
You must be using either a RomWBW or UBA based OS version.
You must have one of the following floppy disk controllers:
- Disk IO ECB Board FDC
- Disk IO 3 ECB Board FDC
- Dual-IDE ECB Board FDC
- Zeta SBC onboard FDC
- Zeta 2 SBC onboard FDC
- N8 SBC onboard FDC
- RC2014 Scott Baker SMC-based Floppy Module
- RC2014 Scott Baker WDC-based Floppy Module
Finally, you will need a floppy drive connected via an
appropriate cable:
Disk IO - no twist in cable, drive unit 0/1 must be selected by jumper on drive
DISK IO 3, Zeta, Zeta 2, RC2014, Dyno - cable with twist, unit 0 after twist, unit 1 before twist
DIDE, N8, Mark IV, SmallZ80 - cable with twist, unit 0 before twist, unit 1 after twist
Note that FDU does not utilize your systems ROM or OS to
access the floppy system. FDU interacts directly with
hardware. Upon exit, you may need to reset your OS to get the
floppy system back into a state that is expected.
The Disk I/O should be jumpered as follows:
J1: depends on use of interrupt modes (see interrupt modes below)
J2: pins 1-2, & 3-4 jumpered
J3: hardware dependent timing for DMA mode (see DMA modes below)
J4: pins 2-3 jumpered
J5: off
J6: pins 2-3 jumpered
J7: pins 2-3 jumpered
J8: off
J9: off
J10: off
J11: off
J12: off
Note that J1 can be left on even when not using interrupt
modes. As long as the BIOS is OK with it, that is fine. Note
also that J3 is only relevant for DMA modes, but also can be
left in place when using other modes.
The Disk I/O 3 board should be jumpered at the default settings:
JP2: 3-4
JP3: 1-2 for int mode support, otherwise no jumper
JP4: 1-2, 3-4
JP5: 1-2
JP6: 1-2
JP7: 1-2, 3-4
Zeta & Zeta 2 do not have any relevant jumper settings. The
hardwired I/O ranges are assumed in the code.
The Dual-IDE board should be jumpered as follows:
K3 (DT/R or /RD): /RD
P5 (bd ID): 1-2, 3-4 (for $20-$3F port range)
There are no specific N8 jumper settings, but the default
I/O range starting at $80 is assumed in the published code.
The RC2014 Scott Baker SMC-based floppy module should be jumpered
for I/O base address 0x50 (SV1: 11-12), JP1 (TS) shorted,
JP2 (/FAULT) shorted, JP3 (MINI): 2-3, JP4 (/DC/RDY): 2-3.
The RC2014 Scott Baker WDC-based floppy module should be jumpered
for I/O base address 0x50 (SV1: 11-12), JP1 (/DACK): 1-2,
JP2 (TC): 2-3.
SmallZ80 does not have any relevant jumper settings. The
hardwired I/O ranges are assumed in the code.
Dyno does not have any relevant jumper settings. The
hardwired I/O ranges are assumed in the code.
Modes of Operation
------------------
You can select the following test modes. Please refer to the
chart that follows to determine which modes should work with
combinations of Z80 CPU speed and media format.
WARNING: In general, only the polling mode is considered fully
reliable. The other modes are basically experimental and
should only be used if you know exactly what you are doing.
Polling: Traditional polled input/output. Works well and very
reliable with robust timeouts and good error recovery. Also,
the slowest performance which precludes it from being used
with 1.44MB floppy on a 4MHz Z80. This is definitely the mode
you want to get working before any others. It does not require
J1 (interrupt enable) on DISK I/O and does not care about the
setting of J3.
Interrupt: Relies on FDC interrupts to determine when a byte
is ready to be read/written. It does *not* implement a
timeout during disk operations. For example, if there is no
disk in the drive, this mode will just hang until a disk is
inserted. This mode *requires* that the host has interrupts
active using interrupt mode 1 (IM1) and interrupts attached to
the FDC controller. The BIOS must be configured to handle
these interrupts safely.
Fast Interrupt: Same as above, but sacrifices additional
reliability for faster operation. This mode will allow a
1.44MB floppy to work with a 4MHz Z80 CPU. However, if any
errors occur (even a transient read error which is not
unusual), this mode will hang. The same FDC interrupt
requirements as above are required.
INT/WAIT: Same as Fast Interrupt, but uses CPU wait instead of
actual interrupt. This mode is exclusive to the original Disk
IO board. It is subject to all the same issues as Fast
Interrupt, but does not need J1 shorted. J3 is irrelevant.
DRQ/WAIT: Uses pseudo DMA to handle input/output. Does not
require that interrupts (J1) be enabled on the DISK I/O.
However, it is subject to all of the same reliability issues
as "Fast Interrupt". This mode is exclusive to the original
Disk IO board. At present, the mode is *not* implemented!
The chart below attempts to describe the combinations that
work for me. By far, the most reliable mode is Polling, but
it requires 8MHz CPU for HD disks.
DRQ/WAIT --------------------------------+
INT/WAIT -----------------------------+ |
Fast Interrupt --------------------+ | |
Interrupt ----------------------+ | | |
Polling ---------------------+ | | | |
| | | | |
CPU Speed --------------+ | | | | |
| | | | | |
| | | | | |
3.5" DD (720K) ------ 4MHz Y Y Y Y X
8MHz+ Y Y Y Y X
3.5" HD (1.44M) ----- 4MHz N N Y Y X
8MHz+ Y Y Y Y X
5.25" DD (360K) ----- 4MHz Y Y Y Y X
8MHz+ Y Y Y Y X
5.25" HD (1.2M) ----- 4MHz N N Y Y X
8MHz+ Y Y Y Y X
8" DD (1.11M) ------- 4MHz N N Y Y X
8MHz+ Y Y Y Y X
Y = Yes, works
N = No, does not work
X = Experimental, probably won't work
Tracing
-------
Command/result activity to/from the FDC will be written out if
the trace setting is changed from '00' to '01' in setup.
Additionally, if a command failure is detected on any command,
that specific comand and results are written regardless of the
trace setting.
The format of the line written is:
<OPERATION>: <COMMAND BYTES> --> <RESULT BYTES> [<RESULT>]
For example, this is the output of a normal read operation:
READ: 46 01 00 00 01 02 09 1B FF --> 01 00 00 00 00 02 02 [OK]
Please refer to the i8272 data sheet for information on the
command and result bytes.
Note that the sense interrupt command can return a non-OK
result. This is completely normal in some cases. It is
necessary to "poll" the drive for seek status using sense
interrupt. If there is nothing to report, then the result
will be INVALID COMMAND. Additionally, during a recalibrate
operation, it may be necessary to issue the command twice
because the command will only step the drive 77 times looking
for track 0, but the head may be up to 80 tracks away. In
this case, the first recalibrate fails, but the second should
succeed. Here is what this would look like if trace is turned
on:
RECALIBRATE: 07 01 --> <EMPTY> [OK]
SENSE INTERRUPT: 08 --> 80 [INVALID COMMAND]
...
...
...
SENSE INTERRUPT: 08 --> 80 [INVALID COMMAND]
SENSE INTERRUPT: 08 --> 71 00 [ABNORMAL TERMINATION]
RECALIBRATE: 07 01 --> <EMPTY> [OK]
SENSE INTERRUPT: 08 --> 21 00 [OK]
Another example is when the FDC has just been reset. In this
case, you will see up to 4 disk change errors. Again these
are not a real problem and to be expected.
When tracing is turned off, the application tries to be
intelligent about error reporting. The specific errors from
sense interrupt documented above will be suppressed because
they are not a real problem. All other errors will be
displayed.
Error Handling
--------------
There is no automated error retry logic. This is very
intentional since the point is to expose the controller and
drive activity. Any error detected will result in a prompt to
abort, retry, or continue. Note that some number of errors is
considered normal for this technology. An occasional error
would not necessarily be considered a problem.
CPU Speed
---------
Starting with v5.0, the application adjusts it's timing loops
to the actual system CPU speed by querying the BIOS for the
current CPU speed.
Interleave
----------
The format command now allows the specification of a sector
interleave. It is almost always the case that the optimal
interleave will be 2 (meaning 2:1).
360K Media
----------
The 360K media definition should work well for true 360K
drives. However, it will generally not work with 1.2M
drives. This is because these drives spin at 360RPM instead
of the 300RPM speed of true 360K drives. Additionally, 1.2M
drives are 80 tracks and 360K drives are 40 tracks and, so
far, there is no mechanism in FD to "double step" as a way to
use 40 track media in 80 track drives.
With this said, it is possible to configure some 1.2M 5.25"
drives to automatically spin down to 300RPM based on a density
select signal (DENSEL). This signal is asserted by FD for
360K media, so IF you have configured your drive to react to
this signal correctly, you will be able to use the 360K media
defintion. Most 1.2M 5.25" drives are NOT configured this way
by default. TEAC drives are generally easy to modify and have
been tested by the author and do work in this manner. Note
that this does not address the issue of double stepping above;
you will just be using the first 40 of 80 tracks.
Support
-------
I am happy to answer questions as fast and well as I am able.
Best contact is wwarthen@gmail.com or post something on the
RetroBrew Computers Forum
https://www.retrobrewcomputers.org/forum/.
Changes
-------
WW 8/12/2011
Removed call to pulse TC in the FDC initialization after
determining that it periodically caused the FDC to write bad
sectors. I am mystified by this, but definitely found it to
be true. Will revisit at some point -- probably a timing
issue between puslsing TC and whatever happens next.
Non-DMA mode was being set incorrectly for FAST-DMA mode. It
was set for non-DMA even though we were doing DMA. It is
interesting that it worked fine anyway. Fixed it anyway.
DIO_SETMEDIA was not clearing DCD_DSKRDY as it should. Fixed.
WW 8/26/2011: v1.1
Added support for Zeta. Note that INT/WAIT and DRQ/WAIT are
not available on Zeta. Note that Zeta provides the ability to
perform a reset of the FDC independent of a full CPU reset.
This is VERY useful and the FDC is reset anytime a drive reset
is required.
Added INT/WAIT support.
WW 8/28/2011: V1.2
All changes in this version are Zeta specific. Fixed FDC
reset logic and motor status display for Zeta (code from
Sergey).
Modified Zeta disk change display to include it in the command
output line. This makes more sense because a command must be
issued to select the desired drive first. You can use the
SENSE INT command id you want to check the disk change value
at any time. It will also be displayed with any other command
output display.
WW 9/1/2011: V1.3
Added CPUFREQ configuration setting to tune delays based on
cpu speed. The build app is set for 8MHz which also seems to
work well for 4MHz CPU's. Faster CPU speeds will probably
require tuning this setting.
WW 9/5/2011: V1.4
Changed the polling execution routines to utilize CPUFREQ
variable to optimize timeout counter. Most importantly, this
should allow the use of faster CPUs (like 20MHz).
WW 9/19/2011: V1.5
Zeta changes only. Added a call to FDC RESET after any
command failure. This solves an issue where the drive remains
selected if a command error occurs. Also added FDC RESET to
FDC CONTROL menu.
WW 10/7/2011: V2.0
Added support for DIDE. Only supports polling IO and it does
not appear any other modes are possible given the hardware
constraints.
WW 10/13/2011: V2.1
Modified to support N8. N8 is essentially identical to Dual
IDE. The only real change is the IO addresses. In theory, I
should be able to support true DMA on N8 and will work on that.
WW 10/20/2011: v2.2
I had some problems with the results being read were sometimes
missing a byte. Fixed this by taking a more strict approach
to watching the MSR for the exact bits that are expected.
WW 10/22/2011: V2.3
After spending a few days trying to track down an intermittent
data corruption issue with my Dual IDE board, I added a verify
function. This helped me isolate the problem very nicely
(turned out to be interference from the bus monitor).
WW 11/25/2011: V2.4
Preliminary support for DISKIO V3. Basically just assumed
that it operates just like the Zeta. Needs to be verified
with real hardware as soon as I can.
WW 1/9/2012: V2.5
Modified program termination to use CP/M reset call so that a
warm start is done and all drives are logged out. This is
important because media may have been formatted during the
program execution.
WW 2/6/2012: v2.6
Added support for 5.25" drives as tested by Sergio.
WW 4/5/2012: v2.7
Added support for 8" drives as tested by Jim Harre.
WW 4/6/2012: v2.7a
Fixed issue with media selection menu to remove duplicate
entries.
WW 4/8/2012: v2.7b
Corrected the handling of the density select signal.
WW 5/22/2012: v2.8
Added new media definitions (5.25", 320K).
WW 6/1/2012: v2.9
Added interleave capability on format.
WW 6/5/2012: v3.0
Documentation cleanup.
WW 7/1/2012: v3.1
Modified head load time (HLT) for 8" media based on YD-180
spec. Now set to 50ms.
WW 6/17/2013: v3.2
Cleaned up SRT, HLT, and HUT values.
SK 2/10/2015: v3.3
Added Zeta SBC v2 support (Sergey Kiselev)
WW 3/25/2015: v4.0
Renamed from FDTST --> FD
WW 9/2/2017: v5.0
Renamed from FD to FDU.
Added runtime selection of FDC hardware.
Added runtime timing adjustment.
WW 12/16/2017: v5.1
Improved polling version of read/write to fix occasional overrun errors.
WW 1/8/2018: v5.2
Added support for RC2014 hardware:
- Scott Baker SMC 9266 FDC module
- Scott Baker WDC 37C65 FDC module
WW 9/5/2018: v5.3
- Removed use of pulsing TC to end R/W operations after one sector and
instead set EOT = R (sector number) so that after desired sector is
read, R/W stops with end of cylinder error which is a documented
method for controling number of sectors R/W. This specific termination
condition is no longer considered an error, but a successful end of
operation.
- Added support for SmallZ80
WW 5/1/2020: v5.4
- Added support for Dyno (based on work by Steve Garcia)

View File

@@ -1,7 +1,7 @@
OBJECTS = FDU.com
DOCS = FDU.txt
OBJECTS = fdu.com
DOCS = fdu.doc
DEST = ../../../Binary/Apps
DOCDEST = ../../../Doc
DOCDEST = ../../../Binary/Apps
TOOLS = ../../../Tools
include $(TOOLS)/Makefile.inc

View File

@@ -38,13 +38,17 @@
; DYNAMIC FDC SELECTION AT STARTUP
; DYNAMIC CPU SPEED ADJUSTMENT
; 2017-12-16: V5.1 IMPROVED POLLING READ/WRITE PERFORMANCE
; 2018-01-08: V5.2 ADDED RC2014 SUPPORT FOR:
; 2018-01-08: V5.2 ADDED RCBUS SUPPORT FOR:
; - SCOTT BAKER (SMB) SMC 9266 FDC
; - SCOTT BAKER (SMB) WDC 37C65 FDC
; 2018-09-05: v5.3 ADDED SUPPORT FOR SMALLZ80
; - USE EOT=R TO END R/W AFTER ONE SECTOR INSTEAD
; OF USING PULSE TC
; 2020-01-05: V5.4 ADDED SUPPORT FOR DYNO FDC
; 2020-04-29: v5.5 ADDED SUPPORT FOR ETCHED PIXELS FDC
; 2020-12-12: v5.6 UPDATED SMALLZ80 TO NEW I/O ADDRESSES
; 2021-03-24: v5.7 ADDED SOME SINGLE-SIDED FORMATS
; 2021-07-26: v5.8 ADDED SUPPORT MBC FDC
;
;_______________________________________________________________________________
;
@@ -79,13 +83,15 @@ FDC_RCSMC .EQU 6
FDC_RCWDC .EQU 7
FDC_SMZ80 .EQU 8
FDC_DYNO .EQU 9
FDC_EPFDC .EQU 10
FDC_MBC .EQU 11
;
; FDC MODE
;
_DIO .EQU $01 ; CUSTOM FOR DIO BOARD
_DIO3 .EQU $02 ; CUSTOM FOR DIO3 BOARD
_ZETA .EQU $04 ; CUSTOM FOR ZETA
_RCSMC .EQU $08 ; CUSTOM FOR RC2014 SMB SMC MODULE
_RCSMC .EQU $08 ; CUSTOM FOR RCBUS SMB SMC MODULE
_PCAT .EQU $10 ; PC/AT MODE IN NEWER CONTROLLERS
;
;===============================================================================
@@ -213,8 +219,8 @@ INIT5:
XOR A
RET
STR_BANNER .DB "Floppy Disk Utility (FDU) v5.4, 05-jAN-2020$"
STR_BANNER2 .DB "Copyright (C) 2020, Wayne Warthen, GNU GPL v3","$"
STR_BANNER .DB "Floppy Disk Utility (FDU) v5.8, 26-Jul-2021$"
STR_BANNER2 .DB "Copyright (C) 2021, Wayne Warthen, GNU GPL v3","$"
STR_HBIOS .DB " [HBIOS]$"
STR_UBIOS .DB " [UBIOS]$"
;
@@ -284,6 +290,8 @@ FDCTBL: ; LABEL CONFIG DATA
.DW STR_RCWDC, CFG_RCWDC
.DW STR_SMZ80, CFG_SMZ80
.DW STR_DYNO, CFG_DYNO
.DW STR_EPFDC, CFG_EPFDC
.DW STR_MBC, CFG_MBC
FDCCNT .EQU ($-FDCTBL)/4 ; FD CONTROLLER COUNT
;
; FDC LABEL STRINGS
@@ -298,6 +306,8 @@ STR_RCSMC .TEXT "RC-SMC$"
STR_RCWDC .TEXT "RC-WDC$"
STR_SMZ80 .TEXT "SMZ80$"
STR_DYNO .TEXT "DYNO$"
STR_EPFDC .TEXT "EPFDC$"
STR_MBC .TEXT "MBC$"
;
; FDC CONFIGURATION BLOCKS
;
@@ -398,11 +408,11 @@ CFG_RCWDC:
.DB _PCAT ; MODE=
;
CFG_SMZ80:
.DB 044H ; FDC MAIN STATUS REGISTER
.DB 045H ; FDC DATA PORT
.DB 074H ; FDC MAIN STATUS REGISTER
.DB 075H ; FDC DATA PORT
.DB 0FFH ; DATA INPUT REGISTER
.DB 042H ; DIGITAL OUTPUT REGISTER (LATCH)
.DB 047H ; DCR
.DB 072H ; DIGITAL OUTPUT REGISTER (LATCH)
.DB 077H ; DCR
.DB 0FFH ; DACK
.DB 0FFH ; TERMINAL COUNT (W/ DACK)
.DB 0FFH ; PSEUDO DMA DATA PORT
@@ -419,6 +429,28 @@ CFG_DYNO:
.DB 0FFH ; PSEUDO DMA DATA PORT
.DB _PCAT ; MODE=
;
CFG_EPFDC:
.DB 048H ; FDC MAIN STATUS REGISTER
.DB 049H ; FDC DATA PORT
.DB 0FFH ; DATA INPUT REGISTER
.DB 04AH ; DIGITAL OUTPUT REGISTER (LATCH)
.DB 04BH ; DCR
.DB 0FFH ; DACK
.DB 04CH ; TERMINAL COUNT (W/ DACK)
.DB 0FFH ; PSEUDO DMA DATA PORT
.DB _PCAT ; MODE=
;
CFG_MBC:
.DB 030H ; FDC MAIN STATUS REGISTER
.DB 031H ; FDC DATA PORT
.DB 0FFH ; DATA INPUT REGISTER
.DB 036H ; DIGITAL OUTPUT REGISTER (WHEN WRITTEN)
.DB 035H ; CONFIGURATION CONTROL REGISTER
.DB 036H ; DACK (WHEN READ)
.DB 037H ; TERMINAL COUNT (W/ DACK)
.DB 0FFH ; NOT USED BY ZETA SBC V2
.DB _PCAT ; MODE=
;
FDCID .DB 0 ; FDC IDENTIFIER (0 INDEXED)
FDCBM .DB 0 ; FDC ID BITMAP
FDCLBL .DW 0 ; POINTER TO ACTIVE FDC LABEL STRING
@@ -433,10 +465,12 @@ FSS_MENU:
.TEXT " (D) Zeta 2 SBC Onboard FDC\r\n"
.TEXT " (E) Dual IDE ECB Board\r\n"
.TEXT " (F) N8 Onboard FDC\r\n"
.TEXT " (G) RC2014 SMC (SMB)\r\n"
.TEXT " (H) RC2014 WDC (SMB)\r\n"
.TEXT " (G) RCBus SMC (SMB)\r\n"
.TEXT " (H) RCBus WDC (SMB)\r\n"
.TEXT " (I) SmallZ80 Expansion\r\n"
.TEXT " (J) Dyno-Card FDC, D1030\r\n"
.TEXT " (K) RCBus EPFDC\r\n"
.TEXT " (L) Multi-Board Computer FDC\r\n"
.TEXT " (X) Exit\r\n"
.TEXT "=== OPTION ===> $\r\n"
;
@@ -466,16 +500,16 @@ MM_INFO: .DW MM_DRAW
;
STR_MAINMENU:
.TEXT "=======================<< FDU MAIN MENU >>======================\r\n"
; .TEXT "(S)ETUP: UNIT=XX MEDIA=XXXXXX MODE=XXXXXXXXXX TRACE=XX\r\n"
; .TEXT "(S)ETUP: UNIT=XX MEDIA=XXXXXXXXXXXXX MODE=XXXXXXXXXX TRACE=XX\r\n"
.TEXT "(S)ETUP: UNIT="
MV_UNIT .TEXT "XX"
.TEXT " MEDIA="
MV_MED .TEXT "XXXXXX"
.TEXT " MODE="
MV_MODE .TEXT "XXXXXXXXXX"
.TEXT " TRACE="
MV_TRC .TEXT "XX"
.TEXT "\r\n"
MV_MED .TEXT "XXXXXXXXXXXXX"
.TEXT " MODE="
MV_MODE .TEXT "XXXXXXXXXX"
.TEXT " TRACE="
MV_TRC .TEXT "XX"
.TEXT "\r\n"
.TEXT "----------------------------------------------------------------\r\n"
.TEXT "(R)EAD (W)RITE (F)ORMAT (V)ERIFY\r\n"
.TEXT "(I)NIT BUFFER (D)UMP BUFFER FDC (C)MDS E(X)IT\r\n"
@@ -1054,21 +1088,29 @@ MMOP_RANDOM1: ; GENERATE RANDOM TRACK
JP P,MMOP_RANDOM1
LD (DCD_TRACK),A
; GENERATE RANDOM HEAD
MMOP_RANDOM2: ; GENERATE RANDOM HEAD
;OR A
;CALL RNDBYTE
;AND 01H ; JUST USE LOW ORDER BIT
;LD (DCD_HEAD),A
LD A,(MDB_NUMHD)
LD C,A
CALL RNDBYTE
AND 01H ; JUST USE LOW ORDER BIT
AND 01H ; USE 1 BIT FOR UP TO 2 HEADS
CP C
JP P,MMOP_RANDOM2
LD (DCD_HEAD),A
MMOP_RANDOM2: ; GENERATE RANDOM SECTOR
MMOP_RANDOM3: ; GENERATE RANDOM SECTOR
LD A,(MDB_EOT)
LD C,A
INC C ; ONE MORE THEN MAX SECTOR
CALL RNDBYTE
AND 1FH ; USE 5 BITS FOR UP TO 32 SECTORS
CP C ; MAX SECTOR NUM IS 9 + 1 = 0AH
JP P,MMOP_RANDOM2
JP P,MMOP_RANDOM3
CP 00H ; SECTOR NUM STARTS AT 1, DON'T ALLOW ZERO
JP Z,MMOP_RANDOM2
JP Z,MMOP_RANDOM3
LD (DCD_SECTOR),A
CALL DIO_RUN
@@ -1517,6 +1559,8 @@ MD_MAP:
.DB %00000001 ; RCWDC POLL
.DB %00000001 ; SMZ80 POLL
.DB %00000001 ; DYNO POLL
.DB %00000001 ; EPFDC POLL
.DB %00000001 ; MBC POLL
;
; MEDIA DESCRIPTION BLOCK
;
@@ -1583,6 +1627,10 @@ MT_PC320 .EQU 2
MT_PC360 .EQU 3
MT_PC120 .EQU 4
MT_PC111 .EQU 5
MT_PC160 .EQU 6
MT_PC180 .EQU 7
MT_PC320SS .EQU 8
MT_PC360SS .EQU 9
;
MIT: ; MEDIA INDEX TABLE
.DW MDB_PC720
@@ -1591,6 +1639,10 @@ MIT: ; MEDIA INDEX TABLE
.DW MDB_PC360
.DW MDB_PC120
.DW MDB_PC111
.DW MDB_PC160
.DW MDB_PC180
.DW MDB_PC320SS
.DW MDB_PC360SS
MIT_ENTCNT .EQU (($ - MIT) / 2)
;
; Specify Command:
@@ -1642,7 +1694,7 @@ FCB_PC720 .DB 009H ; SECTOR COUNT
.IF (($ - MDB_PC720) != MDB_LEN)
.ECHO "*** FCB SIZE ERROR!!! ***\n"
.ENDIF
DTL_PC720 .TEXT "720KB $"
DTL_PC720 .TEXT "720KB DS/DD $"
DTS_PC720 .TEXT "3.5\" 720KB - 9 SECTORS, 2 SIDES, 80 TRACKS, DOUBLE DENSITY$"
;
MDB_PC144 .DW DTL_PC144 ; ADDRESS OF MEDIA LABEL
@@ -1665,7 +1717,7 @@ FCB_PC144 .DB 012H ; SECTOR COUNT
.IF (($ - MDB_PC144) != MDB_LEN)
.ECHO "*** FCB SIZE ERROR!!! ***\n"
.ENDIF
DTL_PC144 .TEXT "1.44MB$"
DTL_PC144 .TEXT "1.44MB DS/HD $"
DTS_PC144 .TEXT "3.5\" 1.44MB - 18 SECTORS, 2 SIDES, 80 TRACKS, HIGH DENSITY$"
;
MDB_PC320 .DW DTL_PC320 ; ADDRESS OF MEDIA LABEL
@@ -1688,7 +1740,7 @@ FCB_PC320 .DB 008H ; SECTOR COUNT
.IF (($ - MDB_PC320) != MDB_LEN)
.ECHO "*** FCB SIZE ERROR!!! ***\n"
.ENDIF
DTL_PC320 .TEXT "320KB $"
DTL_PC320 .TEXT "320KB DS/DD $"
DTS_PC320 .TEXT "5.25\" 320KB - 8 SECTORS, 2 SIDES, 40 TRACKS, DOUBLE DENSITY$"
;
MDB_PC360 .DW DTL_PC360 ; ADDRESS OF MEDIA LABEL
@@ -1711,7 +1763,7 @@ FCB_PC360 .DB 009H ; SECTOR COUNT
.IF (($ - MDB_PC360) != MDB_LEN)
.ECHO "*** FCB SIZE ERROR!!! ***\n"
.ENDIF
DTL_PC360 .TEXT "360KB $"
DTL_PC360 .TEXT "360KB DS/DD $"
DTS_PC360 .TEXT "5.25\" 360KB - 9 SECTORS, 2 SIDES, 40 TRACKS, DOUBLE DENSITY$"
;
MDB_PC120 .DW DTL_PC120 ; ADDRESS OF MEDIA LABEL
@@ -1734,7 +1786,7 @@ FCB_PC120 .DB 00FH ; SECTOR COUNT
.IF (($ - MDB_PC120) != MDB_LEN)
.ECHO "*** FCB SIZE ERROR!!! ***\n"
.ENDIF
DTL_PC120 .TEXT "1.2MB $"
DTL_PC120 .TEXT "1.2MB DS/HD $"
DTS_PC120 .TEXT "5.25\" 1.2MB - 15 SECTORS, 2 SIDES, 80 TRACKS, HIGH DENSITY$"
;
MDB_PC111 .DW DTL_PC111 ; ADDRESS OF MEDIA LABEL
@@ -1757,9 +1809,101 @@ FCB_PC111 .DB 00FH ; SECTOR COUNT
.IF (($ - MDB_PC111) != MDB_LEN)
.ECHO "*** FCB SIZE ERROR!!! ***\n"
.ENDIF
DTL_PC111 .TEXT "1.11MB$"
DTL_PC111 .TEXT "1.11MB DS/DD $"
DTS_PC111 .TEXT "8\" 1.11MB - 15 SECTORS, 2 SIDES, 77 TRACKS, DOUBLE DENSITY$"
;
MDB_PC160 .DW DTL_PC160 ; ADDRESS OF MEDIA LABEL
.DW DTS_PC160 ; ADDRESS OF MEDIA DESCRIPTION
.DB 028H ; NUMBER OF CYLINDERS
.DB 001H ; NUMBER OF HEADS
.DB 008H ; NUMBER OF SECTORS
.DB 001H ; START OF TRACK (ID OF FIRST SECTOR, USUALLY 1)
FCB_PC160 .DB 008H ; SECTOR COUNT
.DW 200H ; SECTOR SIZE IN BYTES
.DB 02AH ; GAP LENGTH (R/W)
.DB 050H ; GAP LENGTH (FORMAT)
.DB (13 << 4) | 0 ; SRT = 6ms, HUT = 512ms
.DB 4 ; HLT = 16ms
.DB DORA_BR250 ; OPERATIONS REGISTER VALUE
.DB DORB_BR250 ; OPERATIONS REGISTER VALUE
.DB DORC_BR250 ; OPERATIONS REGISTER VALUE
.DB DORD_BR250 ; OPERATIONS REGISTER VALUE
.DB DCR_BR250 ; CONTROL REGISTER VALUE
.IF (($ - MDB_PC160) != MDB_LEN)
.ECHO "*** FCB SIZE ERROR!!! ***\n"
.ENDIF
DTL_PC160 .TEXT "160KB SS/DD $"
DTS_PC160 .TEXT "5.25\" 160KB - 8 SECTORS, 1 SIDE, 40 TRACKS, DOUBLE DENSITY$"
;
MDB_PC180 .DW DTL_PC180 ; ADDRESS OF MEDIA LABEL
.DW DTS_PC180 ; ADDRESS OF MEDIA DESCRIPTION
.DB 028H ; NUMBER OF CYLINDERS
.DB 001H ; NUMBER OF HEADS
.DB 009H ; NUMBER OF SECTORS
.DB 001H ; START OF TRACK (ID OF FIRST SECTOR, USUALLY 1)
FCB_PC180 .DB 009H ; SECTOR COUNT
.DW 200H ; SECTOR SIZE IN BYTES
.DB 02AH ; GAP LENGTH (R/W)
.DB 050H ; GAP LENGTH (FORMAT)
.DB (13 << 4) | 0 ; SRT = 6ms, HUT = 512ms
.DB 4 ; HLT = 16ms
.DB DORA_BR250 ; OPERATIONS REGISTER VALUE
.DB DORB_BR250 ; OPERATIONS REGISTER VALUE
.DB DORC_BR250 ; OPERATIONS REGISTER VALUE
.DB DORD_BR250 ; OPERATIONS REGISTER VALUE
.DB DCR_BR250 ; CONTROL REGISTER VALUE
.IF (($ - MDB_PC180) != MDB_LEN)
.ECHO "*** FCB SIZE ERROR!!! ***\n"
.ENDIF
DTL_PC180 .TEXT "180KB SS/DD $"
DTS_PC180 .TEXT "5.25\" 180KB - 9 SECTORS, 1 SIDE, 40 TRACKS, DOUBLE DENSITY$"
;
MDB_PC320SS .DW DTL_PC320SS ; ADDRESS OF MEDIA LABEL
.DW DTS_PC320SS ; ADDRESS OF MEDIA DESCRIPTION
.DB 050H ; NUMBER OF CYLINDERS
.DB 001H ; NUMBER OF HEADS
.DB 008H ; NUMBER OF SECTORS
.DB 001H ; START OF TRACK (ID OF FIRST SECTOR, USUALLY 1)
FCB_PC320SS .DB 008H ; SECTOR COUNT
.DW 200H ; SECTOR SIZE IN BYTES
.DB 02AH ; GAP LENGTH (R/W)
.DB 050H ; GAP LENGTH (FORMAT)
.DB (13 << 4) | 0 ; SRT = 6ms, HUT = 512ms
.DB 4 ; HLT = 16ms
.DB DORA_BR250 ; OPERATIONS REGISTER VALUE
.DB DORB_BR250 ; OPERATIONS REGISTER VALUE
.DB DORC_BR250 ; OPERATIONS REGISTER VALUE
.DB DORD_BR250 ; OPERATIONS REGISTER VALUE
.DB DCR_BR250 ; CONTROL REGISTER VALUE
.IF (($ - MDB_PC320SS) != MDB_LEN)
.ECHO "*** FCB SIZE ERROR!!! ***\n"
.ENDIF
DTL_PC320SS .TEXT "320KB SS/DD $"
DTS_PC320SS .TEXT "5.25\" 320KB - 8 SECTORS, 1 SIDE, 80 TRACKS, DOUBLE DENSITY$"
;
MDB_PC360SS .DW DTL_PC360SS ; ADDRESS OF MEDIA LABEL
.DW DTS_PC360SS ; ADDRESS OF MEDIA DESCRIPTION
.DB 050H ; NUMBER OF CYLINDERS
.DB 001H ; NUMBER OF HEADS
.DB 009H ; NUMBER OF SECTORS
.DB 001H ; START OF TRACK (ID OF FIRST SECTOR, USUALLY 1)
FCB_PC360SS .DB 009H ; SECTOR COUNT
.DW 200H ; SECTOR SIZE IN BYTES
.DB 02AH ; GAP LENGTH (R/W)
.DB 050H ; GAP LENGTH (FORMAT)
.DB (13 << 4) | 0 ; SRT = 6ms, HUT = 512ms
.DB 4 ; HLT = 16ms
.DB DORA_BR250 ; OPERATIONS REGISTER VALUE
.DB DORB_BR250 ; OPERATIONS REGISTER VALUE
.DB DORC_BR250 ; OPERATIONS REGISTER VALUE
.DB DORD_BR250 ; OPERATIONS REGISTER VALUE
.DB DCR_BR250 ; CONTROL REGISTER VALUE
.IF (($ - MDB_PC360SS) != MDB_LEN)
.ECHO "*** FCB SIZE ERROR!!! ***\n"
.ENDIF
DTL_PC360SS .TEXT "360KB SS/DD $"
DTS_PC360SS .TEXT "5.25\" 360KB - 9 SECTORS, 1 SIDE, 80 TRACKS, DOUBLE DENSITY$"
;
;===============================================================================
; FLOPPY DISK CONTROL MENU (DIRECT MENU INTERFACE TO FDC & RELATED HARDWARE)
;===============================================================================
@@ -1877,7 +2021,7 @@ FM_DRAW0B: ; ZETA, DIO3
LD A,(FST_DOR)
AND 00000010B
JR FM_DRAW1
FM_DRAW0C: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO
FM_DRAW0C: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
LD A,(FST_DOR)
AND 11110000B
JR FM_DRAW1
@@ -2030,7 +2174,7 @@ FM_MOTOR0B: ; ZETA, DIO3
LD A,(FST_DOR)
AND 00000010B
JR FM_MOTOR1
FM_MOTOR0C: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO
FM_MOTOR0C: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
LD A,(FST_DOR)
AND 11110000B
JR FM_MOTOR1
@@ -2769,7 +2913,7 @@ FC_INIT1: ; DIO
FC_INIT2: ; ZETA, DIO3
LD A,(FCD_DORB)
JR FC_INIT5
FC_INIT3: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO
FC_INIT3: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
LD A,(FCD_DORC)
JR FC_INIT5
FC_INIT4: ; WDSMC
@@ -2813,7 +2957,7 @@ FC_RESETFDC1: ; ZETA, DIO3, RCSMC
POP AF
OUT (C),A
JR FC_RESETFDC3
FC_RESETFDC2: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO
FC_RESETFDC2: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
LD A,0
OUT (C),A
LD A,(FST_DOR)
@@ -2840,7 +2984,7 @@ FC_PULSETC:
;RES 0,A
;OUT (C),A
;JR FC_PULSETC2
;FC_PULSETC1: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO
;FC_PULSETC1: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
;LD C,(IY+CFG_TC)
;IN A,(C)
;JR FC_PULSETC2
@@ -2872,7 +3016,7 @@ FC_MOTORON2: ; ZETA, DIO3
LD HL,FST_DOR ; POINT TO FDC_DOR
SET 1,(HL)
JR FC_MOTORON5
FC_MOTORON3: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO
FC_MOTORON3: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
LD HL,FST_DOR ; POINT TO FDC_DOR
LD A,(HL) ; START WITH CURRENT DOR
AND 11111100B ; GET RID OF ANY ACTIVE DS BITS
@@ -2936,7 +3080,7 @@ FC_MOTOROFF2: ; ZETA, DIO3
LD HL,FST_DOR ; POINT TO FDC_DOR
RES 1,(HL)
JR FC_MOTOROFF5
FC_MOTOROFF3: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO
FC_MOTOROFF3: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
LD HL,FST_DOR ; POINT TO FDC_DOR
LD A,DORC_INIT
LD (HL),A
@@ -3806,7 +3950,7 @@ DORB_BR500 .EQU 10100000B ; 500KBPS
;
DORB_INIT .EQU DORB_BR250
;
; *** DIDE/N8/ZETA2/RCWDC/SMZ80/DYNO ***
; *** DIDE/N8/ZETA2/RCWDC/SMZ80/DYNO/EPFDC/MBC ***
;
DORC_INIT .EQU 00001100B ; SOFT RESET INACTIVE, DMA ENABLED
;

View File

@@ -1,6 +1,6 @@
================================================================
Floppy Disk Utility (FDU) v5.3 for RetroBrew Computers
Disk IO / Zeta / Dual-IDE / N8 / RC2014 / SmallZ80 / Dyno
Disk IO / Zeta / Dual-IDE / N8 / RCBus / SmallZ80 / Dyno
================================================================
Updated January 5, 2020
@@ -33,7 +33,7 @@ like to acknowledge that much was derived from the previous
work of Andrew Lynch and Dan Werner. I also want to credit
Sergio Gimenez with testing the 5.25" drive support and Jim
Harre with testing the 8" drive support. Support for Zeta 2
comes from Segey Kiselev. Thanks!
comes from Sergey Kiselev. Thanks!
General Usage
-------------
@@ -74,10 +74,10 @@ supported:
- Zeta 2
- N8
- Mark IV
- RC2014 w/ SMC
- RC2014 w/ WDC
- RCBus
- SmallZ80
- Dyno
- MBC
You must be using either a RomWBW or UBA based OS version.
@@ -89,14 +89,17 @@ You must have one of the following floppy disk controllers:
- Zeta SBC onboard FDC
- Zeta 2 SBC onboard FDC
- N8 SBC onboard FDC
- RC2014 Scott Baker SMC-based Floppy Module
- RC2014 Scott Baker WDC-based Floppy Module
- RCBus Scott Baker SMC-based Floppy Module
- RCBus Scott Baker WDC-based Floppy Module
- SmallZ80 FDC
- Dyno FDC
- MBC FDC
Finally, you will need a floppy drive connected via an
appropriate cable:
Disk IO - no twist in cable, drive unit 0/1 must be selected by jumper on drive
DISK IO 3, Zeta, Zeta 2, RC2014, Dyno - cable with twist, unit 0 after twist, unit 1 before twist
DISK IO 3, Zeta, Zeta 2, RCBus, Dyno - cable with twist, unit 0 after twist, unit 1 before twist
DIDE, N8, Mark IV, SmallZ80 - cable with twist, unit 0 before twist, unit 1 after twist
Note that FDU does not utilize your systems ROM or OS to
@@ -144,20 +147,26 @@ P5 (bd ID): 1-2, 3-4 (for $20-$3F port range)
There are no specific N8 jumper settings, but the default
I/O range starting at $80 is assumed in the published code.
The RC2014 Scott Baker SMC-based floppy module should be jumpered
The RCBus Scott Baker SMC-based floppy module should be jumpered
for I/O base address 0x50 (SV1: 11-12), JP1 (TS) shorted,
JP2 (/FAULT) shorted, JP3 (MINI): 2-3, JP4 (/DC/RDY): 2-3.
The RC2014 Scott Baker WDC-based floppy module should be jumpered
The RCBus Scott Baker WDC-based floppy module should be jumpered
for I/O base address 0x50 (SV1: 11-12), JP1 (/DACK): 1-2,
JP2 (TC): 2-3.
The RCBus FDC by Alan Cox (Etched Pixels) needs to be strapped
for base I/O address 0x48.
SmallZ80 does not have any relevant jumper settings. The
hardwired I/O ranges are assumed in the code.
Dyno does not have any relevant jumper settings. The
hardwired I/O ranges are assumed in the code.
The MBC FDC is expected to be strapped to use neither INT nor NMI. It
is also not expected to use DMA.
Modes of Operation
------------------
@@ -497,7 +506,7 @@ Improved polling version of read/write to fix occasional overrun errors.
WW 1/8/2018: v5.2
Added support for RC2014 hardware:
Added support for RCBus hardware:
- Scott Baker SMC 9266 FDC module
- Scott Baker WDC 37C65 FDC module
@@ -510,5 +519,17 @@ WW 9/5/2018: v5.3
operation.
- Added support for SmallZ80
WW 5/1/2020: v5.4
WW 1/5/2020: v5.4
- Added support for Dyno (based on work by Steve Garcia)
WW 4/29/2020: v5.5
- Added support for Etched Pixels FDC
WW 12/12/2020: v5.6
- Updated SmallZ80 support for new I/O map
WW 3/24/2021: v5.7
- Added support for a few single-sided formats
WW 7/26/2021: v5.8
- Added support for MBC FDC

View File

@@ -1,14 +1,9 @@
OBJECTS = SysGen.com Survey.com \
SysCopy.com Assign.com Format.com Talk.com Mode.com RTC.com \
Timer.com IntTest.com
OTHERS = *.hex *.com
SUBDIRS = XM FDU FAT Tune
OBJECTS = sysgen.com syscopy.com assign.com format.com talk.com \
mode.com rtc.com timer.com rtchb.com
SUBDIRS = XM FDU FAT Tune Test ZMP ZMD Dev VGM cpuspd Survey
DEST = ../../Binary/Apps
TOOLS =../../Tools
include $(TOOLS)/Makefile.inc
USETASM = 1
Survey.com: USETASM=0

View File

@@ -0,0 +1,16 @@
@echo off
setlocal
set TOOLS=..\..\..\Tools
set PATH=%TOOLS%\zxcc;%PATH%
set CPMDIR80=%TOOLS%/cpm/
:: zxcc MAC survey.asm -$PO || exit /b
:: zxcc MLOAD25 survey || exit /b
zxcc M80 -,=survey/L/R
zxcc L80 -survey,survey/N/E
copy /Y survey.com ..\..\..\Binary\Apps\ || exit /b

View File

@@ -1,7 +1,8 @@
@echo off
setlocal
if exist *.hex del *.hex
if exist *.rel del *.rel
if exist *.prn del *.prn
if exist *.lst del *.lst
if exist *.err del *.err
if exist *.rel del *.rel
if exist *.com del *.com

View File

@@ -0,0 +1,6 @@
OBJECTS = survey.com
DEST = ../../../Binary/Apps
TOOLS = ../../../Tools
OTHERS = *.hex
include $(TOOLS)/Makefile.inc

View File

@@ -15,6 +15,10 @@
;
;VERSION LIST - Most recent version first.
;
;10/Feb/23 - Total hack to avoid crash on ECB SBC
; RomWBW now required by this version
; Wayne Warthen
;
;16/Dec/17 - Handle 16-bit port addressing using
; Z80 IN A,(C) instruction. Wayne Warthen
;
@@ -234,7 +238,21 @@ TABS EQU 9 ; Tab columns
; MAIN PROGRAM ;
;***********************;
;
ORG 100H
;ORG 100H
;
;
;
.Z80
LD HL,IMGORG
LD DE,START
LD BC,IMGEND-IMGORG
LDIR
JP START
.8080
;
IMGORG:
;
.PHASE 8000H
;
START:
LXI H,0 ; Save stack pointer
@@ -242,7 +260,8 @@ START:
SHLD OLDSP
LXI SP,FINIS+64
CALL TYPE ; Type initial CRLF
DB TAB,TAB,'*** System Survey (December 17) ***'
DW CRLF,CRLF
DB TAB,'*** RomWBW System Survey (Feb 2023) ***'
DW CRLF,CRLFE
;DISK SURVEY
@@ -586,6 +605,24 @@ PDLY:
MOV A,H ; ON CONSOLE STATUS PORT
ORA L
JNZ PDLY
;
.Z80
; record the active bank
ld a,(0ffe0h) ; get current hbios bank id
ld (BANK),a ; and save it
; Check for Z180 CPU
xor a ; assume Z80
ld (IS180),a ; save it
ld de,0506H ; 5 x 6
db 0EDH,05CH ; MLT DE: de = 30 if z180
ld a,e ; result to A
cp 30 ; check if multiply happened
jr nz,z80 ; if invalid, then Z80
or 0ffH ; flag value for Z180
ld (IS180),a ; save it
z80:
.8080
;
LXI H,0 ; Init active port counter
mvi d,0 ; Init port counter
mvi e,0ffh ; init port group variable
@@ -596,15 +633,77 @@ PORTLP:
CPI SKIPORT
JZ ISPORT ; Print mask port
ENDIF
mov c,a ; port number to reg c
mvi b,0 ; for 16 bit port addressing
db 0edh,078h ; z80: in a,(c)
; inactive port could return 0xFF or 0x78
CPI 0FFH
JZ NEXTPT
cpi 078h
jz nextpt
;
.Z80
di ; interrupts off
ld a,(IS180) ; Z180?
or a
jr nz,rd180
;
; Z80 port read
; Read port using IN A,(C), push result
ld a,d
ld c,a
ld (pnum0a),a ; dynamic update
ld (pnum0b),a ; dynamic update
ld b,0
in a,(c)
push af
; Read port using IN A,(port), push result
in a,(0ffh) ; IN0
pnum0a equ $-1
push af
; Read port using IN A,(port), push result
in a,(0ffh) ; IN0
pnum0b equ $-1
push af
jr rdz
;
rd180:
; Z180 port read
; Read port using IN A,(C), push result
ld a,d
ld c,a
ld (pnum1a),a ; dynamic update
ld (pnum1b),a ; dynamic update
ld b,0
in a,(c)
push af
; Read port using IN0 A,(port), push result
db 0EDH,038H,0FFH ; IN0
pnum1a equ $-1
push af
; Read port using IN0 A,(port), push result
db 0EDH,038H,0FFH ; IN0
pnum1b equ $-1
push af
;
rdz:
; Make sure correct bank is still selected!
push af
ld a,(BANK)
call 0FFF3H
pop af
;
ei ; interrupts back on now
;
; port is considered inactive if values read from different port
; read mechanisms differ or if the value $FF is read consistently,
; or if the value read is equal to the port number itself
;
pop bc ; second IN0 (port) value
pop af ; first IN0 (port) valule
cp b ; same?
pop bc ; IN (C) value
jr nz,ISPORT ; if no, active running ctr port
cp b ; same?
jr nz,NEXTPT ; if not, inactive port
cp 0FFh ; pullup value???
jr z,NEXTPT ; if so, consider not active
cp d ; value same as port num???
jr z,NEXTPT ; if so, consider not active
;
.8080
ISPORT:
mov a,d ; got a live one, probably
ani 0f0h ; is port in same group as last ?
@@ -706,7 +805,6 @@ BITSHF:
JNZ BITSHF
RET
;***********************;
; DATA STORAGE ;
;***********************;
@@ -720,6 +818,13 @@ RAMF: DS 1 ; RAM good flag
EMPF: DS 1 ; Empty so far flag
BLKSHF: DS 1 ; block shift factor
MAXALL: DS 2 ; maximum block number
BANK: DS 1 ; saved HBIOS bank id
IS180: DS 1 ; non-zero for Z180 CPU
FINIS EQU $ ; End of program
;
.DEPHASE
;
IMGEND:
;
END


View File

@@ -0,0 +1,329 @@
;
;------------------------------------------------------------------------------
; PLAY SCALES USING HBIOS
;------------------------------------------------------------------------------
;
FCB .EQU $5C ; Location of default FCB
BDOS .EQU $0005
;
.ORG $0100
;
LD (OLDSTACK),SP ; save old stack pointer
LD SP,STACK ; set new stack pointer
;
;------------------------------------------------------------------------------
; GET DEVICE # FROM COMMAND LINE
;------------------------------------------------------------------------------
;
LD A,(FCB+1) ; GET FIRST CHAR
SUB ' '
JR Z,NO_ARG
SUB '0'-' '
JP C,EXIT
;
;------------------------------------------------------------------------------
; DISPLAY DEVICE AND NUMBER OF CHANNELS
;------------------------------------------------------------------------------
;
NO_ARG: LD (DEVICE),A ;
LD DE,TXT_DEV ; DEVICE:
CALL PRTSTR
CALL PRTDECB
LD C,A ; GET DEVICE ID
LD A,':'
CALL PRTCHR
LD B,$55
PUSH BC
LD E,4
RST 08
LD DE,TXT_NAME
LD A,B
RRCA \ RRCA \ RRCA \ RRCA
CALL PRTIDXDEA ; SHOW NAME
LD DE,TXT_CH
CALL PRTSTR
;
POP BC ; GET & DISPLAY # CHANNELS
LD E,1
RST 08
LD A,B
CALL PRTDECB
CALL CRLF ; NUMBER OF CHANNELS IS IN B
;
;------------------------------------------------------------------------------
; LOOP THROUGH EACH CHANNEL
;------------------------------------------------------------------------------
CH__TONE: LD A,(DEVICE) ; C CONTAINS DEVICE
LD C,A ; THROUGH THIS LOOP
;
PUSH BC
LD B,50H ; RESET DEVICE
RST 08
POP BC
;
PUSH BC
LD B,51H ; VOLUME FULL
LD L,0FFH
RST 08
POP BC
;
LD A,B
TST_TONE_LP: DEC A
LD (CHANNEL),A ; SAVE CURRENT CHANNEL
CALL TST_SCALES ; SCALES TEST
; CALL TST_VOLUME ; VOLUME TEST
CALL CRLF
DJNZ TST_TONE_LP
;
PUSH BC
LD B,50H ; RESET DEVICE
RST 08
POP BC
;
;------------------------------------------------------------------------------
; RESTORE STACK & EXIT
;------------------------------------------------------------------------------
;
EXIT: LD SP, (OLDSTACK) ; Exit to CP/M
RST 00H
DI
HALT
;
;------------------------------------------------------------------------------
; PLAY SCALES FROM HIGHEST HBIOS NOTE TO LOWEST
;------------------------------------------------------------------------------
;
TST_SCALES: PUSH BC
PUSH AF
;
LD HL,380 ; START NOTE
LD (NOTE),HL ; Top of Octave 7 is 343
LD B,51H ; VOLUME HIGH
LD L,0FFH
PUSH BC
RST 08
POP BC
;
NEXT0: PUSH BC
;
LD DE,TXT_TSTCH ; DISPLAY CHANNEL
CALL PRTSTR
LD A,(CHANNEL)
CALL PRTDECB
;
LD DE,TXT_NOTE ; DISPLAY NOTE
CALL PRTSTR
LD HL,(NOTE)
CALL PRTDECW
POP BC
;
LD B,53H ; SET NOTE
LD HL,(NOTE)
PUSH BC
RST 08
POP BC
OR A ; DID DRIVER FAIL
JR Z,NEXT4 ; THIS NOTE ?
LD DE,TXT_BAD_N
CALL FAILMSG
JR SKIP
;
NEXT4: LD B,57H ; DURATION
LD HL,1000
PUSH BC
RST 08
POP BC
LD B,54H ; PLAY
LD A,(CHANNEL)
LD D,A
PUSH BC
RST 08
POP BC
;
OR A ; DID DRIVER FAIL
JR Z,NEXT2 ; TO PLAY ?
LD DE,TXT_BAD_N
CALL FAILMSG
JR SKIP
;
NEXT2: CALL DELAY
CALL CRLF
;
SKIP: LD HL,(NOTE)
DEC HL
LD (NOTE),HL
INC HL
LD A,H
OR L
DEC HL
JR NZ,NEXT0
;
LD B,51H ; VOLUME
LD L,00H ; OFF
PUSH BC
RST 08
POP BC
;
LD B,54H ; PLAY
LD A,(CHANNEL)
LD D,A
PUSH BC
RST 08
POP BC
PUSH BC
LD C, 6 ; check for keypress
LD E,0FFH
CALL BDOS
POP BC
OR A
JP NZ,EXIT
POP AF
POP BC
;
RET
;
FAILMSG: PUSH AF
PUSH BC
CALL PRTSTR
CALL CRLF
POP BC
POP AF
RET
;
;------------------------------------------------------------------------------
; CONSTANT TONE ON ALL CHANNELS, SCALE VOLUME
;------------------------------------------------------------------------------
;
TST_VOLUME:
LD HL,332+48 ; TONE
LD (NOTE),HL
;
LD B,3
NEXTCH1 LD A,B
DEC A
LD (CHANNEL),A
PUSH BC ; ACROSS
CALL TONE ; ALL
LD C, 6 ; KEYPRESS
LD E, 0FFH
CALL BDOS
POP BC ; CHANNELS
OR A
JP NZ,EXIT
DJNZ NEXTCH1
RET
TONE: LD A,(DEVICE)
LD C,A
LD B,50H ; RESET
PUSH BC
RST 08
POP BC
;
NEXT1: LD B,51H ; VOLUME
LD A,(VOLUME)
LD L,A
PUSH BC
RST 08
POP BC
;
LD B,53H ; NOTE
LD HL,(NOTE)
PUSH BC
RST 08
POP BC
;
LD B,54H ; PLAY
LD A,(CHANNEL)
LD D,A
PUSH BC
RST 08
POP BC
;
CALL DELAY
;
LD A,(VOLUME)
DEC A
LD (VOLUME),A
JR NZ,NEXT1
;
LD B,51H ; VOLUME
LD L,00H
PUSH BC
RST 08
POP BC
;
LD B,54H ; PLAY
PUSH BC
LD A,(CHANNEL)
LD D,A
POP BC
RST 08
;
RET
;;
;------------------------------------------------------------------------------
; LONG DELAY
;------------------------------------------------------------------------------
;
DELAY: LD HL,-1
DELAY1: DEC HL
LD A,H
OR L
JR NZ,DELAY1
RET
;
;------------------------------------------------------------------------------
; PRINT THE nTH STRING IN A LIST OF STRINGS WHERE EACH IS TERMINATED BY 0
; A REGISTER DEFINES THE nTH STRING IN THE LIST TO PRINT AND DE POINTS
; TO THE START OF THE STRING LIST.
;------------------------------------------------------------------------------
;
PRTIDXDEA: LD C,A
OR A
PRTIDXDEA1: JR Z,PRTIDXDEA3 ; FOUND TARGET SO EXIT
PRTIDXDEA2: LD A,(DE) ; LOOP UNIT
INC DE ; WE REACH
OR A ; END OF STRING
JR NZ,PRTIDXDEA2
DEC C ; AT STRING END. SO GO
JR PRTIDXDEA1 ; CHECK FOR INDEX MATCH
PRTIDXDEA3: CALL PRTSTR ; DISPLAY THE STRING
RET
;
#INCLUDE "printing.inc"
;
TXT_CH .DB "CHANNELS: ",0
TXT_TSTCH .DB "CHANNEL: ",0
TXT_BAD_N .DB " BAD NOTE",0
TXT_BAD_P .DB " PLAY ERROR",0
TXT_NOTE .DB " NOTE: ",0
TXT_DEV .DB "DEVICE: ",0
TXT_NAME .DB "SN76489 ",0
.DB "AY-3-8910 ",0
.DB "I/O PORT ",0
.DB "YM2612 ",0
MODE .DB 0 ; scales mode or volume mode
DEVICE .DB 0
NOTE .DW 128
VOLUME .DB 0
CHANNEL .DB 0
OLDSTACK .DW 0 ; original stack pointer
.DS 40H ; space for stack
STACK ; top of stack
;
.END

View File

@@ -0,0 +1,201 @@
;*****************************************************************************
;*****************************************************************************
;** **
;** AY-3-8910 Sound Test Program **
;** Author: Wayne Warthen -- 10/8/2017 **
;** **
;*****************************************************************************
;*****************************************************************************
;
;=============================================================================
; Constants Section
;=============================================================================
;
; Hardware port addresses
;
rsel .equ $9A ; Register seelection port address
rdat .equ $9B ; Register data port address
acr .equ $9C ; Aux control register port address
;
; CPU speed for delay scaling
;
cpuspd .equ 4 ; CPU speed in MHz
;
; BDOS invocation constants
;
bdos .equ $0005 ; BDOS invocation vector
print .equ 9 ; BDOS print function number
conwrt .equ 2 ; BDOS console write char
;
;=============================================================================
; Code Section
;=============================================================================
;
.org $100
;
ld (stksav),sp ; save incoming stack frame
ld sp,stack ; setup our private stack
;
ld de,banner ; load banner string address
ld c,print ; BDOS print function number
call bdos ; do it
;
ld a,$FF ; SCG board activation value
out (acr),a ; write value to ACR
;
xor a ; zero accum
ld (chan),a ; init channel number
;
chloop:
; Test each channel
call tstchan ; test the current channel
ld hl,chan ; point to channel number
ld a,(chan) ; get current channel
inc a ; bump to next
ld (chan),a ; save it
cp 3 ; end of channels?
jr nz,chloop ; loop if not done
;
ld de,crlf ; newline
ld c,print ; BDOS print function
call bdos ; do it
;
ld sp,(stksav) ; restore stack
;
ret ; end of program
;
tstchan:
; Display channel being tested
ld de,chmsg ; point to channel message
ld c,print ; BDOS print function number
call bdos ; do it
ld a,(chan) ; get current channel number
add a,'A' ; offset to print as alpha
ld e,a ; put in E
ld c,conwrt ; BDOS console out function number
call bdos ; do it
ld de,chmsg2 ; point to channel message
ld c,print ; BDOS print function number
call bdos ; do it
;
ld hl,0 ; initial pitch value
ld (pitch),hl ; save it
;
; Setup mixer register
ld a,(chan) ; get channel num (0-2)
inc a ; adjust index (1-3)
ld b,a ; and use as loop counter
xor a ; clear accum
scf ; set carry
mixloop:
rla ; rotate bit
djnz mixloop ; loop based on channel num
cpl ; invert bits
and $FF ; so only target bit is cleared
push af ; save value
ld a,7 ; mixer register
out (rsel),a ; select it
pop af ; recover value
out (rdat),a ; and set register value
;
; Set channel volume to max
ld a,(chan) ; get channel
add a,8 ; adjust for start of vol regs
out (rsel),a ; select register
ld a,$0F ; max volume
out (rdat),a ; write it
;
pitloop:
; Pitch loop
ld a,(chan) ; get channel
sla a ; A := channel pitch reg, 2 bytes per chan
out (rsel),a ; select low byte register
push af ; save register
ld a,l ; get low byte of pitch value
out (rdat),a ; and write it to register
pop af ; recover register index
inc a ; inc to high byte pitch register
out (rsel),a ; select high byte register
ld a,h ; get high byte of pitch value
out (rdat),a ; and write it to register
;
; Delay
ld b,cpuspd ; cpu speed scalar
dlyloop:
call dly64 ; arbitrary delay
djnz dlyloop ; loop based on cpu speed
;
; Next pitch value
ld hl,(pitch) ; get current pitch
inc hl ; increment
ld (pitch),hl ; save new value
ld a,h ; get high byte
;cp 16 ; end of max range?
cp 4 ; end of max range?
jr nz,pitloop ; loop till done
;
; Clean up
call clrpsg ; shut down psg
;
ret ; done
;
; Clear PSG registers to default
;
clrpsg:
ld b,16 ; loop for 18 registers
ld c,0 ; init register index
clrpsg1:
ld a,c ; register num to accum
out (rsel),a ; select it
xor a ; clear accum
out (rdat),a ; and write to register
inc c ; next register
djnz clrpsg1 ; loop through all registers
ret ; return
;
; Program PSG registers from list at HL
;
setpsg:
ld a,(hl) ; get psg reg number
inc hl ; bump index
cp $FF ; check for end
ret z ; return if end marker $FF
out (rsel),a ; select psg register
ld a,(hl) ; get register value
inc hl ; bump index
out (rdat),a ; set register value
jr setpsg ; loop till done
;
; Short delay functions. No clock speed compensation, so they
; will run longer on slower systems. The number indicates the
; number of call/ret invocations. A single call/ret is
; 27 t-states on a z80, 25 t-states on a z180
;
dly256: call dly128
dly128: call dly64
dly64: call dly32
dly32: call dly16
dly16: call dly8
dly8: call dly4
dly4: call dly2
dly2: call dly1
dly1: ret
;
;=============================================================================
; Data Section
;=============================================================================
;
chan .db 0 ; active audio channel
pitch .dw 0 ; current pitch
;
banner .text "\r\nRetroBrew Computers SCG AY-3-8910 Sound Test\r\n"
.text "Set SCG board base I/O address to 0x98\r\n$"
chmsg .text "\r\nPlaying descending tones on channel $"
chmsg2 .text "...$"
crlf .text "\r\n$"
;
stksav .dw 0 ; saved stack frame
.fill 80,$FF ; 40 level private stack
stack .equ $ ; start of stack
;
.end

View File

@@ -0,0 +1,567 @@
; 24.9.2018 PMS (b1ackmai1er)
; Modified version for ECB-ZILOG PERIPHERALS BOARD - TEST 2 PIO's
; 01.11.2011 WKA
; Assembler M80
; ECB-4PIO
; Testprogramm f<>r die I/O-Karte ECB-4PIO in Z80-Mnemonics
PAGE 72
.Z80
ASEG
ORG 100H
;
;CP/M-ADDRESSES
;* * * * * * *
;
BOOT EQU 0 ;WARMBOOT CP/M
BDOS EQU 5 ;ENTRY BDOS
NMI EQU 66H ;Error-ROUTINE
;
;CONSOLE-CODES
;* * * * * * *
;
EOT EQU 4 ;END OF TEXT
BS EQU 8 ;BACKSPACE
TAB EQU 9 ;TABULATOR
LF EQU 0AH ;LINE-FEED
CR EQU 0DH ;CARRIAGE-RETURN
FF EQU 0CH ;FORM-FEED
ESC EQU 1BH ;ESCAPE
CTRLC EQU 'C'-40H ;CONTROL-C
CTRLW EQU 'W'-40H ;CONTROL-W
CTRLX EQU 'X'-40H ;CONTROL-X
CTRLY EQU 'Y'-40H ;CONTROL-Y
CTRLZ EQU 'Z'-40H ;CONTROL-Z
;
BASE EQU 0B8H ; 4 DIL-SCHALTER
;
PIO0AD EQU BASE+0 ; PIO 0 A DATEN
PIO0AC EQU BASE+2 ; PIO 0 A CONTROL
PIO0BD EQU BASE+1 ; PIO 0 B DATEN
PIO0BC EQU BASE+3 ; PIO 0 B CONTROL
;
PIO1AD EQU BASE+4 ; PIO 1 A DATEN
PIO1AC EQU BASE+6 ; PIO 1 A CONTROL
PIO1BD EQU BASE+5 ; PIO 1 B DATEN
PIO1BC EQU BASE+7 ; PIO 1 B CONTROL
;
MAIN: LD DE,PIO_SRTMSG
CALL PSTRIN
;
LD DE,INI_MSG
CALL PSTRIN
CALL INIT
;
LD DE,PIO0ADW ;PIO0 A
CALL PSTRIN
LD A,55H
PUSH AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
POP AF
OUT (PIO0AD),A
IN A,(PIO0AD)
PUSH AF
;
LD DE,PIO0ADR
CALL PSTRIN
POP AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
;
LD DE,PIO0ADW
CALL PSTRIN
LD A,0AAH
PUSH AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
POP AF
OUT (PIO0AD),A
IN A,(PIO0AD)
PUSH AF
;
LD DE,PIO0ADR
CALL PSTRIN
POP AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
;
LD DE,PIO0BDW ;PIO0 B
CALL PSTRIN
LD A,55H
PUSH AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
POP AF
OUT (PIO0BD),A
IN A,(PIO0BD)
PUSH AF
;
LD DE,PIO0BDR
CALL PSTRIN
POP AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
;
LD DE,PIO0BDW
CALL PSTRIN
LD A,0AAH
PUSH AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
POP AF
OUT (PIO0BD),A
IN A,(PIO0BD)
PUSH AF
;
LD DE,PIO0BDR
CALL PSTRIN
POP AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
;
LD DE,PIO1ADW ;PIO1 A
CALL PSTRIN
LD A,55H
PUSH AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
POP AF
OUT (PIO1AD),A
IN A,(PIO1AD)
PUSH AF
;
LD DE,PIO1ADR
CALL PSTRIN
POP AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
;
LD DE,PIO1ADW
CALL PSTRIN
LD A,0AAH
PUSH AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
POP AF
OUT (PIO1AD),A
IN A,(PIO1AD)
PUSH AF
;
LD DE,PIO1ADR
CALL PSTRIN
POP AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
;
LD DE,PIO1BDW ;PIO1 B
CALL PSTRIN
LD A,55H
PUSH AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
POP AF
OUT (PIO1BD),A
IN A,(PIO1BD)
PUSH AF
;
LD DE,PIO1BDR
CALL PSTRIN
POP AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
;
LD DE,PIO1BDW
CALL PSTRIN
LD A,0AAH
PUSH AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
POP AF
OUT (PIO1BD),A
IN A,(PIO1BD)
PUSH AF
;
LD DE,PIO1BDR
CALL PSTRIN
POP AF
CALL OUTB
LD DE,LINE_E
CALL PSTRIN
;
LD DE,PIO_ENDMSG
CALL PSTRIN
JP BOOT
;
;==========================================================================
INIT: LD HL,PIO0T ; PIO0 INITITALISIEREN
CALL INITX
LD HL,PIO1T ; PIO1 INITITALISIEREN
CALL INITX
RET
;
INITX: LD A,(HL) ; BYTE-ANZAHL
OR A
RET Z
LD B,A ; Port-Adresse nach C
INC HL
LD C,(HL)
INC HL
OTIR
JR INITX
;
PIO0T: DEFB 05 ; 5 BYTE ZUM PIO 0 A CONTROL
DEFB PIO0AC
DEFB 00000011B ; DIS-INT
DEFB 01001111B ; BETR.ART BYTE EINGABE
DEFB 01001111B ; BETR.ART BYTE EINGABE
DEFB 11001111B ; BETR.ART BIT EIN/AUSG.
DEFB 00000000B ; ALLES AUSG.
DEFB 01 ; 1 BYTE ZUM PIO 0 A DATEN
DEFB PIO0AD
DEFB 00000000B ; DATEN "LOW"
;
DEFB 05 ; 5 BYTE ZUM PIO 0 B CONTROL
DEFB PIO0BC
DEFB 00000011B ; DIS-INT
DEFB 01001111B ; BETR.ART BYTE EINGABE
DEFB 01001111B ; BETR.ART BYTE EINGABE
DEFB 11001111B ; BETR.ART BIT EIN/AUSG.
DEFB 00000000B ; ALLES AUSG.
DEFB 01 ; 1 BYTE ZUM PIO 0 B DATEN
DEFB PIO0BD
DEFB 00000000B ; DATEN "LOW"
DEFB 0 ; ENDE PIO 0 B -TABELLE
;
PIO1T: DEFB 05 ; 5 BYTE ZUM PIO 1 A CONTROL
DEFB PIO1AC
DEFB 00000011B ; DIS-INT
DEFB 01001111B ; BETR.ART BYTE EINGABE
DEFB 01001111B ; BETR.ART BYTE EINGABE
DEFB 11001111B ; BETR.ART BIT EIN/AUSG.
DEFB 00000000B ; ALLES AUSG.
DEFB 01 ; 1 BYTE ZUM PIO 1 A DATEN
DEFB PIO1AD
DEFB 00000000B ; DATEN "LOW"
;
DEFB 05 ; 5 BYTE ZUM PIO 1 B CONTROL
DEFB PIO1BC
DEFB 00000011B ; DIS-INT
DEFB 01001111B ; BETR.ART BYTE EINGABE
DEFB 01001111B ; BETR.ART BYTE EINGABE
DEFB 11001111B ; BETR.ART BIT EIN/AUSG.
DEFB 00000000B ; ALLES AUSG.
DEFB 01 ; 1 BYTE ZUM PIO 1 B DATEN
DEFB PIO1BD
DEFB 00000000B ; DATEN "LOW"
DEFB 0 ; ENDE PIO 1 B -TABELLE
;
;==========================================================================
;
;Output on Screen
;****************
;
PRBS: LD E,BS
CALL PCHAR
RET
;
;Output CR+LF on Screen
;**********************
;
CRLF: LD E,CR
CALL PCHAR
LD E,LF
CALL PCHAR
RET
;
;Output ASCII-Character
;**********************
;
PRINP: PUSH AF
LD E,A
CALL PCHAR
POP AF
RET;
;
;CALL BDOS with Register Save
;****************************
;
INCHA: LD C,1 ;INPUT CHARACTER TO A
JR BDO
PCHAR: LD C,2 ;PRINT CHARACTER IN E
JR BDO
PSTRIN: LD C,9 ;PRINT STRING
JR BDO
INBUFF: LD C,10 ;READ CONSOLE-BUFFER
JR BDO
CSTS: LD C,11 ;CONSOLE-STATUS
JR BDO
OPEN: LD C,15 ;OPEN FILE
JR BDO
CLOSE: LD C,16 ;CLOSE FILE
JR BDO
DELETE: LD C,19 ;DELETE FILE
JR BDO
READS: LD C,20 ;READ SEEK
JR BDO
WRITES: LD C,21 ;WRITE SEEK
JR BDO
MAKE: LD C,22 ;MAKE FILE
JR BDO
SETDMA: LD C,26 ;SET DMA-ADDRESS
BDO: PUSH HL
PUSH DE
PUSH BC
PUSH IX
PUSH IY
CALL BDOS
POP IY
POP IX
POP BC
POP DE
POP HL
RET
;
;DIRECT CONSOLE INPUT
;********************
;
INDCON: CALL INDCOX
CP 0
JR Z,INDCON
RET
;
INDCOX: LD C,6 ;Code for Direct Console Input
LD E,0FFH ;Code for Input
PUSH HL
PUSH DE
PUSH BC
PUSH IX
PUSH IY
CALL BDOS
POP IY
POP IX
POP BC
POP DE
POP HL
RET
;
;
;Output WORD
;***********
;
;PARAMETER: Entry WORD IN HL
;*********
;
OUTW: LD A,H
CALL OUTB
LD A,L
CALL OUTB
RET
;
;Output BYTE
;***********
;
;PARAMETER: Entry BYTE IN A
;*********
;
OUTB: PUSH AF
RRCA
RRCA
RRCA
RRCA
AND 0FH
CALL HBTHE ;Change Half-BYTE
POP AF
AND 0FH
CALL HBTHE
RET
;
;Output HALF-BYTE
;****************
;
;PARAMETER: Entry Half-BYTE IN A (BIT 0 - 3)
;*********
;
HBTHE: CP 0AH
JR C,HBTHE1
ADD A,7 ;Character to Letter
HBTHE1: ADD A,30H
LD E,A
CALL PCHAR
RET
;
;Input ADDRESS
;*************
;
;PARAMETER: Exit with ADDRESS IN HL
;*********
;
INADR: LD HL,0
INADR1: CALL INCHAR ;Input TETRADE
LD D,A
CALL INBYT1 ;IN HEXA
RET C ;END OF Input
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
OR L
LD L,A
JR INADR1 ;New Key
;
;
;Input BYTE
;**********
;
;PARAMTER: Exit with BYTE IN A
;********
;
INBYT: CALL INADR
LD A,L
RET
;
;Input of one TETRADE to A (BIT 0-3)
;************************************
;
INBYT1: SUB '0'
RET C
CP 'G'-30H
JR NC,INBYT3 ;Error
CP ':'-30H
JR C,INBYT2
CP 'A'-30H
JR C,INBYT3 ;Error
SUB 7
INBYT2: OR A
RET
;
INBYT3: SCF
RET
;
;Input ASCII-Character to A
;**************************
;
INCON: CALL INDCON ;Input ASCII-Character to A
CP CTRLC ;TEST CONTROL-C
JP Z,QUIT
CP CTRLX ;TEST CONTROL-X
JR Z,INCHA1
CP CTRLW ;TEST CONTROL-W
JR Z,INCHA3
CP CTRLY ;TEST CONTROL-Y
JR Z,INCHA2
CP BS
RET Z
CP CR
RET Z
CP ' '
JR C,INCON
JR INCH1
;
INCHAR: CALL INCHA ;Input ASCII-Character to A
CP CTRLC ;TEST CONTROL-C
JR Z,QUIT
CP CTRLX ;TEST CONTROL-X
JR Z,INCHA1
CP CTRLW ;TEST CONTROL-W
JR Z,INCHA3
CP CTRLY ;TEST CONTROL-Y
JR Z,INCHA2
CP BS
RET Z
CP CR
RET Z
CP ' '
JR C,INCHAR ;Input invalied
;
INCH1: CP 'A'
RET C ;Character ok
;
RES 5,A ;lower case -> upper case
RET
INCHA1: POP HL
LD E,FF
CALL PCHAR ;Clear screen
JP GOON
INCHA2: POP HL
LD E,FF
CALL PCHAR ;Clear screen
JP GOON
INCHA3: LD E,FF
CALL PCHAR
RET
;
;ABBRUCH DER BEARBEITUNG
;***********************
;
COMPLT: LD DE,TCOMP
CALL PSTRIN
JP GOON
QUIT: CALL CRLF
LD DE,TQUIT
JR FINIS
INTTIM: POP DE ;STACK OK
; CALL DESAK
LD DE,TNMIAB
CALL PSTRIN
LD DE,MAIN ;NEW ADDRESS
PUSH DE
RETN
FINIS: CALL PSTRIN ;AT BDOS-ERROR
GOON:
JP BOOT
;
;
;TEXT-Messages
;*************
;
TCOMP: DEFB ESC,21,0,14H,ESC,23,0
DEFM 'Function complete !!$'
TQUIT: DEFB ESC,23,0,14H,7
DEFM 'End Run RAMFTEST$'
TNMIAB: DEFB ESC,23,0,14H
DEFM 'Time Out !!$'
;
;
INI_MSG:DEFM 'ECB-4PIO Init all PIO Bit-Mode ',CR,LF,'$'
PIO0ADW:DEFM 'ECB-4PIO Write to PIO0AD ','$'
PIO0ADR:DEFM 'ECB-4PIO Read from PIO0AD ','$'
PIO0BDW:DEFM 'ECB-4PIO Write to PIO0BD ','$'
PIO0BDR:DEFM 'ECB-4PIO Read from PIO0BD ','$'
PIO1ADW:DEFM 'ECB-4PIO Write to PIO1AD ','$'
PIO1ADR:DEFM 'ECB-4PIO Read from PIO1AD ','$'
PIO1BDW:DEFM 'ECB-4PIO Write to PIO1BD ','$'
PIO1BDR:DEFM 'ECB-4PIO Read from PIO1BD ','$'
PIO_SRTMSG:
DEFM 'ECB-ZILOG PERIPHERALS start test 1.0',CR,LF,'$'
PIO_ENDMSG:
DEFM 'ECB-ZILOG PERIPHERALS end test 1.0',CR,LF,'$'
LINE_E: DEFM 'H',CR,LF,'$'
;
IF1
.PRINTX 'Pass 1 complete'
ENDIF
;
IF2
.PRINTX 'Pass 2 complete'
.PRINTX 'Assembly complete'
ENDIF
;
END

View File

@@ -0,0 +1,13 @@
@echo off
setlocal
set TOOLS=..\..\..\..\Tools
set PATH=%TOOLS%\zxcc;%PATH%
set CPMDIR80=%TOOLS%/cpm/
zxcc M80 -=2piotst/l || exit /b
zxcc L80 -2piotst,2piotst.com/n/e || exit /b
copy /Y 2piotst.com ..\..\..\..\Binary\Apps\Test\ || exit /b

View File

@@ -1,7 +1,8 @@
@echo off
setlocal
if exist *.prn del *.prn
if exist *.com del *.com
if exist *.lst del *.lst
if exist *.err del *.err
if exist *.bin del *.bin
if exist *.rel del *.rel
if exist *.prn del *.prn

View File

@@ -0,0 +1,8 @@
OBJECTS = 2piotst.com
DEST = ../../../../Binary/Apps/Test
TOOLS =../../../../Tools
OTHERS = *.rel
include $(TOOLS)/Makefile.inc
2piotst.com : 2piotst.rel

View File

@@ -0,0 +1,40 @@
@echo off
setlocal
set TOOLS=../../../Tools
set APPBIN=..\..\Binary\Apps
set PATH=%TOOLS%\tasm32;%TOOLS%\zxcc;%PATH%
set TASMTABS=%TOOLS%\tasm32
set CPMDIR80=%TOOLS%/cpm/
pushd DMAmon && call Build || exit /b & popd
pushd tstdskng && call Build || exit /b & popd
pushd inttest && call Build || exit /b & popd
pushd ppidetst && call Build || exit /b & popd
pushd ramtest && call Build || exit /b & popd
pushd I2C && call Build || exit /b & popd
pushd rzsz && call Build || exit /b & popd
pushd vdctest && call Build || exit /b & popd
pushd kbdtest && call Build || exit /b & popd
pushd ps2info && call Build || exit /b & popd
pushd 2piotst && call Build || exit /b & popd
pushd piomon && call Build || exit /b & popd
pushd banktest && call Build || exit /b & popd
pushd portscan && call Build || exit /b & popd
goto :eof
:asm
echo.
echo Building %1...
tasm -t80 -g3 -fFF %1.asm %1.com %1.lst || exit /b
goto :eof
:asm180
echo.
echo Building %1...
tasm -t180 -g3 -fFF %1.asm %1.com %1.lst || exit /b
goto :eof

View File

@@ -0,0 +1,23 @@
@echo off
setlocal
if exist *.bin del *.bin
if exist *.com del *.com
if exist *.lst del *.lst
if exist *.hex del *.hex
if exist *.prn del *.prn
pushd DMAmon && call Clean || exit /b 1 & popd
pushd tstdskng && call Clean || exit /b 1 & popd
pushd inttest && call Clean || exit /b 1 & popd
pushd ppidetst && call Clean || exit /b 1 & popd
pushd ramtest && call Clean || exit /b 1 & popd
pushd I2C && call Clean || exit /b 1 & popd
pushd rzsz && call Clean || exit /b 1 & popd
pushd vdctest && call Clean || exit /b 1 & popd
pushd kbdtest && call Clean || exit /b 1 & popd
pushd ps2info && call Clean || exit /b 1 & popd
pushd 2piotst && call Clean || exit /b 1 & popd
pushd piomon && call Clean || exit /b 1 & popd
pushd banktest && call Clean || exit /b 1 & popd
pushd portscan && call Clean || exit /b 1 & popd

View File

@@ -0,0 +1,11 @@
@echo off
setlocal
set TOOLS=../../../../Tools
set PATH=%TOOLS%\tasm32;%PATH%
set TASMTABS=%TOOLS%\tasm32
tasm -t180 -g3 -fFF dmamon.asm dmamon.com dmamon.lst || exit /b
copy /Y dmamon.com ..\..\..\..\Binary\Apps\Test\ || exit /b

View File

@@ -0,0 +1,6 @@
@echo off
setlocal
if exist *.com del *.com
if exist *.lst del *.lst
if exist *.bin del *.bin

View File

@@ -0,0 +1,7 @@
OBJECTS = dmamon.com
DEST = ../../../../Binary/Apps/Test
TOOLS =../../../../Tools
USETASM=1
include $(TOOLS)/Makefile.inc

View File

@@ -0,0 +1,8 @@
DMAmon is a program to verify operation of the Z80 MBC DMA board
Version 2 has been hacked to include testing for interrupts. This
requires running the application under RomWBW using IM2. There
is an equate in the source file to disable interrupt testing
if needed.
--WBW 10:36 AM 3/14/2022

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,969 @@
;
;==================================================================================================
; UTILITY FUNCTIONS
;==================================================================================================
;
;
CHR_BEL .EQU 07H
CHR_CR .EQU 0DH
CHR_LF .EQU 0AH
CHR_BS .EQU 08H
CHR_ESC .EQU 1BH
;
;__________________________________________________________________________________________________
;
; UTILITY PROCS TO PRINT SINGLE CHARACTERS WITHOUT TRASHING ANY REGISTERS
;
PC_SPACE:
PUSH AF
LD A,' '
JR PC_PRTCHR
PC_PERIOD:
PUSH AF
LD A,'.'
JR PC_PRTCHR
PC_COLON:
PUSH AF
LD A,':'
JR PC_PRTCHR
PC_COMMA:
PUSH AF
LD A,','
JR PC_PRTCHR
PC_LBKT:
PUSH AF
LD A,'['
JR PC_PRTCHR
PC_RBKT:
PUSH AF
LD A,']'
JR PC_PRTCHR
PC_LT:
PUSH AF
LD A,'<'
JR PC_PRTCHR
PC_GT:
PUSH AF
LD A,'>'
JR PC_PRTCHR
PC_LPAREN:
PUSH AF
LD A,'('
JR PC_PRTCHR
PC_RPAREN:
PUSH AF
LD A,')'
JR PC_PRTCHR
PC_ASTERISK:
PUSH AF
LD A,'*'
JR PC_PRTCHR
PC_CR:
PUSH AF
LD A,CHR_CR
JR PC_PRTCHR
PC_LF:
PUSH AF
LD A,CHR_LF
JR PC_PRTCHR
PC_PRTCHR:
CALL COUT
POP AF
RET
NEWLINE2:
CALL NEWLINE
NEWLINE:
CALL PC_CR
CALL PC_LF
RET
;
; PRINT A CHARACTER REFERENCED BY POINTER AT TOP OF STACK
; USAGE:
; CALL PRTCH
; .DB 'X'
;
PRTCH:
EX (SP),HL
PUSH AF
LD A,(HL)
CALL COUT
POP AF
INC HL
EX (SP),HL
RET
;
; PRINT A STRING AT ADDRESS SPECIFIED IN HL
; STRING MUST BE TERMINATED BY '$'
; USAGE:
; LD HL,MYSTR
; CALL PRTSTR
; ...
; MYSTR: .DB "HELLO$"
;
PRTSTR:
LD A,(HL)
INC HL
CP '$'
RET Z
CALL COUT
JR PRTSTR
;
; PRINT A STRING DIRECT: REFERENCED BY POINTER AT TOP OF STACK
; STRING MUST BE TERMINATED BY '$'
; USAGE:
; CALL PRTSTRD
; .DB "HELLO$"
; ...
;
PRTSTRD:
EX (SP),HL
PUSH AF
CALL PRTSTR
POP AF
EX (SP),HL
RET
;
; PRINT A STRING INDIRECT: REFERENCED BY INDIRECT POINTER AT TOP OF STACK
; STRING MUST BE TERMINATED BY '$'
; USAGE:
; CALL PRTSTRI(MYSTRING)
; MYSTRING .DB "HELLO$"
;
PRTSTRI:
EX (SP),HL
PUSH AF
LD A,(HL)
INC HL
PUSH HL
LD H,(HL)
LD L,A
CALL PRTSTR
POP HL
INC HL
POP AF
EX (SP),HL
RET
;
; PRINT THE HEX BYTE VALUE IN A
;
PRTHEXBYTE:
PUSH AF
PUSH DE
CALL HEXASCII
LD A,D
CALL COUT
LD A,E
CALL COUT
POP DE
POP AF
RET
;
; PRINT THE HEX WORD VALUE IN BC
;
PRTHEXWORD:
PUSH AF
LD A,B
CALL PRTHEXBYTE
LD A,C
CALL PRTHEXBYTE
POP AF
RET
;
; PRINT THE HEX WORD VALUE IN HL
;
PRTHEXWORDHL:
PUSH AF
LD A,H
CALL PRTHEXBYTE
LD A,L
CALL PRTHEXBYTE
POP AF
RET
;
; PRINT THE HEX DWORD VALUE IN DE:HL
;
PRTHEX32:
PUSH BC
PUSH DE
POP BC
CALL PRTHEXWORD
PUSH HL
POP BC
CALL PRTHEXWORD
POP BC
RET
;
; CONVERT BINARY VALUE IN A TO ASCII HEX CHARACTERS IN DE
;
HEXASCII:
LD D,A
CALL HEXCONV
LD E,A
LD A,D
RLCA
RLCA
RLCA
RLCA
CALL HEXCONV
LD D,A
RET
;
; CONVERT LOW NIBBLE OF A TO ASCII HEX
;
HEXCONV:
AND 0FH ;LOW NIBBLE ONLY
ADD A,90H
DAA
ADC A,40H
DAA
RET
;
; PRINT A BYTE BUFFER IN HEX POINTED TO BY DE
; REGISTER A HAS SIZE OF BUFFER
;
PRTHEXBUF:
OR A
RET Z ; EMPTY BUFFER
;
LD B,A
PRTHEXBUF1:
CALL PC_SPACE
LD A,(DE)
CALL PRTHEXBYTE
INC DE
DJNZ PRTHEXBUF1
RET
;
; PRINT A BLOCK OF MEMORY NICELY FORMATTED
; DE=BUFFER ADDRESS
;
DUMP_BUFFER:
CALL NEWLINE
PUSH DE
POP HL
INC D
INC D
DB_BLKRD:
PUSH BC
PUSH HL
POP BC
CALL PRTHEXWORD ; PRINT START LOCATION
POP BC
CALL PC_SPACE ;
LD C,16 ; SET FOR 16 LOCS
PUSH HL ; SAVE STARTING HL
DB_NXTONE:
LD A,(HL) ; GET BYTE
CALL PRTHEXBYTE ; PRINT IT
CALL PC_SPACE ;
DB_UPDH:
INC HL ; POINT NEXT
DEC C ; DEC. LOC COUNT
JR NZ,DB_NXTONE ; IF LINE NOT DONE
; NOW PRINT 'DECODED' DATA TO RIGHT OF DUMP
DB_PCRLF:
CALL PC_SPACE ; SPACE IT
LD C,16 ; SET FOR 16 CHARS
POP HL ; GET BACK START
DB_PCRLF0:
LD A,(HL) ; GET BYTE
AND 060H ; SEE IF A 'DOT'
LD A,(HL) ; O.K. TO GET
JR NZ,DB_PDOT ;
DB_DOT:
LD A,2EH ; LOAD A DOT
DB_PDOT:
CALL COUT ; PRINT IT
INC HL ;
LD A,D ;
CP H ;
JR NZ,DB_UPDH1 ;
LD A,E ;
CP L ;
JP Z,DB_END ;
DB_UPDH1:
; IF BLOCK NOT DUMPED, DO NEXT CHARACTER OR LINE
DEC C ; DEC. CHAR COUNT
JR NZ,DB_PCRLF0 ; DO NEXT
DB_CONTD:
CALL NEWLINE ;
JP DB_BLKRD ;
DB_END:
RET
;
; PRINT THE nTH STRING IN A LIST OF STRINGS WHERE EACH IS TERMINATED BY $
; C REGISTER CONTAINS THE INDEX TO THE STRING TO BE DISPLAYED.
; A REGISTER CONTAINS A MASK TO BE APPLIED TO THE INDEX
; THE INDEX IS NORMALIZED TO A RANGE 0..N USING THE MASK AND THEN THE nTH
; STRING IS PRINTED IN A LIST DEFINED BY DE
;
; C = ATTRIBUTE
; A = MASK
; DE = STRING LIST
;
PRTIDXMSK:
PUSH BC
PRTIDXMSK0:
BIT 0,A
JR NZ,PRTIDXMSK1
SRL A
SRL C
JR PRTIDXMSK0
PRTIDXMSK1:
LD B,A
LD A,C
AND B
POP BC
;
; PRINT THE nTH STRING IN A LIST OF STRINGS WHERE EACH IS TERMINATED BY $
; A REGISTER DEFINES THE nTH STRING IN THE LIST TO PRINT AND DE POINTS
; TO THE START OF THE STRING LIST.
;
; SLOW BUT IMPROVES CODE SIZE, READABILITY AND ELIMINATES THE NEED HAVE
; LIST OF POINTERS OR A LIST OF CONDITIONAL CHECKS.
;
PRTIDXDEA:
PUSH BC
LD C,A ; INDEX COUNT
OR A
LD A,0
LD (PRTIDXCNT),A ; RESET CHARACTER COUNT
PRTIDXDEA1:
JR Z,PRTIDXDEA3
PRTIDXDEA2:
LD A,(DE) ; LOOP UNIT
INC DE ; WE REACH
CP '$' ; END OF STRING
JR NZ,PRTIDXDEA2
DEC C ; AT STRING END. SO GO
JR PRTIDXDEA1 ; CHECK FOR INDEX MATCH
PRTIDXDEA3:
POP BC
; CALL WRITESTR ; FALL THROUGH TO WRITESTR
; RET
;
; OUTPUT A '$' TERMINATED STRING AT DE
;
WRITESTR:
PUSH AF
WRITESTR1:
LD A,(DE)
CP '$' ; TEST FOR STRING TERMINATOR
JP Z,WRITESTR2
CALL COUT
LD A,(PRTIDXCNT)
INC A
LD (PRTIDXCNT),A
INC DE
JP WRITESTR1
WRITESTR2:
POP AF
RET
;
PRTIDXCNT:
.DB 0 ; CHARACTER COUNT
;
;
;
TSTPT:
PUSH DE
LD DE,STR_TSTPT
CALL WRITESTR
POP DE
JR REGDMP ; DUMP REGISTERS AND RETURN
;
;
;
REGDMP:
CALL XREGDMP
RET
;
XREGDMP:
EX (SP),HL ; RET ADR TO HL, SAVE HL ON TOS
LD (REGDMP_RET),HL ; SAVE RETURN ADDRESS
POP HL ; RESTORE HL AND BURN STACK ENTRY
EX (SP),HL ; PC TO HL, SAVE HL ON TOS
LD (REGDMP_PC),HL ; SAVE PC VALUE
EX (SP),HL ; BACK THE WAY IT WAS
LD (REGDMP_SP),SP ; SAVE STACK POINTER
;LD (RD_STKSAV),SP ; SAVE ORIGINAL STACK POINTER
;LD SP,RD_STACK ; SWITCH TO PRIVATE STACK
PUSH AF
PUSH BC
PUSH DE
PUSH HL
PUSH AF
LD A,'@'
CALL COUT
POP AF
PUSH BC
LD BC,(REGDMP_PC)
CALL PRTHEXWORD ; PC
POP BC
CALL PC_LBKT
PUSH BC
PUSH AF
POP BC
CALL PRTHEXWORD ; AF
POP BC
CALL PC_COLON
CALL PRTHEXWORD ; BC
CALL PC_COLON
PUSH DE
POP BC
CALL PRTHEXWORD ; DE
CALL PC_COLON
PUSH HL
POP BC
CALL PRTHEXWORD ; HL
CALL PC_COLON
LD BC,(REGDMP_SP)
CALL PRTHEXWORD ; SP
CALL PC_COLON
PUSH IX
POP BC
CALL PRTHEXWORD ; IX
CALL PC_COLON
PUSH IY
POP BC
CALL PRTHEXWORD ; IY
CALL PC_RBKT
CALL PC_SPACE
POP HL
POP DE
POP BC
POP AF
;LD SP,(RD_STKSAV) ; BACK TO ORIGINAL STACK FRAME
JP $FFFF ; RETURN, $FFFF IS DYNAMICALLY UPDATED
REGDMP_RET .EQU $-2 ; RETURN ADDRESS GOES HERE
;
REGDMP_PC .DW 0
REGDMP_SP .DW 0
;
;RD_STKSAV .DW 0
; .FILL $FF,16*2 ; 16 LEVEL PRIVATE STACK
;RD_STACK .EQU $
;
;
;
;
;
STR_HALT .TEXT "\r\n\r\n*** System Halted ***$"
STR_TSTPT .TEXT "\r\n+++ TSTPT: $"
;STR_AF .DB " AF=$"
;STR_BC .DB " BC=$"
;STR_DE .DB " DE=$"
;STR_HL .DB " HL=$"
;STR_PC .DB " PC=$"
;STR_SP .DB " SP=$"
;
; INDIRECT JUMP TO ADDRESS IN HL
;
; MOSTLY USEFUL TO PERFORM AN INDIRECT CALL LIKE:
; LD HL,xxxx
; CALL JPHL
;
JPHL: JP (HL)
;
; ADD HL,A
;
; A REGISTER IS DESTROYED!
;
ADDHLA:
ADD A,L
LD L,A
RET NC
INC H
RET
;
;****************************
; A(BCD) => A(BIN)
; [00H..99H] -> [0..99]
;****************************
;
BCD2BYTE:
PUSH BC
LD C,A
AND 0F0H
SRL A
LD B,A
SRL A
SRL A
ADD A,B
LD B,A
LD A,C
AND 0FH
ADD A,B
POP BC
RET
;
;*****************************
; A(BIN) => A(BCD)
; [0..99] => [00H..99H]
;*****************************
;
BYTE2BCD:
PUSH BC
LD B,10
LD C,-1
BYTE2BCD1:
INC C
SUB B
JR NC,BYTE2BCD1
ADD A,B
LD B,A
LD A,C
ADD A,A
ADD A,A
ADD A,A
ADD A,A
OR B
POP BC
RET
#IFDEF USEDELAY
;
; DELAY 16US (CPU SPEED COMPENSATED) INCUDING CALL/RET INVOCATION
; REGISTER A AND FLAGS DESTROYED
; NO COMPENSATION FOR Z180 MEMORY WAIT STATES
; THERE IS AN OVERHEAD OF 3TS PER INVOCATION
; IMPACT OF OVERHEAD DIMINISHES AS CPU SPEED INCREASES
;
; CPU SCALER (CPUSCL) = (CPUHMZ - 2) FOR 16US + 3TS DELAY
; NOTE: CPUSCL MUST BE >= 1!
;
; EXAMPLE: 8MHZ CPU (DELAY GOAL IS 16US)
; LOOP = ((6 * 16) - 5) = 91TS
; TOTAL COST = (91 + 40) = 131TS
; ACTUAL DELAY = (131 / 8) = 16.375US
;
; --- TOTAL COST = (LOOP COST + 40) TS -----------------+
DELAY: ; 17TS (FROM INVOKING CALL) |
LD A,(CPUSCL) ; 13TS |
; |
DELAY1: ; |
; --- LOOP = ((CPUSCL * 16) - 5) TS ------------+ |
DEC A ; 4TS | |
#IF (BIOS == BIOS_WBW) ; | |
#IF (CPUFAM == CPU_Z180) ; | |
OR A ; +4TS FOR Z180 | |
#ENDIF ; | |
#ENDIF ; | |
JR NZ,DELAY1 ; 12TS (NZ) / 7TS (Z) | |
; ----------------------------------------------+ |
; |
RET ; 10TS (RETURN) |
;-------------------------------------------------------+
;
; DELAY 16US * DE (CPU SPEED COMPENSATED)
; REGISTER DE, A, AND FLAGS DESTROYED
; NO COMPENSATION FOR Z180 MEMORY WAIT STATES
; THERE IS A 27TS OVERHEAD FOR CALL/RET PER INVOCATION
; IMPACT OF OVERHEAD DIMINISHES AS DE AND/OR CPU SPEED INCREASES
;
; CPU SCALER (CPUSCL) = (CPUHMZ - 2) FOR 16US OUTER LOOP COST
; NOTE: CPUSCL MUST BE > 0!
;
; EXAMPLE: 8MHZ CPU, DE=6250 (DELAY GOAL IS .1 SEC OR 100,000US)
; INNER LOOP = ((16 * 6) - 5) = 91TS
; OUTER LOOP = ((91 + 37) * 6250) = 800,000TS
; ACTUAL DELAY = ((800,000 + 27) / 8) = 100,003US
;
; --- TOTAL COST = (OUTER LOOP + 27) TS ------------------------+
VDELAY: ; 17TS (FROM INVOKING CALL) |
; |
; --- OUTER LOOP = ((INNER LOOP + 37) * DE) TS ---------+ |
LD A,(CPUSCL) ; 13TS | |
; | |
VDELAY1: ; | |
; --- INNER LOOP = ((CPUSCL * 16) - 5) TS ------+ | |
#IF (BIOS == BIOS_WBW) ; | | |
#IF (CPUFAM == CPU_Z180) ; | | |
OR A ; +4TS FOR Z180 | | |
#ENDIF ; | | |
#ENDIF ; | | |
DEC A ; 4TS | | |
JR NZ,VDELAY1 ; 12TS (NZ) / 7TS (Z) | | |
; ----------------------------------------------+ | |
; | |
DEC DE ; 6TS | |
#IF (BIOS == BIOS_WBW) ; | | |
#IF (CPUFAM == CPU_Z180) ; | |
OR A ; +4TS FOR Z180 | |
#ENDIF ; | |
#ENDIF ; | |
LD A,D ; 4TS | |
OR E ; 4TS | |
JP NZ,VDELAY ; 10TS | |
;-------------------------------------------------------+ |
; |
RET ; 10TS (FINAL RETURN) |
;---------------------------------------------------------------+
;
; DELAY ABOUT 0.5 SECONDS
; 500000US / 16US = 31250
;
LDELAY:
PUSH AF
PUSH DE
LD DE,31250
CALL VDELAY
POP DE
POP AF
RET
;
; INITIALIZE DELAY SCALER BASED ON OPERATING CPU SPEED
; ENTER WITH A = CPU SPEED IN MHZ
;
DELAY_INIT:
CP 3 ; TEST FOR <= 2 (SPECIAL HANDLING)
JR C,DELAY_INIT1 ; IF <= 2, SPECIAL PROCESSING
SUB 2 ; ADJUST AS REQUIRED BY DELAY FUNCTIONS
JR DELAY_INIT2 ; AND CONTINUE
DELAY_INIT1:
LD A,1 ; USE THE MIN VALUE OF 1
DELAY_INIT2:
LD (CPUSCL),A ; UPDATE CPU SCALER VALUE
RET
#IF (CPUMHZ < 3)
CPUSCL .DB 1 ; CPU SCALER MUST BE > 0
#ELSE
CPUSCL .DB CPUMHZ - 2 ; OTHERWISE 2 LESS THAN PHI MHZ
#ENDIF
;
#ENDIF
;
; SHORT DELAY FUNCTIONS. NO CLOCK SPEED COMPENSATION, SO THEY
; WILL RUN LONGER ON SLOWER SYSTEMS. THE NUMBER INDICATES THE
; NUMBER OF CALL/RET INVOCATIONS. A SINGLE CALL/RET IS
; 27 T-STATES ON A Z80, 25 T-STATES ON A Z180
;
; ; Z80 Z180
; ; ---- ----
DLY64: CALL DLY32 ; 1728 1600
DLY32: CALL DLY16 ; 864 800
DLY16: CALL DLY8 ; 432 400
DLY8: CALL DLY4 ; 216 200
DLY4: CALL DLY2 ; 108 100
DLY2: CALL DLY1 ; 54 50
DLY1: RET ; 27 25
;
; MULTIPLY 8-BIT VALUES
; IN: MULTIPLY H BY E
; OUT: HL = RESULT, E = 0, B = 0
;
MULT8:
LD D,0
LD L,D
LD B,8
MULT8_LOOP:
ADD HL,HL
JR NC,MULT8_NOADD
ADD HL,DE
MULT8_NOADD:
DJNZ MULT8_LOOP
RET
;
; MULTIPLY A 16 BIT BY 8 BIT INTO 16 BIT
; IN: MULTIPLY DE BY A
; OUT: HL = RESULT, B=0, A, C, DE UNCHANGED
;
MULT8X16:
LD B,8
LD HL,0
MULT8X16_1:
ADD HL,HL
RLCA
JR NC,MULT8X16_2
ADD HL,DE
MULT8X16_2:
DJNZ MULT8X16_1
RET
;;
;; COMPUTE HL / DE
;; RESULT IN BC, REMAINDER IN HL, AND SET ZF DEPENDING ON REMAINDER
;; A, DE DESTROYED
;;
;DIV:
; XOR A
; LD BC,0
;DIV1:
; SBC HL,DE
; JR C,DIV2
; INC BC
; JR DIV1
;DIV2:
; XOR A
; ADC HL,DE ; USE ADC SO ZF IS SET
; RET
;===============================================================
;
; COMPUTE HL / DE = BC W/ REMAINDER IN HL & ZF
;
DIV16:
LD A,H ; HL -> AC
LD C,L ; ...
LD HL,0 ; INIT HL
LD B,16 ; INIT LOOP COUNT
DIV16A:
SCF
RL C
RLA
ADC HL,HL
SBC HL,DE
JR NC,DIV16B
ADD HL,DE
DEC C
DIV16B:
DJNZ DIV16A ; LOOP AS NEEDED
LD B,A ; AC -> BC
LD A,H ; SET ZF
OR L ; ... BASED ON REMAINDER
RET ; DONE
;
; INTEGER DIVIDE DE:HL BY C
; RESULT IN DE:HL, REMAINDER IN A
; CLOBBERS F, B
;
DIV32X8:
XOR A
LD B,32
DIV32X8A:
ADD HL,HL
RL E
RL D
RLA
CP C
JR C,DIV32X8B
SUB C
INC L
DIV32X8B:
DJNZ DIV32X8A
RET
;
; FILL MEMORY AT HL WITH VALUE A, LENGTH IN BC, ALL REGS USED
; LENGTH *MUST* BE GREATER THAN 1 FOR PROPER OPERATION!!!
;
FILL:
LD D,H ; SET DE TO HL
LD E,L ; SO DESTINATION EQUALS SOURCE
LD (HL),A ; FILL THE FIRST BYTE WITH DESIRED VALUE
INC DE ; INCREMENT DESTINATION
DEC BC ; DECREMENT THE COUNT
LDIR ; DO THE REST
RET ; RETURN
;
; SET A BIT IN BYTE ARRAY AT HL, INDEX IN A
;
BITSET:
CALL BITLOC ; LOCATE THE BIT
OR (HL) ; SET THE SPECIFIED BIT
LD (HL),A ; SAVE IT
RET ; RETURN
;
; CLEAR A BIT IN BYTE ARRAY AT HL, INDEX IN A
;
BITCLR:
CALL BITLOC ; LOCATE THE BIT
CPL ; INVERT ALL BITS
AND (HL) ; CLEAR SPECIFIED BIT
LD (HL),A ; SAVE IT
RET ; RETURN
;
; GET VALUE OF A BIT IN BYTE ARRAY AT HL, INDEX IN A
;
BITTST:
CALL BITLOC ; LOCATE THE BIT
AND (HL) ; SET Z FLAG BASED ON BIT
RET ; RETURN
;
; LOCATE A BIT IN BYTE ARRAY AT HL, INDEX IN A
; RETURN WITH HL POINTING TO BYTE AND A WITH MASK FOR SPECIFIC BIT
;
BITLOC:
PUSH AF ; SAVE BIT INDEX
SRL A ; DIVIDE BY 8 TO GET BYTE INDEX
SRL A ; "
SRL A ; "
LD C,A ; MOVE TO BC
LD B,0 ; "
ADD HL,BC ; HL NOW POINTS TO BYTE CONTAINING BIT
POP AF ; RECOVER A (INDEX)
AND $07 ; ISOLATE REMAINDER, Z SET IF ZERO
LD B,A ; SETUP SHIFT COUNTER
LD A,1 ; SETUP A WITH MASK
RET Z ; DONE IF ZERO
BITLOC1:
SLA A ; SHIFT
DJNZ BITLOC1 ; LOOP AS NEEDED
RET ; DONE
;
; PRINT VALUE OF A IN DECIMAL WITH LEADING ZERO SUPPRESSION
;
PRTDECB:
PUSH HL
PUSH AF
LD L,A
LD H,0
CALL PRTDEC
POP AF
POP HL
RET
;
; PRINT VALUE OF HL IN DECIMAL WITH LEADING ZERO SUPPRESSION
;
PRTDEC:
PUSH BC
PUSH DE
PUSH HL
LD E,'0'
LD BC,-10000
CALL PRTDEC1
LD BC,-1000
CALL PRTDEC1
LD BC,-100
CALL PRTDEC1
LD C,-10
CALL PRTDEC1
LD E,0
LD C,-1
CALL PRTDEC1
POP HL
POP DE
POP BC
RET
PRTDEC1:
LD A,'0' - 1
PRTDEC2:
INC A
ADD HL,BC
JR C,PRTDEC2
SBC HL,BC
CP E
JR Z,PRTDEC3
LD E,0
CALL COUT
PRTDEC3:
RET
;
; SHIFT HL:DE BY B BITS
;
SRL32:
; ROTATE RIGHT 32 BITS, HIGH ORDER BITS BECOME ZERO
SRL D
RR E
RR H
RR L
DJNZ SRL32
RET
;
SLA32:
; ROTATE LEFT 32 BITS, LOW ORDER BITS BECOME ZERO
SLA L
RL H
RL E
RL D
DJNZ SLA32
RET
;
; LOAD OR STORE DE:HL
;
LD32:
; LD DE:HL,(HL)
PUSH AF
LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
POP AF
EX DE,HL
RET
;
ST32:
; LD (BC),DE:HL
PUSH AF
LD A,L
LD (BC),A
INC BC
LD A,H
LD (BC),A
INC BC
LD A,E
LD (BC),A
INC BC
LD A,D
LD (BC),A
POP AF
RET
;
; INC/ADD/DEC/SUB 32 BIT VALUE IN DE:HL
; FOR ADD/SUB, OPERAND IS IN BC
;
INC32:
LD BC,1
ADD32:
ADD HL,BC
RET NC
INC DE
RET
;
DEC32:
LD BC,1
SUB32:
OR A
SBC HL,BC
RET NC
DEC DE
RET
;
; INC32 (HL)
; INCREMENT 32 BIT BINARY AT ADDRESS
;
INC32HL:
INC (HL)
RET NZ
INC HL
INC (HL)
RET NZ
INC HL
INC (HL)
RET NZ
INC HL
INC (HL)
RET

View File

@@ -0,0 +1,13 @@
@echo off
setlocal
set TOOLS=../../../../Tools
set PATH=%TOOLS%\tasm32;%PATH%
set TASMTABS=%TOOLS%\tasm32
tasm -t180 -g3 -fFF i2cscan.asm i2cscan.com i2cscan.lst || exit /b
tasm -t180 -g3 -fFF rtcds7.asm rtcds7.com rtcds7.lst || exit /b
tasm -t180 -g3 -fFF i2clcd.asm i2clcd.com i2clcd.lst || exit /b
copy /Y i2c*.com ..\..\..\..\Binary\Apps\Test\ || exit /b
copy /Y rtcds7*.com ..\..\..\..\Binary\Apps\Test\ || exit /b

View File

@@ -0,0 +1,5 @@
@echo off
setlocal
if exist *.com del *.com
if exist *.lst del *.lst

View File

@@ -0,0 +1,8 @@
OBJECTS = i2cscan.com rtcds7.com i2clcd.com
DEST = ../../../../Binary/Apps/Test/
TOOLS = ../../../../Tools
USETASM=1
TASMFLAGS=-dWBW
include $(TOOLS)/Makefile.inc

View File

@@ -0,0 +1,132 @@
;==================================================================================================
; GENERIC CP/M ROUTINES
;==================================================================================================
;
BDOS .EQU 5 ;ENTRY BDOS
BS .EQU 8 ;BACKSPACE
TAB .EQU 9 ;TABULATOR
LF .EQU 0AH ;LINE-FEED
CR .EQU 0DH ;CARRIAGE-RETURN
;
CLIARGS .EQU $81
RESTART .EQU $0000 ; CP/M restart vector
FCB .EQU $5C ; Location of default FCB
;
; OUTPUT TEXT AT HL
;
PRTSTR: LD A,(HL)
CP '$'
RET Z
CALL COUT
INC HL
JR PRTSTR
;
;Output WORD
;***********
;
;PARAMETER: Entry WORD IN HL
;*********
;
OUTW: LD A,H
CALL OUTB
LD A,L
CALL OUTB
RET
;
;Output BYTE
;***********
;
;PARAMETER: Entry BYTE IN A
;*********
;
OUTB: PUSH AF
RRCA
RRCA
RRCA
RRCA
AND 0FH
CALL HBTHE ;Change Half-BYTE
POP AF
AND 0FH
CALL HBTHE
RET
;
;Output HALF-BYTE
;****************
;
;PARAMETER: Entry Half-BYTE IN A (BIT 0 - 3)
;*********
;
HBTHE: CP 0AH
JR C,HBTHE1
ADD A,7 ;Character to Letter
HBTHE1: ADD A,30H
LD E,A
CALL PCHAR
RET
;
;
;Output on Screen
;****************
;
PRBS: LD E,BS
CALL PCHAR
RET
;
;Output CR+LF on Screen
;**********************
;
NEWLINE:
LD E,CR
CALL PCHAR
LD E,LF
CALL PCHAR
RET
;
;Output ASCII-Character
;**********************
;
COUT: PUSH AF
LD E,A
CALL PCHAR
POP AF
RET
;
;CALL BDOS with Register Save
;****************************
;
INCHA: LD C,1 ;INPUT CHARACTER TO A
JR BDO
PCHAR: LD C,2 ;PRINT CHARACTER IN E
JR BDO
PSTRIN: LD C,9 ;PRINT STRING
JR BDO
INBUFF: LD C,10 ;READ CONSOLE-BUFFER
JR BDO
CSTS: LD C,11 ;CONSOLE-STATUS
JR BDO
OPEN: LD C,15 ;OPEN FILE
JR BDO
CLOSE: LD C,16 ;CLOSE FILE
JR BDO
DELETE: LD C,19 ;DELETE FILE
JR BDO
READS: LD C,20 ;READ SEEK
JR BDO
WRITES: LD C,21 ;WRITE SEEK
JR BDO
MAKE: LD C,22 ;MAKE FILE
JR BDO
SETDMA: LD C,26 ;SET DMA-ADDRESS
BDO: PUSH HL
PUSH DE
PUSH BC
PUSH IX
PUSH IY
CALL BDOS
POP IY
POP IX
POP BC
POP DE
POP HL
RET

View File

@@ -0,0 +1,517 @@
;==================================================================================================
; PCF8584 HD44780 I2C LCD UTILITY
;
; SOME GENERAL INFORMATION ON LCDS CAN BE SEEN HERE : FOCUSLCDS.COM/PRODUCT-CATEGORY/CHARACTER-LCD/
;
;==================================================================================================
;
.ECHO "i2clcd\n"
;
#INCLUDE "pcfi2c.inc"
;
; LCD COMMANDS
;
LCDFSET .EQU 00100000B ; 20H
LCD4BIT .EQU 00000000B ; 00H
LCD2LIN .EQU 00001000B ; 08H
LCDDON .EQU 00000100B ; 04H
LCDDMOV .EQU 00001000B ; 07H
LCDSGRA .EQU 01000000B ; 04H
LCDSDRA .EQU 10000000B ; 80H
LCDEMS .EQU 00000100B ; 04H
LCDELFT .EQU 00000010B ; 03H
;
LCDPINE .EQU 00000100B ; PIN 2
LCDPIND .EQU 00000001B ; PIN O
;
;
; STANDARD FORMATS - 8X1, 8X2, 16X1, 16X2, 16X4, 20X1, 20X2, 20X4, 24X2, 40X1, 40X2, 40X4
;
TIMEOUT .EQU 255
.ORG 100H
;INIT: CALL PCF_INIT
;
LD A,0
LD (DEBUGF),A
;
CALL LCDINIT ; SETUP THE LCD THROUGH THE PCF8574
LD HL,LCDDATA ; DISPLAY TEXT AT HL
PUSH HL
CALL LCDSTR
POP HL
CALL STOP ; CLOSE I2C CONNECTION
;
RET
;-----------------------------------------------------------------------------
;
LCDLITE .DB 00001000B
;
LCDINIT:
; CALL DEBUG
;
LD A,I2CLCDW ; SET SLAVE ADDRESS
OUT (REGS0),A
;
LD A,0C5H ; GENERATE START CONDITION
OUT (REGS1),A ; AND ISSUE THE SLAVE ADDRESS
CALL CHKPIN
;
; CALL DEBUG
;
LD HL,LCDINIT1
LD B,2
CALL WLN
;
CALL DELAY
;
LD HL,LCDINIT2
LD B,2
CALL WLN
;
CALL DELAY
;
; NOW WE ARE IN 4 BIT MODE
;
LD A,+(LCDFSET | LCD4BIT | LCD2LIN)
CALL LCDCMD
LD A,+(LCDDON | LCDDMOV)
CALL LCDCMD
LD A,+(LCDEMS | LCDELFT)
CALL LCDCMD
LD A,LCDSDRA
CALL LCDCMD
;
RET
;
;-----------------------------------------------------------------------------
;
WLN: LD A,(HL)
OUT (REGS0),A ; PUT DATA ON BUS
CALL CHKPIN
INC HL
DJNZ WLN
RET
;
;-----------------------------------------------------------------------------
; DISPLAY STRING AT HL, TERMINATED BY 0
;
LCDSTR: POP BC ; GET THE POINTER OF
POP HL ; THE TEXT TO DISPLAY
PUSH HL ; OFF THE STACK AND
PUSH BC ; PUT IT IN HL.
;
LCDST0: LD A,(HL) ; GET NEXT CHARACTER TO
OR A ; DISPLAY BUT RETURN
RET Z ; WHEN TERMINATOR REACHED
PUSH HL
;
CALL LCDATA ; OUTPUT TO LCD
POP HL
; RET C ; POINT TO NEXT
INC HL ; AND REPEAT
JR LCDST0
;
;-----------------------------------------------------------------------------
; SEND BYTE IN A TO LCD IN 4-BIT MODE
;
LCDATA: PUSH DE
LD D,A
LD A,(LCDLITE)
OR +(LCDPINE | LCDPIND)
JP LCDSND
LCDCMD: PUSH DE
LD D,A
LD A,(LCDLITE)
OR LCDPINE
LCDSND: LD E,A
LD A,D
PUSH BC
LD C,11110000B
AND C
OR E
LD (LCDBUF),A
AND ~LCDPINE
LD (LCDBUF+1),A
LD A,D
RLC A
RLC A
RLC A
RLC A
AND C
OR E
LD (LCDBUF+2),A
AND ~LCDPINE
LD (LCDBUF+3),A
;
LD HL,LCDBUF ; OUTPUT 1 BYTE WHICH
LD B,4 ; REQUIRES A FOUR
CALL WLN ; BYTE SEQUENCE
;
POP BC
POP DE
RET
;
LCDDATA:
.DB "TEST HOW BIG IS THIS LINE DOES IT WRAP",0
;
LCDINIT1:
.DB 00110100B
.DB 00011000B
;
LCDINIT2:
.DB 00100100B
.DB 00100000B
;
LCDBUF:
.DB 0, 0, 0, 0 ; BUFFER TO HOLD 4 BYTE SEQUENCE
; FLASH DEVICE READ
;
DEVMADR .EQU 0
READR: LD B,255
DLY1: DJNZ DLY1
;
LD A,D ; SET SLAVE ADDRESS
OUT (REGS0),A
;
LD A,0C5H ; GENERATE START CONDITION
OUT (REGS1),A ; AND ISSUE THE SLAVE ADDRESS
CALL CHKPIN
;
LD A,+(DEVMADR/256)
OUT (REGS0),A ; PUT ADDRESS MSB ON BUS
CALL CHKPIN
;
LD A,+(DEVMADR&$00FF)
OUT (REGS0),A ; PUT ADDRESS LSB ON BUS
CALL CHKPIN
;
LD A,045H ; START
OUT (REGS1),A
;
LD A,E ; ISSUE CONTROL BYTE + READ
OUT (REGS0),A
;
CALL READI2C ; DUMMY READ
JR NZ,ERREXT
;
READLP1:CALL READI2C
; JR Z,ERREXT
CP 1AH
PUSH AF
CALL COUT
POP AF
JR NZ,READLP1
;
LD A,PCF_ES0
OUT (REGS1),A
CALL CHKPIN
IN A,(REGS0)
CALL READI2C
CALL STOP
;
CALL NEWLINE
;
RET
;
;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------
RESET: LD A,0C2H ; STOP
OUT (REGS1),A
LD B,255
DLY2: DJNZ DLY2
LD A,0C1H
OUT (REGS1),A
RET
RDSTAT: LD BC,-1
STATLP: IN A,(REGS1)
AND 1
RET Z
LD A,B
OR C
DEC BC
JR NZ,STATLP
LD A,'T'
JP ERREXTT
;
ERREXT: LD A,'Q'
JR ERR
ERREXTT: POP HL
ERR: CALL COUT
CALL STOP
CALL RESET
RET
;
STOP: LD A,0C3H
OUT (REGS1),A
RET
;
DELAY: PUSH HL
LD HL,-1
DLOOP: LD A,H
OR L
DEC HL
JR NZ,DLOOP
POP HL
RET
;
CHKPIN: IN A,(REGS1) ; POLL FOR
BIT 7,A ; TRANSMISSION
JP NZ,CHKPIN ; TO FINISH
; IN A,(REGS1) ; CHECK FOR
BIT 3,A ; SLAVE
RET Z ; ACKNOWLEDGMENT
LD A,'A'
JP ERREXTT
;
; READ ONE BYTE FROM I2C
; RETURNS DATA IN A
; Z flag set is acknowledge received (correct operation)
;
READI2C:
IN A,(REGS1) ; READ S1 REGISTER
BIT 7,A ; CHECK PIN STATUS
JP NZ,READI2C
BIT 3,A ; CHECK LRB=0
RET NZ
IN A,(REGS0) ; GET DATA
RET
;
DEBUG: PUSH AF
PUSH DE
LD A,'['
CALL COUT
LD HL,DEBUGF
LD A,(HL)
INC (HL)
CALL HBTHE
LD A,']'
CALL COUT
POP DE
POP AF
RET
DEBUGF: .DB 00H
;
;-----------------------------------------------------------------------------
;
; LINUX DRIVER BASED CODE
;
; I2C_INB = IN A,(REGS0)
; I2C_OUTB = LD A,* | OUT (REGS0),A
; SET_PCF = LD A,* | OUT (REGS1),A
; GET_PCF = IN A,(REGS1)
;
;-----------------------------------------------------------------------------
I2C_START:
LD A,PCF_START_
OUT (REGS1),A
RET
;
;-----------------------------------------------------------------------------
I2C_REPSTART:
LD A,PCF_START_
OUT (REGS1),A
RET
;
;-----------------------------------------------------------------------------
I2C_STOP:
LD A,PCF_STOP_
OUT (REGS1),A
RET
;
;-----------------------------------------------------------------------------
HANDLE_LAB:
LABDLY .EQU 0F000H
LD A,PCF_PIN
OUT (REGS1),A
LD A,PCF_ES0
OUT (REGS1),A
;
LD HL,LABDLY
LABLP LD A,H
OR L
DEC HL
JR NZ,LABLP
;
IN A,(REGS1)
RET
;
;-----------------------------------------------------------------------------
WAIT_FOR_BB:
;
BBTIMO .EQU 255
;
LD HL,BBTIMO
BBNOTO IN A,(REGS1)
AND PCF_BB
RET Z
DEC HL
LD A,H
OR A
JR NZ,BBNOTO
CPL ; RET NZ IF TIMEOUT
BBNOTB RET ; RET Z IF BUS IS BUSY
;
;-----------------------------------------------------------------------------
WAIT_FOR_PIN:
;
; RETURN A=00/Z IF SUCCESSFULL
; RETURN A=FF/NZ IF TIMEOUT
; RETURN A=01/NZ IF LOST ARBITRATION
;
PINTIMO .EQU 16000
;
LD HL,PINTIMO
PINNOTO IN A,(REGS1)
LD (STATUS),A
LD B,A
AND PCF_PIN
RET Z
DEC HL
LD A,H
OR A
JR NZ,PINNOTO
CPL ; RET NZ IF TIMEOUT
PINNOTB RET ; RET Z IF BUS IS BUSY
;
LD B,A
AND PCF_LAB
CALL HANDLE_LAB
LD (STATUS),A
XOR A
INC A
RET
;
STATUS .DB 00H
;
;-----------------------------------------------------------------------------
PCF_INIT:
LD A,PCF_PIN ; S1=80H: S0 SELECTED, SERIAL
OUT (REGS1),A ; INTERFACE OFF
NOP
IN A,(REGS1) ; CHECK TO SEE S1 NOW USED AS R/W
AND 07FH ; CTRL. PCF8584 DOES THAT WHEN ESO
JR NZ,INIERR ; IS ZERO
;
LD A,PCF_OWN ; LOAD OWN ADDRESS IN S0,
OUT (REGS0),A ; EFFECTIVE ADDRESS IS (OWN <<1)
NOP
IN A,(REGS0) ; CHECK IT IS REALLY WRITTEN
CP PCF_OWN
JR NZ,SETERR
;
LD A,+(PCF_PIN | PCF_ES1) ; S1=0A0H
OUT (REGS1),A ; NEXT BYTE IN S2
NOP
IN A,(REGS1)
AND 07FH
CP PCF_ES1
JR NZ,REGERR
;
LD A,PCF_CLK ; LOAD CLOCK REGISTER S2
OUT (REGS0),A
NOP
IN A,(REGS0) ; CHECK IT'S REALLY WRITTEN, ONLY
AND 1FH ; THE LOWER 5 BITS MATTER
CP PCF_CLK
JR NZ,CLKERR
;
LD A,PCF_IDLE_
OUT (REGS1),A
NOP
IN A,(REGS1)
CP +(PCF_PIN | PCF_BB)
JR NZ,IDLERR
RET
;
;-----------------------------------------------------------------------------
PCF_SENDBYTES: ; HL POINTS TO DATA, BC = COUNT, A = 0 LAST A=1 NOT LAST
;
LD (LASTB),A
;
SB0: LD A,(HL)
OUT (REGS0),A
CALL WAIT_FOR_PIN
JR Z,SB1
CP 01H ; EXIT IF ARBITRATION ERROR
RET Z
CALL I2C_STOP ; MUST BE TIMEOUT
LD A,055H ; ERROR
RET
SB1: LD A,(STATUS)
AND PCF_LRB
JR NZ,SB2
LD A,055H
;
SB2: LD A,B
OR C
INC HL
JR NZ,SB0 ; CHECK IF FINISHED
;
SBGOOD: LD A,(LASTB)
OR A
JR NZ,DB3
CALL I2C_STOP
RET
DB3: CALL I2C_REPSTART
RET
;
LASTB .DB 00H
;
; I2C_INB = IN A,(REGS0)
; I2C_OUTB = LD A,* | OUT (REGS0),A
; SET_PCF = LD A,* | OUT (REGS1),A
; GET_PCF = IN A,(REGS1)
;
;-----------------------------------------------------------------------------
INIERR LD HL,NOPCF
CALL PRTSTR
RET
;
SETERR LD HL,WRTFAIL
CALL PRTSTR
RET
REGERR LD HL,REGFAIL
CALL PRTSTR
RET
;
CLKERR LD HL,CLKFAIL
CALL PRTSTR
RET
;
IDLERR LD HL,IDLFAIL
CALL PRTSTR
RET
;
NOPCF .DB "NO DEVICE FOUND",CR,LF,"$"
WRTFAIL .DB "SETTING DEVICE ID FAILED",CR,LF,"$"
REGFAIL .DB "CLOCK REGISTER SELECT ERROR",CR,LF,"$"
CLKFAIL .DB "CLOCK SET FAIL",CR,LF,"$"
IDLFAIL .DB "BUS IDLE FAILED",CR,LF,"$"
;
#INCLUDE "i2ccpm.inc"
;
BUFFER: .DS 256
;
.END

View File

@@ -0,0 +1,500 @@
;
.ECHO "i2cscan\n"
;
; I2C BUS SCANNER
; MARCO MACCAFERRI, HTTPS://WWW.MACCASOFT.COM
; HBIOS VERSION BY PHIL SUMMERS (B1ACKMAILER) DIFFICULTLEVELHIGH@GMAIL.COM
;
PCF .EQU 1
P8X180 .EQU 0
SC126 .EQU 0
SC137 .EQU 0
;
#IF (PCF)
I2C_BASE .EQU 0F0H
PCF_ID .EQU 0AAH
CPU_CLK .EQU 12
;
PCF_RS0 .EQU I2C_BASE
PCF_RS1 .EQU PCF_RS0+1
PCF_OWN .EQU (PCF_ID >> 1) ; PCF'S ADDRESS IN SLAVE MODE
#ENDIF
;
#IF (P8X180)
I2C_BASE .EQU 0A0h
_sda .EQU 0
_scl .EQU 1
_idle .EQU 00000011B
#ENDIF
;
#IF (SC126)
I2C_BASE .EQU 0Ch
_sda .EQU 7
_scl .EQU 0
_idle .EQU 10001101B
#ENDIF
;
#IF (SC137)
I2C_BASE .EQU 20h
_sda .EQU 7
_scl .EQU 0
_idle .EQU 10000001B
#ENDIF
;
;-----------------------------------------------------------------------------
;
.org 100h
ld sp,stack
ld hl,signon
call _strout
ld c,' '
call _cout
call _cout
call _cout
; display x axis header 00-0F
xor a
ld (x),a
ld b, 16
lp1: ld c,' '
call _cout
ld a,(x)
ld c,a
inc a
ld (x),a
call _hexout
djnz lp1
call _eolout
; start of line loop 00-07
xor a ; display
ld (y),a ; y-axis
ld (addr),a ; prefix
ld d,8
lp3b: ld a,(y)
ld c,a
add a,10h
ld (y),a
call _hexout
ld c,':'
call _cout
; set up x axis loop
xor a
ld (x),a
ld e,16
lp2b: push de
ld c,' '
call _cout
; i2c challenge
; . issue device start command
; . write address to device
; . issue device stop command.
; . delay
; . display response
; call _i2c_start
; ld a,(addr)
; ld c,a
; call _i2c_write
; ld (rc),a
; call _i2c_stop
CALL PCF_WAIT_FOR_BB
JP NZ,PCF_BBERR
;
LD A,(addr)
OUT (PCF_RS0),A
CALL PCF_START ; GENERATE START CONDITION
;
ld bc,100 ; delay
lp6: nop
dec bc
ld a,c
or b
jr nz,lp6
CALL PCF_WAIT_FOR_ACK; AND ISSUE THE SLAVE ADDRESS
or a
jp nz,lp4f
ld c,'-' ; display no
call _cout ; response
call _cout
jp lp5f
lp4f: ld a,(addr) ; adjust address
ld c,a ; and display it
srl c
call _hexout
lp5f: ld a,(addr) ; next address
add a,2 ; adjust for
ld (addr),a ; 7-bit
CALL PCF_STOP
pop de ; check if
dec e ; reached end
jp nz,lp2b ; of line
call _eolout
dec d ; loop until
jp nz,lp3b ; all done
jp 0
signon: .db "I2C Bus Scanner"
#IF (PCF)
.DB " - PCF8584"
#ENDIF
#IF (SC126)
.DB " - SC126"
#ENDIF
#IF (SC137)
.DB " - SC137"
#ENDIF
.db 13, 10, 13, 10, 0, "$"8
_strout:
st1: ld a,(hl) ; display
CP '$' ; zero
ret z ; terminated
ld c,a ; string
call _cout
inc hl
jp st1
_hexout: ; display
ld a,c ; A in hex
srl a
srl a
srl a
srl a
add a,30h
cp 3Ah
jp c,h1
add a,7
h1: ld h,a
ld a,c
and 0Fh
add a,30h
cp 3Ah
jp c,h2
add a,7
h2: ld l,a
ld c,h
call _cout
ld c,l
call _cout
ret
_eolout: ; newline
ld c,13
call _cout
ld c,10
call _cout
ret
_cout: ; character
push af ; output
push bc
push de
push hl
ld e,c
ld c,02h
call 5
pop hl
pop de
pop bc
pop af
ret
;-----------------------------------------------------------------------------
#IF (PCF)
_i2c_start:
PCF_START:
LD A,PCF_START_
OUT (PCF_RS1),A
RET
#ELSE
;_i2c_start:
ld a,_idle ; issue
out (I2C_BASE),a ; start
; command
res _sda,a
out (I2C_BASE),a
nop
nop
res _scl,a
out (I2C_BASE),a
ld (oprval),a
ret
#ENDIF
;
;-----------------------------------------------------------------------------
;
; CONTROL REGISTER BITS
;
PCF_PIN .EQU 10000000B
PCF_ES0 .EQU 01000000B
PCF_ES1 .EQU 00100000B
PCF_ES2 .EQU 00010000B
PCF_EN1 .EQU 00001000B
PCF_STA .EQU 00000100B
PCF_STO .EQU 00000010B
PCF_ACK .EQU 00000001B
;
; STATUS REGISTER BITS
;
;PCF_PIN .EQU 10000000B
PCF_INI .EQU 01000000B ; 1 if not initialized
PCF_STS .EQU 00100000B
PCF_BER .EQU 00010000B
PCF_AD0 .EQU 00001000B
PCF_LRB .EQU 00001000B
PCF_AAS .EQU 00000100B
PCF_LAB .EQU 00000010B
PCF_BB .EQU 00000001B
;
PCF_START_ .EQU (PCF_PIN | PCF_ES0 | PCF_STA | PCF_ACK)
PCF_STOP_ .EQU (PCF_PIN | PCF_ES0 | PCF_STO | PCF_ACK)
;
; TIMEOUT AND DELAY VALUES (ARBITRARY)
;
PCF_PINTO .EQU 65000
PCF_ACKTO .EQU 65000
PCF_BBTO .EQU 65000
PCF_LABDLY .EQU 65000
;
PCF_STATUS .DB 00H
;
;--------------------------------------------------------------------------------
;
; RETURN NZ/FF IF TIMEOUT ERROR
; RETURN NZ/01 IF FAILED TO RECEIVE ACKNOWLEDGE
; RETURN Z/00 IF RECEIVED ACKNOWLEDGE
;
PCF_WAIT_FOR_ACK:
PUSH HL
LD HL,PCF_ACKTO
;
PCF_WFA0:
IN A,(PCF_RS1) ; READ PIN
LD (PCF_STATUS),A ; STATUS
LD B,A
;
DEC HL ; SEE IF WE HAVE TIMED
LD A,H ; OUT WAITING FOR PIN
OR L ; EXIT IF
JR Z,PCF_WFA1 ; WE HAVE
;
LD A,B ; OTHERWISE KEEP LOOPING
AND PCF_PIN ; UNTIL WE GET PIN
JR NZ,PCF_WFA0 ; OR TIMEOUT
;
LD A,B ; WE GOT PIN SO NOW
AND PCF_LRB ; CHECK WE HAVE
LD A,1
JR Z,PCF_WFA2 ; RECEIVED ACKNOWLEDGE
XOR A
JR PCF_WFA2
PCF_WFA1:
CPL ; TIMOUT ERROR
PCF_WFA2:
POP HL ; EXIT WITH NZ = FF
RET
;
;-----------------------------------------------------------------------------
;
; POLL THE BUS BUSY BIT TO DETERMINE IF BUS IS FREE.
; RETURN WITH A=00H/Z STATUS IF BUS IS FREE
; RETURN WITH A=FFH/NZ STATUS IF BUS
;
; AFTER RESET THE BUS BUSY BIT WILL BE SET TO 1 I.E. NOT BUSY
;
PCF_WAIT_FOR_BB:
LD HL,PCF_BBTO
PCF_WFBB0:
IN A,(PCF_RS1)
AND PCF_BB
RET Z ; BUS IS FREE RETURN ZERO
DEC HL
LD A,H
OR L
JR NZ,PCF_WFBB0 ; REPEAT IF NOT TIMED OUT
CPL ; RET NZ IF TIMEOUT
RET
;
;-----------------------------------------------------------------------------
; DISPLAY ERROR MESSAGES
;
PCF_RDERR:
PUSH HL
LD HL,PCF_RDFAIL
JR PCF_PRTERR
;
PCF_INIERR:
PUSH HL
LD HL,PCF_NOPCF
JR PCF_PRTERR
;
PCF_SETERR:
PUSH HL
LD HL,PCF_WRTFAIL
JR PCF_PRTERR
;
PCF_REGERR:
PUSH HL
LD HL,PCF_REGFAIL
JR PCF_PRTERR
;
PCF_CLKERR:
PUSH HL
LD HL,PCF_CLKFAIL
JR PCF_PRTERR
;
PCF_IDLERR:
PUSH HL
LD HL,PCF_IDLFAIL
JR PCF_PRTERR
;
PCF_ACKERR:
PUSH HL
LD HL,PCF_ACKFAIL
JR PCF_PRTERR
;
PCF_RDBERR:
PUSH HL
LD HL,PCF_RDBFAIL
JR PCF_PRTERR
;
PCF_TOERR:
PUSH HL
LD HL,PCF_TOFAIL
JR PCF_PRTERR
;
PCF_ARBERR:
PUSH HL
LD HL,PCF_ARBFAIL
JR PCF_PRTERR
;
PCF_PINERR:
PUSH HL
LD HL,PCF_PINFAIL
JR PCF_PRTERR
;
PCF_BBERR:
PUSH HL
LD HL,PCF_BBFAIL
JR PCF_PRTERR
;
PCF_PRTERR:
CALL _strout
CALL _eolout
POP HL
RET
;
PCF_NOPCF .DB "NO DEVICE FOUND$"
PCF_WRTFAIL .DB "SETTING DEVICE ID FAILED$"
PCF_REGFAIL .DB "CLOCK REGISTER SELECT ERROR$"
PCF_CLKFAIL .DB "CLOCK SET FAIL$"
PCF_IDLFAIL .DB "BUS IDLE FAILED$"
PCF_ACKFAIL .DB "FAILED TO RECEIVE ACKNOWLEDGE$"
PCF_RDFAIL .DB "READ FAILED$"
PCF_RDBFAIL .DB "READBYTES FAILED$"
PCF_TOFAIL .DB "TIMEOUT ERROR$"
PCF_ARBFAIL .DB "LOST ARBITRATION$"
PCF_PINFAIL .DB "PIN FAIL$"
PCF_BBFAIL .DB "BUS BUSY$"
;
;-----------------------------------------------------------------------------
#IF (PCF)
_i2c_stop:
PCF_STOP:
LD A,PCF_STOP_ ; issue
OUT (PCF_RS1),A ; stop
RET ; command
#ELSE
;_i2c_stop:
ld a,(oprval)
res _scl,a
res _sda,a
out (I2C_BASE),a
set _scl,a
out (I2C_BASE),a
nop
nop
set _sda,a
out (I2C_BASE),a
ld (oprval),a
ret
;
_i2c_write: ; write
ld a,(oprval) ; to i2c
; bus
ld b,8
i2c1: res _sda,a
rl c
jr nc,i2c2
set _sda,a
i2c2: out (I2C_BASE),a
set _scl,a
out (I2C_BASE),a
#IF (SC126=0)
ld d,a
i2c3: in a,(I2C_BASE)
bit _scl,a
jr z,i2c3
ld a,d
#ENDIF
res _scl,a
out (I2C_BASE),a
djnz i2c1
set _sda,a
out (I2C_BASE),a
set _scl,a
out (I2C_BASE),a
ld d,a
i2c4: in a,(I2C_BASE)
#IF (SC126=0)
bit _scl,a
jr z,4b
#ENDIF
ld c,a
ld a,d
res _scl,a
out (I2C_BASE),a
ld (oprval),a
xor a
bit _sda,c
ret z
inc a
ret
#ENDIF
oprval: .db 0
x: .db 0
y: .db 0
addr: .db 0
rc: .db 0
.fill 128
stack:
.end

View File

@@ -0,0 +1,116 @@
;==================================================================================================
; PCF8584 Generic
;==================================================================================================
;
PCF_BASE .EQU 0F0H
PCF_ID .EQU 0AAH
CPU_CLK .EQU 12
PCF_RS0 .EQU PCF_BASE
PCF_RS1 .EQU PCF_RS0+1
PCF_OWN .EQU (PCF_ID >> 1) ; PCF'S ADDRESS IN SLAVE MODE
REGS0 .EQU PCF_BASE
REGS1 .EQU REGS0+1
;
;T4LC512D .EQU 10100000B ; DEVICE IDENTIFIER
;T4LC512A1 .EQU 00000000B ; DEVICE ADDRESS
;T4LC512A2 .EQU 00001110B ; DEVICE ADDRESS
;T4LC512A3 .EQU 00000010B ; DEVICE ADDRESS
;T4LC512W .EQU 00000000B ; DEVICE WRITE
;T4LC512R .EQU 00000001B ; DEVICE READ
;
;I2CDEV1W .EQU (T4LC512D+T4LC512A1+T4LC512W)
;I2CDEV1R .EQU (T4LC512D+T4LC512A1+T4LC512R)
;
;I2CDEV2W .EQU (T4LC512D+T4LC512A2+T4LC512W)
;I2CDEV2R .EQU (T4LC512D+T4LC512A2+T4LC512R)
;
;I2CDEV3W .EQU (T4LC512D+T4LC512A3+T4LC512W)
;I2CDEV3R .EQU (T4LC512D+T4LC512A3+T4LC512R)
;
; CONTROL REGISTER BITS
;
PCF_PIN .EQU 10000000B
PCF_ES0 .EQU 01000000B
PCF_ES1 .EQU 00100000B
PCF_ES2 .EQU 00010000B
PCF_EN1 .EQU 00001000B
PCF_STA .EQU 00000100B
PCF_STO .EQU 00000010B
PCF_ACK .EQU 00000001B
;
PCF_START_ .EQU (PCF_PIN | PCF_ES0 | PCF_STA | PCF_ACK)
PCF_STOP_ .EQU (PCF_PIN | PCF_ES0 | PCF_STO | PCF_ACK)
PCF_REPSTART_ .EQU ( PCF_ES0 | PCF_STA | PCF_ACK)
PCF_IDLE_ .EQU (PCF_PIN | PCF_ES0 | PCF_ACK)
;
; STATUS REGISTER BITS
;
;PCF_PIN .EQU 10000000B
PCF_INI .EQU 01000000B ; 1 if not initialized
PCF_STS .EQU 00100000B
PCF_BER .EQU 00010000B
PCF_AD0 .EQU 00001000B
PCF_LRB .EQU 00001000B
PCF_AAS .EQU 00000100B
PCF_LAB .EQU 00000010B
PCF_BB .EQU 00000001B
;
; CLOCK CHIP FREQUENCIES
;
PCF_CLK3 .EQU 000H
PCF_CLK443 .EQU 010H
PCF_CLK6 .EQU 014H
PCF_CLK8 .EQU 018H
PCF_CLK12 .EQU 01cH
;
; TRANSMISSION FREQUENCIES
;
PCF_TRNS90 .EQU 000H ; 90 kHz */
PCF_TRNS45 .EQU 001H ; 45 kHz */
PCF_TRNS11 .EQU 002H ; 11 kHz */
PCF_TRNS15 .EQU 003H ; 1.5 kHz */
;
; TIMEOUT AND DELAY VALUES (ARBITRARY)
;
PCF_PINTO .EQU 65000
PCF_ACKTO .EQU 65000
PCF_BBTO .EQU 65000
PCF_LABDLY .EQU 65000
;
; DATA PORT REGISTERS
;
#IF (CPU_CLK = 443)
PCF_CLK .EQU PCF_CLK443
#ELSE
#IF (CPU_CLK = 8)
PCF_CLK .EQU PCF_CLK8
#ELSE
#IF (CPU_CLK = 12)
PCF_CLK .EQU PCF_CLK12
#ELSE ***ERROR
#ENDIF
#ENDIF
#ENDIF
;
DS7_OUT .EQU 10000000B ; SELECT SQUARE WAVE FUNCTION
DS7_SQWE .EQU 00010000B ; ENABLE SQUARE WAVE OUTPUT
DS7_RATE .EQU 00000000B ; SET 1HZ OUPUT
;
DS7_DS1307 .EQU 11010000B ; DEVICE IDENTIFIER
DS7_W .EQU 00000000B ; DEVICE WRITE
DS7_R .EQU 00000001B ; DEVICE READ
;
DS7_READ .EQU (DS7_DS1307 | DS7_R) ; READ
DS7_WRITE .EQU (DS7_DS1307 | DS7_W) ; WRITE
;
DS7_CTL .EQU (DS7_OUT | DS7_SQWE | DS7_RATE)
;
PCF8574 .EQU 01000000B ; DEVICE IDENTIFIER
PCF8574A .EQU 00001110B ; DEVICE ADDRESS
PCF8574W .EQU 00000000B ; DEVICE WRITE
PCF8574R .EQU 00000001B ; DEVICE READ
;
I2CLCDR .EQU (PCF8574+PCF8574A+PCF8574R)
I2CLCDW .EQU (PCF8574+PCF8574A+PCF8574W)

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