* CAS INITIALISE initialises the Cassette Manager.
* MC RESET PRINTER standardises the printer system.
* SCR INITIALISE initialises the Screen Pack.
The details of these routines will be examined in the appropriate place, but it can be said that everything - or nearly everything - is brought to a standard state. This can be annoying to someone who likes to set up non-standard conditions, but it has the great advantage that every program starts on the same basis.
Interrupt is now enabled, and the routine defined in DE on entry is called. This may be the initial title display, or a 'load failed' report, as defined below. The main program then pops BG and HL and jumps to 0077, which is the actual entry routine. This key routine is not accessible via the Jumpblock, which might be useful, because the system concept requires a fulll reset before a program is entered.
If HL holds 0000, the default entry to C006 in ROM 0 is executed, but otherwise the ROM is defined in A and the entry address in HL.
{| class="wikitable"
|0077 || If HL=0000, HL=C006, A=0 || Default Values.
|-
| || (B1A8)=A || ROM number.
|-
| || (B1AB)=A || Part of qualifier.
|-
| || (B1A9/A)=HL || Qualifier address.
|-
| || HL=ABFF || Initial HIMEM.
|-
| || DE=0040 || Initial LOMEM.
|-
| || BC=B0FF || Top of usable memory.
|+ A FAR CALL DF A9 Bl enters the specified routine. On return, a full reset from 0000 is executed.
|}
This completes the MG START PROGRAM routine, apart from the routines called near the end:
065C This calls 0712, which reads port B, picking up bits 1-3, which are determined by links. According to the links set, the display announces that the name of the machine is one of the following:
* Arnold
* Amstrad
* Orion
* Schneider
* Awa
* Solovox
* Saisho
* Triumph
* Isp
The actual output to the display is handled by 06EB, which is also called with HL=066D to output the rest of the title, and finally with HL=0693 to complete the display.
06E8 HL=@6F4, pointing to '<code>***PROGRAM LOAD FAILED***</code>'
== Scanned pages ==