9 comments

  • jhallenworld26 minutes ago
    You should support symbols... For example, the monitor on my 6800 &#x2F; 6809 Exorciser simulator has this (the &quot;Offset at...&quot; is printed when it fixes forward references):<p><pre><code> ~&#x2F;exorsim$ exor -d % a 1000 1000: start bra skip 1002: nop 1003: nop 1004: skip ldx #10 Offset at 1001 set to 02 1007: loop dex 1008: nop 1009: bne loop 100b: rts 100c: % sy 1007 loop 1004 skip 1000 start % u 1000 1000: 20 02 BRA $1004 1002: 01 NOP 1003: 01 NOP 1004: CE 00 0A LDX #$000A 1007: 09 DEX 1008: 01 NOP 1009: 26 FC BNE $1007 100B: 39 RTS </code></pre> What would be even better: &quot;a&quot; brings up a built-in mini-editor. When you exit, the code is assembled.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;jhallen&#x2F;exorsim" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jhallen&#x2F;exorsim</a>
  • flyinghamster4 hours ago
    The one thing I lamented about the Apple II Plus (vs. the original with Integer BASIC) was that to make room for autostart, they had to rip out the mini-assembler in the Monitor ROM. That was the closest thing I ever saw to an assembly-language REPL before this. At least they were able to keep the disassembler.
    • EvanAnderson3 hours ago
      I remember being so confused, as a 10 y&#x2F;o kid, trying to follow examples from an Apple II-era book on my public library&#x27;s Apple IIe computers. I didn&#x27;t understand why I couldn&#x27;t get the mini assembler to work. The idea that features would be removed on future machines simply didn&#x27;t occur to me. I guess I really didn&#x27;t even understand that the IIe was a different machine than what the book was written for since most everything else worked as-expected.
      • kevin_thibedeau1 hour ago
        The mini-assembler was still available from Integer BASIC on II+ and IIe. It returned to ROM for later IIe models.
    • boomlinde3 hours ago
      It&#x27;s common in the C64 world to use freezer cartridges that allow you to interrupt normal operation and invoke a monitor program. These typically include rudimentary assemblers and disassemblers as well. Fun and useful for patching and reverse engineering!
      • boomlinde2 hours ago
        Btw, I&#x27;ve only had a rough idea of how these are actually implemented, non-maskable interrupt something-something, and never knew how they make sure that the interrupt vector points to some persistent routine that can invoke the monitor. I found this great article explaining at least how The Final Cartridge 3 does it (in the first two sections): <a href="https:&#x2F;&#x2F;www.pagetable.com&#x2F;282" rel="nofollow">https:&#x2F;&#x2F;www.pagetable.com&#x2F;282</a>
    • abecedarius3 hours ago
      I felt the same way.<p>There was another downside, that the Applesoft BASIC license gave Microsoft a hostage which they later used to kill <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;MacBASIC" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;MacBASIC</a>. Hard to tell how much it mattered that the Mac came with no user programmability, which had been expected for PCs till then.
      • Gracana1 hour ago
        Wow, somehow I didn&#x27;t know about this. Now I&#x27;m angry, bundling an official Macintosh BASIC on every computer would have been huuuge for young-me.
    • ErroneousBosh33 minutes ago
      The BBC Micro and the Atom that came before it had an assembler built into BASIC. Just think, in the early 80s you could do inline assembly if your BASIC code wasn&#x27;t fast enough...
  • jottinger4 hours ago
    The source code for this is apparently 8 years old: <a href="https:&#x2F;&#x2F;github.com&#x2F;abagames&#x2F;z80-repl" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;abagames&#x2F;z80-repl</a><p>With that said, I love the idea.
    • wkjagt4 hours ago
      That makes me love it even more
  • networked4 hours ago
    Cool idea! The REPL needs to handle whitespace after an instruction with no operands:<p><pre><code> &gt; ld c,20h 0E 20 (7 cycles) &gt; ld c,20h [&lt;-- trailing space here] 0E 20 (7 cycles) &gt; nop 00 (4 cycles) &gt; nop [&lt;-- trailing space here] unknown instruction: nop </code></pre> I also wish I could select from the completion list with Tab without typing more of the instruction, fish-style. I.e., you press Tab to go through completion 1, completion 2, ..., completion N, completion 1 again with Enter to confirm your pick.
  • torutofu4 hours ago
    the fun part is how fast you can get back into Z80 muscle memory once the repl is giving you immediate feedback
  • j4cobgarby4 hours ago
    Really nice! Would be fun if there were a few examples that could be loaded into memory
  • corbinvachal1 hour ago
    [flagged]
  • Marbleferry8154 hours ago
    [dead]