TinyC, port to HP

From: Dwight K. Elvey <dwight.elvey_at_amd.com>
Date: Fri Oct 17 17:11:05 2003

Hi Bob
 The boot loader for my Nicolet is similar in that
it over writes itself. It fits into about 15 words
so it is quite easy to toggle in. They even took
advantage of the 'don't care' fields in some instructions
to take advantage of minimizing switch changes. Even
the memory location is chosen because it is has bits
that fit well in adjacent instructions.
 It is quite remarkable that they can squeeze so much
into so few instructions. I have written a boot loader
that I use to transfer data to and from an H89 ( Heathkit )
computer that takes about 52 bytes. Most is com port
initializing. It was nice when the hardware was jumper
configured. The loader would be much smaller.
 The loader is such that I can send it by email and someone
can bring a H89 up from scratch. They just need a couple
of blank 10 sectored disks and my code.
Later
Dwight

>From: "Bob Shannon" <bshannon_at_tiac.net>
>
>Oh no, many HP boot loaders use self modifying code.
>
>Take a look at the source for the H 264X terminal boot rom, it alters an
>instruction by
>using it as the target for an increment-and-skip-on-zero instuction. HP
>took great pains
>to squeeze some boot loaders into only 64 words. As a result you have
>to reload these
>loaders from ROM each time they run.
>
>ben franchuk wrote:
>
>> Tony Duell wrote:
>>
>>>>> C requires a stack pointer and a index register.Offhand I don't
>>>>> think your hardware supports that.
>>>>
>>>>
>>>> Certain HP2xxx do have index registers (the ones with the EIG
>>>> instructions
>>>> IIRC), but guess how FORTRAN compilers handle indexed array accesses
>>>
>>>
>>>
>>> Err, self-modifying code? That was the traditional way to do this
>>> sort of thing.
>>
>>
>> I think the PC is noted more more self-modifying code than the old
>> machines. The only real self modifying code (on your typical early
>> machine) is the fact the return address is placed in the first word
>> of subroutine code.
>>
>>> -tony
>>>
>>
>>
>>
>>
>>
>
>
>
Received on Fri Oct 17 2003 - 17:11:05 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:36:23 BST