OpenCores
URL https://opencores.org/ocsvn/1664/1664/trunk

Subversion Repositories 1664

[/] [1664/] [trunk/] [arci/] [1664/] [dev/] [0.imita.0.1664] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 mrdmkg
;...............................................................................
2
.inclui 0.base.opera.1664
3
.inclui 0.imita.inclui.1664
4
.inclui 0.SO.inclui.1664
5
 
6
.defina SO_pila_desloca {imaje_fini 0x2000 + 0xfff000 &}
7
.defina SO_pila_grandia {1 1024 1 - sinia_grandia * *}
8
 
9
.defina usor_pila_desloca 0
10
.defina usor_pila_grandia {128 1024 *}
11
 
12
.defina usor_esecuta_desloca {1 1024 1024 1024  * * *}
13
.defina usor_esecuta_grandia {8 1024 *}
14
 
15
.defina usor_datos_desloca {2 1024 1024 1024 * * *}
16
 
17
.model x {
18
puia 0
19
puia_ 1
20
puia_ 2
21
ldri 2 %0
22
ldri 1 0x1d2
23
ldm [1] 2
24
bpasi
25
tira 2
26
tira 1
27
tira 0
28
}
29
;===============================================================================
30
:reinisia
31
;===============================================================================
32
ylr [sIP + 0]
33
desloca_relativa eseta_reinisia
34
desloca_relativa eseta_opera_nonlegal 1
35
desloca_relativa eseta_usor 2
36
desloca_relativa 0 3 ;reservada
37
desloca_relativa eseta_sicle_usor_limite 4
38
desloca_relativa eseta_div_zero 5
39
desloca_relativa eseta_bp_usor 6
40
desloca_relativa eseta_bp_vantaje 7
41
desloca_relativa 0 8 ;reservada
42
desloca_relativa eseta_umm_asede 9
43
desloca_relativa eseta_umm_interompe 10
44
 
45
;-------------------------------------------------------------------------------
46
eticeta_opera SO_usor_nova ;usor_esecuta_desloca_real, usor_esecuta_grandia
47
                           ;(0) mapa
48
;-------------------------------------------------------------------------------
49
.defina mapa_grandia {sinia_grandia 3 * 2 * 1 +}
50
.defina sR_MAPA sR1
51
.defina sR_USOR_ESECUTA_DESLOCA_REAL sR2
52
.defina sR_STATE sR3
53
 
54
puia sREVENI
55
entra
56
 
57
str 0 sR0
58
str 1 sR4
59
ldr 0 1
60
yl memoria_asinia_nova
61
str 0 sR_USOR_ESECUTA_DESLOCA_REAL
62
ldr 1 sR0
63
ldr 2 sR4
64
yl memoria_copia
65
 
66
ldri 0 state_usor_grandia
67
yl memoria_asinia_nova
68
str 0 sR_STATE
69
rev opera_rev_state_usor_reteni
70
 
71
ldri 0 mapa_grandia
72
yl memoria_asinia_nova
73
str 0 sR_MAPA
74
 
75
ldri 1 {sPILA sinia_grandia *}
76
plu 1 sR_STATE
77
ldri 0 usor_pila_grandia
78
stm [1]
79
yl memoria_asinia_nova
80
str 0 sT0
81
 
82
ldr 3 sR_MAPA
83
ldri 0 {usor_pila_grandia 1 umm_permete_leje << | 1 umm_permete_scrive << |}
84
stm [3+]
85
ldri 0 usor_pila_desloca
86
stm [3+]
87
ldr 0 sT0
88
stm [3+]
89
 
90
ldri 2 {sinia_grandia 1 -}
91
ldri sT1 {1 umm_permete_leje << | 1 umm_permete_esecuta << |}
92
ldr 0 sR4
93
plu 0 2
94
eor 2 s_n
95
and 0 2
96
or 0 sT1
97
stm [3+]
98
ldri 0 usor_esecuta_desloca
99
stm [3+]
100
ldr 0 sR_USOR_ESECUTA_DESLOCA_REAL
101
stm [3+]
102
 
103
;mapa fini
104
eor 0 0
105
stm [3]
106
 
107
;sinia_inisia_s_
108
ldri 3 {s_1 sinia_grandia *}
109
plu 3 sR_STATE
110
ldr 0 s_1
111
stm [3]
112
ldri 3 {s_n sinia_grandia *}
113
plu 3 sR_STATE
114
ldr 0 s_n
115
stm [3]
116
 
