Virgil Dupras
3198cd8d08
emul/8086/pcat: fix broken AT-XY
2020-10-25 18:42:48 -04:00
Virgil Dupras
6947fea2a8
emul/z80: add SD card support to SMS
...
It works (in emulation, but soon on real hardware!), but the LIST
command is awkward due to tight screen estate...
2020-10-25 16:53:58 -04:00
Virgil Dupras
490eceab6d
emul/z80: flatten directory structure
...
I'm about to reuse sdc.c in sms.c and the old directory structure
was becoming awkward.
2020-10-25 15:58:00 -04:00
Virgil Dupras
44abcaa8f8
emul/8086: a little bit of cleanup in cpu.c
...
De-macroisation negatively impacts speed, but this emulator doesn't
need to be fast. Clear code is more important.
2020-10-25 14:25:12 -04:00
Virgil Dupras
8760766bb4
emul/8086: cleanup a couple of ifdefs
...
We assume CPU_V20 configuration at all times.
2020-10-25 14:01:46 -04:00
Virgil Dupras
5a77b80d3d
emul/8086/pcat: fix broken int13h logic
...
I had forgotten that heads index increment before track index.
2020-10-25 12:21:44 -04:00
Virgil Dupras
ba21b6a9f5
emul/8086: add PC/AT emulator
2020-10-25 10:27:52 -04:00
Virgil Dupras
c912158744
Run "all" tests under the 8086 emulator
2020-10-24 23:38:06 -04:00
Virgil Dupras
885e7db054
emul/8086: add BLK support
2020-10-24 23:20:20 -04:00
Virgil Dupras
de9103942d
emul/8086: implement AT-XY
2020-10-24 23:00:45 -04:00
Virgil Dupras
d11ac3f006
emul/8086: and we have liftoff!
...
Getting a Collapse OS prompt.
2020-10-24 22:06:51 -04:00
Virgil Dupras
942a50a86d
emul/8086: add INT hooks
2020-10-24 21:50:44 -04:00
Virgil Dupras
939c018792
emul/8086: wip
2020-10-24 20:41:51 -04:00
Virgil Dupras
efe4b13a4e
Move /emul to /emul/z80
...
I'm planning on adding other subfolders. 8086 for example...
2020-10-24 16:50:22 -04:00
Virgil Dupras
329219fa89
emul: copy libz80 directly into tree, pre-generated
...
libz80 doesn't move much anymore, there not much advantage to the
git module indirection.
2020-10-24 15:42:08 -04:00
Virgil Dupras
c072096909
tests: run "generic" tests under all Collapse OS architectures
...
There's no reason to run them only under CVM.
2020-10-24 14:57:33 -04:00
Virgil Dupras
ae62e291e6
Update libz80 submodule
2020-10-24 14:46:21 -04:00
Virgil Dupras
46c95320af
emul: bring "hw" subfolders one level higher
2020-10-24 14:37:19 -04:00
Virgil Dupras
8cecd54410
emul/sms: add PS/2 keyboard emulation
2020-10-24 11:18:48 -04:00
Virgil Dupras
cc8068f8ab
emul: don't hardcode X11 keycodes in key handling routines
...
I thought it wasn't possible with XCB to transform keycodes into
symbols for the current keyboard mapping, but I hadn't looked
hard enough.
2020-10-23 21:33:56 -04:00
Virgil Dupras
473d04d7d9
recipes/sms: add cartridge hacking instructions
2020-10-12 21:39:53 -04:00
Virgil Dupras
1681e61956
emul/sms: don't hardcode name table offset
...
Use reg 2 as specified.
2020-10-12 21:11:46 -04:00
Virgil Dupras
6b895d0745
sms: explicitly set ourselves in IM 1
...
I'm not sure if not setting IM 1 explicitly can be the source of bugs,
but SMS Power's tutorial mentions that everyone is doing it, so...
2020-10-10 13:31:54 -04:00
Virgil Dupras
0d172cc2c4
tools: add smsrom
...
Running a ROM on an everdrive is one thing, but running a ROM
directly is another: my hacked up sega.bin didn't have a proper
checksum, so the ROM didn't run.
This new tool transforms a binary into a properly-headered ROM.
Has been tested on an actual SMS.
2020-10-10 13:30:43 -04:00
Virgil Dupras
32d5f87b4e
sms: don't use BC
...
The PAD driver was broken since IP moved to BC. Oops.
2020-10-06 20:36:29 -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
8630b0a8ed
recipes/rc2014/avr: new recipe
2020-10-05 18:46:22 -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
1195b0313b
emul/rc2014: add support for Zilog SIO
...
Very very simplistic, but works with our driver.
2020-09-24 21:01:14 -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
a348ee9106
Remove Extra words
...
The few extra bytes they save in the core aren't worth the extra
complexity. This was initially done in a context where I had
troubles keeping the RC2014 binary with SDC inside the 8K limit.
At this point, even with the few extra bytes we add here, we're at
7200 bytes, so I'd say we're fine.
2020-09-21 14:51:46 -04:00
Virgil Dupras
7a5744a4c3
Remove BROWSE and CASE
...
With the Visual Editor, BROWSE is of dubious value. Even before that,
it was of dubious value. It's the only user of the CASE word, which
is also of dubious value: too complicated for its own good.
The CMD pattern used in VE is much better.
2020-09-21 14:13:34 -04:00
Virgil Dupras
fea9beac1e
recipes/pcat: move recipe blocks into local overlay
2020-09-20 20:48:52 -04:00
Virgil Dupras
475171d07b
recipes/ti84: move recipe blocks into local overlay
2020-09-20 20:24:09 -04:00
Virgil Dupras
373d03e0b1
recipes/trs80: move recipe blocks into local overlay
2020-09-20 11:57:30 -04:00
Virgil Dupras
9aa3ae4c6b
Fix tests
2020-09-20 10:52:15 -04:00
Virgil Dupras
97ec2569a0
recipes/rc2014: move recipe blocks into local overlay
2020-09-20 10:50:13 -04:00
Virgil Dupras
8e624034bf
recipes/sms: move recipe blocks into local overlay
2020-09-20 10:21:21 -04:00
Virgil Dupras
c9ce0f8cfd
tools/blkpack: support multiple dirname arguments
2020-09-20 09:38:28 -04:00
Virgil Dupras
e123c0e536
Fix asm in z80mbc2 recipe
2020-09-20 09:01:11 -04:00
Virgil Dupras
f7dc6a2b79
Fix sms and ti84 recipes
...
Their asm code has been broken for a little while! oops!
2020-09-19 21:03:18 -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