Compare commits
	
		
			No commits in common. "f114c742b02f962c686fbddb88f777c6a354b75e" and "55b037a8a96a8d57d9057bd8ced8c4136714ce66" have entirely different histories. 
		
	
	
		
			f114c742b0
			...
			55b037a8a9
		
	
		|  | @ -4,7 +4,7 @@ These are the files for a ... book? story? I'm writing. | ||||||
| Not really sure what to call it. It's a website. | Not really sure what to call it. It's a website. | ||||||
| 
 | 
 | ||||||
| You can read it here: https://book.lostcave.ddnss.de/ | You can read it here: https://book.lostcave.ddnss.de/ | ||||||
| If that doesn't work for you, there is a mirror on GitHub: https://bodgemaster.github.io/new_dawn_mirror/ | If that doesn't work for you, there will be a mirror on GitHub (tbd). | ||||||
| 
 | 
 | ||||||
| If you want to read it offline, you can `git clone` this (or just download | If you want to read it offline, you can `git clone` this (or just download | ||||||
| the files). | the files). | ||||||
|  |  | ||||||
							
								
								
									
										166
									
								
								ea-RTFM.html
								
								
								
								
							
							
						
						
									
										166
									
								
								ea-RTFM.html
								
								
								
								
							|  | @ -4,12 +4,11 @@ | ||||||
| <!-- perspective: Annie --> | <!-- perspective: Annie --> | ||||||
| 
 | 
 | ||||||