117
ldr 0 sR_STATE
118
rev opera_rev_state_usor_restora
119
eor 0 0
120
sicle_usor
121
eor 0 0
122
rev opera_rev_sicle_usor_limite_intercambia
123
ldr 0 sR_STATE
124
yl memoria_asinia_libri
125
 
126
ldr 0 sR_MAPA
127
departi
128
tira 1
129
str 1 sIP
130
 
131
;===============================================================================
132
eticeta_opera eseta_reinisia
133
;===============================================================================
134
init_sinia_s_
135
ldri sPILA SO_pila_desloca
136
yl memoria_asinia_inisia
137
 
138
stm_ii umm_desloca_interompe_ativa 0
139
stm_ii umm_desloca_interompe_masca -1
140
stm_ii umm_desloca_interompe_capasi 0
141
 
142
ldri_m 1 {usor_0_fini usor_0 -}
143
ldri_m 0 usor_0
144
yl SO_usor_nova
145
 
146
str 0 sT0
147
ldri 1 umm_desloca_usor_mapa
148
ldr 0 sT0
149
stm [1]
150
 
151
ldri sREVENI_ESETA usor_esecuta_desloca
152
rev opera_rev_eseta
153
 
154
;===============================================================================
155
eticeta_opera eseta_opera_nonlegal
156
;===============================================================================
157
rev opera_rev_eseta
158
 
159
;===============================================================================
160
eticeta_opera eseta_usor ;opera, parametre... ; (0) resulta, (sT0) eror
161
;===============================================================================
162
puia sREVENI_ESETA
163
depende_inoria
164
str 0 sR0
165
ldri sT0 SO_eseta_cuantia ;eseta_usor opera masima
166
ldri sR1 state_usor_grandia
167
ldr 0 sPILA
168
sut 0 sR1
169
str 0 sPILA
170
rev opera_rev_state_usor_reteni
171
 
172
str 0 3
173
ldm [3+]
174
cmp 0 sT0
175
c yli eseta_usor_fini
176
str 0 1
177
ldri 0 sinia_bitio_sh_
178
shl 1 0
179
ylr [sIP + 1]
180
desloca_relativa eseta_usor_imita_exit
181
desloca_relativa eseta_usor_memoria_nova 1
182
desloca_relativa eseta_usor_memoria_libri 2
183
desloca_relativa eseta_usor_imita_argc 3
184
desloca_relativa eseta_usor_imita_argv 4
185
desloca_relativa eseta_usor_imita_open 5
186
desloca_relativa eseta_usor_imita_close 6
187
desloca_relativa eseta_usor_imita_read 7
188
desloca_relativa eseta_usor_imita_write 8
189
desloca_relativa eseta_usor_imita_lseek 9
190
desloca_relativa eseta_usor_imita_ftruncate 10
191
desloca_relativa eseta_usor_imita_time 11
192
desloca_relativa eseta_usor_imita_nanosleep 12
193
 
194
;-------------------------------------------------------------------------------
195
:eseta_usor_fini
196
;-------------------------------------------------------------------------------
197
ldr 0 sPILA
198
rev opera_rev_state_usor_restora
199
plu 0 sR1
200
str 0 sPILA
201
tira sREVENI_ESETA
202
rev opera_rev_eseta
203
 
204
;-------------------------------------------------------------------------------
205
:eseta_usor_memoria_nova
206
;-------------------------------------------------------------------------------
207
ldri sR4 1 ;eror: memoria nondisponable (eror alternativa)
208
ldm [3]
209
str 0 sR2
210
yl memoria_asinia_nova
211
cmp 0 s_0
212
z yli eseta_usor_memoria_nova@fini ;eror: memoria nondisponable
213
 
214
@susede
215
str 0 1
216
ldri 3 umm_desloca_usor_mapa
217
str 3 sR3
218
ldr 2 sR2
219
ldm [3]
220
yl memoria_asinia_mapa_sesion_ajunta
221
str 1 sT0
222
ldr 3 sR3
223
stm [3]
224
ldri sR4 0 ;eror: disponable
225
ldr 0 sT0
226
 
227
@fini
228
stm [sPILA]
229
ldri 1 {sinia_grandia sT0 *} ;(eror alternativa)
230
plu 1 sPILA
231
ldr 0 sR4
232
stm [1]
233
yl eseta_usor_fini
234
 
