Commit Graph

84 Commits

Author SHA1 Message Date
Virgil Dupras 3615944ffa Remove MIN and MAX from core
It isn't used in there anymore. Moved it to VE, the only place
where it's used.
2020-11-08 17:22:54 -05:00
Virgil Dupras 11ebaaaa0b doc: add SPI relay instructions for the SMS 2020-11-08 11:35:06 -05:00
Virgil Dupras 0a26acfee6 ps2: interpret KC 0x1f as '2'
The '2' key on my PS/2 keyoard never worked on Collapse OS, I
wasn't sure why. I thought the keyboard was broken, but then I
tried another one, still broken. But it's only the '2'!

The KC sent is 0x1f. Is it a timing problem with the ATtiny? I
have yet to wire my prototype for logic probing. Meanwhile, let's
apply a band-aid.
2020-11-06 17:21:13 -05:00
Virgil Dupras 29f3bf1e70 doc/hw/sms: adjust ROM hacking instructions
Previous instructions would only work with an AT28C64. Now, it also
work with an AT28C256.
2020-11-03 16:54:30 -05:00
Virgil Dupras 3a0084aa31 doc/bootstrap: fix inaccuracies 2020-10-31 15:30:07 -04:00
Virgil Dupras 7001446212 Complete overhaul of recipes
Recipes contain bits and pieces of hardware-related knowledge, but
these bits feel sparse. I've been wanting to consolidate hardware-
related documentation for a while, but always fell at odds with the
recipes organisation.

We don't have recipes anymore, just a /doc/hw section that contains
hardware-related documentation which often translate to precise
instructions to run Collapse OS on a specific machine.

With this new organisation, I hope to end up with a better, more
solid documentation.
2020-10-30 20:39:39 -04:00
Virgil Dupras e31527f5ac Add word ROT>
There are many situations where it can be useful. Worth it.
2020-10-29 12:41:08 -04:00
Virgil Dupras 75ef1f440c Make MOVE* words use A@ and A!
This allows us to remove AMOVE* words.
2020-10-29 12:15:21 -04:00
Virgil Dupras de7cb4a80f Add word A,
This would be useful, for example, to allow the assembler to write
straight to an AT28 EEPROM without going to RAM. This would be a
life saver in machines with tight RAM such as the SMS.
2020-10-28 20:45:50 -04:00
Virgil Dupras adea75e50a Add alias and switch word types
I'm pretty happy about how lightweight the implementation turns
out to be.
2020-10-28 15:02:06 -04:00
Virgil Dupras 04bd57b527 Remove BIT@ and BIT!
They were only used in the ti84 recipe and were not worth their cost.
2020-10-27 22:51:08 -04:00
Virgil Dupras fc63541725 Improve documentation 2020-10-27 19:53:02 -04:00
Virgil Dupras eafcb0c440 avrpgm: add EEPROM support
also, verify all 3 first bytes of SPI commands. I'm not sure why
I wasn't doing that, probably because I was getting a lot of AVR
err and thought that only 2 bytes of the cmd were echoed. But now,
with a reliable SPI setup, verifying 3 bytes seems to work.
2020-10-05 19:36:49 -04:00
Virgil Dupras dafcf72d5b Add ATmega328P definitions 2020-10-05 16:56:09 -04:00
Virgil Dupras ebafa79795 Improve AVR docs
After many trials and errors in reliably accessing AVR chips through
my SPI relay design, I resigned myself to accepting 125kHz communication
speed with it. I find the complexity of solutions allowing to keep 250kHz
speeds to be excessive.
2020-10-05 16:46:16 -04:00
Virgil Dupras 44bcdd4327 Document 8086 asm instructions list
Also, remove needless argtype in CALL and RET
2020-09-25 19:44:32 -04:00
Virgil Dupras 8bf6258673 Add word TICKS
Adding a delay such as the 20ms one we have in AVR programmer's
initialization routine is tricky without a word like TICKS.

This implementation is highly inaccurate, but more accurate and
reliable than a "ballpark" DO..LOOP...
2020-09-25 17:31:06 -04:00
Virgil Dupras 35840ad8e6 sdc: don't use ABORT"
ABORT" doesn't work in xcomp.

Also, improve xcomp docs and fix misdocumentation.
2020-09-24 13:10:41 -04:00
Virgil Dupras 25a35cf28e Move 8086 boot code from B800 to B440
That slims down blkfs a lot.
2020-09-21 20:09:42 -04:00
Virgil Dupras 037c10fc57 Move AVR programmer from B690 to B160
Also, remove leftovers from previous move.
2020-09-21 20:00:49 -04:00
Virgil Dupras faf088b397 Move AVR assembler from B650 to B50
And move its doc to doc/asm.txt
2020-09-21 19:52:53 -04:00
Virgil Dupras b21be43535 Move 8086 assembler from B730 to B30
Also, move doc to doc/asm.txt.

Also, fix the pcat recipe which was broken since the overlay change.
I hadn't noticed it because I didn't have to rebuild the MBR.
2020-09-21 19:24:54 -04:00
Virgil Dupras 91f79d1131 Move z80a from B200 to B5
The idea is to consider assemblers as "runtime" apps instead of
placing them in the "bootstrap" section of the blocks. These apps
will be used for much more than bootstrapping.