| <p> | <p> | ||||||
|   Annie arrives at a house with multiple ground-level entrances. |   Annie rings the doorbell and waits. Nobody answers. She checks that | ||||||
|   She rings one of the doorbells and waits. Nobody answers. She checks |   she's at the right door – yes, this is grandpa Karl's | ||||||
|   that it is the right door – yes, this is grandpa Karl's |  | ||||||
|   apartment. She rings again. A window on <span class="comment">in?</span> |   apartment. She rings again. A window on <span class="comment">in?</span> | ||||||
|   one of the adjacent houses opens and she hears Isabelle quietly calling |   one of the adjacent houses opens and she hears Isabelle quietly | ||||||
|   her:<br /> |   calling her.<br /> | ||||||
|   <span class="quote speech">Annie, we're over here.</span><br /> |   <span class="quote speech">Annie, we're over here.</span><br /> | ||||||
|   She walks over.<br /> |   She walks over.<br /> | ||||||
|   <span class="quote speech">Which door?</span><br /> |   <span class="quote speech">Which door?</span><br /> | ||||||
|  | @ -22,149 +21,30 @@ | ||||||
|   This place has been <span class="comment">vacant</span> forever, might |   This place has been <span class="comment">vacant</span> forever, might | ||||||
|   as well use it.</span><br /> |   as well use it.</span><br /> | ||||||
|   Annie slides her shoes off and leans her bag against the wall. Then, |   Annie slides her shoes off and leans her bag against the wall. Then, | ||||||
|   they go into the living room where cables and computer parts are all over |   they go to the living room where cables and computer parts are all over | ||||||
|   the floor. Lucas sits in front of the rack between two opened boxes. |   the floor. Lucas sits in front of the rack between two opened boxes. | ||||||
|   The rack's side panels had been removed, revealing the devices |   The rack's side panels had been removed, revealing the rails holding | ||||||
|   mounted inside and the cables connecting them. Lucas is pushing a circuit |   the various devices inside and their power cables. Lucas is pushing | ||||||
|   board into a half-assembled metal box that hangs out the front. Karl goes |   a circuit board into a half-assembled device that hangs out the front. | ||||||
|   over to a stool next to the rack, carefully avoiding stepping on things, |   Karl goes over to a stool next to the rack, carefully avoiding stepping | ||||||
|   and sits down. |   on things, and sits down. | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
|   Annie sits down next to Lucas and watches as he carefully |   Annie sits down next to Lucas and watches as he carefully inserts one | ||||||
|   <span class="comment">synonym for careful?</span> inserts another |   board after the other. Karl is looking at the manual and tells him | ||||||
|   board. Karl is reading from a binder of documentation and tells him to |   to set some tiny switches on the front of some of them.<br /> | ||||||
|   set some tiny switches on its front edge.<br /> |   Karl says: <span class="quote speech">Annie, can you hand me these four | ||||||
|   While grabbing the next board, Lucas says: |   gray ribbon cables?</span><br /> | ||||||
|   <span class="quote speech">Annie, can you take these and prepare the DIP |   She looks around, lots of different cables everywhere.<br /> | ||||||
|   switches?</span><br /> |   <span class="quote speech">The wide, flat ones to your left.</span><br /> | ||||||
|   He pushes the box over to her. It contains four circuit boards, all |   He takes them and plugs them somewhere into the back of the rack. | ||||||
|   identical.<br /> |  | ||||||
|   <span class="quote speech">Uhm, okay.</span> |  | ||||||
|   She takes one of the boards out and looks at it. It's full of |  | ||||||
|   electronic components on both sides and one of the edges holds a tiny red |  | ||||||
|   box with an even tinier row of switches on it.<br /> |  | ||||||
|   <span class="comment">Above is a bad description. Need naive description |  | ||||||
|   of DIP switches from someone who doesn't know.</span><br /> |  | ||||||
|   <span class="quote speech">So what do I set them to?</span><br /> |  | ||||||
|   Karl tells her a combination and she tries to push the switches up or |  | ||||||
|   down as needed with her finger nails.<br /> |  | ||||||
|   Lucas says <span class="quote speech">Here, use this.</span> and hands |  | ||||||
|   her a pen.<br /> |  | ||||||
|   Using it to flip the switches, she sets the combination Karl says, then |  | ||||||
|   hands the board over to Lucas and grabs the next one. |  | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
|   Karl takes the racks's power cable and plugs it in. Isabelle gets |   Isabelle grabs the terminal from a corner of the room and lifts it onto | ||||||
|   the terminal from a corner of the room and lifts it onto the rack. |   the rack. Meanwhile, Annie and Lucas start collecting the cables and | ||||||
|   Meanwhile, Annie and Lucas start collecting the cables and loose parts |   loose parts from the floor. Karl plugs rack and terminal into power and | ||||||
|   from the floor. Isabelle plugs the terminal into power and Karl connects |   connects a cable between the terminal and one of the devices in the front | ||||||
|   a cable between it and one of the devices in the front of the rack. |   of the rack. | ||||||
|   They all gather around and Karl powers it on. He follows the same |  | ||||||
|   procedure that Annie and Isabelle performed in the library: Key switch |  | ||||||
|   at the top of the rack to <span class="quote non-speech">RST</span>, |  | ||||||
|   power up the hard drive, hold <span class="quote non-speech">LOAD</span> |  | ||||||
|   and key switch to <span class="quote non-speech">RUN</span>. Then, he |  | ||||||
|   pulls a floppy disk out of the documentation binder and inserts it into |  | ||||||
|   the computer. He enters some commands, the drive clicks a few times, and |  | ||||||
|   the terminal displays a menu. |  | ||||||
| </p> | </p> | ||||||
| <!-- |  | ||||||
|   Hardware in this machine: |  | ||||||
|   - 1x HDD (platters: 1 removable, 3 fixed) |  | ||||||
|   - 2x FDD |  | ||||||
|   - 2x backplane (8 slots each) |  | ||||||
|     - CPU (1 board) |  | ||||||
|     - FPU (1 board) (removed, replaced with NC 2000) |  | ||||||
|     - Number Cruncher 2000 (4 boards) |  | ||||||
|     - HDDC (1 board) |  | ||||||
|     - FDDC (1 board) |  | ||||||
|     - MTDC (1 board) |  | ||||||
|     - memory (8 boards) |  | ||||||
|   - 1x PDU |  | ||||||
|   - 1x MTD |  | ||||||
| 
 |  | ||||||
|    16M =  16777216 => 0x00000000 to 0x00FFFFFF |  | ||||||
|    64M =  67108864 => 0x00000000 to 0x03FFFFFF |  | ||||||
|   128M = 134217728 => 0x00000000 to 0x07FFFFFF |  | ||||||
| 
 |  | ||||||
|   -> 32-bit address bus |  | ||||||
| 
 |  | ||||||
