Commit Graph

63 Commits

Author SHA1 Message Date
Elliot Nunn
4b6b3057f5 ewa and other fixes 2018-07-15 18:30:41 +08:00
Elliot Nunn
74ad98c3d4 and more inforecord sizes 2018-07-15 18:28:08 +08:00
Elliot Nunn
cf3b19d073 inforecord sizes 2018-07-15 18:27:16 +08:00
Elliot Nunn
b9dc93b361 add hints to ContextBlock 2018-07-15 18:24:18 +08:00
Elliot Nunn
fb782befb6 structs and makefiles 2018-07-15 18:22:44 +08:00
Elliot Nunn
e11b02a8a8 neaten
neaten structures and delete old files
2018-07-15 18:10:37 +08:00
Elliot Nunn
f106b59fda fixes 2018-07-15 17:34:52 +08:00
Elliot Nunn
7b62fa404d more 2018-07-15 17:20:35 +08:00
Elliot Nunn
f1b71713d3 second crack at init code 2018-07-15 01:31:15 +08:00
Elliot Nunn
0e58a36e35 some emu stuff 2018-07-13 12:28:50 +08:00
Elliot Nunn
f92444728f int handlers 2018-07-10 13:16:19 +08:00
Elliot Nunn
4d3f6fe0b2 intelligent structures 2018-07-09 16:13:00 +08:00
Elliot Nunn
87797ccff0 working on interrupt handlers 2018-07-09 16:06:47 +08:00
Elliot Nunn
4c97bda911 NKMemory round-trips 2018-07-09 15:02:27 +08:00
Elliot Nunn
a58e7a345a memory pretty close 2018-07-09 14:53:50 +08:00
Elliot Nunn
71c936c302 fix aligns
now they are byte-perfect... but customized...
2018-07-08 18:05:24 +08:00
Elliot Nunn
bdc296adef exceptions round-trip
except for FDP offsets (which suck)
2018-07-08 17:57:30 +08:00
Elliot Nunn
d65818e89e FloatingPt 2018-07-07 00:03:09 +08:00
Elliot Nunn
fa5cf87729 Finish SoftInt 2018-07-06 23:02:03 +08:00
Elliot Nunn
5e9622f4b8 neaten 2018-07-06 22:58:28 +08:00
Elliot Nunn
e5bc679367 squash tiny bugs
Now round-trips from 0x29C0, except for ALIGN padding
2018-07-06 22:07:46 +08:00
Elliot Nunn
be94869b92 correct symbol locations 2018-07-06 21:56:33 +08:00
Elliot Nunn
6cd7d2f29e looks good 2018-07-06 21:44:52 +08:00
Elliot Nunn
fbfcb55c89 happy 2018-07-06 21:30:48 +08:00
Elliot Nunn
d09e326082 renames 2018-07-06 21:14:31 +08:00
Elliot Nunn
c4b2389f8b building but badly 2018-07-06 21:07:59 +08:00
Elliot Nunn
4bd3ed39c4 common sense reform
to v1

for v2

for v1

large vm diff getting shape correct

Local_Panic -> VMPanic

kdp revert to v1

teensy fix

byte-perfect
2018-07-04 20:18:17 +08:00
Elliot Nunn
1a967c5163 test fixture 2018-07-04 20:15:20 +08:00
Elliot Nunn
f0e290f709 Split up NKInterrupts.s 2018-07-04 19:28:34 +08:00
Elliot Nunn
b1d95b5928 Fix: ensure that files end up with CR line endings 2018-07-04 12:13:27 +08:00
Elliot Nunn
933bd48f01 Auto-generate per-file function lists 2018-06-30 16:07:38 +08:00
DBJ314
9fd3316452 Partially reverse console logging 2018-06-28 22:24:31 +08:00
DBJ314
f20a0216aa Look at a bunch of Task code 2018-06-28 22:24:25 +08:00
DBJ314
3e05ffda22 Understand NK entry point better 2018-06-28 22:08:28 +08:00
DBJ314
1b520d48ae Document syscall -3 2018-06-28 22:08:15 +08:00
Elliot Nunn
5f395530ab Clarify some MPCalls
The old "KC" names have been fixed.
2018-06-19 15:06:13 +08:00
Elliot Nunn
0470029cac Clarify exceptions 2018-06-19 15:06:03 +08:00
Elliot Nunn
b1bb36c551 Add Unix shell script to wrap EasyBuild 2018-05-21 15:36:19 +08:00
Elliot Nunn
0d277dc2e3 Simplify linker script
Previously the MPW linker script would generate a secondary script to be
executed. This was unnecessarily complicated, and it left some junk in
the build tree.
2018-05-21 15:35:27 +08:00
Elliot Nunn
6c199998f0 Lots of work on Address Spaces 2018-04-27 21:52:08 +08:00
Elliot Nunn
b725df3cf7 Correct alignment of NKScreenConsole.s (256b)
Information gleaned from the disassembly of NK 02.27
2018-04-22 21:23:54 +08:00
Elliot Nunn
9a85c31a22 Disassemble remaining dead code 2018-04-22 21:08:44 +08:00
Elliot Nunn
3302c1ba99 Identify all accesses to the Primary System Area
Whenever a field was added to the end of the Primary System Area (PSA)
record, the offsets of all other fields would change. When reversing NK
version 02.27, I noticed that 32 bytes had been added to the end of the
PSA between 02.27 and 02.28. To build a byte-perfect 02.27, all
references to PSA fields must therefore use the record definition in
NKPublic.s instead of a numeric offset.

In this commit, all PSA references are identified by field name (_FFF if
the field has not yet been reversed).
2018-04-22 19:00:29 +08:00
Elliot Nunn
8754365ae0 Update EDP record using MixedMode library 2018-04-16 22:46:57 +08:00
Elliot Nunn
dd4e2ef845 Reverse PPC-68k context switching (incomplete) 2018-04-15 17:00:11 +08:00
Elliot Nunn
4c0e5221f1 Remove unnecessary static branch hints
These + and - characters in a branch mnemonic can cause the assembler to
produce conditional branch instructions with that hint the branch
predictor. The default for forward branches is -, and for backward
branches is +. If a mnemonic is issued with the opposite sign, then bit
10 of the instruction (the LSB of the BO field) is set.

My long-retired "ppcdisasm" script inserted these hints unconditionally,
despite 98% of them not being required. The code is much cleaner now.

I read in some old MPW release notes that PPCAsm and PPCLink together
exhibit a quirk when linking conditional branches to imported symbols.
PPCAsm always assembles these conditional branches as if they were
forward branches (that is, a + hint will always set the hint bit, and a
- hint will never). I hoped to use this property to divine whether the
NanoKernel was linked from one or many assembly files, but I was
frustrated by the lack of conditional branches between files.
2018-04-15 16:52:14 +08:00
Elliot Nunn
e2e519b863 Remove junk from old disassembler 2018-03-31 16:19:41 +08:00
Elliot Nunn
123c1e4bee Work on the scheduler and interrupt handling code 2018-03-30 10:27:12 +08:00
Elliot Nunn
f1df639613 Reverse part of the kernel state-save code 2018-03-30 10:25:32 +08:00
Elliot Nunn
8800ff5a77 Reverse part of the Emulator Data Page
Version 02.11 of the NanoKernel prints an annotated crash dump of the
EDP. This version has been partly reversed (using Hopper!), and the
sometimes-cryptic EDP field names have been added to EmulatorPublic.a.
2018-03-30 10:05:13 +08:00