Some small changes in configuration_manager output - added (c/f) info.
[h316.git] / programs / fortran / src / f4$dum.asm
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 *
39 DUM EQU *
40 DAC *-*
41 JMP* *-1
42 *
43 O$LH EQU *
44 O$ME EQU *
45 DAC *-*
46 IRS *-1
47 JMP* *-2
48 *
49 * SOURCE INPUT
50 I$AA EQU *
51 I$CA EQU *
52 I$PA EQU *
53 I$MA EQU *
54 C$68 EQU *
55 DAC *-* DUMMY SOURCE INPUT
56 JMP* SI
57 *
58 * OBJECT OUTPUT
59 O$PB EQU *
60 O$AB EQU *
61 O$MB EQU *
62 O$MS EQU *
63 DAC *-* DUMMY OBJECT OUTPUT
64 JMP* OO
65 *
66 * LISTING OUTPUT
67 O$LA EQU *
68 C$86 EQU *
69 O$MA EQU *
70 DAC *-* DUMMY LISTING OUTPUT
71 JMP* LL
72 *
73 * JUMP TABLE TO APPROPRIATE DUMMY DRIVER IN F4-IOS
74 SI XAC F4$DUI POINTER TO DUMMY SOURCE INPUT DEVICE DRIVER
75 OO XAC F4$DUO POINTER TO DUMMY OBJECT OUTPUT DEVICE DRIVER
76 LL 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 *
83 DP EQU * START OF DATA POOL
84 *
85 SIZE 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
91 NEXT 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 *
120 MTOP OCT 20000 MINIMUM MEMORY TOP (8K INIT)
121 NOP NOP NOP OPERATION
122 CTOP DAC DP CODE TOP
123 UPP OCT 40000 16K (20K => '50000)
124 M4K OCT 10000 4K
125 PAT OCT 12525 MEMORY PATTREN
126 O103 OCT 103 ='103
127 N1 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)
146 LO DAC DP+7 (113) DATA POOL SIZE
147 *
148 END