|   1 PC SIMM = ~1MiB |  | ||||||
|   16 SIMMS = 1 memory board => 8 boards installed, 128M |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|   //TODO: realistic EPROM sizes? |  | ||||||
|   ROMs: |  | ||||||
|     32k platform code (bootrom) |  | ||||||
|     8k  FDDC |  | ||||||
|     8k  HDDC |  | ||||||
|     8k  MTDC |  | ||||||
| 
 |  | ||||||
|   Registers: |  | ||||||
|   - CPU: 32x 8 bit? - are these mapped into RAM? |  | ||||||
|     - A (32-bit) / Split registers 2x16-bit, 4x8-bit |  | ||||||
|     - B (32-bit) / Split registers 2x16-bit, 4x8-bit |  | ||||||
|     - C (32-bit) / Split registers 2x16-bit, 4x8-bit |  | ||||||
|     - D (32-bit) / Split registers 2x16-bit, 4x8-bit |  | ||||||
|     - Address pointer (32-bit) |  | ||||||
|     - Flags (32-bit) |  | ||||||
|     - Interrupt Return Pointer (32-bit) |  | ||||||
|     - software interrupt capabilities? |  | ||||||
|     - context switching capabilities? |  | ||||||
|     - timers? |  | ||||||
|     - ? |  | ||||||
|   - Number Cruncher 2000: |  | ||||||
|     - Instruction Register (32-bit) |  | ||||||
|     - Flags (32-bit) |  | ||||||
|     - 32x 32-bit / 16x 64-bit general-purpose register |  | ||||||
|     - DMA load pointer (32-bit) |  | ||||||
| 
 |  | ||||||
| --> |  | ||||||
| <pre class="terminal"> |  | ||||||
| [ SYSTEM DIAGNOSTICS v3.15 ] |  | ||||||
| ---------------------------- |  | ||||||
| 
 |  | ||||||
| 1. Quick Test |  | ||||||
| 2. Run All Tests |  | ||||||
| 3. CPU Test |  | ||||||
| 4. Memory Test |  | ||||||
| 5. FPU Test |  | ||||||
| 6. DMA Test |  | ||||||
| 7. Serial Test |  | ||||||
| 8. FDD Test |  | ||||||
| 9. HDD Test |  | ||||||
| 10. MTD Test |  | ||||||
| 11. Load Module... |  | ||||||
| 
 |  | ||||||
| Choice: █ |  | ||||||
| </pre> |  | ||||||
| <p> |  | ||||||
|   Lucas asks: |  | ||||||
|   <span class="quote speech">Odds of this working first try?</span><br /> |  | ||||||
|   Karl says: <span class="quote speech">We will see...</span><br /> |  | ||||||
|   He types a number and presses enter. |  | ||||||
| </p> |  | ||||||
| <pre class="terminal"> |  | ||||||
| Choice: 2 |  | ||||||
| 
 |  | ||||||
| Initializing... |  | ||||||
| Loading CPU Test... |  | ||||||
|   Registers:  Pass  Branching:  Pass |  | ||||||
|   ALU:        Pass  Long Words: Pass |  | ||||||
|   All Instrct:Pass  Stress Test:Pass |  | ||||||
| Result: PASSED |  | ||||||
| Loading Memory Test... |  | ||||||
|   Memory map: |  | ||||||
|     00000000- |  | ||||||
| Result: FAIL |  | ||||||
| Loading FPU Test... |  | ||||||
|   NC2K OpROM init |  | ||||||
|   FP Arithmetic Test |  | ||||||
|   SIMD Test |  | ||||||
|   <!-- TODO: what kinda tests does this thing do? --> |  | ||||||
| Result: FAIL <!-- because memory error --> |  | ||||||
| </pre> |  | ||||||
| 
 | 
 | ||||||