235
;-------------------------------------------------------------------------------
236
:eseta_usor_memoria_libri
237
;-------------------------------------------------------------------------------
238
ldm [3]
239
cmp 0 s_0
240
z yli eseta_usor_memoria_libri@fini
241
yl memoria_asinia_mapa_sesion_libri
242
str 0 sT0
243
ldri 1 {sinia_grandia sT0 *}
244
plu 1 sPILA
245
ldr 0 sT0
246
stm [1]
247
 
248
@fini
249
yl eseta_usor_fini
250
 
251
;-------------------------------------------------------------------------------
252
:eseta_usor_imita_argc
253
;-------------------------------------------------------------------------------
254
imita opera_imita_argc
255
stm [sPILA]
256
yl eseta_usor_fini
257
 
258
;-------------------------------------------------------------------------------
259
:eseta_usor_imita_argv
260
;-------------------------------------------------------------------------------
261
ldm [3+]
262
str 0 1
263
ldm [3+]
264
str 0 sR2
265
ldri 2 128 ;
266
ldri 0 umm_desloca_usor_mapa
267
ldm [0]
268
yl memoria_mapa_tradui
269
cmp 0 s_n
270
z yli eseta_usor_imita_argv@fini
271
ldr 1 sR2
272
imita opera_imita_argv
273
 
274
@fini
275
yl eseta_usor_fini
276
 
277
;-------------------------------------------------------------------------------
278
:eseta_usor_imita_open
279
;-------------------------------------------------------------------------------
280
ldm [3]
281
str 0 1
282
ldri 2 256 ;
283
ldri 0 umm_desloca_usor_mapa
284
ldm [0]
285
yl memoria_mapa_tradui
286
cmp 0 s_n
287
z yli eseta_usor_imita_open@fini
288
imita opera_imita_open
289
stm [sPILA]
290
 
291
@fini
292
yl eseta_usor_fini
293
 
294
;-------------------------------------------------------------------------------
295
:eseta_usor_imita_close
296
;-------------------------------------------------------------------------------
297
ldm [3]
298
imita opera_imita_close
299
yl eseta_usor_fini
300
 
301
;-------------------------------------------------------------------------------
302
:eseta_usor_imita_read
303
;-------------------------------------------------------------------------------
304
ldm [3+]
305
str 0 sR2
306
ldm [3+]
307
str 0 1
308
ldm [3]
309
str 0 sR3
310
str 0 2
311
ldri 0 umm_desloca_usor_mapa
312
ldm [0]
313
yl memoria_mapa_tradui
314
cmp 0 s_n
315
z yli eseta_usor_imita_read@fini
316
str 0 1
317
ldr 0 sR2
318
ldr 2 sR3
319
imita opera_imita_read
320
 
321
@fini
322
yl eseta_usor_fini
323
 
324
;-------------------------------------------------------------------------------
325
:eseta_usor_imita_write
326
;-------------------------------------------------------------------------------
327
ldm [3+]
328
str 0 sR2
329
ldm [3+]
330
str 0 1
331
ldm [3]
332
str 0 sR3
333
str 0 2
334
ldri 0 umm_desloca_usor_mapa
335
ldm [0]
336
yl memoria_mapa_tradui
337
cmp 0 s_n
338
z yli eseta_usor_imita_write@fini
339
str 0 1
340
ldr 0 sR2
341
ldr 2 sR3
342
imita opera_imita_write
343
 
344
@fini
345
yl eseta_usor_fini
346
 
347
;-------------------------------------------------------------------------------
348
:eseta_usor_imita_lseek
349
;-------------------------------------------------------------------------------
350
ldm [3+]
351
str 0 2
352
ldm [3+]
353
str 0 1
354
ldm [3]
355
cam 0 2
356
imita opera_imita_lseek
357
stm [sPILA]
358
yl eseta_usor_fini
359
 
360
;-------------------------------------------------------------------------------
361
:eseta_usor_imita_ftruncate
362
;-------------------------------------------------------------------------------
363
ldm [3+]
364
str 0 1
365
ldm [3]
366
cam 0 1
367
imita opera_imita_ftruncate
368
yl eseta_usor_fini
369
 
370
;-------------------------------------------------------------------------------
371
:eseta_usor_imita_time
372
;-------------------------------------------------------------------------------
373
imita opera_imita_time
374
stm [sPILA]
375
yl eseta_usor_fini
376
 
