Kestrel-3

Timeline
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2020-01-16
20:10
[63fa3ba241] Leaf: Introducing Brickie, a literate programming tool written for GForth, but it should be portable to DX-Forth with modest effort. It is based on Akkartik's "tangle" tool, and has similar syntax for markup. Brickie is optimized for my project's needs, however, and will evolve independently of Akkartik's work. Long story short, you write software as layers of related functionality: in a sense, you explicitly name and compose patches which ultimately leads to the finished product. This allows for code and commentary to co-reside, even when chunks of related functionality are widely separated in the source code. See http://akkartik.name/post/wart-layers for more behind the theory of this approach to literate programming. (user: kc5tja tags: trunk)
20:00
[9ac2855656] Closed-Leaf: Clean up working file if tangle succeeds (user: kc5tja tags: x-brickie)
19:57
[3f4f6d01a1] Added makefile; makes tangle a binary (user: kc5tja tags: x-brickie)
19:03
[ca2352c8b1] Add tangle script (user: kc5tja tags: x-brickie)
08:41
[16be7efd90] Introduces :before and :after directives. Precise syntax isn't *quite* the same as Akkartik's version, but pretty close. This basically completes Brickie's inner guts. Next up, wrapping this up into a convenient shell-invokable script of some kind. (user: kc5tja tags: x-brickie)
07:27
[b53ea0892d] Evaluate directives as Forth command strings. (user: kc5tja tags: x-brickie)
06:44
[86bd346a6c] Introduced an "insertion point" (IP) variable. This tracks where the next line of input will be placed in the output list. Future directives will adjust the insertion point; for example (:before XXX) will look for XXX in the outlist, and if found, will set IP to the immediately preceding line. (:after YYY) will do the same, but sets IP directly to the line containing YYY, so that new text will appear after it. (No facility exists for deletion of code yet; I'm not sure how that works. Need to study akkartik's code to learn more about that.) (user: kc5tja tags: x-brickie)
06:12
[2589910629] refactor (user: kc5tja tags: x-brickie)
06:07
[bece2ded3d] refactor (user: kc5tja tags: x-brickie)
05:51
[3192ac7b76] Forth instructions to read in a file, line by line. Accumulate the input; directives not yet implemented. Writes output file. (user: kc5tja tags: x-brickie)
00:16
[f2b941471e] Create new branch named "x-brickie" (user: kc5tja tags: x-brickie)
2020-01-11
04:56
[02c01ec8d4] forgot about m4 (user: kc5tja tags: trunk)
04:50
[77617ea1f5] fix formatting (user: kc5tja tags: trunk)
04:42
[b205b9737b] Contribute official E3 user documentation (user: kc5tja tags: trunk)
03:54
[0154dbff6a] Try to fix build bug on Ubuntu 19.04 cloud box. (This might go on for a while...) (user: kc5tja tags: trunk)
2020-01-09
06:11
[7b40e899bd] Feature parity with E2, but much easier to add new virtual hardware. Also, much easier to support interrupts in the future as well. (user: kc5tja tags: trunk)
05:55
[51649cc385] Closed-Leaf: BUG FIX: Distribute sub-dword-sized data across the data bus, as hardware would. (user: kc5tja tags: e3-cpu)
2020-01-06
16:59
[f84f6c3126] Add KEY? and DRAINKEY to deal with SIA1 garbage from emulation (user: kc5tja tags: e3-cpu)
16:51
[32387908da] s/buffer/character/ in SIA code, for greater communication of intent. (user: kc5tja tags: e3-cpu)
02:30
[7a457a320b] You can now leave minicom to terminate the emulator. (user: kc5tja tags: e3-cpu)
02:25
[687e009e23] Forgot to remove debugging code (user: kc5tja tags: e3-cpu)
02:25
[52ff954d87] NEW: Implemented SIA read functionality. And, it successfully is running DX-Forth without causing the emulator to crash. Holy crap, I never thought I'd get this far. BUT: there's problems. When DX-Forth starts up, the banner comes right back as input to the interpreter. This is highly undesirable, and I really wish I could figure out a way to prevent this from happening. I don't think it's causing the interpreter distress; but, still, it's damn annoying. There are other problems too: for some reason, numeric output is not working. AGAIN. Also, Forth refuses to recognize input longer than a single character. Neither issue is clear to me why it happens. I don't yet have a plan to debug this yet either. Baffling. (user: kc5tja tags: e3-cpu)
01:32
[212569624f] NEW: Instruction fetch, load, and store misalignment traps. CPU bus interface properly models Wishbone byte lanes. (Turns out this was easier all along.) External bus errors now produce instruction fetch, load, and store access fault traps. SIA now modeled in software. ROM and RAM are now modeled in software. FIX: loads from memory properly assert their transfer sizes. Instruction fetch now acquires its instruction from the correct byte lanes. Memory writes no longer deadlock the CPU. (user: kc5tja tags: e3-cpu)
2020-01-03
07:03
[502b06662b] In theory, we have a KCP53000B emulated without support for external interrupts. In theory. Next steps is to get RAM, ROM, and SIA core access support implemented, and with *any* luck at all, we can see the DX-Forth 1.2 prompt come up. (I suspect this will not be easy.) (user: kc5tja tags: e3-cpu)
07:00
[8f62974eab] Bedtime soon; committing changes made so far. (user: kc5tja tags: e3-cpu)
01:17
[119f5aaaaa] CPU state lifecycle (user: kc5tja tags: e3-cpu)
00:47
[700336c879] Create new branch named "e3-cpu" (user: kc5tja tags: e3-cpu)
2020-01-02
23:59
[8571b9ca73] Restore trunk back to pre-repkg state. (user: kc5tja tags: trunk)
23:48
[4bd5a1a55d] Leaf: Goddammit, this is getting annoying. (user: kc5tja tags: replace-nrmf-with-repkg)
23:45
[db7a0e50d6] Remove vestiges of NRMF. (user: kc5tja tags: trunk)
23:42
[1da36e75d2] Replace NRMF with another non-recursive make system, purpose built. (user: kc5tja tags: trunk)
23:41
[38cb48ead1] Create new branch named "replace-nrmf-with-repkg" (user: kc5tja tags: replace-nrmf-with-repkg)
05:07
[d7b42491d9] Remove config.od; no longer needed. (user: kc5tja tags: trunk)
03:28
[456f3f082f] e3 builds, processes some basic arguments. Need to work on CPU and SIA emulation next. (user: kc5tja tags: trunk)
00:50
[2d4b6522a0] Initial import of initial main.c of initial code for E3. (user: kc5tja tags: trunk)
2020-01-01
03:00
[efcd68a84e] Divorce DX-Forth from processor card-specific ROM image (user: kc5tja tags: trunk)
03:00
[5551f78da0] Oops, I forgot to link Kestrel ROM access into the address decode logic of the emulator. (user: kc5tja tags: trunk)
02:22
[2db30aba6b] Rename rom.asm to cpurom.asm, and clean up compiler warnings (user: kc5tja tags: trunk)
02:05
[62f70e562e] Move origin to $40000 to prep for icoBoard Gamma FPGA bitstream (user: kc5tja tags: trunk)
01:51
[df7de75d56] ...by which I mean split apart the CPU-card functionality from the Kestrel ROM image contents. (user: kc5tja tags: trunk)
01:50
[e1402a7070] Emulator E2 now conforms fully to E3 memory map semantics. Just need to update the DX-Forth image to exploit this. (user: kc5tja tags: trunk)
01:40
[2433110035] Rename unified ROM to the "CPU ROM", the ROM which is intended to reside on the active processor card. Right now, this ROM behaves exactly as it did in the E2 emulator. However, eventually, this ROM will hold the processor's machine-mode bootstrap code and software shims for missing hardware features. (user: kc5tja tags: trunk)
2019-12-31
22:56
[f1c79c7f80] Upgrade to DX-Forth 1.2, which now supports the Kestrel-3/E3 memory map standards (even though the emulator doesn't quite get the firmware address decoding right yet). Fixes a number of signed vs. unsigned bugs found within DX-Forth 1.1, thanks to RAM addresses now being located in negative address space (on 32-bit machines). KNOWN BUG IN DX-FORTH 1.2: there is no way to enter an unsigned 32-bit number or unsigned 16-bit number in source form. So, HEX C000000 or HEX C000 will result in negative numbers. (This bug also existed in DX-Forth 1.1, but I wasn't aware of it.) This is an artifact of LITERAL attempting to save space in the dictionary by using the most compact numeric representation. Three workarounds exist: (1) create a parsing word which parses the next number and manually compiles a 64-bit number; (2) Wait for DX-Forth 1.3 to roll out some kind of fix for this issue; OR, (3) follow such numbers (perhaps computed from elsewhere) with explicit masks, like -65536 AND, etc. Of course, the third option is to replace DX-Forth 1.x with DX-Forth 2.x and go with native-code compilation, but this will take much longer to get working. (user: kc5tja tags: trunk)
2019-12-30
17:34
[da0ce0827c] Switch from old Redo-based builds back to using GNU Make (specifically using my NRMF package). (user: kc5tja tags: trunk)
17:28
[5a48d1c21f] Closed-Leaf: Include DX-Forth ROM image in build steps in new Makefile (user: kc5tja tags: switch-to-nrmf)
2019-12-28
02:35
[4050eb5042] Progress on putting DXForth ROM image into Makefile ecosystem (user: kc5tja tags: switch-to-nrmf)
01:41
[8c13288d87] Repair compiler warnings (user: kc5tja tags: switch-to-nrmf)
2019-12-27
23:11
[f7b2890ea2] Added e2 emulator to set of build targets. (user: kc5tja tags: switch-to-nrmf)
19:31
[29370814b5] test (user: kc5tja tags: switch-to-nrmf)
19:31
[7f1232f979] why was trunk set as the current branch? (user: kc5tja tags: switch-to-nrmf)