Moved its documentation to doc/asm.txt and made its code blocks
more compact.
2020-09-21 17:51:08 -04:00
Virgil Dupras b1a95648f1 De-stabilize EXIT
This marks the end of wordrefs in stable ABI. Nice.
2020-09-19 20:35:35 -04:00
Virgil Dupras 3aa681ceca Remove ";" word
The ":" now takes care of scanning for ";". Conceptually, having
";" as an immediate word is slightly simpler than the approach in
this commit, but when bootstrapping is involved, this simpler
approach gets murkier.

Moreover, it got even murkier-er when trying to de-stabilize EXIT,
so here we are.
2020-09-19 20:22:23 -04:00
Virgil Dupras 53239c8f84 De-stabilize (n) 2020-09-19 19:44:15 -04:00
Virgil Dupras 68dd800bd1 Remove LIT< in favor of LIT" exclusively
This duplicated feature existed because of bootstrapping issues
with LIT", but again, with careful threading, we can clean things
up.

We can now have a proper "Collapse OS" prompt :)
2020-09-19 18:51:29 -04:00
Virgil Dupras eefbf66e95 De-stabilize (br), (?br), (loop), (s)
When writing the xcomp documentation, I realized that with careful
threading and by accepting a bit of code duplication in the xcomp
toolset, I could de-stabilize a couple of words.

(n) and EXIT are a bit trickier, but I think it can be done. It
would be nice to get rid of stable wordrefs...
2020-09-19 13:54:01 -04:00
Virgil Dupras 3295f1689e doc: add cross.txt 2020-09-19 10:32:28 -04:00
Virgil Dupras 6d180f737a doc: fix typos and inaccuracies 2020-09-19 09:04:18 -04:00
Virgil Dupras 82b0b81521 doc: fix a few typos and inaccuracies 2020-09-18 21:13:28 -04:00
Virgil Dupras 1a6a549857 Make the SPI Relay protocol support multiple devices
Working on programming AVR chips exposes a glaring omission in my
first design of the SPI Relay: not allowing multiple devices make
this task hard. I constantly have to unplug my SD card before, plug
the AVR chip holder, then play a bit, then unplug the AVR holder,
then replug the SD card...

My prototype for a SPI relay design is built, but I haven't tested
it yet. I need to adapt the code first, which is what I do here.

When the prototype is tested, I'll update the SDC recipe with a new
schema.
2020-09-17 09:48:55 -04:00
Virgil Dupras 350b7c5939 avr: improve docs
The batch mode thing seems to have been caused by bad timing on my
prototype. Now that I've corrected it, live interaction seems to
work fine.
2020-09-05 16:52:46 -04:00
Virgil Dupras 5b4917dbe9 avr: allow writing to flash 2020-09-05 14:07:13 -04:00
Virgil Dupras 4910b9caef core: add AMOVEW 2020-08-31 12:11:17 -04:00
Virgil Dupras 286f8968fd doc: add AVR documentation 2020-08-30 08:53:03 -04:00
Virgil Dupras 0b39a975fe doc: add doc about editing text 2020-08-19 17:43:54 -04:00
Virgil Dupras 124da6adec Move SD Card subsystem outside of RC2014 recipe and add protocols
Although the SPI Relay driver is RC2014-specific, the SD Card driver
is generic enough to be a subsystem. That's the second subsystem we
add and this warrants, I think, the formalization of a new concept:
protocols.
2020-08-16 14:30:33 -04:00
Virgil Dupras ab72a4f383 doc: take bootstrap guide out of blkfs 2020-08-16 08:33:02 -04:00
Virgil Dupras fd69195799 doc: take dictionary out of blkfs 2020-08-16 08:22:41 -04:00
Virgil Dupras d03d93668f doc: take implementation notes out of blkfs 2020-08-16 08:08:23 -04:00
Virgil Dupras 5c4bbaabf4 doc: move usage documention out of the system 2020-08-15 19:40:36 -04:00
Virgil Dupras a3a83ae49b doc: improve primer 2020-08-15 18:57:03 -04:00
Virgil Dupras ffcd93699e doc: out-of-system documentation
I've changed my mind about having documentation in-system. It doesn't
serve much of a purpose and make blkfs significantly heavier.

This commit is the first step in writing a documentation outside of
the blkfs.
2020-08-10 10:02:10 -04:00
Virgil Dupras 6bf51ae57c Forth reboot underway! 2020-04-02 20:44:29 -04:00
Virgil Dupras 08328b86a9 doc: add reverse engineering notes for trs80-4p 2020-02-21 10:39:51 -05:00
Virgil Dupras bab18216aa recipes/trs80: add instructions to save recv program to floppy 2020-02-10 11:25:05 -05:00
Virgil Dupras 9d8aa3a0d0 Add TRS-80 model 4P hardware doc
It's a condensed version of the technical manual that can be a bit
more practical to use for quick referencing.
2020-01-25 14:44:30 -05:00
Virgil Dupras 9a7617115f doc: add "Understanding the code" walkthrough 2020-01-05 10:47:23 -05:00
Virgil Dupras 097c677641 emul/zasm: use libcfs
This allows us to get rid of the zasm.sh wrapper.
2019-12-31 15:07:39 -05:00