| <p class="copyright">Copyright © 2023-2025 Jan Danielzick (aka. BodgeMaster) – All rights reserved.</p><script>let spans = ["<span class=\"paper green\">", "<span>"]; let pre_texts = document.getElementsByTagName("pre"); for (let i = 0; i < pre_texts.length; i++) {if (pre_texts[i].className != "paper") continue; let lines = pre_texts[i].innerHTML.split("\n"); let result = ""; for (let j = 0; j < lines.length; j++) {if (lines[j].length >= 80) result = result + spans[j%2] + lines[j] + "</span>\n"; else result = result + spans[j%2] + lines[j] + " ".repeat(80-lines[j].length) + "</span>\n";} pre_texts[i].innerHTML = result;}</script></body></html> | <p class="copyright">Copyright © 2023-2025 Jan Danielzick (aka. BodgeMaster) – All rights reserved.</p><script>let spans = ["<span class=\"paper green\">", "<span>"]; let pre_texts = document.getElementsByTagName("pre"); for (let i = 0; i < pre_texts.length; i++) {if (pre_texts[i].className != "paper") continue; let lines = pre_texts[i].innerHTML.split("\n"); let result = ""; for (let j = 0; j < lines.length; j++) {if (lines[j].length >= 80) result = result + spans[j%2] + lines[j] + "</span>\n"; else result = result + spans[j%2] + lines[j] + " ".repeat(80-lines[j].length) + "</span>\n";} pre_texts[i].innerHTML = result;}</script></body></html> | ||||||
|  |  | ||||||
|  | @ -8,10 +8,10 @@ | ||||||
| 
 | 
 | ||||||
| <p> | <p> | ||||||
|   Jack puts the soldering iron back into its holder and admires his |   Jack puts the soldering iron back into its holder and admires his | ||||||
|   creation. This hack job of bodge wires and not quite right replacement |   creation. This hack job of bodge wires and not quite the right | ||||||
|   components, held together by what remains of the corroded motor driver |   replacement components, held together by what remains of the corroded | ||||||
|   board is truly beautiful in the ugliest way possible – in his eyes |   motor driver board is truly beautiful in the ugliest way possible – | ||||||
|   at least. He picks it up and ispects the other side.<br /> |   in his eyes at least. He picks it up and ispects the other side. | ||||||
|   <span class="quote non-speech">Probably good enough.</span><br /> |   <span class="quote non-speech">Probably good enough.</span><br /> | ||||||
|   <span class="comment">A note on the spelling of "bodge": |   <span class="comment">A note on the spelling of "bodge": | ||||||
|   You may or may not have noticed that I tend to stick to American English. |   You may or may not have noticed that I tend to stick to American English. | ||||||
|  | @ -22,44 +22,8 @@ | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
|   Jack gets up and walks over to the bunker door. He mounts the board to |   Jack gets up and walks over to the bunker door. He mounts the board to | ||||||
|   the motor – using only two of the screws – and begins |   the motor – using only two of the screws – and attaches the | ||||||
|   connecting the wires. The moment the power cable comes into contact with |   wires. | ||||||
|   the board, the motor starts making a harsh buzzing sound. He drops the |  | ||||||
|   cable and it stops.<br /> |  | ||||||
|   <span class="quote speech">So that's why this was burnt out.</span> |  | ||||||
|   <br /> |  | ||||||
|   He fetches a multimeter and pokes around the board and the mess of wires. |  | ||||||
|   One of the control wires is stuck on. |  | ||||||
| </p> |  | ||||||
| <p> |  | ||||||
|   After a bit of fiddling with the electronics under the door controls, |  | ||||||
|   he gives up and removes all the control wires. Then, he bolts the cables |  | ||||||
|   for power and ground to their lugs and connects another wire to the power |  | ||||||
|   cable. He touches it to one of the contacts. There's that buzzing |  | ||||||
|   again. He touches it to the next one, The motor starts spinning and the |  | ||||||
|   bunker door begins to move. It squeaks and scratches as it slowly |  | ||||||
|   retracts into the ceiling. |  | ||||||
| </p> |  | ||||||
| <p class="comment"> |  | ||||||
|   Lay of the land from a neutral perspective:<br /> |  | ||||||
|   The bunker sits about a third up the side of a small valley with |  | ||||||
|   a small river flowing in the middle. The bunker door faces north, down |  | ||||||
|   into the valley. The valley opens up and gets larger to the west and |  | ||||||
|   gets narrower/smaller and ends to the south-east. |  | ||||||
|   In front of the bunker is a small flat area that is overgrown with |  | ||||||
|   bushes. The flat area connects to a road coming from around the |  | ||||||
|   mountain to the south-west and going a bit past the bunker to the east, |  | ||||||
|   where it then takes a turn and crosses over a bridge to the other side. |  | ||||||
|   From there, it follows the valley back to the west and disappears |  | ||||||
|   around a mountain to the north-west. |  | ||||||
|   In the next valley over to the north is the city of Ivydale. |  | ||||||
|   The land gets flatter from there to the north-west, the location of |  | ||||||
|   Ivydale's larger sister city Sentinel Shores. |  | ||||||
| </p> |  | ||||||
| <p> |  | ||||||
|   Jack takes the wire off the contact and leaves it dangling. He steps |  | ||||||
|   forward and looks outside. The area in front of the bunker is completely |  | ||||||
|   overgrown with large bushes. He pushes the leaves aside and  |  | ||||||
| </p> | </p> | ||||||
| 
 | 
 | ||||||
