*** empty log message ***
[h316.git] / programs / fortran / src / f4$dum.asm
CommitLineData
6ad6bd16 1* F4$DUM - DEC 10 2006 - VERSION 1
2*
3* FORTRAN COMPILER DUMMY DEVICE DRIVERS AND DATA POOL INITIALISATION
4*
5* THIS MODULE MUST BE THE LAST ONE BEING LINKED TO THE F4 COMPILER.
6* THESE ROUTINES ARE CALLED BY F4-IOS AND THE INITIALISATION ROUTINE
7* IS OVERWRITTEN BY THE DATA POOL AFTER INITIALISATION.
8*
9* HONEYWELL X16 16 BIT COMPUTER SOFTWARE
10*
11* PROGRAM LENGTH: 48 WORDS
12*
13* THIS SOURCE IS RECREATED FROM THE EXISTING SLST FILE:
14* - SLST-FRTN.IMG (WHICH ORIGINATES FROM HONEYWELL)
15*
16* THE SOURCE IS RECREATED BY: THEO ENGEL (THEO.ENGEL@HETNET.NL)
17*
18 SUBR F4$INI,SIZE
19 SUBR F4$DUM,DUM
20 SUBR O$LH
21 SUBR O$ME
22*
23 SUBR I$AA
24 SUBR I$CA
25 SUBR I$PA
26 SUBR I$MA
27 SUBR C$6TO8,C$68
28*
29 SUBR O$PB
30 SUBR O$AB
31 SUBR O$MB
32*
33 SUBR O$LA
34 SUBR C$8TO6,C$86
35 SUBR O$MA
36*
37 REL
38*
39DUM EQU *
40 DAC *-*
41 JMP* *-1
42*
43O$LH EQU *
44O$ME EQU *
45 DAC *-*
46 IRS *-1
47 JMP* *-2
48*
49* SOURCE INPUT
50I$AA EQU *
51I$CA EQU *
52I$PA EQU *
53I$MA EQU *
54C$68 EQU *
55 DAC *-* DUMMY SOURCE INPUT
56 JMP* SI
57*
58* OBJECT OUTPUT
59O$PB EQU *
60O$AB EQU *
61O$MB EQU *
62O$MS EQU *
63 DAC *-* DUMMY OBJECT OUTPUT
64 JMP* OO
65*
66* LISTING OUTPUT
67O$LA EQU *
68C$86 EQU *
69O$MA EQU *
70 DAC *-* DUMMY LISTING OUTPUT
71 JMP* LL
72*
73* JUMP TABLE TO APPROPRIATE DUMMY DRIVER IN F4-IOS
74SI XAC F4$DUI POINTER TO DUMMY SOURCE INPUT DEVICE DRIVER
75OO XAC F4$DUO POINTER TO DUMMY OBJECT OUTPUT DEVICE DRIVER
76LL XAC F4$DUS POINTER TO DUMMY LISTING OUTPUT DEVICE DRIVER
77*
78* PURPOSE OF INI ROUTINE IS TWOFOLD:
79* - INITIALIZE THE MEMORY BOUNDARIES BEING USED BY THE F4 COMPILER CODE
80* AND I/O DRIVERS TO DETERMINE THE SPACE FOR THE DATA POOL
81* - INITIALIZE AND LINK THE DATA POOL TO THE F4 COMPILER VIA SECTOR 0
82*
83DP EQU * START OF DATA POOL
84*
85SIZE DAC *-*
86 LDA SIZE GET RETURN ADDRESS
87 SUB N1 MINUS 1
88 STA SIZE = CALLING ADDRESS
89 LDA NOP
90 STA* SIZE REPLACE CALL BY NOP
91NEXT LDA MTOP MEMORY BOUNDARY
92 SUB CTOP MINUS CODE LENGTH
93 SUB O103 ='103
94 STA LO SAVE DATAPOOL SIZE
95 LDA* MTOP CONTENT MEM BOUNDARY
96 IAB => B = CONTENT MEM BOUNDARY
97 LDA PAT PATTERN
98 STA* MTOP STORE PATTERN
99 LDA* MTOP AND TRY TO GET IT BACK
100 SNZ
101 JMP* SIZE MEMORY SIZE = MTOP
102 IAB
103 STA* MTOP RESTORE CONTENT MEM BOUNDARY
104 LDA MTOP
105 ADD M4K INCREASE MEM BOUNDARY WITH 4K
106 STA MTOP
107 ERA UPP 16K?/20K?
108 SZE
109 JMP NEXT NO
110*
111* THE ADAPTION PROCESS STOPS HERE WHEN MTOP = 16K
112* THE DATA POOL SIZE (LO) IS ADAPTED THEN FOR THE MTOP = 12K
113* FOR A 16K MACHINE THE UPPER 4K IS NOT USED FOR THE DATAPOOL.
114* TO USE THAT UPPER 4K, THE VALUE OF 'UPP' HAS TO CHANCE TO '50000
115*
116 JMP* SIZE YES; STOP IF MTOP = UPP
117*
118* WORKSPACE
119*
120MTOP OCT 20000 MINIMUM MEMORY TOP (8K INIT)
121NOP NOP NOP OPERATION
122CTOP DAC DP CODE TOP
123UPP OCT 40000 16K (20K => '50000)
124M4K OCT 10000 4K
125PAT OCT 12525 MEMORY PATTREN
126O103 OCT 103 ='103
127N1 OCT 1
128*
129*
130* THE FOLLOWING TABLE LINKS THE DATA POOL VIA SECTOR 0 TO THE F4 COMPILER
131*
132*
133 ABS
134 ORG '100
135 DAC DP-4,1 (100)
136 DAC DP-3,1 (101)
137 DAC DP-2,1 (102)
138 DAC DP-1,1 (103)
139 DAC DP,1 (104)
140 DAC DP+1,1 (105)
141 DAC DP+2,1 (106)
142 DAC DP+3,1 (107)
143 DAC DP+4,1 (110)
144 DAC DP+5,1 (111)
145 DAC DP+6,1 (112)
146LO DAC DP+7 (113) DATA POOL SIZE
147*
148 END