|
|
DataMuseum.dkPresents historical artifacts from the history of: Bogika Butler |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Bogika Butler Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 1664 (0x680)
Types: TextFile
Names: »PRGNOTES.TXT«
└─⟦08e5746f0⟧ Bits:30009789/_.ft.Ibm2.50007359.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »PRGNOTES.TXT«
Program documentation notes.
1) Accessing data structures at fixed addresses.
Accessing device interface registers of peripheral controllers such
as that of the test output printer involves absolute adressing. This is
due to the device controllers being hard wired into fixed positions in the
physical memory map and the cpu not being able to access them through the
virtual addressing mechanism. Declaring the device registers as ordinary
pascal variables would not guarantee a correct address mapping and
consequently other meassures must be taken.
One solution might be calling an assembler subroutine (like peek or
poke) stating the absolute address as a parameter but this involves run
time overhead both in terms of time and stack space.
An other solution (the one chosen) is to declare the device registers
as external references (imported var) and to import them from a separately
compiled assembler routine exporting them fixed to their proper position.
2) Preinitialized data structures.
Several data structures should be initialized prior to the boot loading
of the kernel and related OS modules. Exaples of such data are the initial
Program Counter value, the initial pointer to the Mem_List, and the initial
Mem_List.
This problem is solved in a way similar to the one used for device
register accessing. The data structures in question are all declared as
"imported var" and should be exported by a suitable assembler routine
initializing their values and fixing them in the address space when
necessary.
«eof»