| <p class="copyright">Copyright © 2023-2025 Jan Danielzick (aka. BodgeMaster) – All rights reserved.</p><script>let spans = ["<span class=\"paper green\">", "<span>"]; let pre_texts = document.getElementsByTagName("pre"); for (let i = 0; i < pre_texts.length; i++) {if (pre_texts[i].className != "paper") continue; let lines = pre_texts[i].innerHTML.split("\n"); let result = ""; for (let j = 0; j < lines.length; j++) {if (lines[j].length >= 80) result = result + spans[j%2] + lines[j] + "</span>\n"; else result = result + spans[j%2] + lines[j] + " ".repeat(80-lines[j].length) + "</span>\n";} pre_texts[i].innerHTML = result;}</script></body></html> | <p class="copyright">Copyright © 2023-2025 Jan Danielzick (aka. BodgeMaster) – All rights reserved.</p><script>let spans = ["<span class=\"paper green\">", "<span>"]; let pre_texts = document.getElementsByTagName("pre"); for (let i = 0; i < pre_texts.length; i++) {if (pre_texts[i].className != "paper") continue; let lines = pre_texts[i].innerHTML.split("\n"); let result = ""; for (let j = 0; j < lines.length; j++) {if (lines[j].length >= 80) result = result + spans[j%2] + lines[j] + "</span>\n"; else result = result + spans[j%2] + lines[j] + " ".repeat(80-lines[j].length) + "</span>\n";} pre_texts[i].innerHTML = result;}</script></body></html> | ||||||
|  |  | ||||||
|  | @ -86,7 +86,6 @@ | ||||||
|   the place, some even out of the buildings' walls. Dora runs up |   the place, some even out of the buildings' walls. Dora runs up | ||||||
|   to one of the bushes and barks at it. A young fox jumps out and runs |   to one of the bushes and barks at it. A young fox jumps out and runs | ||||||
|   away.<br /> |   away.<br /> | ||||||
|   James calls her back: |  | ||||||
|   <span class="quote speech">Dora, c'mere!</span> |   <span class="quote speech">Dora, c'mere!</span> | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
|  |  | ||||||
|  | @ -133,13 +133,13 @@ | ||||||
|   and Jack. <span class="quote speech">Follow me.</span> |   and Jack. <span class="quote speech">Follow me.</span> | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
|   Mary says: <span class="quote speech">The closest access hole is right |   Mary says: <span class="quote speech">The closest access point is right | ||||||
|   there, behind the store.</span><br /> |   there, behind the store.</span><br /> | ||||||
|   They walk around it and onto a field of <span class="comment">withering? |   They walk around it and onto a field of <span class="comment">withering? | ||||||
|   </span> plants. A large, partially buried pipe with just the top exposed |   </span> plants. A large, partially buried pipe with just the top exposed | ||||||
|   goes through it with an access hatch roughly in the center of the field. |   goes through it with an access hatch roughly in the center of the field. | ||||||
|   Right next to the hatch is a <span class="comment">Gestell?</span> with |   Right next to the hatch is a <span class="comment">Gestell?</span> with | ||||||
|   a boom to lower a large bucket down into it.<br /> |   a boom to lower a large bucket into the access hatch.<br /> | ||||||
|   Jack asks: <span class="quote speech">Is it all like this, buried pipes |   Jack asks: <span class="quote speech">Is it all like this, buried pipes | ||||||
|   going to fields?</span><br /> |   going to fields?</span><br /> | ||||||
|   <span class="quote speech">Mostly. In the greenhouses, it's just |   <span class="quote speech">Mostly. In the greenhouses, it's just | ||||||
|  | @ -150,12 +150,28 @@ | ||||||
|   connects to the inlet. It's a bit of a walk but I can show |   connects to the inlet. It's a bit of a walk but I can show | ||||||
|   you.</span><br /> |   you.</span><br /> | ||||||
|   She gestures for them to follow but Jack stops her:<br /> |   She gestures for them to follow but Jack stops her:<br /> | ||||||
|   <span class="quote speech">Wait, we can drive there.</span><br /> |   <span class="quote speech">Wait, we can take the truck.</span><br /> | ||||||
|   <span class="quote speech">That's <i>your</i> car? Heck yeah!</span> |   <span class="quote speech">That's <i>your</i> car?</span><br /> | ||||||
|  |   Her sudden excitement seems to take Jack by surprise.<br /> | ||||||
|  |   <span class="quote speech">Uhh... yeah.</span><br /> | ||||||
|  |   <span class="quote speech">That's so cool! I've only ever seen | ||||||
|  |   the broken ones by the side of the road. We gonna drive there?</span> | ||||||
|   <br /> |   <br /> | ||||||
|   <span class="quote speech">Uhh... yes.</span><br /> |   <span class="quote speech">If you show the way.</span><br /> | ||||||
|   He seems to be taken aback by her sudden excitement.<br /> |   <span class="quote speech">Heck yeah!</span> | ||||||
|   <span class="comment">Missing: explanation, they go to car, Mary sits in | </p> | ||||||
|   the front with Jack</span> | <p class="comment"> | ||||||
|  |   Not sure of this should be the end of a chapter or if I should continue | ||||||
|  |   here.<br /> | ||||||
|  |   One thing that has happened is that this chapter, while written from | ||||||
|  |   Annie's perspective, has her be a passive bystander without even | ||||||
|  |   having any introspection for most of it. This needs to be adressed | ||||||
|  |   somehow. | ||||||
|  | </p> | ||||||
|  | <p class="comment"> | ||||||
|  |   Description of the inlet: Two <translate: Stauwehre>, a large one | ||||||
|  |   and a small one. The small one can be adjusted with large screws. | ||||||
|  |   Behind the small one is a pit with a grate covering the tunnel entrance. | ||||||
|  |   They see a railway bridge not too far upstream. | ||||||
| </p> | </p> | ||||||
| <p class="copyright">Copyright © 2023-2025 Jan Danielzick (aka. BodgeMaster) – All rights reserved.</p><script>let spans = ["<span class=\"paper green\">", "<span>"]; let pre_texts = document.getElementsByTagName("pre"); for (let i = 0; i < pre_texts.length; i++) {if (pre_texts[i].className != "paper") continue; let lines = pre_texts[i].innerHTML.split("\n"); let result = ""; for (let j = 0; j < lines.length; j++) {if (lines[j].length >= 80) result = result + spans[j%2] + lines[j] + "</span>\n"; else result = result + spans[j%2] + lines[j] + " ".repeat(80-lines[j].length) + "</span>\n";} pre_texts[i].innerHTML = result;}</script></body></html> | <p class="copyright">Copyright © 2023-2025 Jan Danielzick (aka. BodgeMaster) – All rights reserved.</p><script>let spans = ["<span class=\"paper green\">", "<span>"]; let pre_texts = document.getElementsByTagName("pre"); for (let i = 0; i < pre_texts.length; i++) {if (pre_texts[i].className != "paper") continue; let lines = pre_texts[i].innerHTML.split("\n"); let result = ""; for (let j = 0; j < lines.length; j++) {if (lines[j].length >= 80) result = result + spans[j%2] + lines[j] + "</span>\n"; else result = result + spans[j%2] + lines[j] + " ".repeat(80-lines[j].length) + "</span>\n";} pre_texts[i].innerHTML = result;}</script></body></html> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue