996
|
1 PLEASE NOTE: IACC FILE TO GENERATE A BYTECODE ASSEMBLER
|
|
2
|
|
3 Copyright (c) 2006-2008 Claudio Calvelli, all rights reserved.
|
|
4
|
|
5 CLC-INTERCAL is copyrighted software. However, permission to use, modify,
|
|
6 and distribute it is granted provided that the conditions set out in the
|
|
7 licence agreement are met. See files README and COPYING in the distribution.
|
|
8
|
|
9 PERVERSION "CLC-INTERCAL INTERCAL/Include/asm.iacc 1.-94.-2"
|
|
10
|
|
11 DO %BA <- #2
|
|
12 DO %RT <- ?TRADITIONAL
|
|
13 DO %WT <- #0
|
|
14 DO %CR <- ?ASCII
|
|
15 DO %CW <- ?ASCII
|
|
16 DO ?TYPE <- ?ASSEMBLER
|
|
17
|
|
18 DO CREATE _2 ?BYTECODE ?SPECIAL_REGISTER=* AS ?SPECIAL_REGISTER
|
|
19 #1
|
|
20 DO CREATE _2 ?BYTECODE ,#35, ?CONSTANT=1 AS ?CONSTANT #1
|
|
21
|
|
22 DO CREATE _2 ?PROGRAM ?MAYBE_LABEL ?STATEMENT AS STS + * +
|
|
23 ?MAYBE_LABEL #1 + ?STATEMENT #1
|
|
24
|
|
25 DO CREATE _2 ?END_JUNK ,DO, AS ,,
|
|
26 DO CREATE _2 ?END_JUNK ,PLEASE, AS ,,
|
|
27 DO CREATE _2 ?END_JUNK ?LABEL AS ,,
|
|
28 DO CREATE _2 ?END_JUNK ,#91, AS ,,
|
|
29
|
|
30 DO CREATE _2 ?DO_PLEASE ,DO, AS ,,
|
|
31 DO CREATE _2 ?DO_PLEASE ,PLEASE, AS ,,
|
|
32 DO CREATE _2 ?DO_PLEASE ,PLEASE, ,DO, AS ,,
|
|
33
|
|
34 DO CREATE _2 ?STATEMENT ,#91, ?BC_LIST ,#93, AS ?BC_LIST #1
|
|
35 DO CREATE _2 ?STATEMENT ?DO_PLEASE ?NOT ?JUNK AS NOT
|
|
36
|
|
37 DO CREATE _2 ?NOT ,NOT, AS ,,
|
|
38 DO CREATE _2 ?NOT ,N, ,#39, ,T, AS ,,
|
|
39 DO CREATE _2 ?NOT ,#172, AS ,,
|
|
40
|
|
41 DO CREATE _2 ?MAYBE_LABEL ,, AS ,,
|
|
42 DO CREATE _2 ?MAYBE_LABEL ,#40, ?CONSTANT ,#41, AS LAB +
|
|
43 ?CONSTANT #1
|
|
44
|
|
45 DO CREATE _2 ?BC_LIST ,, AS ,,
|
|
46 DO CREATE _2 ?BC_LIST ?BYTECODE=* ?BC_LIST=* AS ?BYTECODE #1 +
|
|
47 ?BC_LIST #1
|
|
48 DO CREATE _2 ?BC_LIST ,#91, ?INNER_LIST=* ,#93, ?BC_LIST AS
|
|
49 !INNER_LIST #1 + ?INNER_LIST #1 + ?BC_LIST #1
|
|
50 DO CREATE _2 ?BC_LIST ,#123, ?BC_LIST=* ,#125, ?BC_LIST AS
|
|
51 !BC_LIST #1 + ?BC_LIST #1 + ?BC_LIST #2
|
|
52
|
|
53 DO CREATE _2 ?INNER_LIST ?BC_LIST=1 AS ?BC_LIST #1
|
|
54 DO CREATE _2 ?INNER_LIST ?BC_LIST=1 ,#43, ?INNER_LIST=* AS
|
|
55 ?BC_LIST #1 + ?INNER_LIST #1
|
|
56
|
|
57
|
|
58 PLEASE NOTE: NAMES OF "%" REGISTERS
|
|
59 DO CREATE _2 ?SPECIAL_REGISTER ,#37, ?REG69=* AS ?REG69 #1
|
|
60 DO CREATE _2 ?REG69 ,WT,=2 AS %WT
|
|
61 DO CREATE _2 ?REG69 ,AR,=2 AS %AR
|
|
62 DO CREATE _2 ?REG69 ,AW,=2 AS %AW
|
|
63 DO CREATE _2 ?REG69 ,JS,=2 AS %JS
|
|
64 DO CREATE _2 ?REG69 ,SS,=2 AS %SS
|
|
65 DO CREATE _2 ?REG69 ,PS,=2 AS %PS
|
|
66 DO CREATE _2 ?REG69 ,FS,=2 AS %FS
|
|
67 DO CREATE _2 ?REG69 ,ES,=2 AS %ES
|
|
68 DO CREATE _2 ?REG69 ,IS,=2 AS %IS
|
|
69 DO CREATE _2 ?REG69 ,DM,=2 AS %DM
|
|
70 DO CREATE _2 ?REG69 ,SP,=2 AS %SP
|
|
71 DO CREATE _2 ?REG69 ,RT,=2 AS %RT
|
|
72 DO CREATE _2 ?REG69 ,TH,=2 AS %TH
|
|
73 DO CREATE _2 ?REG69 ,RM,=2 AS %RM
|
|
74 DO CREATE _2 ?REG69 ,IO,=2 AS %IO
|
|
75 DO CREATE _2 ?REG69 ,BA,=2 AS %BA
|
|
76 DO CREATE _2 ?REG69 ,CF,=2 AS %CF
|
|
77 DO CREATE _2 ?REG69 ,CR,=2 AS %CR
|
|
78 DO CREATE _2 ?REG69 ,CW,=2 AS %CW
|
|
79 DO CREATE _2 ?REG69 ,OS,=2 AS %OS
|
|
80 DO CREATE _2 ?REG69 ,TM,=2 AS %TM
|
|
81
|
|
82 PLEASE NOTE: NAMES OF "@" REGISTERS
|
|
83 DO CREATE _2 ?SPECIAL_REGISTER ,#64, ?REG68=* AS ?REG68 #1
|
|
84 DO CREATE _2 ?REG68 ,OR,=2 AS @OR
|
|
85 DO CREATE _2 ?REG68 ,OWFH,=2 AS @OWFH
|
|
86 DO CREATE _2 ?REG68 ,ORFH,=2 AS @ORFH
|
|
87 DO CREATE _2 ?REG68 ,OSFH,=2 AS @OSFH
|
|
88 DO CREATE _2 ?REG68 ,SNFH,=2 AS @SNFH
|
|
89 DO CREATE _2 ?REG68 ,TRFH,=2 AS @TRFH
|
|
90
|
|
91 PLEASE NOTE: NAMES OF "^" REGISTERS
|
|
92 DO CREATE _2 ?SPECIAL_REGISTER ,#94, ?REG70=* AS ?REG70 #1
|
|
93 DO CREATE _2 ?REG70 ,AV,=2 AS ^AV
|
|
94 DO CREATE _2 ?REG70 ,EV,=2 AS ^EV
|
|
95
|
|
96 PLEASE NOTE: "BYTECODE" INSTRUCTION NAMES
|
|
97 DO CREATE _2 ?BYTECODE ,ABG,=1 AS ABG
|
|
98 DO CREATE _2 ?BYTECODE ,ABL,=1 AS ABL
|
|
99 DO CREATE _2 ?BYTECODE ,AWC,=1 AS AWC
|
|
100 DO CREATE _2 ?BYTECODE ,BAW,=1 AS BAW
|
|
101 DO CREATE _2 ?BYTECODE ,BBT,=1 AS BBT
|
|
102 DO CREATE _2 ?BYTECODE ,BSW,=1 AS BSW
|
|
103 DO CREATE _2 ?BYTECODE ,BUG,=1 AS BUG
|
|
104 DO CREATE _2 ?BYTECODE ,BUT,=1 AS BUT
|
|
105 DO CREATE _2 ?BYTECODE ,BWC,=1 AS BWC
|
|
106 DO CREATE _2 ?BYTECODE ,CFG,=1 AS CFG
|
|
107 DO CREATE _2 ?BYTECODE ,CFL,=1 AS CFL
|
|
108 DO CREATE _2 ?BYTECODE ,CHO,=1 AS CHO
|
|
109 DO CREATE _2 ?BYTECODE ,CON,=1 AS CON
|
|
110 DO CREATE _2 ?BYTECODE ,CRE,=1 AS CRE
|
|
111 DO CREATE _2 ?BYTECODE ,CSE,=1 AS CSE
|
|
112 DO CREATE _2 ?BYTECODE ,CWB,=1 AS CWB
|
|
113 DO CREATE _2 ?BYTECODE ,DES,=1 AS DES
|
|
114 DO CREATE _2 ?BYTECODE ,DOS,=1 AS DOS
|
|
115 DO CREATE _2 ?BYTECODE ,DSX,=1 AS DSX
|
|
116 DO CREATE _2 ?BYTECODE ,EBC,=1 AS EBC
|
|
117 DO CREATE _2 ?BYTECODE ,ECB,=1 AS ECB
|
|
118 DO CREATE _2 ?BYTECODE ,ENR,=1 AS ENR
|
|
119 DO CREATE _2 ?BYTECODE ,ENS,=1 AS ENS
|
|
120 DO CREATE _2 ?BYTECODE ,FIN,=1 AS FIN
|
|
121 DO CREATE _2 ?BYTECODE ,FLA,=1 AS FLA
|
|
122 DO CREATE _2 ?BYTECODE ,FOR,=1 AS FOR
|
|
123 DO CREATE _2 ?BYTECODE ,FRE,=1 AS FRE
|
|
124 DO CREATE _2 ?BYTECODE ,FRZ,=1 AS FRZ
|
|
125 DO CREATE _2 ?BYTECODE ,GRA,=1 AS GRA
|
|
126 DO CREATE _2 ?BYTECODE ,GUP,=1 AS GUP
|
|
127 DO CREATE _2 ?BYTECODE ,HSN,=1 AS HSN
|
|
128 DO CREATE _2 ?BYTECODE ,HYB,=1 AS HYB
|
|
129 DO CREATE _2 ?BYTECODE ,IGN,=1 AS IGN
|
|
130 DO CREATE _2 ?BYTECODE ,INT,=1 AS INT
|
|
131 DO CREATE _2 ?BYTECODE ,LAB,=1 AS LAB
|
|
132 DO CREATE _2 ?BYTECODE ,LEA,=1 AS LEA
|
|
133 DO CREATE _2 ?BYTECODE ,MKG,=1 AS MKG
|
|
134 DO CREATE _2 ?BYTECODE ,MSP,=1 AS MSP
|
|
135 DO CREATE _2 ?BYTECODE ,MUL,=1 AS MUL
|
|
136 DO CREATE _2 ?BYTECODE ,NOT,=1 AS NOT
|
|
137 DO CREATE _2 ?BYTECODE ,NUM,=1 AS NUM
|
|
138 DO CREATE _2 ?BYTECODE ,NXG,=1 AS NXG
|
|
139 DO CREATE _2 ?BYTECODE ,NXL,=1 AS NXL
|
|
140 DO CREATE _2 ?BYTECODE ,NXT,=1 AS NXT
|
|
141 DO CREATE _2 ?BYTECODE ,OPT,=1 AS OPT
|
|
142 DO CREATE _2 ?BYTECODE ,OSN,=1 AS OSN
|
|
143 DO CREATE _2 ?BYTECODE ,OVM,=1 AS OVM
|
|
144 DO CREATE _2 ?BYTECODE ,OVR,=1 AS OVR
|
|
145 DO CREATE _2 ?BYTECODE ,OWN,=1 AS OWN
|
|
146 DO CREATE _2 ?BYTECODE ,QUA,=1 AS QUA
|
|
147 DO CREATE _2 ?BYTECODE ,REG,=1 AS REG
|
|
148 DO CREATE _2 ?BYTECODE ,REL,=1 AS REL
|
|
149 DO CREATE _2 ?BYTECODE ,REM,=1 AS REM
|
|
150 DO CREATE _2 ?BYTECODE ,RES,=1 AS RES
|
|
151 DO CREATE _2 ?BYTECODE ,RET,=1 AS RET
|
|
152 DO CREATE _2 ?BYTECODE ,RIN,=1 AS RIN
|
|
153 DO CREATE _2 ?BYTECODE ,ROM,=1 AS ROM
|
|
154 DO CREATE _2 ?BYTECODE ,ROR,=1 AS ROR
|
|
155 DO CREATE _2 ?BYTECODE ,ROU,=1 AS ROU
|
|
156 DO CREATE _2 ?BYTECODE ,RSE,=1 AS RSE
|
|
157 DO CREATE _2 ?BYTECODE ,SEL,=1 AS SEL
|
|
158 DO CREATE _2 ?BYTECODE ,SHF,=1 AS SHF
|
|
159 DO CREATE _2 ?BYTECODE ,SMU,=1 AS SMU
|
|
160 DO CREATE _2 ?BYTECODE ,SPL,=1 AS SPL
|
|
161 DO CREATE _2 ?BYTECODE ,SPO,=1 AS SPO
|
|
162 DO CREATE _2 ?BYTECODE ,STA,=1 AS STA
|
|
163 DO CREATE _2 ?BYTECODE ,STE,=1 AS STE
|
|
164 DO CREATE _2 ?BYTECODE ,STO,=1 AS STO
|
|
165 DO CREATE _2 ?BYTECODE ,STR,=1 AS STR
|
|
166 DO CREATE _2 ?BYTECODE ,STS,=1 AS STS
|
|
167 DO CREATE _2 ?BYTECODE ,STU,=1 AS STU
|
|
168 DO CREATE _2 ?BYTECODE ,SUB,=1 AS SUB
|
|
169 DO CREATE _2 ?BYTECODE ,SWA,=1 AS SWA
|
|
170 DO CREATE _2 ?BYTECODE ,SWB,=1 AS SWB
|
|
171 DO CREATE _2 ?BYTECODE ,SYS,=1 AS SYS
|
|
172 DO CREATE _2 ?BYTECODE ,TAI,=1 AS TAI
|
|
173 DO CREATE _2 ?BYTECODE ,TSP,=1 AS TSP
|
|
174 DO CREATE _2 ?BYTECODE ,TYP,=1 AS TYP
|
|
175 DO CREATE _2 ?BYTECODE ,UDV,=1 AS UDV
|
|
176 DO CREATE _2 ?BYTECODE ,UNE,=1 AS UNE
|
|
177 DO CREATE _2 ?BYTECODE ,UNS,=1 AS UNS
|
|
178 DO CREATE _2 ?BYTECODE ,USG,=1 AS USG
|
|
179 DO CREATE _2 ?BYTECODE ,WHP,=1 AS WHP
|
|
180 DO CREATE _2 ?BYTECODE ,WIN,=1 AS WIN
|
|
181
|
|
182 DO GIVE UP
|