377
;-------------------------------------------------------------------------------
378
:eseta_usor_imita_nanosleep
379
;-------------------------------------------------------------------------------
380
ldm [3]
381
imita opera_imita_nanosleep
382
stm [sPILA]
383
yl eseta_usor_fini
384
 
385
;-------------------------------------------------------------------------------
386
:eseta_usor_imita_exit
387
;-------------------------------------------------------------------------------
388
ldm [3]
389
imita opera_imita_exit
390
;___
391
 
392
;===============================================================================
393
eticeta_opera eseta_sicle_usor_limite
394
;===============================================================================
395
ldri 0 1000
396
rev opera_rev_sicle_usor_limite_intercambia
397
rev opera_rev_eseta
398
 
399
;===============================================================================
400
eticeta_opera eseta_div_zero
401
;===============================================================================
402
;===============================================================================
403
eticeta_opera eseta_bp_usor
404
;===============================================================================
405
rev opera_rev_eseta
406
 
407
;===============================================================================
408
eticeta_opera eseta_bp_vantaje
409
;===============================================================================
410
ldr 0 sREVENI_ESETA
411
str 0 sIP
412
 
413
;===============================================================================
414
eticeta_opera eseta_umm_asede
415
;===============================================================================
416
;===============================================================================
417
eticeta_opera eseta_umm_interompe
418
;===============================================================================
419
;===============================================================================
420
eticeta_opera eseta_maneja
421
;===============================================================================
422
rev opera_rev_eseta
423
 
424
;sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
425
.inclui 0.SO.memoria.1664
426
;sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
427
 
428
;uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
429
eticeta_opera usor_0
430
;uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
431
yl usor_inisia
432
 
433
;-------------------------------------------------------------------------------
434
eticeta_opera ccadena_grandia ;(0) ccadena
435
;-------------------------------------------------------------------------------
436
ldr 1 0
437
ldr 2 sREVENI
438
eor 3 3
439
eor 0 0
440
 
441
depende_inoria
442
@sicle_plu
443
ldm [1+] 1
444
cmp 0 s_0
445
n plu 3 s_1
446
n yli ccadena_grandia@sicle_plu
447
 
448
ldr 0 3
449
str 2 sIP
450
 
451
;-------------------------------------------------------------------------------
452
eticeta_opera stdout__ccadena ;(0) ccadena
453
;-------------------------------------------------------------------------------
454
puia sREVENI
455
puia
456
yli ccadena_grandia
457
str 0 3
458
tira 2
459
eseta_SO_write 1
460
tira
461
str 0 sIP
462
 
463
;-------------------------------------------------------------------------------
464
.model stdout__dato_ {
465
ldi %0
466
yl stdout__dato
467
}
468
eticeta_opera stdout__dato ;(0) dato
469
;-------------------------------------------------------------------------------
470
puia sREVENI
471
puia
472
ldri 3 1
473
ldr 2 sPILA
474
eseta_SO_write 1
475
tira_
476
tira
477
str 0 sIP
478
 
479
;-------------------------------------------------------------------------------
480
eticeta_opera usor_inisia
481
:usor
482
;-------------------------------------------------------------------------------
483
ldri 1 1024
484
ldri 0 SO_memoria_nova
485
rev opera_rev_eseta
486
str 0 sR0
487
 
488
ldri sT2 0x2b
489
eseta_SO_argc
490
str 0 sT1
491
eor 2 2
492
 
493
@sicle
494
ldr 1 sR0
495
eseta_SO_argv
496
ldr 3 sR0
497
ldm [3+] 1
498
cmp 0 sT2
499
z ldr 0 sR0
500
z plu 0 s_1
501
z str 0 sR0
502
z yli usor@stdout
503
plu 2 s_1
504
cmp 2 sT1
505
n yli usor@sicle
506
yli usor@fini
507
 
508
@stdout
509
ldr 0 sR0
510
yl stdout__ccadena
511
stdout__dato_ 0x0a
512
 
513
@fini
514
eor 0 0
515
eseta_SO_exit
516
 
517
{%.{sinia_bitio 64 <}
518
;.inclui /fonte/pf2/0.ieee_754.1664
519
;.inclui /fonte/pf2/0.f2.1664
520
}
521
 
522
;*******************************************************************************
523
:usor_0_fini
524
;*******************************************************************************
525
 
526
;*******************************************************************************
527
:imaje_fini
528
;*******************************************************************************

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.