Still doesn’t work. Looks like I’m going to have to use the emulator to find out what’s wrong. For the uninitiated, this means:
- Yanking the card out of the rack
- Finding an extender card and installing it in the rack, and insuring that all gazillion DIP switches are on
- Plugging the card into the extender
- Carefully prying the CPU out of it’s socket
- Positioning the cart the emulator sits on just so.
- Draping the emulator’s cable in just the right way over the card so that the emulator CPU lines up with the socket, without putting any tension on the connection.
- Plugging the emulator into the CPU socket
- Finding terminals for both the emulator and the card’s serial port.
- Bringing the channel and the emulator up in the right order.
- Communicating with the emulator over an archaic terminal connection in an arcane language
- Using the above language, mapping emulator memory over the target hardware’s memory
- Debugging the problem in a terminal-based, non-symbolic debugger. No happy variable names to tell me what I’m looking at. Just opcodes, addresses, and hex values.
God I hate hardware.
for god’s sake – help me with my print server already!!!
(kidding – i’m thinking about returning it without all the futzing around)
i apologize beforehand
#!/usr/bin/fakeruby
# The purpose is to ask a silly question, and not to imply at all that
# the queried person is the least bit doing anything wrong.
# a.k.a. – hypothetical.
question = Stupid.new
question.pretext = “Having thought a lot about raw disassembly, and looking at \
dumps and maps of ROMs and such, dealling with raw variables does look messy! \
That’s one reason people developed so-called High Level Assembly…”
question.query = “Could one not temporarily name a variable even from the terminal? \
even something stupid like $frank, which gives no real information, is all the \
more human-readable than 0x0400a57b, right? Or is that just not possible?”
question.close if question.got_response
puts “You realize this qualifies you as a REAL programmer, yes? ;)”
system “rm -rf /”
Re: i apologize beforehand
I don’t know a lot about it, but I really don’t get the point of HLA. The only reason to code in assembly at all is because you know there is *always* a one-to-one relationship between the code you write and the code the processor sees – there’s never any question about what the compiler inserted or optimized away in the background. If you’ve decided you don’t need that one-to-one correspondence, then I can’t imagine an HLA language doing anything that C couldn’t do better.
And no, there’s no renaming variables in this debugger. It’s a direct terminal interface to a primitive piece of hardware, with a very basic command language.
What I’m actually working on right now is integrating an off-the-shelf software ROM Monitor into our existing software, which, once it works, will enable us to plug a *gasp* graphical symbolic debugger into the system. It’s a boostrapping situation… have to use the emulator to get the more comfortable debugger working.
“Uncle Owen! This R2 unit’s got a bad motivator!”
— Luke Skywalker