Kestrel-3

Timeline
Login

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

50 most recent check-ins

2020-02-08
07:08
first steps for CLI wrapper Leaf check-in: e264c3cff1 user: kc5tja tags: makerom
2020-02-02
06:09
I believe this completes the program loader for building a ROM image. There are a few error conditions that are not checked for; for example, segment IDs are not bounds checked. Similarly, it's not checked to see if a BSS segment has a HUNK_TEXT hunk with a non-zero length. However, these should be fairly easy to add later on, should these become problematic inputs to the MakeROM tool. check-in: 675b1e2afa user: kc5tja tags: makerom
05:31
merge in (:remove) directive check-in: 051e950121 user: kc5tja tags: makerom
05:30
Introduce the (:remove ...) directive Leaf check-in: 3a47f2f9d6 user: kc5tja tags: trunk
05:28
Introduce (:remove ...) directive Closed-Leaf check-in: 36a562f18f user: kc5tja tags: brickie-remove-directive
05:28
Create new branch named "brickie-remove-directive" check-in: 1b58c53c39 user: kc5tja tags: brickie-remove-directive
05:27
Steps towards better support for BSS segments (and, now that I think about it, page protection as well). check-in: c3a23a7120 user: kc5tja tags: makerom
03:33
HUNK_RELOC64 support added to load interpreter. Still need to implement support for distinguishing between BSS and CODE/DATA ahead of time, though; otherwise, we'd need two passes through the input file, which I'm not a fan of. check-in: 74b1dabdba user: kc5tja tags: makerom
01:59
Import (:delete ...) function in Brickie check-in: 1bc0382449 user: kc5tja tags: makerom
01:58
Introduce (:delete ...) command to Brickie. check-in: 33dcc7213e user: kc5tja tags: trunk
01:57
Forgot the remove utility word Closed-Leaf check-in: 921e48fb0a user: kc5tja tags: brickie-delete-directive
01:53
Add (:delete ...) directive check-in: f12588c011 user: kc5tja tags: brickie-delete-directive
01:52
Create new branch named "brickie-delete-directive" check-in: a0542294ab user: kc5tja tags: brickie-delete-directive
01:49
Lay down relocation hunks for processing. check-in: 439adf1ad6 user: kc5tja tags: makerom
2020-01-27
07:47
Documentation fixes check-in: bb9ada72cc user: kc5tja tags: makerom
07:36
Designed very basic load file interpreter. Correctly places segment contents. Does not yet understand relocations. check-in: 4844f0ae51 user: kc5tja tags: makerom
2020-01-26
23:03
Choose better name for section check-in: 34a0e063d2 user: kc5tja tags: makerom
20:40
Inserted a lot of explanation behind why I chose the magic constants that I did. They probably don't belong here. They probably need to reside in a separate reference document. But, at least I have them under revision control somewhere. check-in: 1f7133f0d8 user: kc5tja tags: makerom
18:50
Update brickie check-in: da8e336246 user: kc5tja tags: makerom
18:49
Introduce doc and code directives to make "weaving" easier. check-in: a28155cb66 user: kc5tja tags: trunk
18:45
Rename (:code) to (:bottom), bringing symmetry with (:top), and also allowing me to use (:code) as a tag to identify where code picks up versus documentation. (:code) (which is also invoked implicitly in some other directives) enables outlist generation, while (:doc) disables it. This allows for bulk documentation in, e.g., raw Markdown or HTML to comingle with executable program code. Closed-Leaf check-in: b8c915baf6 user: kc5tja tags: doc-directive
18:10
Create new branch named "doc-directive" check-in: f4190db675 user: kc5tja tags: doc-directive
18:09
Starting work on makerom utility check-in: a06942ac8e user: kc5tja tags: makerom
16:25
merge feature check-in: 55a465d93c user: kc5tja tags: makerom
16:25
Place definition of lines in appropriate context check-in: 515b6aefb4 user: kc5tja tags: trunk
16:24
Create new branch named "makerom" check-in: f754c53ba9 user: kc5tja tags: makerom
2020-01-16
20:10
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. check-in: 63fa3ba241 user: kc5tja tags: trunk
20:00
Clean up working file if tangle succeeds Closed-Leaf check-in: 9ac2855656 user: kc5tja tags: x-brickie
19:57
Added makefile; makes tangle a binary check-in: 3f4f6d01a1 user: kc5tja tags: x-brickie
19:03
Add tangle script check-in: ca2352c8b1 user: kc5tja tags: x-brickie
08:41
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. check-in: 16be7efd90 user: kc5tja tags: x-brickie
07:27
Evaluate directives as Forth command strings. check-in: b53ea0892d user: kc5tja tags: x-brickie
06:44
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.) check-in: 86bd346a6c user: kc5tja tags: x-brickie
06:12
refactor check-in: 2589910629 user: kc5tja tags: x-brickie
06:07
refactor check-in: bece2ded3d user: kc5tja tags: x-brickie
05:51
Forth instructions to read in a file, line by line. Accumulate the input; directives not yet implemented. Writes output file. check-in: 3192ac7b76 user: kc5tja tags: x-brickie
00:16
Create new branch named "x-brickie" check-in: f2b941471e user: kc5tja tags: x-brickie
2020-01-11
04:56
forgot about m4 check-in: 02c01ec8d4 user: kc5tja tags: trunk
04:50
fix formatting check-in: 77617ea1f5 user: kc5tja tags: trunk
04:42
Contribute official E3 user documentation check-in: b205b9737b user: kc5tja tags: trunk
03:54
Try to fix build bug on Ubuntu 19.04 cloud box. (This might go on for a while...) check-in: 0154dbff6a user: kc5tja tags: trunk
2020-01-09
06:11
Feature parity with E2, but much easier to add new virtual hardware. Also, much easier to support interrupts in the future as well. check-in: 7b40e899bd user: kc5tja tags: trunk
05:55
BUG FIX: Distribute sub-dword-sized data across the data bus, as hardware would. Closed-Leaf check-in: 51649cc385 user: kc5tja tags: e3-cpu
2020-01-06
16:59
Add KEY? and DRAINKEY to deal with SIA1 garbage from emulation check-in: f84f6c3126 user: kc5tja tags: e3-cpu
16:51
s/buffer/character/ in SIA code, for greater communication of intent. check-in: 32387908da user: kc5tja tags: e3-cpu
02:30
You can now leave minicom to terminate the emulator. check-in: 7a457a320b user: kc5tja tags: e3-cpu
02:25
Forgot to remove debugging code check-in: 687e009e23 user: kc5tja tags: e3-cpu
02:25
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. check-in: 52ff954d87 user: kc5tja tags: e3-cpu
01:32
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. check-in: 212569624f user: kc5tja tags: e3-cpu
2020-01-03
07:03
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.) check-in: 502b06662b user: kc5tja tags: e3-cpu