[
Index] [
Previous] [
Next]
3.1 Initialisation Part 1
The initalisation code runs before BASIC really begins, and once BASIC has begun the memory that this init code occupies is reclaimed for program storage. It's first job is to do detect what ports the teletype and terminal are hooked in to. Quite how and why this works, I have absolutely no idea. Has anyone got an Altair manual?? After that, code resumes in the second part of initialisation (see next page) where the user is given a chance to specify some configuration options.
Set stack pointer and STACK_TOP to some bytes on from the top of this Initiliasation section.
0D21
211A0F
Init
LXI H,0F1A
0D24
F9
SPHL
0D28
DB01
IN 01
0D2A
0EFF
MVI C,FF
Set return address to ConfigIOcode, which is in the second part of Initialisation.
0D2F
D5
PUSH D
0D30
3AFF0F
LDA 0FFF
0D33
47
MOV B,A
0D34
DBFF
IN FF
0D36
1F
RAR
0D37
DA410D
JC 0D41
0D3A
E60C
ANI 0C
0D3C
CA420D
JZ 0D42
0D3F
0610
MVI B,10
0D41
78
MOV A,B
0D42
328C0D
STA 0D8C
0D45
DBFF
IN FF
0D47
17
RAL
0D48
17
RAL
0D49
0620
MVI B,20
0D4B
1102CA
LXI D,CA02
0D4E
D8
RC
0D4F
17
RAL
0D50
43
MOV B,E
0D51
1D
DCR E
0D52
D8
RC
0D53
17
RAL
0D54
DA6F0D
JC 0D6F
0D57
43
MOV B,E
0D58
1180C2
LXI D,C280
0D5B
17
RAL
0D5C
D0
RNC
0D5D
17
RAL
0D5E
3E03
MVI A,03
0D60
CD8B0D
CALL 0D8B
0D63
3D
DCR A
0D64
8F
ADC A
0D65
87
ADD A
0D66
87
ADD A
0D67
3C
INR A
0D68
CD8B0D
CALL 0D8B
0D6B
37
STC
0D6C
C34B0D
JMP 0D4B
0D6F
AF
XRA A
0D70
CD8B0D
CALL 0D8B
0D73
CD870D
CALL 0D87
0D76
CD870D
CALL 0D87
0D79
4B
MOV C,E
0D7A
2F
CMA
0D7B
CD870D
CALL 0D87
0D7E
3E04
MVI A,04
0D80
35
DCR M
0D81
CD8B0D
CALL 0D8B
0D84
35
DCR M
0D85
35
DCR M
0D86
35
DCR M
0D87
218C0D
LXI H,0D8C
0D8A
34
INR M
0D8B
D300
OUT 00
0D8D
C9
RET
[Index] [Previous] [Next]