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

Subversion Repositories ffr16

[/] [ffr16/] [branches/] [APERT/] [sources/] [fpu/] [050803KN/] [compile/] [PASS3.DAT] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 armando
    ADDRESS-00
2
      LABEL-
3
INSTRUCTION-
4
   OPERAND1-
5
   OPERAND2-
6
    COMMENT-; FAT16 READER V.050303 - Armando Astarloa - 16 BIT VER.
7
    ADDRESS-00
8
      LABEL-
9
INSTRUCTION-
10
   OPERAND1-
11
   OPERAND2-
12
    COMMENT-; APERT - UPV/EHU 2003 - DISTRIBUTED UNDER GPL LICENCE
13
    ADDRESS-00
14
      LABEL-
15
INSTRUCTION-
16
   OPERAND1-
17
   OPERAND2-
18
    COMMENT-;
19
    ADDRESS-00
20
      LABEL-
21
INSTRUCTION-
22
   OPERAND1-
23
   OPERAND2-
24
    COMMENT-; s0 -> TMP0 s1 -> TMP1 s2 -> TMP2 s3 -> TMP3 s4 -> TMP4 / SECTORS_PER_CLUSTER_READED s5 -> TMP5/SECTOR_WORDS_READED (256 TO 0)
25
    ADDRESS-00
26
      LABEL-
27
INSTRUCTION-
28
   OPERAND1-
29
   OPERAND2-
30
    COMMENT-; s6 -> TMP s7 -> SECTORS_PER_CLUSTER s8 -> CLUSTER_BEGIN_LBA0 (FAT) s9 -> CLUSTER_BEGIN_LBA1 sA -> CLUSTER_BEGIN_LBA2
31
    ADDRESS-00
32
      LABEL-
33
INSTRUCTION-
34
   OPERAND1-
35
   OPERAND2-
36
    COMMENT-; sB -> CLUSTER_BEGIN_LBA3 sC -> ROOT_DIRECTORY_FIRST_CLUSTER0 (SUPPOSED LESS THAN 256 - USUALLY 2)
37
    ADDRESS-00
38
      LABEL-
39
INSTRUCTION-
40
   OPERAND1-
41
   OPERAND2-
42
    COMMENT-; sD -> data[7:0] WB MASTER sE -> data[15:8] WB MASTER sF -> acummulator
43
    ADDRESS-00
44
      LABEL-
45
INSTRUCTION-CONSTANT
46
   OPERAND1-DATA_WB_OUT_7_0_MASTER
47
   OPERAND2-00
48
    COMMENT-
49
    ADDRESS-00
50
      LABEL-
51
INSTRUCTION-CONSTANT
52
   OPERAND1-DATA_WB_OUT_15_8_MASTER
53
   OPERAND2-01
54
    COMMENT-
55
    ADDRESS-00
56
      LABEL-
57
INSTRUCTION-CONSTANT
58
   OPERAND1-CONTROL_WB_OUT_MASTER
59
   OPERAND2-02
60
    COMMENT-
61
    ADDRESS-00
62
      LABEL-
63
INSTRUCTION-
64
   OPERAND1-
65
   OPERAND2-
66
    COMMENT-; D7 = D6 = D5 = D4 = D3 = D2 = A0_MASTER D1 = W_WE_MASTER D0 = STB_O_MASTER
67
    ADDRESS-00
68
      LABEL-
69
INSTRUCTION-
70
   OPERAND1-
71
   OPERAND2-
72
    COMMENT-; STROBE_O_MASTER = 1 & W_WE=0 & WB_A0 = 0
73
    ADDRESS-00
74
      LABEL-
75
INSTRUCTION-CONSTANT
76
   OPERAND1-READ_SLAVE
77
   OPERAND2-01
78
    COMMENT-
79
    ADDRESS-00
80
      LABEL-
81
INSTRUCTION-
82
   OPERAND1-
83
   OPERAND2-
84
    COMMENT-; STROBE_O_MASTER = 1 & W_WE=1 & WB_A0 = 0
85
    ADDRESS-00
86
      LABEL-
87
INSTRUCTION-CONSTANT
88
   OPERAND1-WRITE_LBA_15_0
89
   OPERAND2-03
90
    COMMENT-
91
    ADDRESS-00
92
      LABEL-
93
INSTRUCTION-
94
   OPERAND1-
95
   OPERAND2-
96
    COMMENT-; STROBE_CF_READER = 1 & W_WE=1 & WB_A0 = 1
97
    ADDRESS-00
98
      LABEL-
99
INSTRUCTION-CONSTANT
100
   OPERAND1-WRITE_LBA_27_16
101
   OPERAND2-07
102
    COMMENT-
103
    ADDRESS-00
104
      LABEL-
105
INSTRUCTION-
106
   OPERAND1-
107
   OPERAND2-
108
    COMMENT-;--
109
    ADDRESS-00
110
      LABEL-
111
INSTRUCTION-
112
   OPERAND1-
113
   OPERAND2-
114
    COMMENT-;-- SLAVE INTERFACE
115
    ADDRESS-00
116
      LABEL-
117
INSTRUCTION-
118
   OPERAND1-
119
   OPERAND2-
120
    COMMENT-;--
121
    ADDRESS-00
122
      LABEL-
123
INSTRUCTION-CONSTANT
124
   OPERAND1-DATA_WB_OUT_7_0_SLAVE
125
   OPERAND2-03
126
    COMMENT-
127
    ADDRESS-00
128
      LABEL-
129
INSTRUCTION-CONSTANT
130
   OPERAND1-DATA_WB_OUT_15_8_SLAVE
131
   OPERAND2-04
132
    COMMENT-
133
    ADDRESS-00
134
      LABEL-
135
INSTRUCTION-CONSTANT
136
   OPERAND1-CONTROL_WB_OUT_SLAVE
137
   OPERAND2-05
138
    COMMENT-
139
    ADDRESS-00
140
      LABEL-
141
INSTRUCTION-
142
   OPERAND1-
143
   OPERAND2-
144
    COMMENT-; D7 =  D6 =  D5  D4 =  D3 =
145
    ADDRESS-00
146
      LABEL-
147
INSTRUCTION-
148
   OPERAND1-
149
   OPERAND2-
150
    COMMENT-; D2 = TAG1_ERROR
151
    ADDRESS-00
152
      LABEL-
153
INSTRUCTION-
154
   OPERAND1-
155
   OPERAND2-
156
    COMMENT-; D1 = TAG0_WORD_AVAILABLE
157
    ADDRESS-00
158
      LABEL-
159
INSTRUCTION-
160
   OPERAND1-
161
   OPERAND2-
162
    COMMENT-; D0 = ACK_O_SLAVE
163
    ADDRESS-00
164
      LABEL-
165
INSTRUCTION-CONSTANT
166
   OPERAND1-ACK_O_SLAVE
167
   OPERAND2-01
168
    COMMENT-
169
    ADDRESS-00
170
      LABEL-
171
INSTRUCTION-CONSTANT
172
   OPERAND1-TAG0_WORD_AVAILABLE
173
   OPERAND2-02
174
    COMMENT-
175
    ADDRESS-00
176
      LABEL-
177
INSTRUCTION-CONSTANT
178
   OPERAND1-ERROR
179
   OPERAND2-04
180
    COMMENT-
181
    ADDRESS-00
182
      LABEL-
183
INSTRUCTION-
184
   OPERAND1-
185
   OPERAND2-
186
    COMMENT-;--
187
    ADDRESS-00
188
      LABEL-
189
INSTRUCTION-
190
   OPERAND1-
191
   OPERAND2-
192
    COMMENT-;-- BUS CONTROL SIGNALS
193
    ADDRESS-00
194
      LABEL-
195
INSTRUCTION-
196
   OPERAND1-
197
   OPERAND2-
198
    COMMENT-;--
199
    ADDRESS-00
200
      LABEL-
201
INSTRUCTION-CONSTANT
202
   OPERAND1-CONTROL_OUT_MASTER
203
   OPERAND2-06
204
    COMMENT-
205
    ADDRESS-00
206
      LABEL-
207
INSTRUCTION-
208
   OPERAND1-
209
   OPERAND2-
210
    COMMENT-; D7 =  D6 = D5 = D4 = D3 = D2 = D1 =
211
    ADDRESS-00
212
      LABEL-
213
INSTRUCTION-
214
   OPERAND1-
215
   OPERAND2-
216
    COMMENT-; D0 = WB_BUS_MASTER_WRITE_ENABLE
217
    ADDRESS-00
218
      LABEL-
219
INSTRUCTION-CONSTANT
220
   OPERAND1-WB_BUS_MASTER_WRITE_ENABLE
221
   OPERAND2-01
222
    COMMENT-
223
    ADDRESS-00
224
      LABEL-
225
INSTRUCTION-CONSTANT
226
   OPERAND1-CONTROL_OUT_SLAVE
227
   OPERAND2-07
228
    COMMENT-
229
    ADDRESS-00
230
      LABEL-
231
INSTRUCTION-
232
   OPERAND1-
233
   OPERAND2-
234
    COMMENT-; D7 =  D6 = D5 = D4 = D3 = D2 = D1 =
235
    ADDRESS-00
236
      LABEL-
237
INSTRUCTION-
238
   OPERAND1-
239
   OPERAND2-
240
    COMMENT-; D0 = WB_BUS_SLAVE_WRITE_ENABLE
241
    ADDRESS-00
242
      LABEL-
243
INSTRUCTION-CONSTANT
244
   OPERAND1-WB_BUS_SLAVE_WRITE_ENABLE
245
   OPERAND2-01
246
    COMMENT-
247
    ADDRESS-00
248
      LABEL-
249
INSTRUCTION-
250
   OPERAND1-
251
   OPERAND2-
252
    COMMENT-;--
253
    ADDRESS-00
254
      LABEL-
255
INSTRUCTION-
256
   OPERAND1-
257
   OPERAND2-
258
    COMMENT-;-- EXTERNAL REGISTERS FOR MORE DATA ALLOCATION (OTHER OPTION IS THE USE OF
259
    ADDRESS-00
260
      LABEL-
261
INSTRUCTION-
262
   OPERAND1-
263
   OPERAND2-
264
    COMMENT-;-- ANOTHER BLOCK RAM IF IT IS AVALIABLE
265
    ADDRESS-00
266
      LABEL-
267
INSTRUCTION-
268
   OPERAND1-
269
   OPERAND2-
270
    COMMENT-;--
271
    ADDRESS-00
272
      LABEL-
273
INSTRUCTION-CONSTANT
274
   OPERAND1-TMP_OUT_0
275
   OPERAND2-08
276
    COMMENT-
277
    ADDRESS-00
278
      LABEL-
279
INSTRUCTION-CONSTANT
280
   OPERAND1-TMP_OUT_1
281
   OPERAND2-09
282
    COMMENT-
283
    ADDRESS-00
284
      LABEL-
285
INSTRUCTION-CONSTANT
286
   OPERAND1-TMP_OUT_2
287
   OPERAND2-0A
288
    COMMENT-
289
    ADDRESS-00
290
      LABEL-
291
INSTRUCTION-CONSTANT
292
   OPERAND1-TMP_OUT_3
293
   OPERAND2-0B
294
    COMMENT-
295
    ADDRESS-00
296
      LABEL-
297
INSTRUCTION-CONSTANT
298
   OPERAND1-TMP_OUT_4
299
   OPERAND2-0C
300
    COMMENT-
301
    ADDRESS-00
302
      LABEL-
303
INSTRUCTION-CONSTANT
304
   OPERAND1-TMP_OUT_5
305
   OPERAND2-0D
306
    COMMENT-
307
    ADDRESS-00
308
      LABEL-
309
INSTRUCTION-CONSTANT
310
   OPERAND1-TMP_OUT_6
311
   OPERAND2-0E
312
    COMMENT-
313
    ADDRESS-00
314
      LABEL-
315
INSTRUCTION-CONSTANT
316
   OPERAND1-TMP_OUT_7
317
   OPERAND2-0F
318
    COMMENT-
319
    ADDRESS-00
320
      LABEL-
321
INSTRUCTION-
322
   OPERAND1-
323
   OPERAND2-
324
    COMMENT-;--
325
    ADDRESS-00
326
      LABEL-
327
INSTRUCTION-
328
   OPERAND1-
329
   OPERAND2-
330
    COMMENT-;-- INPUT PORTS
331
    ADDRESS-00
332
      LABEL-
333
INSTRUCTION-
334
   OPERAND1-
335
   OPERAND2-
336
    COMMENT-;--
337
    ADDRESS-00
338
      LABEL-
339
INSTRUCTION-
340
   OPERAND1-
341
   OPERAND2-
342
    COMMENT-;--
343
    ADDRESS-00
344
      LABEL-
345
INSTRUCTION-
346
   OPERAND1-
347
   OPERAND2-
348
    COMMENT-;-- WISHBONE INTERFACE PORTS - INPUTS
349
    ADDRESS-00
350
      LABEL-
351
INSTRUCTION-
352
   OPERAND1-
353
   OPERAND2-
354
    COMMENT-;--
355
    ADDRESS-00
356
      LABEL-
357
INSTRUCTION-CONSTANT
358
   OPERAND1-CONTROL_WB_IN_MASTER
359
   OPERAND2-00
360
    COMMENT-
361
    ADDRESS-00
362
      LABEL-
363
INSTRUCTION-
364
   OPERAND1-
365
   OPERAND2-
366
    COMMENT-; D7 = D6 = D5 = D4 = D3 = D2 =
367
    ADDRESS-00
368
      LABEL-
369
INSTRUCTION-
370
   OPERAND1-
371
   OPERAND2-
372
    COMMENT-; D1 = ERROR_INPUT
373
    ADDRESS-00
374
      LABEL-
375
INSTRUCTION-
376
   OPERAND1-
377
   OPERAND2-
378
    COMMENT-; D0 = ACK_I_MASTER
379
    ADDRESS-00
380
      LABEL-
381
INSTRUCTION-
382
   OPERAND1-
383
   OPERAND2-
384
    COMMENT-;
385
    ADDRESS-00
386
      LABEL-
387
INSTRUCTION-CONSTANT
388
   OPERAND1-ACK_I_MASTER
389
   OPERAND2-01
390
    COMMENT-
391
    ADDRESS-00
392
      LABEL-
393
INSTRUCTION-CONSTANT
394
   OPERAND1-ERROR_INPUT
395
   OPERAND2-02
396
    COMMENT-
397
    ADDRESS-00
398
      LABEL-
399
INSTRUCTION-CONSTANT
400
   OPERAND1-CONTROL_WB_IN_SLAVE
401
   OPERAND2-01
402
    COMMENT-
403
    ADDRESS-00
404
      LABEL-
405
INSTRUCTION-
406
   OPERAND1-
407
   OPERAND2-
408
    COMMENT-; D7 = D6 = D5 = D4 = D3 = D2 =
409
    ADDRESS-00
410
      LABEL-
411
INSTRUCTION-
412
   OPERAND1-
413
   OPERAND2-
414
    COMMENT-; D1 = -
415
    ADDRESS-00
416
      LABEL-
417
INSTRUCTION-
418
   OPERAND1-
419
   OPERAND2-
420
    COMMENT-; D0 = STB_I_SLAVE
421
    ADDRESS-00
422
      LABEL-
423
INSTRUCTION-
424
   OPERAND1-
425
   OPERAND2-
426
    COMMENT-;
427
    ADDRESS-00
428
      LABEL-
429
INSTRUCTION-CONSTANT
430
   OPERAND1-STB_I_SLAVE
431
   OPERAND2-01
432
    COMMENT-
433
    ADDRESS-00
434
      LABEL-
435
INSTRUCTION-
436
   OPERAND1-
437
   OPERAND2-
438
    COMMENT-;CONSTANT TAG0_FORCE_RESET,02
439
    ADDRESS-00
440
      LABEL-
441
INSTRUCTION-
442
   OPERAND1-
443
   OPERAND2-
444
    COMMENT-;--
445
    ADDRESS-00
446
      LABEL-
447
INSTRUCTION-
448
   OPERAND1-
449
   OPERAND2-
450
    COMMENT-;-- WISHBONE INTERFACE PORTS - INPUTS
451
    ADDRESS-00
452
      LABEL-
453
INSTRUCTION-
454
   OPERAND1-
455
   OPERAND2-
456
    COMMENT-;--
457
    ADDRESS-00
458
      LABEL-
459
INSTRUCTION-CONSTANT
460
   OPERAND1-DATA_WB_IN_7_0_MASTER
461
   OPERAND2-02
462
    COMMENT-
463
    ADDRESS-00
464
      LABEL-
465
INSTRUCTION-CONSTANT
466
   OPERAND1-DATA_WB_IN_15_8_MASTER
467
   OPERAND2-03
468
    COMMENT-
469
    ADDRESS-00
470
      LABEL-
471
INSTRUCTION-
472
   OPERAND1-
473
   OPERAND2-
474
    COMMENT-;--
475
    ADDRESS-00
476
      LABEL-
477
INSTRUCTION-
478
   OPERAND1-
479
   OPERAND2-
480
    COMMENT-;-- EXTERNAL REGISTERS FOR MORE DATA ALLOCATION (OTHER OPTION IS THE USE OF
481
    ADDRESS-00
482
      LABEL-
483
INSTRUCTION-
484
   OPERAND1-
485
   OPERAND2-
486
    COMMENT-;-- ANOTHER BLOCK RAM IF IT IS AVALIABLE
487
    ADDRESS-00
488
      LABEL-
489
INSTRUCTION-
490
   OPERAND1-
491
   OPERAND2-
492
    COMMENT-;--
493
    ADDRESS-00
494
      LABEL-
495
INSTRUCTION-CONSTANT
496
   OPERAND1-TMP_IN_0
497
   OPERAND2-04
498
    COMMENT-
499
    ADDRESS-00
500
      LABEL-
501
INSTRUCTION-CONSTANT
502
   OPERAND1-TMP_IN_1
503
   OPERAND2-05
504
    COMMENT-
505
    ADDRESS-00
506
      LABEL-
507
INSTRUCTION-CONSTANT
508
   OPERAND1-TMP_IN_2
509
   OPERAND2-06
510
    COMMENT-
511
    ADDRESS-00
512
      LABEL-
513
INSTRUCTION-CONSTANT
514
   OPERAND1-TMP_IN_3
515
   OPERAND2-07
516
    COMMENT-
517
    ADDRESS-00
518
      LABEL-
519
INSTRUCTION-CONSTANT
520
   OPERAND1-TMP_IN_4
521
   OPERAND2-08
522
    COMMENT-
523
    ADDRESS-00
524
      LABEL-
525
INSTRUCTION-CONSTANT
526
   OPERAND1-TMP_IN_5
527
   OPERAND2-09
528
    COMMENT-
529
    ADDRESS-00
530
      LABEL-
531
INSTRUCTION-CONSTANT
532
   OPERAND1-TMP_IN_6
533
   OPERAND2-0A
534
    COMMENT-
535
    ADDRESS-00
536
      LABEL-
537
INSTRUCTION-CONSTANT
538
   OPERAND1-TMP_IN_7
539
   OPERAND2-0B
540
    COMMENT-
541
    ADDRESS-00
542
      LABEL-
543
INSTRUCTION-
544
   OPERAND1-
545
   OPERAND2-
546
    COMMENT-;--
547
    ADDRESS-00
548
      LABEL-
549
INSTRUCTION-
550
   OPERAND1-
551
   OPERAND2-
552
    COMMENT-;-- REGISTERS INITIALIZATION
553
    ADDRESS-00
554
      LABEL-
555
INSTRUCTION-
556
   OPERAND1-
557
   OPERAND2-
558
    COMMENT-;--
559
    ADDRESS-00
560
      LABEL-inicialization
561
INSTRUCTION-
562
   OPERAND1-
563
   OPERAND2-
564
    COMMENT-
565
    ADDRESS-00
566
      LABEL-
567
INSTRUCTION-
568
   OPERAND1-
569
   OPERAND2-
570
    COMMENT-;
571
    ADDRESS-00
572
      LABEL-
573
INSTRUCTION-
574
   OPERAND1-
575
   OPERAND2-
576
    COMMENT-; WISHBONE INTERFACES INIZIALIZATION
577
    ADDRESS-00
578
      LABEL-
579
INSTRUCTION-
580
   OPERAND1-
581
   OPERAND2-
582
    COMMENT-;
583
    ADDRESS-00
584
      LABEL-
585
INSTRUCTION-LOAD
586
   OPERAND1-sF
587
   OPERAND2-00
588
    COMMENT-
589
    ADDRESS-01
590
      LABEL-
591
INSTRUCTION-OUTPUT
592
   OPERAND1-sF
593
   OPERAND2-DATA_WB_OUT_7_0_MASTER
594
    COMMENT-
595
    ADDRESS-02
596
      LABEL-
597
INSTRUCTION-OUTPUT
598
   OPERAND1-sF
599
   OPERAND2-DATA_WB_OUT_15_8_MASTER
600
    COMMENT-
601
    ADDRESS-03
602
      LABEL-
603
INSTRUCTION-OUTPUT
604
   OPERAND1-sF
605
   OPERAND2-DATA_WB_OUT_7_0_SLAVE
606
    COMMENT-
607
    ADDRESS-04
608
      LABEL-
609
INSTRUCTION-OUTPUT
610
   OPERAND1-sF
611
   OPERAND2-DATA_WB_OUT_15_8_SLAVE
612
    COMMENT-
613
    ADDRESS-05
614
      LABEL-
615
INSTRUCTION-OUTPUT
616
   OPERAND1-sF
617
   OPERAND2-CONTROL_WB_OUT_MASTER
618
    COMMENT-
619
    ADDRESS-06
620
      LABEL-
621
INSTRUCTION-OUTPUT
622
   OPERAND1-sF
623
   OPERAND2-CONTROL_WB_OUT_SLAVE
624
    COMMENT-
625
    ADDRESS-07
626
      LABEL-
627
INSTRUCTION-
628
   OPERAND1-
629
   OPERAND2-
630
    COMMENT-;
631
    ADDRESS-07
632
      LABEL-
633
INSTRUCTION-
634
   OPERAND1-
635
   OPERAND2-
636
    COMMENT-; WAIT FOR 410NS*3 (RESET DELAY)
637
    ADDRESS-07
638
      LABEL-
639
INSTRUCTION-
640
   OPERAND1-
641
   OPERAND2-
642
    COMMENT-
643
    ADDRESS-07
644
      LABEL-main
645
INSTRUCTION-
646
   OPERAND1-
647
   OPERAND2-
648
    COMMENT-
649
    ADDRESS-07
650
      LABEL-
651
INSTRUCTION-
652
   OPERAND1-
653
   OPERAND2-
654
    COMMENT-; PROCESS MASTER BOOT RECORD
655
    ADDRESS-07
656
      LABEL-
657
INSTRUCTION-CALL
658
   OPERAND1-process_master_boot_record
659
   OPERAND2-
660
    COMMENT-
661
    ADDRESS-08
662
      LABEL-
663
INSTRUCTION-
664
   OPERAND1-
665
   OPERAND2-
666
    COMMENT-; PROCESS ROOT DIRECTORY
667
    ADDRESS-08
668
      LABEL-
669
INSTRUCTION-CALL
670
   OPERAND1-process_root_directory
671
   OPERAND2-
672
    COMMENT-
673
    ADDRESS-09
674
      LABEL-start
675
INSTRUCTION-
676
   OPERAND1-
677
   OPERAND2-
678
    COMMENT-
679
    ADDRESS-09
680
      LABEL-
681
INSTRUCTION-CALL
682
   OPERAND1-cluster_2_lba
683
   OPERAND2-
684
    COMMENT-
685
    ADDRESS-0A
686
      LABEL-
687
INSTRUCTION-
688
   OPERAND1-
689
   OPERAND2-
690
    COMMENT-;CALL write_lba_to_slave
691
    ADDRESS-0A
692
      LABEL-
693
INSTRUCTION-
694
   OPERAND1-
695
   OPERAND2-
696
    COMMENT-; sector_per_cluster -> sector_per_cluster_readed
697
    ADDRESS-0A
698
      LABEL-
699
INSTRUCTION-LOAD
700
   OPERAND1-s4
701
   OPERAND2-s7
702
    COMMENT-
703
    ADDRESS-0B
704
      LABEL-
705
INSTRUCTION-
706
   OPERAND1-
707
   OPERAND2-
708
    COMMENT-; 256 -> (s6) SECTOR_WORDS_READED
709
    ADDRESS-0B
710
      LABEL-
711
INSTRUCTION-CALL
712
   OPERAND1-read_sector
713
   OPERAND2-
714
    COMMENT-
715
    ADDRESS-0C
716
      LABEL-idle
717
INSTRUCTION-
718
   OPERAND1-
719
   OPERAND2-
720
    COMMENT-
721
    ADDRESS-0C
722
      LABEL-
723
INSTRUCTION-INPUT
724
   OPERAND1-s6
725
   OPERAND2-CONTROL_WB_IN_SLAVE
726
    COMMENT-
727
    ADDRESS-0D
728
      LABEL-
729
INSTRUCTION-
730
   OPERAND1-
731
   OPERAND2-
732
    COMMENT-; CHECK STB INPUT
733
    ADDRESS-0D
734
      LABEL-
735
INSTRUCTION-
736
   OPERAND1-
737
   OPERAND2-
738
    COMMENT-; CONTROL_WB_IN_SLAVE-> TMP (s6)
739
    ADDRESS-0D
740
      LABEL-
741
INSTRUCTION-
742
   OPERAND1-
743
   OPERAND2-
744
    COMMENT-; IF STB=1 GO TO THE NEXT STATE
745
    ADDRESS-0D
746
      LABEL-
747
INSTRUCTION-
748
   OPERAND1-
749
   OPERAND2-
750
    COMMENT-; IF STB=0 GO TO THE IDLE STATE
751
    ADDRESS-0D
752
      LABEL-
753
INSTRUCTION-AND
754
   OPERAND1-s6
755
   OPERAND2-STB_I_SLAVE
756
    COMMENT-
757
    ADDRESS-0E
758
      LABEL-
759
INSTRUCTION-JUMP
760
   OPERAND1-Z
761
   OPERAND2-idle
762
    COMMENT-
763
    ADDRESS-0F
764
      LABEL-transfer_word_to_master
765
INSTRUCTION-
766
   OPERAND1-
767
   OPERAND2-
768
    COMMENT-
769
    ADDRESS-0F
770
      LABEL-
771
INSTRUCTION-CALL
772
   OPERAND1-read_word_from_slave
773
   OPERAND2-
774
    COMMENT-
775
    ADDRESS-10
776
      LABEL-
777
INSTRUCTION-CALL
778
   OPERAND1-write_a_word_to_master
779
   OPERAND2-
780
    COMMENT-
781
    ADDRESS-11
782
      LABEL-
783
INSTRUCTION-
784
   OPERAND1-
785
   OPERAND2-
786
    COMMENT-; (SECTOR WORDS READED)-1
787
    ADDRESS-11
788
      LABEL-
789
INSTRUCTION-SUB
790
   OPERAND1-s5
791
   OPERAND2-01
792
    COMMENT-
793
    ADDRESS-12
794
      LABEL-check_sectors_words_readed
795
INSTRUCTION-
796
   OPERAND1-
797
   OPERAND2-
798
    COMMENT-
799
    ADDRESS-12
800
      LABEL-
801
INSTRUCTION-
802
   OPERAND1-
803
   OPERAND2-
804
    COMMENT-; IF sector_words_readed = 0 THEN READ_NEW_SECTOR
805
    ADDRESS-12
806
      LABEL-
807
INSTRUCTION-
808
   OPERAND1-
809
   OPERAND2-
810
    COMMENT-; IF sector_words_readed > 0 THEN TRANSFER_WORD_TO_MASTER
811
    ADDRESS-12
812
      LABEL-
813
INSTRUCTION-AND
814
   OPERAND1-s5
815
   OPERAND2-s5
816
    COMMENT-
817
    ADDRESS-13
818
      LABEL-
819
INSTRUCTION-CALL
820
   OPERAND1-Z
821
   OPERAND2-check_sector_per_cluster_readed
822
    COMMENT-
823
    ADDRESS-14
824
      LABEL-
825
INSTRUCTION-JUMP
826
   OPERAND1-idle
827
   OPERAND2-
828
    COMMENT-
829
    ADDRESS-15
830
      LABEL-track_new_cluster
831
INSTRUCTION-
832
   OPERAND1-
833
   OPERAND2-
834
    COMMENT-
835
    ADDRESS-15
836
      LABEL-
837
INSTRUCTION-
838
   OPERAND1-
839
   OPERAND2-
840
    COMMENT-; save the number of dummy reads that must be done when the fat sector will be readed
841
    ADDRESS-15
842
      LABEL-
843
INSTRUCTION-
844
   OPERAND1-
845
   OPERAND2-
846
    COMMENT-; an are stored into s5 register
847
    ADDRESS-15
848
      LABEL-
849
INSTRUCTION-
850
   OPERAND1-
851
   OPERAND2-
852
    COMMENT-; in s0 bits 6-0 of the cluster number (offset in the sector -> 256 words-fat16 entries)
853
    ADDRESS-15
854
      LABEL-
855
INSTRUCTION-
856
   OPERAND1-
857
   OPERAND2-
858
    COMMENT-; as is each read operation a word is readed no multiplication is needed
859
    ADDRESS-15
860
      LABEL-
861
INSTRUCTION-
862
   OPERAND1-
863
   OPERAND2-
864
    COMMENT-; RESTORE CLUSTER NUMBER
865
    ADDRESS-15
866
      LABEL-
867
INSTRUCTION-INPUT
868
   OPERAND1-s0
869
   OPERAND2-TMP_IN_4
870
    COMMENT-
871
    ADDRESS-16
872
      LABEL-
873
INSTRUCTION-INPUT
874
   OPERAND1-s1
875
   OPERAND2-TMP_IN_5
876
    COMMENT-
877
    ADDRESS-17
878
      LABEL-
879
INSTRUCTION-INPUT
880
   OPERAND1-s2
881
   OPERAND2-TMP_IN_6
882
    COMMENT-
883
    ADDRESS-18
884
      LABEL-
885
INSTRUCTION-INPUT
886
   OPERAND1-s3
887
   OPERAND2-TMP_IN_7
888
    COMMENT-
889
    ADDRESS-19
890
      LABEL-
891
INSTRUCTION-
892
   OPERAND1-
893
   OPERAND2-
894
    COMMENT-;
895
    ADDRESS-19
896
      LABEL-
897
INSTRUCTION-
898
   OPERAND1-
899
   OPERAND2-
900
    COMMENT-; compose LBA address of the sector of the fat that must be readed
901
    ADDRESS-19
902
      LABEL-
903
INSTRUCTION-
904
   OPERAND1-
905
   OPERAND2-
906
    COMMENT-;
907
    ADDRESS-19
908
      LABEL-
909
INSTRUCTION-
910
   OPERAND1-
911
   OPERAND2-
912
    COMMENT-; SHIFT RIGHT 15-8 TO 7-0
913
    ADDRESS-19
914
      LABEL-
915
INSTRUCTION-
916
   OPERAND1-
917
   OPERAND2-
918
    COMMENT-;
919
    ADDRESS-19
920
      LABEL-
921
INSTRUCTION-LOAD
922
   OPERAND1-sF
923
   OPERAND2-07
924
    COMMENT-
925
    ADDRESS-1A
926
      LABEL-do_shift
927
INSTRUCTION-
928
   OPERAND1-
929
   OPERAND2-
930
    COMMENT-
931
    ADDRESS-1A
932
      LABEL-
933
INSTRUCTION-SR0
934
   OPERAND1-s3
935
   OPERAND2-
936
    COMMENT-
937
    ADDRESS-1B
938
      LABEL-
939
INSTRUCTION-
940
   OPERAND1-
941
   OPERAND2-
942
    COMMENT-; uses the carry for the MSB and stores LSB into the carry
943
    ADDRESS-1B
944
      LABEL-
945
INSTRUCTION-SRA
946
   OPERAND1-s2
947
   OPERAND2-
948
    COMMENT-
949
    ADDRESS-1C
950
      LABEL-
951
INSTRUCTION-SRA
952
   OPERAND1-s1
953
   OPERAND2-
954
    COMMENT-
955
    ADDRESS-1D
956
      LABEL-
957
INSTRUCTION-SRA
958
   OPERAND1-s0
959
   OPERAND2-
960
    COMMENT-
961
    ADDRESS-1E
962
      LABEL-
963
INSTRUCTION-SUB
964
   OPERAND1-sF
965
   OPERAND2-01
966
    COMMENT-
967
    ADDRESS-1F
968
      LABEL-
969
INSTRUCTION-JUMP
970
   OPERAND1-NZ
971
   OPERAND2-do_shift
972
    COMMENT-
973
    ADDRESS-20
974
      LABEL-
975
INSTRUCTION-CALL
976
   OPERAND1-add_load_fat_begin_lba
977
   OPERAND2-
978
    COMMENT-
979
    ADDRESS-21
980
      LABEL-
981
INSTRUCTION-
982
   OPERAND1-
983
   OPERAND2-
984
    COMMENT-; adds fat_begin_lba to the sector relative to the fat obteined from the cluster
985
    ADDRESS-21
986
      LABEL-
987
INSTRUCTION-
988
   OPERAND1-
989
   OPERAND2-
990
    COMMENT-; now there is the lba of the FAT sector that must be readed in s0,s1,s2,s3
991
    ADDRESS-21
992
      LABEL-
993
INSTRUCTION-CALL
994
   OPERAND1-write_lba_to_slave
995
   OPERAND2-
996
    COMMENT-
997
    ADDRESS-22
998
      LABEL-
999
INSTRUCTION-
1000
   OPERAND1-
1001
   OPERAND2-
1002
    COMMENT-; -- DUMMY READ OF THE WORDS OF THE SECTOR TILL THE ONE OF THE CLUSTER INTEGER
1003
    ADDRESS-22
1004
      LABEL-
1005
INSTRUCTION-INPUT
1006
   OPERAND1-sF
1007
   OPERAND2-TMP_IN_4
1008
    COMMENT-
1009
    ADDRESS-23
1010
      LABEL-
1011
INSTRUCTION-AND
1012
   OPERAND1-sF
1013
   OPERAND2-7F
1014
    COMMENT-
1015
    ADDRESS-24
1016
      LABEL-
1017
INSTRUCTION-CALL
1018
   OPERAND1-do_dummy_reads_from_slave
1019
   OPERAND2-
1020
    COMMENT-
1021
    ADDRESS-25
1022
      LABEL-
1023
INSTRUCTION-
1024
   OPERAND1-
1025
   OPERAND2-
1026
    COMMENT-;
1027
    ADDRESS-25
1028
      LABEL-
1029
INSTRUCTION-
1030
   OPERAND1-
1031
   OPERAND2-
1032
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s0) TEMPORAL REGISTER
1033
    ADDRESS-25
1034
      LABEL-
1035
INSTRUCTION-
1036
   OPERAND1-
1037
   OPERAND2-
1038
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s1) TEMPORAL REGISTER
1039
    ADDRESS-25
1040
      LABEL-
1041
INSTRUCTION-
1042
   OPERAND1-
1043
   OPERAND2-
1044
    COMMENT-; READ 2 BYTES
1045
    ADDRESS-25
1046
      LABEL-
1047
INSTRUCTION-CALL
1048
   OPERAND1-read_word_from_slave
1049
   OPERAND2-
1050
    COMMENT-
1051
    ADDRESS-26
1052
      LABEL-
1053
INSTRUCTION-LOAD
1054
   OPERAND1-s0
1055
   OPERAND2-sD
1056
    COMMENT-
1057
    ADDRESS-27
1058
      LABEL-
1059
INSTRUCTION-LOAD
1060
   OPERAND1-s1
1061
   OPERAND2-sE
1062
    COMMENT-
1063
    ADDRESS-28
1064
      LABEL-
1065
INSTRUCTION-
1066
   OPERAND1-
1067
   OPERAND2-
1068
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s2) TEMPORAL REGISTER
1069
    ADDRESS-28
1070
      LABEL-
1071
INSTRUCTION-
1072
   OPERAND1-
1073
   OPERAND2-
1074
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s3) TEMPORAL REGISTER
1075
    ADDRESS-28
1076
      LABEL-
1077
INSTRUCTION-
1078
   OPERAND1-
1079
   OPERAND2-
1080
    COMMENT-; READ 2 BYTES
1081
    ADDRESS-28
1082
      LABEL-
1083
INSTRUCTION-
1084
   OPERAND1-
1085
   OPERAND2-
1086
    COMMENT-;
1087
    ADDRESS-28
1088
      LABEL-
1089
INSTRUCTION-
1090
   OPERAND1-
1091
   OPERAND2-
1092
    COMMENT-; CHECK IF ITS THE LAST ONE
1093
    ADDRESS-28
1094
      LABEL-
1095
INSTRUCTION-
1096
   OPERAND1-
1097
   OPERAND2-
1098
    COMMENT-; CB3-CL2-CB1-CB0 IN FAT LITTLE ENDIAN ORDER CB0-CB1 CB2-CB3
1099
    ADDRESS-28
1100
      LABEL-
1101
INSTRUCTION-LOAD
1102
   OPERAND1-sF
1103
   OPERAND2-sE
1104
    COMMENT-
1105
    ADDRESS-29
1106
      LABEL-
1107
INSTRUCTION-SUB
1108
   OPERAND1-sF
1109
   OPERAND2-FF
1110
    COMMENT-
1111
    ADDRESS-2A
1112
      LABEL-
1113
INSTRUCTION-JUMP
1114
   OPERAND1-NZ
1115
   OPERAND2-continue_file_processing
1116
    COMMENT-
1117
    ADDRESS-2B
1118
      LABEL-
1119
INSTRUCTION-LOAD
1120
   OPERAND1-sF
1121
   OPERAND2-sD
1122
    COMMENT-
1123
    ADDRESS-2C
1124
      LABEL-
1125
INSTRUCTION-SUB
1126
   OPERAND1-sF
1127
   OPERAND2-FF
1128
    COMMENT-
1129
    ADDRESS-2D
1130
      LABEL-
1131
INSTRUCTION-JUMP
1132
   OPERAND1-NZ
1133
   OPERAND2-continue_file_processing
1134
    COMMENT-
1135
    ADDRESS-2E
1136
      LABEL-file_end
1137
INSTRUCTION-
1138
   OPERAND1-
1139
   OPERAND2-
1140
    COMMENT-
1141
    ADDRESS-2E
1142
      LABEL-
1143
INSTRUCTION-
1144
   OPERAND1-
1145
   OPERAND2-
1146
    COMMENT-; infinite loop (file readed and tranferred)
1147
    ADDRESS-2E
1148
      LABEL-
1149
INSTRUCTION-JUMP
1150
   OPERAND1-file_end
1151
   OPERAND2-
1152
    COMMENT-
1153
    ADDRESS-2F
1154
      LABEL-continue_file_processing
1155
INSTRUCTION-
1156
   OPERAND1-
1157
   OPERAND2-
1158
    COMMENT-
1159
    ADDRESS-2F
1160
      LABEL-
1161
INSTRUCTION-
1162
   OPERAND1-
1163
   OPERAND2-
1164
    COMMENT-; in s0,s1 is the cluster name
1165
    ADDRESS-2F
1166
      LABEL-
1167
INSTRUCTION-
1168
   OPERAND1-
1169
   OPERAND2-
1170
    COMMENT-; --
1171
    ADDRESS-2F
1172
      LABEL-
1173
INSTRUCTION-
1174
   OPERAND1-
1175
   OPERAND2-
1176
    COMMENT-; (SECTOR WORDS READED)= 256
1177
    ADDRESS-2F
1178
      LABEL-
1179
INSTRUCTION-
1180
   OPERAND1-
1181
   OPERAND2-
1182
    COMMENT-; sector_per_cluster -> sector_per_cluster_readed
1183
    ADDRESS-2F
1184
      LABEL-
1185
INSTRUCTION-LOAD
1186
   OPERAND1-s2
1187
   OPERAND2-00
1188
    COMMENT-
1189
    ADDRESS-30
1190
      LABEL-
1191
INSTRUCTION-LOAD
1192
   OPERAND1-s3
1193
   OPERAND2-00
1194
    COMMENT-
1195
    ADDRESS-31
1196
      LABEL-
1197
INSTRUCTION-LOAD
1198
   OPERAND1-s4
1199
   OPERAND2-s7
1200
    COMMENT-
1201
    ADDRESS-32
1202
      LABEL-
1203
INSTRUCTION-CALL
1204
   OPERAND1-cluster_2_lba
1205
   OPERAND2-
1206
    COMMENT-
1207
    ADDRESS-33
1208
      LABEL-
1209
INSTRUCTION-CALL
1210
   OPERAND1-read_sector
1211
   OPERAND2-
1212
    COMMENT-
1213
    ADDRESS-34
1214
      LABEL-
1215
INSTRUCTION-RETURN
1216
   OPERAND1-
1217
   OPERAND2-
1218
    COMMENT-
1219
    ADDRESS-35
1220
      LABEL-add_load_fat_begin_lba
1221
INSTRUCTION-
1222
   OPERAND1-
1223
   OPERAND2-
1224
    COMMENT-
1225
    ADDRESS-35
1226
      LABEL-
1227
INSTRUCTION-INPUT
1228
   OPERAND1-sF
1229
   OPERAND2-TMP_IN_0
1230
    COMMENT-
1231
    ADDRESS-36
1232
      LABEL-
1233
INSTRUCTION-ADD
1234
   OPERAND1-s0
1235
   OPERAND2-sF
1236
    COMMENT-
1237
    ADDRESS-37
1238
      LABEL-
1239
INSTRUCTION-INPUT
1240
   OPERAND1-sF
1241
   OPERAND2-TMP_IN_1
1242
    COMMENT-
1243
    ADDRESS-38
1244
      LABEL-
1245
INSTRUCTION-ADDCY
1246
   OPERAND1-s1
1247
   OPERAND2-sF
1248
    COMMENT-
1249
    ADDRESS-39
1250
      LABEL-
1251
INSTRUCTION-INPUT
1252
   OPERAND1-sF
1253
   OPERAND2-TMP_IN_2
1254
    COMMENT-
1255
    ADDRESS-3A
1256
      LABEL-
1257
INSTRUCTION-ADDCY
1258
   OPERAND1-s2
1259
   OPERAND2-sF
1260
    COMMENT-
1261
    ADDRESS-3B
1262
      LABEL-
1263
INSTRUCTION-INPUT
1264
   OPERAND1-sF
1265
   OPERAND2-TMP_IN_3
1266
    COMMENT-
1267
    ADDRESS-3C
1268
      LABEL-
1269
INSTRUCTION-ADDCY
1270
   OPERAND1-s3
1271
   OPERAND2-sF
1272
    COMMENT-
1273
    ADDRESS-3D
1274
      LABEL-
1275
INSTRUCTION-RETURN
1276
   OPERAND1-
1277
   OPERAND2-
1278
    COMMENT-
1279
    ADDRESS-3E
1280
      LABEL-check_sector_per_cluster_readed
1281
INSTRUCTION-
1282
   OPERAND1-
1283
   OPERAND2-
1284
    COMMENT-
1285
    ADDRESS-3E
1286
      LABEL-
1287
INSTRUCTION-
1288
   OPERAND1-
1289
   OPERAND2-
1290
    COMMENT-; IF sector_per_cluster_readed = 0 THEN TRACK_NEW_CLUSTER
1291
    ADDRESS-3E
1292
      LABEL-
1293
INSTRUCTION-
1294
   OPERAND1-
1295
   OPERAND2-
1296
    COMMENT-; IF sector_per_cluster_readed > 0 THEN CHECK SECTOR WORDS READED
1297
    ADDRESS-3E
1298
      LABEL-
1299
INSTRUCTION-
1300
   OPERAND1-
1301
   OPERAND2-
1302
    COMMENT-; (sector_per_cluster_readed)-1
1303
    ADDRESS-3E
1304
      LABEL-
1305
INSTRUCTION-
1306
   OPERAND1-
1307
   OPERAND2-
1308
    COMMENT-; (SECTOR WORDS READED)= 256
1309
    ADDRESS-3E
1310
      LABEL-
1311
INSTRUCTION-SUB
1312
   OPERAND1-s4
1313
   OPERAND2-01
1314
    COMMENT-
1315
    ADDRESS-3F
1316
      LABEL-
1317
INSTRUCTION-AND
1318
   OPERAND1-s4
1319
   OPERAND2-s4
1320
    COMMENT-
1321
    ADDRESS-40
1322
      LABEL-
1323
INSTRUCTION-JUMP
1324
   OPERAND1-Z
1325
   OPERAND2-track_new_cluster
1326
    COMMENT-
1327
    ADDRESS-41
1328
      LABEL-read_new_sector
1329
INSTRUCTION-
1330
   OPERAND1-
1331
   OPERAND2-
1332
    COMMENT-
1333
    ADDRESS-41
1334
      LABEL-
1335
INSTRUCTION-
1336
   OPERAND1-
1337
   OPERAND2-
1338
    COMMENT-; (SECTOR WORDS READED)= 256
1339
    ADDRESS-41
1340
      LABEL-
1341
INSTRUCTION-
1342
   OPERAND1-
1343
   OPERAND2-
1344
    COMMENT-; increment LBA
1345
    ADDRESS-41
1346
      LABEL-
1347
INSTRUCTION-
1348
   OPERAND1-
1349
   OPERAND2-
1350
    COMMENT-; sector_per_cluster -> sector_per_cluster_readed-1
1351
    ADDRESS-41
1352
      LABEL-
1353
INSTRUCTION-ADD
1354
   OPERAND1-s0
1355
   OPERAND2-01
1356
    COMMENT-
1357
    ADDRESS-42
1358
      LABEL-
1359
INSTRUCTION-ADDCY
1360
   OPERAND1-s1
1361
   OPERAND2-00
1362
    COMMENT-
1363
    ADDRESS-43
1364
      LABEL-
1365
INSTRUCTION-ADDCY
1366
   OPERAND1-s2
1367
   OPERAND2-00
1368
    COMMENT-
1369
    ADDRESS-44
1370
      LABEL-
1371
INSTRUCTION-ADDCY
1372
   OPERAND1-s3
1373
   OPERAND2-00
1374
    COMMENT-
1375
    ADDRESS-45
1376
      LABEL-read_sector
1377
INSTRUCTION-
1378
   OPERAND1-
1379
   OPERAND2-
1380
    COMMENT-
1381
    ADDRESS-45
1382
      LABEL-
1383
INSTRUCTION-LOAD
1384
   OPERAND1-s5
1385
   OPERAND2-00
1386
    COMMENT-
1387
    ADDRESS-46
1388
      LABEL-
1389
INSTRUCTION-CALL
1390
   OPERAND1-write_lba_to_slave
1391
   OPERAND2-
1392
    COMMENT-
1393
    ADDRESS-47
1394
      LABEL-
1395
INSTRUCTION-RETURN
1396
   OPERAND1-
1397
   OPERAND2-
1398
    COMMENT-
1399
    ADDRESS-48
1400
      LABEL-
1401
INSTRUCTION-
1402
   OPERAND1-
1403
   OPERAND2-
1404
    COMMENT-;
1405
    ADDRESS-48
1406
      LABEL-
1407
INSTRUCTION-
1408
   OPERAND1-
1409
   OPERAND2-
1410
    COMMENT-; --
1411
    ADDRESS-48
1412
      LABEL-
1413
INSTRUCTION-
1414
   OPERAND1-
1415
   OPERAND2-
1416
    COMMENT-; -- PROCESS MASTER BOOT RECORD (READ LBA BEGIN OF THE FIRST PARTITION)
1417
    ADDRESS-48
1418
      LABEL-
1419
INSTRUCTION-
1420
   OPERAND1-
1421
   OPERAND2-
1422
    COMMENT-; --
1423
    ADDRESS-48
1424
      LABEL-process_master_boot_record
1425
INSTRUCTION-
1426
   OPERAND1-
1427
   OPERAND2-
1428
    COMMENT-
1429
    ADDRESS-48
1430
      LABEL-
1431
INSTRUCTION-
1432
   OPERAND1-
1433
   OPERAND2-
1434
    COMMENT-;
1435
    ADDRESS-48
1436
      LABEL-
1437
INSTRUCTION-
1438
   OPERAND1-
1439
   OPERAND2-
1440
    COMMENT-; LOAD LBA FOR MBR READ
1441
    ADDRESS-48
1442
      LABEL-
1443
INSTRUCTION-
1444
   OPERAND1-
1445
   OPERAND2-
1446
    COMMENT-;
1447
    ADDRESS-48
1448
      LABEL-
1449
INSTRUCTION-LOAD
1450
   OPERAND1-s0
1451
   OPERAND2-00
1452
    COMMENT-
1453
    ADDRESS-49
1454
      LABEL-
1455
INSTRUCTION-LOAD
1456
   OPERAND1-s1
1457
   OPERAND2-00
1458
    COMMENT-
1459
    ADDRESS-4A
1460
      LABEL-
1461
INSTRUCTION-LOAD
1462
   OPERAND1-s2
1463
   OPERAND2-00
1464
    COMMENT-
1465
    ADDRESS-4B
1466
      LABEL-
1467
INSTRUCTION-LOAD
1468
   OPERAND1-s3
1469
   OPERAND2-00
1470
    COMMENT-
1471
    ADDRESS-4C
1472
      LABEL-
1473
INSTRUCTION-CALL
1474
   OPERAND1-write_lba_to_slave
1475
   OPERAND2-
1476
    COMMENT-
1477
    ADDRESS-4D
1478
      LABEL-
1479
INSTRUCTION-
1480
   OPERAND1-
1481
   OPERAND2-
1482
    COMMENT-; information of the lba begin for the first partition
1483
    ADDRESS-4D
1484
      LABEL-
1485
INSTRUCTION-
1486
   OPERAND1-
1487
   OPERAND2-
1488
    COMMENT-; has an offset of 454 bytes -> 227(0xE3) words
1489
    ADDRESS-4D
1490
      LABEL-
1491
INSTRUCTION-LOAD
1492
   OPERAND1-sF
1493
   OPERAND2-E3
1494
    COMMENT-
1495
    ADDRESS-4E
1496
      LABEL-
1497
INSTRUCTION-CALL
1498
   OPERAND1-do_dummy_reads_from_slave
1499
   OPERAND2-
1500
    COMMENT-
1501
    ADDRESS-4F
1502
      LABEL-
1503
INSTRUCTION-
1504
   OPERAND1-
1505
   OPERAND2-
1506
    COMMENT-;
1507
    ADDRESS-4F
1508
      LABEL-
1509
INSTRUCTION-
1510
   OPERAND1-
1511
   OPERAND2-
1512
    COMMENT-; --
1513
    ADDRESS-4F
1514
      LABEL-
1515
INSTRUCTION-
1516
   OPERAND1-
1517
   OPERAND2-
1518
    COMMENT-; -- MBR READ - Partition_LBA_Begin EXTRACTION
1519
    ADDRESS-4F
1520
      LABEL-
1521
INSTRUCTION-
1522
   OPERAND1-
1523
   OPERAND2-
1524
    COMMENT-; --
1525
    ADDRESS-4F
1526
      LABEL-
1527
INSTRUCTION-
1528
   OPERAND1-
1529
   OPERAND2-
1530
    COMMENT-;
1531
    ADDRESS-4F
1532
      LABEL-
1533
INSTRUCTION-
1534
   OPERAND1-
1535
   OPERAND2-
1536
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s0) lba
1537
    ADDRESS-4F
1538
      LABEL-
1539
INSTRUCTION-
1540
   OPERAND1-
1541
   OPERAND2-
1542
    COMMENT-;  (sE) data[15:8] WB MASTER -> (s1) lba
1543
    ADDRESS-4F
1544
      LABEL-
1545
INSTRUCTION-
1546
   OPERAND1-
1547
   OPERAND2-
1548
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s2) lba
1549
    ADDRESS-4F
1550
      LABEL-
1551
INSTRUCTION-
1552
   OPERAND1-
1553
   OPERAND2-
1554
    COMMENT-;  (sE) data[15:8] WB MASTER -> (s3) lba
1555
    ADDRESS-4F
1556
      LABEL-
1557
INSTRUCTION-CALL
1558
   OPERAND1-store_all_temporal_registers
1559
   OPERAND2-
1560
    COMMENT-
1561
    ADDRESS-50
1562
      LABEL-
1563
INSTRUCTION-LOAD
1564
   OPERAND1-s8
1565
   OPERAND2-s0
1566
    COMMENT-
1567
    ADDRESS-51
1568
      LABEL-
1569
INSTRUCTION-LOAD
1570
   OPERAND1-s9
1571
   OPERAND2-s1
1572
    COMMENT-
1573
    ADDRESS-52
1574
      LABEL-
1575
INSTRUCTION-LOAD
1576
   OPERAND1-sA
1577
   OPERAND2-s2
1578
    COMMENT-
1579
    ADDRESS-53
1580
      LABEL-
1581
INSTRUCTION-LOAD
1582
   OPERAND1-sB
1583
   OPERAND2-s3
1584
    COMMENT-
1585
    ADDRESS-54
1586
      LABEL-
1587
INSTRUCTION-
1588
   OPERAND1-
1589
   OPERAND2-
1590
    COMMENT-;
1591
    ADDRESS-54
1592
      LABEL-
1593
INSTRUCTION-
1594
   OPERAND1-
1595
   OPERAND2-
1596
    COMMENT-; NOW IS THE LBA_BEGIN ON THE TMP REGISTERS
1597
    ADDRESS-54
1598
      LABEL-
1599
INSTRUCTION-
1600
   OPERAND1-
1601
   OPERAND2-
1602
    COMMENT-; --------------------
1603
    ADDRESS-54
1604
      LABEL-
1605
INSTRUCTION-
1606
   OPERAND1-
1607
   OPERAND2-
1608
    COMMENT-; READ FIRST SECTOR (FAT32 VOLUMEN ID) OF THE PARTITION
1609
    ADDRESS-54
1610
      LABEL-
1611
INSTRUCTION-
1612
   OPERAND1-
1613
   OPERAND2-
1614
    COMMENT-; ---------------------
1615
    ADDRESS-54
1616
      LABEL-
1617
INSTRUCTION-CALL
1618
   OPERAND1-write_lba_to_slave
1619
   OPERAND2-
1620
    COMMENT-
1621
    ADDRESS-55
1622
      LABEL-
1623
INSTRUCTION-
1624
   OPERAND1-
1625
   OPERAND2-
1626
    COMMENT-;
1627
    ADDRESS-55
1628
      LABEL-
1629
INSTRUCTION-
1630
   OPERAND1-
1631
   OPERAND2-
1632
    COMMENT-; READ -> SECTORS_PER_CLUSTER (OFFSET 0x0D)
1633
    ADDRESS-55
1634
      LABEL-
1635
INSTRUCTION-
1636
   OPERAND1-
1637
   OPERAND2-
1638
    COMMENT-;
1639
    ADDRESS-55
1640
      LABEL-
1641
INSTRUCTION-
1642
   OPERAND1-
1643
   OPERAND2-
1644
    COMMENT-; offset 0x0D (13) => READ 13 bytes -> 6(0x06) words and drop LSB in the next
1645
    ADDRESS-55
1646
      LABEL-
1647
INSTRUCTION-LOAD
1648
   OPERAND1-sF
1649
   OPERAND2-06
1650
    COMMENT-
1651
    ADDRESS-56
1652
      LABEL-
1653
INSTRUCTION-CALL
1654
   OPERAND1-do_dummy_reads_from_slave
1655
   OPERAND2-
1656
    COMMENT-
1657
    ADDRESS-57
1658
      LABEL-
1659
INSTRUCTION-
1660
   OPERAND1-
1661
   OPERAND2-
1662
    COMMENT-;
1663
    ADDRESS-57
1664
      LABEL-
1665
INSTRUCTION-
1666
   OPERAND1-
1667
   OPERAND2-
1668
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s7) SECTORS PER CLUSTER
1669
    ADDRESS-57
1670
      LABEL-
1671
INSTRUCTION-CALL
1672
   OPERAND1-read_word_from_slave
1673
   OPERAND2-
1674
    COMMENT-
1675
    ADDRESS-58
1676
      LABEL-
1677
INSTRUCTION-LOAD
1678
   OPERAND1-s7
1679
   OPERAND2-sE
1680
    COMMENT-
1681
    ADDRESS-59
1682
      LABEL-
1683
INSTRUCTION-
1684
   OPERAND1-
1685
   OPERAND2-
1686
    COMMENT-;
1687
    ADDRESS-59
1688
      LABEL-
1689
INSTRUCTION-
1690
   OPERAND1-
1691
   OPERAND2-
1692
    COMMENT-; READ -> Number_of_Reserved_Sectors (2 bytes) (OFFSET 0x0E)
1693
    ADDRESS-59
1694
      LABEL-
1695
INSTRUCTION-
1696
   OPERAND1-
1697
   OPERAND2-
1698
    COMMENT-;
1699
    ADDRESS-59
1700
      LABEL-
1701
INSTRUCTION-
1702
   OPERAND1-
1703
   OPERAND2-
1704
    COMMENT-; offset 0x0E (14) => READ 2 bytes -> 1(0x01) words
1705
    ADDRESS-59
1706
      LABEL-
1707
INSTRUCTION-
1708
   OPERAND1-
1709
   OPERAND2-
1710
    COMMENT-;  (sD) data[15:8] WB MASTER -> (s6) TEMPORAL REGISTER
1711
    ADDRESS-59
1712
      LABEL-
1713
INSTRUCTION-CALL
1714
   OPERAND1-read_word_from_slave
1715
   OPERAND2-
1716
    COMMENT-
1717
    ADDRESS-5A
1718
      LABEL-
1719
INSTRUCTION-LOAD
1720
   OPERAND1-s6
1721
   OPERAND2-sD
1722
    COMMENT-
1723
    ADDRESS-5B
1724
      LABEL-
1725
INSTRUCTION-
1726
   OPERAND1-
1727
   OPERAND2-
1728
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s4) TEMPORAL REGISTER
1729
    ADDRESS-5B
1730
      LABEL-
1731
INSTRUCTION-
1732
   OPERAND1-
1733
   OPERAND2-
1734
    COMMENT-;
1735
    ADDRESS-5B
1736
      LABEL-
1737
INSTRUCTION-LOAD
1738
   OPERAND1-s4
1739
   OPERAND2-sE
1740
    COMMENT-
1741
    ADDRESS-5C
1742
      LABEL-
1743
INSTRUCTION-
1744
   OPERAND1-
1745
   OPERAND2-
1746
    COMMENT-;
1747
    ADDRESS-5C
1748
      LABEL-
1749
INSTRUCTION-
1750
   OPERAND1-
1751
   OPERAND2-
1752
    COMMENT-;fat_begin_lba = Partition_LBA_Begin + Number_of_Reserved_Sectors
1753
    ADDRESS-5C
1754
      LABEL-
1755
INSTRUCTION-
1756
   OPERAND1-
1757
   OPERAND2-
1758
    COMMENT-;
1759
    ADDRESS-5C
1760
      LABEL-
1761
INSTRUCTION-ADD
1762
   OPERAND1-s8
1763
   OPERAND2-s6
1764
    COMMENT-
1765
    ADDRESS-5D
1766
      LABEL-
1767
INSTRUCTION-ADDCY
1768
   OPERAND1-s9
1769
   OPERAND2-s4
1770
    COMMENT-
1771
    ADDRESS-5E
1772
      LABEL-
1773
INSTRUCTION-ADDCY
1774
   OPERAND1-sA
1775
   OPERAND2-00
1776
    COMMENT-
1777
    ADDRESS-5F
1778
      LABEL-
1779
INSTRUCTION-ADDCY
1780
   OPERAND1-sB
1781
   OPERAND2-00
1782
    COMMENT-
1783
    ADDRESS-60
1784
      LABEL-
1785
INSTRUCTION-
1786
   OPERAND1-
1787
   OPERAND2-
1788
    COMMENT-; store fat_begin_lba in external registers
1789
    ADDRESS-60
1790
      LABEL-
1791
INSTRUCTION-OUTPUT
1792
   OPERAND1-s8
1793
   OPERAND2-TMP_OUT_0
1794
    COMMENT-
1795
    ADDRESS-61
1796
      LABEL-
1797
INSTRUCTION-OUTPUT
1798
   OPERAND1-s9
1799
   OPERAND2-TMP_OUT_1
1800
    COMMENT-
1801
    ADDRESS-62
1802
      LABEL-
1803
INSTRUCTION-OUTPUT
1804
   OPERAND1-sA
1805
   OPERAND2-TMP_OUT_2
1806
    COMMENT-
1807
    ADDRESS-63
1808
      LABEL-
1809
INSTRUCTION-OUTPUT
1810
   OPERAND1-sB
1811
   OPERAND2-TMP_OUT_3
1812
    COMMENT-
1813
    ADDRESS-64
1814
      LABEL-
1815
INSTRUCTION-
1816
   OPERAND1-
1817
   OPERAND2-
1818
    COMMENT-;
1819
    ADDRESS-64
1820
      LABEL-
1821
INSTRUCTION-
1822
   OPERAND1-
1823
   OPERAND2-
1824
    COMMENT-;cluster_begin_lba = Partition_LBA_Begin + Number_of_Reserved_Sectors +
1825
    ADDRESS-64
1826
      LABEL-
1827
INSTRUCTION-
1828
   OPERAND1-
1829
   OPERAND2-
1830
    COMMENT-;                           (Number_of_FATs * Sectors_Per_FAT)+ RootDirSectors;
1831
    ADDRESS-64
1832
      LABEL-
1833
INSTRUCTION-
1834
   OPERAND1-
1835
   OPERAND2-
1836
    COMMENT-;cluster_begin_lba = fat_begin_lba + (Number_of_FATs * Sectors_Per_FAT)+ RootDirSectors;
1837
    ADDRESS-64
1838
      LABEL-
1839
INSTRUCTION-
1840
   OPERAND1-
1841
   OPERAND2-
1842
    COMMENT-; READ -> Number_of_Fats (OFFSET 0x10) (always 2)
1843
    ADDRESS-64
1844
      LABEL-
1845
INSTRUCTION-
1846
   OPERAND1-
1847
   OPERAND2-
1848
    COMMENT-;
1849
    ADDRESS-64
1850
      LABEL-
1851
INSTRUCTION-
1852
   OPERAND1-
1853
   OPERAND2-
1854
    COMMENT-; offset 0x10 (16) => READ 2 bytes -> 1(0x01) words
1855
    ADDRESS-64
1856
      LABEL-
1857
INSTRUCTION-
1858
   OPERAND1-
1859
   OPERAND2-
1860
    COMMENT-;
1861
    ADDRESS-64
1862
      LABEL-
1863
INSTRUCTION-
1864
   OPERAND1-
1865
   OPERAND2-
1866
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s6) TEMPORAL REGISTER
1867
    ADDRESS-64
1868
      LABEL-
1869
INSTRUCTION-CALL
1870
   OPERAND1-read_word_from_slave
1871
   OPERAND2-
1872
    COMMENT-
1873
    ADDRESS-65
1874
      LABEL-
1875
INSTRUCTION-LOAD
1876
   OPERAND1-s6
1877
   OPERAND2-sD
1878
    COMMENT-
1879
    ADDRESS-66
1880
      LABEL-
1881
INSTRUCTION-
1882
   OPERAND1-
1883
   OPERAND2-
1884
    COMMENT-;
1885
    ADDRESS-66
1886
      LABEL-
1887
INSTRUCTION-
1888
   OPERAND1-
1889
   OPERAND2-
1890
    COMMENT-; FOR FAT16 => NUMBER OF SECTORS OCCUPIED BY THE ROOT DIRECTORY (BYTES_PER_SEC=512)
1891
    ADDRESS-66
1892
      LABEL-
1893
INSTRUCTION-
1894
   OPERAND1-
1895
   OPERAND2-
1896
    COMMENT-;
1897
    ADDRESS-66
1898
      LABEL-
1899
INSTRUCTION-
1900
   OPERAND1-
1901
   OPERAND2-
1902
    COMMENT-; READ -> RootEntCnt (OFFSET 0x11) (FAT16 PROCESSING)
1903
    ADDRESS-66
1904
      LABEL-
1905
INSTRUCTION-
1906
   OPERAND1-
1907
   OPERAND2-
1908
    COMMENT-; RootDirSectors=((BPB_RootEntCnt*32)+(BPB_BytesPerSec-1))/BPB_BytesPerSec
1909
    ADDRESS-66
1910
      LABEL-
1911
INSTRUCTION-
1912
   OPERAND1-
1913
   OPERAND2-
1914
    COMMENT-; offset 0x11 (17) => READ 1 bytes
1915
    ADDRESS-66
1916
      LABEL-
1917
INSTRUCTION-
1918
   OPERAND1-
1919
   OPERAND2-
1920
    COMMENT-;
1921
    ADDRESS-66
1922
      LABEL-
1923
INSTRUCTION-
1924
   OPERAND1-
1925
   OPERAND2-
1926
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s0) TEMPORAL REGISTER
1927
    ADDRESS-66
1928
      LABEL-
1929
INSTRUCTION-LOAD
1930
   OPERAND1-s0
1931
   OPERAND2-sE
1932
    COMMENT-
1933
    ADDRESS-67
1934
      LABEL-
1935
INSTRUCTION-
1936
   OPERAND1-
1937
   OPERAND2-
1938
    COMMENT-;  (sD) data[15:0] WB MASTER -> (sD) TEMPORAL REGISTER - offset 0x12 (18) => READ 1 bytes
1939
    ADDRESS-67
1940
      LABEL-
1941
INSTRUCTION-CALL
1942
   OPERAND1-read_word_from_slave
1943
   OPERAND2-
1944
    COMMENT-
1945
    ADDRESS-68
1946
      LABEL-
1947
INSTRUCTION-LOAD
1948
   OPERAND1-s1
1949
   OPERAND2-sD
1950
    COMMENT-
1951
    ADDRESS-69
1952
      LABEL-
1953
INSTRUCTION-
1954
   OPERAND1-
1955
   OPERAND2-
1956
    COMMENT-; MULTIPLY BY 32 (100000) 5 SHIFTS TO THE LEFT
1957
    ADDRESS-69
1958
      LABEL-
1959
INSTRUCTION-LOAD
1960
   OPERAND1-sF
1961
   OPERAND2-05
1962
    COMMENT-
1963
    ADDRESS-6A
1964
      LABEL-
1965
INSTRUCTION-
1966
   OPERAND1-
1967
   OPERAND2-
1968
    COMMENT-; LSB '0'
1969
    ADDRESS-6A
1970
      LABEL-mult_32
1971
INSTRUCTION-
1972
   OPERAND1-
1973
   OPERAND2-
1974
    COMMENT-
1975
    ADDRESS-6A
1976
      LABEL-
1977
INSTRUCTION-SL0
1978
   OPERAND1-s0
1979
   OPERAND2-
1980
    COMMENT-
1981
    ADDRESS-6B
1982
      LABEL-
1983
INSTRUCTION-
1984
   OPERAND1-
1985
   OPERAND2-
1986
    COMMENT-; CARRY -> LSB , MSB -> CARRY
1987
    ADDRESS-6B
1988
      LABEL-
1989
INSTRUCTION-SLA
1990
   OPERAND1-s1
1991
   OPERAND2-
1992
    COMMENT-
1993
    ADDRESS-6C
1994
      LABEL-
1995
INSTRUCTION-SUB
1996
   OPERAND1-sF
1997
   OPERAND2-01
1998
    COMMENT-
1999
    ADDRESS-6D
2000
      LABEL-
2001
INSTRUCTION-JUMP
2002
   OPERAND1-NZ
2003
   OPERAND2-mult_32
2004
    COMMENT-
2005
    ADDRESS-6E
2006
      LABEL-
2007
INSTRUCTION-
2008
   OPERAND1-
2009
   OPERAND2-
2010
    COMMENT-;BPB_RootEntCnt*32+(BPB_BytesPerSec-1) 511 (0x1FF)
2011
    ADDRESS-6E
2012
      LABEL-
2013
INSTRUCTION-
2014
   OPERAND1-
2015
   OPERAND2-
2016
    COMMENT-;ADD s0,FF (if rounds up => not necessary??)
2017
    ADDRESS-6E
2018
      LABEL-
2019
INSTRUCTION-
2020
   OPERAND1-
2021
   OPERAND2-
2022
    COMMENT-;ADDCY s1,01
2023
    ADDRESS-6E
2024
      LABEL-
2025
INSTRUCTION-
2026
   OPERAND1-
2027
   OPERAND2-
2028
    COMMENT-;/BPB_BytesPerSec (512) (1000000000)9 SHIFTS TO THE RIGHT
2029
    ADDRESS-6E
2030
      LABEL-
2031
INSTRUCTION-LOAD
2032
   OPERAND1-sF
2033
   OPERAND2-09
2034
    COMMENT-
2035
    ADDRESS-6F
2036
      LABEL-div_512
2037
INSTRUCTION-
2038
   OPERAND1-
2039
   OPERAND2-
2040
    COMMENT-
2041
    ADDRESS-6F
2042
      LABEL-
2043
INSTRUCTION-
2044
   OPERAND1-
2045
   OPERAND2-
2046
    COMMENT-; uses the carry for the MSB and stores LSB into the carry
2047
    ADDRESS-6F
2048
      LABEL-
2049
INSTRUCTION-SR0
2050
   OPERAND1-s1
2051
   OPERAND2-
2052
    COMMENT-
2053
    ADDRESS-70
2054
      LABEL-
2055
INSTRUCTION-SRA
2056
   OPERAND1-s0
2057
   OPERAND2-
2058
    COMMENT-
2059
    ADDRESS-71
2060
      LABEL-
2061
INSTRUCTION-SUB
2062
   OPERAND1-sF
2063
   OPERAND2-01
2064
    COMMENT-
2065
    ADDRESS-72
2066
      LABEL-
2067
INSTRUCTION-JUMP
2068
   OPERAND1-NZ
2069
   OPERAND2-div_512
2070
    COMMENT-
2071
    ADDRESS-73
2072
      LABEL-
2073
INSTRUCTION-
2074
   OPERAND1-
2075
   OPERAND2-
2076
    COMMENT-; ROUNDs UP
2077
    ADDRESS-73
2078
      LABEL-
2079
INSTRUCTION-
2080
   OPERAND1-
2081
   OPERAND2-
2082
    COMMENT-;ADD s0,01
2083
    ADDRESS-73
2084
      LABEL-
2085
INSTRUCTION-
2086
   OPERAND1-
2087
   OPERAND2-
2088
    COMMENT-;ADDCY s1,00
2089
    ADDRESS-73
2090
      LABEL-
2091
INSTRUCTION-
2092
   OPERAND1-
2093
   OPERAND2-
2094
    COMMENT-;fat_begin_lba + RootDirSectors
2095
    ADDRESS-73
2096
      LABEL-
2097
INSTRUCTION-ADD
2098
   OPERAND1-s8
2099
   OPERAND2-s0
2100
    COMMENT-
2101
    ADDRESS-74
2102
      LABEL-
2103
INSTRUCTION-ADDCY
2104
   OPERAND1-s9
2105
   OPERAND2-s1
2106
    COMMENT-
2107
    ADDRESS-75
2108
      LABEL-
2109
INSTRUCTION-ADDCY
2110
   OPERAND1-sA
2111
   OPERAND2-s2
2112
    COMMENT-
2113
    ADDRESS-76
2114
      LABEL-
2115
INSTRUCTION-ADDCY
2116
   OPERAND1-sB
2117
   OPERAND2-s3
2118
    COMMENT-
2119
    ADDRESS-77
2120
      LABEL-
2121
INSTRUCTION-
2122
   OPERAND1-
2123
   OPERAND2-
2124
    COMMENT-; READ -> Sectors_per_fat (OFFSET 0x24)
2125
    ADDRESS-77
2126
      LABEL-
2127
INSTRUCTION-
2128
   OPERAND1-
2129
   OPERAND2-
2130
    COMMENT-;
2131
    ADDRESS-77
2132
      LABEL-
2133
INSTRUCTION-
2134
   OPERAND1-
2135
   OPERAND2-
2136
    COMMENT-; offset 0x16 (22) => READ 2 bytes -> 01(0x01) words
2137
    ADDRESS-77
2138
      LABEL-
2139
INSTRUCTION-
2140
   OPERAND1-
2141
   OPERAND2-
2142
    COMMENT-;
2143
    ADDRESS-77
2144
      LABEL-
2145
INSTRUCTION-LOAD
2146
   OPERAND1-sF
2147
   OPERAND2-01
2148
    COMMENT-
2149
    ADDRESS-78
2150
      LABEL-
2151
INSTRUCTION-CALL
2152
   OPERAND1-do_dummy_reads_from_slave
2153
   OPERAND2-
2154
    COMMENT-
2155
    ADDRESS-79
2156
      LABEL-
2157
INSTRUCTION-CALL
2158
   OPERAND1-store_all_temporal_registers
2159
   OPERAND2-
2160
    COMMENT-
2161
    ADDRESS-7A
2162
      LABEL-
2163
INSTRUCTION-
2164
   OPERAND1-
2165
   OPERAND2-
2166
    COMMENT-;  (Number_of_FATs * Sectors_Per_FAT)
2167
    ADDRESS-7A
2168
      LABEL-
2169
INSTRUCTION-
2170
   OPERAND1-
2171
   OPERAND2-
2172
    COMMENT-; Number_of_FATs = 2 (10) . Do a shift to the left of the Sectors_Per_Fat
2173
    ADDRESS-7A
2174
      LABEL-
2175
INSTRUCTION-
2176
   OPERAND1-
2177
   OPERAND2-
2178
    COMMENT-; ***       FAT16 = Sectors_per_fat(BPB_FATSz16)
2179
    ADDRESS-7A
2180
      LABEL-
2181
INSTRUCTION-
2182
   OPERAND1-
2183
   OPERAND2-
2184
    COMMENT-; LSB '0'
2185
    ADDRESS-7A
2186
      LABEL-
2187
INSTRUCTION-SL0
2188
   OPERAND1-s0
2189
   OPERAND2-
2190
    COMMENT-
2191
    ADDRESS-7B
2192
      LABEL-
2193
INSTRUCTION-
2194
   OPERAND1-
2195
   OPERAND2-
2196
    COMMENT-; CARRY -> LSB , MSB -> CARRY
2197
    ADDRESS-7B
2198
      LABEL-
2199
INSTRUCTION-SLA
2200
   OPERAND1-s1
2201
   OPERAND2-
2202
    COMMENT-
2203
    ADDRESS-7C
2204
      LABEL-
2205
INSTRUCTION-
2206
   OPERAND1-
2207
   OPERAND2-
2208
    COMMENT-;SLA s2 for fat16 only 2 bytes
2209
    ADDRESS-7C
2210
      LABEL-
2211
INSTRUCTION-
2212
   OPERAND1-
2213
   OPERAND2-
2214
    COMMENT-;SLA s3
2215
    ADDRESS-7C
2216
      LABEL-
2217
INSTRUCTION-
2218
   OPERAND1-
2219
   OPERAND2-
2220
    COMMENT-; fat_begin_lba + RootDirSectors + (Number_of_FATs * Sectors_Per_FAT)
2221
    ADDRESS-7C
2222
      LABEL-
2223
INSTRUCTION-ADD
2224
   OPERAND1-s8
2225
   OPERAND2-s0
2226
    COMMENT-
2227
    ADDRESS-7D
2228
      LABEL-
2229
INSTRUCTION-ADDCY
2230
   OPERAND1-s9
2231
   OPERAND2-s1
2232
    COMMENT-
2233
    ADDRESS-7E
2234
      LABEL-
2235
INSTRUCTION-ADDCY
2236
   OPERAND1-sA
2237
   OPERAND2-00
2238
    COMMENT-
2239
    ADDRESS-7F
2240
      LABEL-
2241
INSTRUCTION-ADDCY
2242
   OPERAND1-sB
2243
   OPERAND2-00
2244
    COMMENT-
2245
    ADDRESS-80
2246
      LABEL-
2247
INSTRUCTION-
2248
   OPERAND1-
2249
   OPERAND2-
2250
    COMMENT-; cluster_begin_lba is stored in s8, s9, sA, SB
2251
    ADDRESS-80
2252
      LABEL-
2253
INSTRUCTION-
2254
   OPERAND1-
2255
   OPERAND2-
2256
    COMMENT-;
2257
    ADDRESS-80
2258
      LABEL-
2259
INSTRUCTION-
2260
   OPERAND1-
2261
   OPERAND2-
2262
    COMMENT-; FOR FAT16 ROOT DIRECTORY POSITION IS FIXED
2263
    ADDRESS-80
2264
      LABEL-
2265
INSTRUCTION-
2266
   OPERAND1-
2267
   OPERAND2-
2268
    COMMENT-; root_first_lba =  fat_begin_lba(in external regs) + (Number_of_FATs * Sectors_Per_FAT) (s0,s1,s2,s3)
2269
    ADDRESS-80
2270
      LABEL-
2271
INSTRUCTION-
2272
   OPERAND1-
2273
   OPERAND2-
2274
    COMMENT-;
2275
    ADDRESS-80
2276
      LABEL-
2277
INSTRUCTION-LOAD
2278
   OPERAND1-s2
2279
   OPERAND2-00
2280
    COMMENT-
2281
    ADDRESS-81
2282
      LABEL-
2283
INSTRUCTION-LOAD
2284
   OPERAND1-s3
2285
   OPERAND2-00
2286
    COMMENT-
2287
    ADDRESS-82
2288
      LABEL-
2289
INSTRUCTION-CALL
2290
   OPERAND1-add_load_fat_begin_lba
2291
   OPERAND2-
2292
    COMMENT-
2293
    ADDRESS-83
2294
      LABEL-
2295
INSTRUCTION-
2296
   OPERAND1-
2297
   OPERAND2-
2298
    COMMENT-; s0,s1,s2,s3 have Root directory begin lba
2299
    ADDRESS-83
2300
      LABEL-
2301
INSTRUCTION-RETURN
2302
   OPERAND1-
2303
   OPERAND2-
2304
    COMMENT-
2305
    ADDRESS-84
2306
      LABEL-store_all_temporal_registers
2307
INSTRUCTION-
2308
   OPERAND1-
2309
   OPERAND2-
2310
    COMMENT-
2311
    ADDRESS-84
2312
      LABEL-
2313
INSTRUCTION-
2314
   OPERAND1-
2315
   OPERAND2-
2316
    COMMENT-; READ 2 BYTES
2317
    ADDRESS-84
2318
      LABEL-
2319
INSTRUCTION-CALL
2320
   OPERAND1-read_word_from_slave
2321
   OPERAND2-
2322
    COMMENT-
2323
    ADDRESS-85
2324
      LABEL-
2325
INSTRUCTION-
2326
   OPERAND1-
2327
   OPERAND2-
2328
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s0) TEMPORAL REGISTER
2329
    ADDRESS-85
2330
      LABEL-
2331
INSTRUCTION-
2332
   OPERAND1-
2333
   OPERAND2-
2334
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s1) TEMPORAL REGISTER
2335
    ADDRESS-85
2336
      LABEL-
2337
INSTRUCTION-LOAD
2338
   OPERAND1-s0
2339
   OPERAND2-sD
2340
    COMMENT-
2341
    ADDRESS-86
2342
      LABEL-
2343
INSTRUCTION-LOAD
2344
   OPERAND1-s1
2345
   OPERAND2-sE
2346
    COMMENT-
2347
    ADDRESS-87
2348
      LABEL-
2349
INSTRUCTION-
2350
   OPERAND1-
2351
   OPERAND2-
2352
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s2) TEMPORAL REGISTER
2353
    ADDRESS-87
2354
      LABEL-
2355
INSTRUCTION-
2356
   OPERAND1-
2357
   OPERAND2-
2358
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s3) TEMPORAL REGISTER
2359
    ADDRESS-87
2360
      LABEL-
2361
INSTRUCTION-
2362
   OPERAND1-
2363
   OPERAND2-
2364
    COMMENT-; READ 2 BYTES
2365
    ADDRESS-87
2366
      LABEL-
2367
INSTRUCTION-CALL
2368
   OPERAND1-read_word_from_slave
2369
   OPERAND2-
2370
    COMMENT-
2371
    ADDRESS-88
2372
      LABEL-
2373
INSTRUCTION-LOAD
2374
   OPERAND1-s2
2375
   OPERAND2-sD
2376
    COMMENT-
2377
    ADDRESS-89
2378
      LABEL-
2379
INSTRUCTION-LOAD
2380
   OPERAND1-s3
2381
   OPERAND2-sE
2382
    COMMENT-
2383
    ADDRESS-8A
2384
      LABEL-
2385
INSTRUCTION-RETURN
2386
   OPERAND1-
2387
   OPERAND2-
2388
    COMMENT-
2389
    ADDRESS-8B
2390
      LABEL-process_root_directory
2391
INSTRUCTION-
2392
   OPERAND1-
2393
   OPERAND2-
2394
    COMMENT-
2395
    ADDRESS-8B
2396
      LABEL-
2397
INSTRUCTION-
2398
   OPERAND1-
2399
   OPERAND2-
2400
    COMMENT-; INPUT :
2401
    ADDRESS-8B
2402
      LABEL-
2403
INSTRUCTION-
2404
   OPERAND1-
2405
   OPERAND2-
2406
    COMMENT-; s0,s1,s2,s3 root directory lba (FAT16- FIXED)
2407
    ADDRESS-8B
2408
      LABEL-
2409
INSTRUCTION-
2410
   OPERAND1-
2411
   OPERAND2-
2412
    COMMENT-; CALL cluster_2_lba
2413
    ADDRESS-8B
2414
      LABEL-
2415
INSTRUCTION-
2416
   OPERAND1-
2417
   OPERAND2-
2418
    COMMENT-; now s0,s1,s2,s3 contains the lba for the root directory
2419
    ADDRESS-8B
2420
      LABEL-
2421
INSTRUCTION-
2422
   OPERAND1-
2423
   OPERAND2-
2424
    COMMENT-; the first 32 byte record on the sector must be the root directory information
2425
    ADDRESS-8B
2426
      LABEL-
2427
INSTRUCTION-
2428
   OPERAND1-
2429
   OPERAND2-
2430
    COMMENT-; check if EOF (first byte of the 32 bytes is 0)
2431
    ADDRESS-8B
2432
      LABEL-
2433
INSTRUCTION-CALL
2434
   OPERAND1-write_lba_to_slave
2435
   OPERAND2-
2436
    COMMENT-
2437
    ADDRESS-8C
2438
      LABEL-check_for_a_file
2439
INSTRUCTION-
2440
   OPERAND1-
2441
   OPERAND2-
2442
    COMMENT-
2443
    ADDRESS-8C
2444
      LABEL-
2445
INSTRUCTION-CALL
2446
   OPERAND1-read_word_from_slave
2447
   OPERAND2-
2448
    COMMENT-
2449
    ADDRESS-8D
2450
      LABEL-
2451
INSTRUCTION-
2452
   OPERAND1-
2453
   OPERAND2-
2454
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s6) TEMPORAL REGISTER
2455
    ADDRESS-8D
2456
      LABEL-
2457
INSTRUCTION-LOAD
2458
   OPERAND1-s6
2459
   OPERAND2-sD
2460
    COMMENT-
2461
    ADDRESS-8E
2462
      LABEL-
2463
INSTRUCTION-LOAD
2464
   OPERAND1-sF
2465
   OPERAND2-s6
2466
    COMMENT-
2467
    ADDRESS-8F
2468
      LABEL-
2469
INSTRUCTION-AND
2470
   OPERAND1-sF
2471
   OPERAND2-sF
2472
    COMMENT-
2473
    ADDRESS-90
2474
      LABEL-
2475
INSTRUCTION-
2476
   OPERAND1-
2477
   OPERAND2-
2478
    COMMENT-; if sF=0 the is not directory => error
2479
    ADDRESS-90
2480
      LABEL-
2481
INSTRUCTION-JUMP
2482
   OPERAND1-Z
2483
   OPERAND2-put_error_code
2484
    COMMENT-
2485
    ADDRESS-91
2486
      LABEL-
2487
INSTRUCTION-
2488
   OPERAND1-
2489
   OPERAND2-
2490
    COMMENT-;
2491
    ADDRESS-91
2492
      LABEL-
2493
INSTRUCTION-
2494
   OPERAND1-
2495
   OPERAND2-
2496
    COMMENT-; check that is not a deleted entry
2497
    ADDRESS-91
2498
      LABEL-
2499
INSTRUCTION-
2500
   OPERAND1-
2501
   OPERAND2-
2502
    COMMENT-;
2503
    ADDRESS-91
2504
      LABEL-
2505
INSTRUCTION-
2506
   OPERAND1-
2507
   OPERAND2-
2508
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s6) TEMPORAL REGISTER
2509
    ADDRESS-91
2510
      LABEL-
2511
INSTRUCTION-LOAD
2512
   OPERAND1-sF
2513
   OPERAND2-E5
2514
    COMMENT-
2515
    ADDRESS-92
2516
      LABEL-
2517
INSTRUCTION-AND
2518
   OPERAND1-sF
2519
   OPERAND2-s6
2520
    COMMENT-
2521
    ADDRESS-93
2522
      LABEL-
2523
INSTRUCTION-
2524
   OPERAND1-
2525
   OPERAND2-
2526
    COMMENT-; if s6=E5 is a deteled entry => check for new one (offset => sF)
2527
    ADDRESS-93
2528
      LABEL-
2529
INSTRUCTION-JUMP
2530
   OPERAND1-Z
2531
   OPERAND2-check_next_directory_entry
2532
    COMMENT-
2533
    ADDRESS-94
2534
      LABEL-check_attribute
2535
INSTRUCTION-
2536
   OPERAND1-
2537
   OPERAND2-
2538
    COMMENT-
2539
    ADDRESS-94
2540
      LABEL-
2541
INSTRUCTION-
2542
   OPERAND1-
2543
   OPERAND2-
2544
    COMMENT-; ATTRIBUTE -> OFFSET Bh
2545
    ADDRESS-94
2546
      LABEL-
2547
INSTRUCTION-
2548
   OPERAND1-
2549
   OPERAND2-
2550
    COMMENT-; check that is not a directory or LONG NAME
2551
    ADDRESS-94
2552
      LABEL-
2553
INSTRUCTION-
2554
   OPERAND1-
2555
   OPERAND2-
2556
    COMMENT-; 00arshdv - DV for long name - D for directory
2557
    ADDRESS-94
2558
      LABEL-
2559
INSTRUCTION-
2560
   OPERAND1-
2561
   OPERAND2-
2562
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s6) TEMPORAL REGISTER
2563
    ADDRESS-94
2564
      LABEL-
2565
INSTRUCTION-LOAD
2566
   OPERAND1-sF
2567
   OPERAND2-04
2568
    COMMENT-
2569
    ADDRESS-95
2570
      LABEL-
2571
INSTRUCTION-CALL
2572
   OPERAND1-do_dummy_reads_from_slave
2573
   OPERAND2-
2574
    COMMENT-
2575
    ADDRESS-96
2576
      LABEL-
2577
INSTRUCTION-CALL
2578
   OPERAND1-read_word_from_slave
2579
   OPERAND2-
2580
    COMMENT-
2581
    ADDRESS-97
2582
      LABEL-
2583
INSTRUCTION-LOAD
2584
   OPERAND1-s6
2585
   OPERAND2-sE
2586
    COMMENT-
2587
    ADDRESS-98
2588
      LABEL-
2589
INSTRUCTION-LOAD
2590
   OPERAND1-sF
2591
   OPERAND2-03
2592
    COMMENT-
2593
    ADDRESS-99
2594
      LABEL-
2595
INSTRUCTION-AND
2596
   OPERAND1-sF
2597
   OPERAND2-s6
2598
    COMMENT-
2599
    ADDRESS-9A
2600
      LABEL-
2601
INSTRUCTION-JUMP
2602
   OPERAND1-NZ
2603
   OPERAND2-check_next_directory_entry_attribute
2604
    COMMENT-
2605
    ADDRESS-9B
2606
      LABEL-
2607
INSTRUCTION-
2608
   OPERAND1-
2609
   OPERAND2-
2610
    COMMENT-; if s6=0 that is not a file => error
2611
    ADDRESS-9B
2612
      LABEL-
2613
INSTRUCTION-
2614
   OPERAND1-
2615
   OPERAND2-
2616
    COMMENT-;JUMP Z,check_next_directory_entry
2617
    ADDRESS-9B
2618
      LABEL-
2619
INSTRUCTION-
2620
   OPERAND1-
2621
   OPERAND2-
2622
    COMMENT-; check that is not a directory
2623
    ADDRESS-9B
2624
      LABEL-
2625
INSTRUCTION-
2626
   OPERAND1-
2627
   OPERAND2-
2628
    COMMENT-; check that is a file (short filename entry)
2629
    ADDRESS-9B
2630
      LABEL-
2631
INSTRUCTION-
2632
   OPERAND1-
2633
   OPERAND2-
2634
    COMMENT-; in other case error
2635
    ADDRESS-9B
2636
      LABEL-
2637
INSTRUCTION-
2638
   OPERAND1-
2639
   OPERAND2-
2640
    COMMENT-;
2641
    ADDRESS-9B
2642
      LABEL-
2643
INSTRUCTION-
2644
   OPERAND1-
2645
   OPERAND2-
2646
    COMMENT-;
2647
    ADDRESS-9B
2648
      LABEL-
2649
INSTRUCTION-
2650
   OPERAND1-
2651
   OPERAND2-
2652
    COMMENT-; READ CLUSTER INFORMATION FOR THE FILE
2653
    ADDRESS-9B
2654
      LABEL-
2655
INSTRUCTION-
2656
   OPERAND1-
2657
   OPERAND2-
2658
    COMMENT-;
2659
    ADDRESS-9B
2660
      LABEL-
2661
INSTRUCTION-CALL
2662
   OPERAND1-read_dir_cluster_hi_cluster_low
2663
   OPERAND2-
2664
    COMMENT-
2665
    ADDRESS-9C
2666
      LABEL-
2667
INSTRUCTION-RETURN
2668
   OPERAND1-
2669
   OPERAND2-
2670
    COMMENT-
2671
    ADDRESS-9D
2672
      LABEL-check_next_directory_entry
2673
INSTRUCTION-
2674
   OPERAND1-
2675
   OPERAND2-
2676
    COMMENT-
2677
    ADDRESS-9D
2678
      LABEL-
2679
INSTRUCTION-
2680
   OPERAND1-
2681
   OPERAND2-
2682
    COMMENT-; go fwd 11 words
2683
    ADDRESS-9D
2684
      LABEL-
2685
INSTRUCTION-LOAD
2686
   OPERAND1-sF
2687
   OPERAND2-05
2688
    COMMENT-
2689
    ADDRESS-9E
2690
      LABEL-
2691
INSTRUCTION-CALL
2692
   OPERAND1-do_dummy_reads_from_slave
2693
   OPERAND2-
2694
    COMMENT-
2695
    ADDRESS-9F
2696
      LABEL-check_next_directory_entry_attribute
2697
INSTRUCTION-
2698
   OPERAND1-
2699
   OPERAND2-
2700
    COMMENT-
2701
    ADDRESS-9F
2702
      LABEL-
2703
INSTRUCTION-
2704
   OPERAND1-
2705
   OPERAND2-
2706
    COMMENT-; go fwd 5 words
2707
    ADDRESS-9F
2708
      LABEL-
2709
INSTRUCTION-LOAD
2710
   OPERAND1-sF
2711
   OPERAND2-0A
2712
    COMMENT-
2713
    ADDRESS-A0
2714
      LABEL-
2715
INSTRUCTION-CALL
2716
   OPERAND1-do_dummy_reads_from_slave
2717
   OPERAND2-
2718
    COMMENT-
2719
    ADDRESS-A1
2720
      LABEL-
2721
INSTRUCTION-JUMP
2722
   OPERAND1-check_for_a_file
2723
   OPERAND2-
2724
    COMMENT-
2725
    ADDRESS-A2
2726
      LABEL-read_dir_cluster_hi_cluster_low
2727
INSTRUCTION-
2728
   OPERAND1-
2729
   OPERAND2-
2730
    COMMENT-
2731
    ADDRESS-A2
2732
      LABEL-
2733
INSTRUCTION-
2734
   OPERAND1-
2735
   OPERAND2-
2736
    COMMENT-; INPUT :
2737
    ADDRESS-A2
2738
      LABEL-
2739
INSTRUCTION-
2740
   OPERAND1-
2741
   OPERAND2-
2742
    COMMENT-;      before arrive here first two bytes of the directory
2743
    ADDRESS-A2
2744
      LABEL-
2745
INSTRUCTION-
2746
   OPERAND1-
2747
   OPERAND2-
2748
    COMMENT-;      structure must be readed
2749
    ADDRESS-A2
2750
      LABEL-
2751
INSTRUCTION-
2752
   OPERAND1-
2753
   OPERAND2-
2754
    COMMENT-; OUTPUT :
2755
    ADDRESS-A2
2756
      LABEL-
2757
INSTRUCTION-
2758
   OPERAND1-
2759
   OPERAND2-
2760
    COMMENT-; s0,s1 : CLUS_LOW
2761
    ADDRESS-A2
2762
      LABEL-
2763
INSTRUCTION-
2764
   OPERAND1-
2765
   OPERAND2-
2766
    COMMENT-; s2,s3 : CLUS_HI
2767
    ADDRESS-A2
2768
      LABEL-
2769
INSTRUCTION-
2770
   OPERAND1-
2771
   OPERAND2-
2772
    COMMENT-;
2773
    ADDRESS-A2
2774
      LABEL-
2775
INSTRUCTION-
2776
   OPERAND1-
2777
   OPERAND2-
2778
    COMMENT-; READ -> cluster_HI (OFFSET 0x14)
2779
    ADDRESS-A2
2780
      LABEL-
2781
INSTRUCTION-
2782
   OPERAND1-
2783
   OPERAND2-
2784
    COMMENT-;
2785
    ADDRESS-A2
2786
      LABEL-
2787
INSTRUCTION-
2788
   OPERAND1-
2789
   OPERAND2-
2790
    COMMENT-; offset 0x14 (20) => READ 18 bytes -> 9(0x09) words
2791
    ADDRESS-A2
2792
      LABEL-
2793
INSTRUCTION-
2794
   OPERAND1-
2795
   OPERAND2-
2796
    COMMENT-;
2797
    ADDRESS-A2
2798
      LABEL-
2799
INSTRUCTION-LOAD
2800
   OPERAND1-sF
2801
   OPERAND2-04
2802
    COMMENT-
2803
    ADDRESS-A3
2804
      LABEL-
2805
INSTRUCTION-CALL
2806
   OPERAND1-do_dummy_reads_from_slave
2807
   OPERAND2-
2808
    COMMENT-
2809
    ADDRESS-A4
2810
      LABEL-
2811
INSTRUCTION-
2812
   OPERAND1-
2813
   OPERAND2-
2814
    COMMENT-;  (sD) data[7:0] WB MASTER -> s2
2815
    ADDRESS-A4
2816
      LABEL-
2817
INSTRUCTION-
2818
   OPERAND1-
2819
   OPERAND2-
2820
    COMMENT-;  (sE) data[7:0] WB MASTER -> s3
2821
    ADDRESS-A4
2822
      LABEL-
2823
INSTRUCTION-
2824
   OPERAND1-
2825
   OPERAND2-
2826
    COMMENT-; READ 2 BYTES
2827
    ADDRESS-A4
2828
      LABEL-
2829
INSTRUCTION-CALL
2830
   OPERAND1-read_word_from_slave
2831
   OPERAND2-
2832
    COMMENT-
2833
    ADDRESS-A5
2834
      LABEL-
2835
INSTRUCTION-LOAD
2836
   OPERAND1-s2
2837
   OPERAND2-sD
2838
    COMMENT-
2839
    ADDRESS-A6
2840
      LABEL-
2841
INSTRUCTION-LOAD
2842
   OPERAND1-s3
2843
   OPERAND2-sE
2844
    COMMENT-
2845
    ADDRESS-A7
2846
      LABEL-
2847
INSTRUCTION-OUTPUT
2848
   OPERAND1-sE
2849
   OPERAND2-TMP_OUT_7
2850
    COMMENT-
2851
    ADDRESS-A8
2852
      LABEL-
2853
INSTRUCTION-
2854
   OPERAND1-
2855
   OPERAND2-
2856
    COMMENT-;
2857
    ADDRESS-A8
2858
      LABEL-
2859
INSTRUCTION-
2860
   OPERAND1-
2861
   OPERAND2-
2862
    COMMENT-; READ -> cluster_low(OFFSET 0x1A)
2863
    ADDRESS-A8
2864
      LABEL-
2865
INSTRUCTION-
2866
   OPERAND1-
2867
   OPERAND2-
2868
    COMMENT-;
2869
    ADDRESS-A8
2870
      LABEL-
2871
INSTRUCTION-
2872
   OPERAND1-
2873
   OPERAND2-
2874
    COMMENT-; offset 0x1A (26) => READ 4 bytes -> 2(0x02) words
2875
    ADDRESS-A8
2876
      LABEL-
2877
INSTRUCTION-
2878
   OPERAND1-
2879
   OPERAND2-
2880
    COMMENT-;
2881
    ADDRESS-A8
2882
      LABEL-
2883
INSTRUCTION-LOAD
2884
   OPERAND1-sF
2885
   OPERAND2-02
2886
    COMMENT-
2887
    ADDRESS-A9
2888
      LABEL-
2889
INSTRUCTION-CALL
2890
   OPERAND1-do_dummy_reads_from_slave
2891
   OPERAND2-
2892
    COMMENT-
2893
    ADDRESS-AA
2894
      LABEL-
2895
INSTRUCTION-
2896
   OPERAND1-
2897
   OPERAND2-
2898
    COMMENT-;  (sD) data[7:0] WB MASTER ->  s0
2899
    ADDRESS-AA
2900
      LABEL-
2901
INSTRUCTION-
2902
   OPERAND1-
2903
   OPERAND2-
2904
    COMMENT-;  (sE) data[7:0] WB MASTER ->  s1
2905
    ADDRESS-AA
2906
      LABEL-
2907
INSTRUCTION-
2908
   OPERAND1-
2909
   OPERAND2-
2910
    COMMENT-; READ 2 BYTES
2911
    ADDRESS-AA
2912
      LABEL-
2913
INSTRUCTION-CALL
2914
   OPERAND1-read_word_from_slave
2915
   OPERAND2-
2916
    COMMENT-
2917
    ADDRESS-AB
2918
      LABEL-
2919
INSTRUCTION-LOAD
2920
   OPERAND1-s0
2921
   OPERAND2-sD
2922
    COMMENT-
2923
    ADDRESS-AC
2924
      LABEL-
2925
INSTRUCTION-LOAD
2926
   OPERAND1-s1
2927
   OPERAND2-sE
2928
    COMMENT-
2929
    ADDRESS-AD
2930
      LABEL-
2931
INSTRUCTION-
2932
   OPERAND1-
2933
   OPERAND2-
2934
    COMMENT-; s0,s1 clus_low s3,s4 - clus_high
2935
    ADDRESS-AD
2936
      LABEL-
2937
INSTRUCTION-RETURN
2938
   OPERAND1-
2939
   OPERAND2-
2940
    COMMENT-
2941
    ADDRESS-AE
2942
      LABEL-
2943
INSTRUCTION-
2944
   OPERAND1-
2945
   OPERAND2-
2946
    COMMENT-; -- MBR READ OPERATION - LBA BEGIN DETERMINATION
2947
    ADDRESS-AE
2948
      LABEL-
2949
INSTRUCTION-
2950
   OPERAND1-
2951
   OPERAND2-
2952
    COMMENT-; '00' -> LBA_7_0,LBA_15_8,LBA_23_16,LD_LBA_27_24
2953
    ADDRESS-AE
2954
      LABEL-cluster_2_lba
2955
INSTRUCTION-
2956
   OPERAND1-
2957
   OPERAND2-
2958
    COMMENT-
2959
    ADDRESS-AE
2960
      LABEL-
2961
INSTRUCTION-
2962
   OPERAND1-
2963
   OPERAND2-
2964
    COMMENT-; --
2965
    ADDRESS-AE
2966
      LABEL-
2967
INSTRUCTION-
2968
   OPERAND1-
2969
   OPERAND2-
2970
    COMMENT-; -- LBA ADDRESS DETERMINATION
2971
    ADDRESS-AE
2972
      LABEL-
2973
INSTRUCTION-
2974
   OPERAND1-
2975
   OPERAND2-
2976
    COMMENT-; --
2977
    ADDRESS-AE
2978
      LABEL-
2979
INSTRUCTION-
2980
   OPERAND1-
2981
   OPERAND2-
2982
    COMMENT-; lba_addr = cluster_begin_lba + (cluster_number - 2) * sectors_per_cluster;
2983
    ADDRESS-AE
2984
      LABEL-
2985
INSTRUCTION-
2986
   OPERAND1-
2987
   OPERAND2-
2988
    COMMENT-;
2989
    ADDRESS-AE
2990
      LABEL-
2991
INSTRUCTION-
2992
   OPERAND1-
2993
   OPERAND2-
2994
    COMMENT-; INPUT :
2995
    ADDRESS-AE
2996
      LABEL-
2997
INSTRUCTION-
2998
   OPERAND1-
2999
   OPERAND2-
3000
    COMMENT-; s0 : CLUSTER_NUMBER0, s1 : CLUSTER_NUMBER1, s2: CLUSTER_NUMBER2, s3 : CLUSTER_NUMBER3
3001
    ADDRESS-AE
3002
      LABEL-
3003
INSTRUCTION-
3004
   OPERAND1-
3005
   OPERAND2-
3006
    COMMENT-; OUTPUT :
3007
    ADDRESS-AE
3008
      LABEL-
3009
INSTRUCTION-
3010
   OPERAND1-
3011
   OPERAND2-
3012
    COMMENT-; s0 : LBA_ADDR_7_0 TMP1, s1 : LBA_ADDR_15_8, s2 : LBA_ADDR_24_16, s3 : LBA_ADDR_27_24
3013
    ADDRESS-AE
3014
      LABEL-
3015
INSTRUCTION-
3016
   OPERAND1-
3017
   OPERAND2-
3018
    COMMENT-;
3019
    ADDRESS-AE
3020
      LABEL-
3021
INSTRUCTION-
3022
   OPERAND1-
3023
   OPERAND2-
3024
    COMMENT-; cluster_number - 2
3025
    ADDRESS-AE
3026
      LABEL-
3027
INSTRUCTION-
3028
   OPERAND1-
3029
   OPERAND2-
3030
    COMMENT-;
3031
    ADDRESS-AE
3032
      LABEL-
3033
INSTRUCTION-OUTPUT
3034
   OPERAND1-s0
3035
   OPERAND2-TMP_OUT_4
3036
    COMMENT-
3037
    ADDRESS-AF
3038
      LABEL-
3039
INSTRUCTION-OUTPUT
3040
   OPERAND1-s1
3041
   OPERAND2-TMP_OUT_5
3042
    COMMENT-
3043
    ADDRESS-B0
3044
      LABEL-
3045
INSTRUCTION-OUTPUT
3046
   OPERAND1-s2
3047
   OPERAND2-TMP_OUT_6
3048
    COMMENT-
3049
    ADDRESS-B1
3050
      LABEL-
3051
INSTRUCTION-OUTPUT
3052
   OPERAND1-s3
3053
   OPERAND2-TMP_OUT_7
3054
    COMMENT-
3055
    ADDRESS-B2
3056
      LABEL-
3057
INSTRUCTION-SUB
3058
   OPERAND1-s0
3059
   OPERAND2-02
3060
    COMMENT-
3061
    ADDRESS-B3
3062
      LABEL-
3063
INSTRUCTION-SUBCY
3064
   OPERAND1-s1
3065
   OPERAND2-00
3066
    COMMENT-
3067
    ADDRESS-B4
3068
      LABEL-
3069
INSTRUCTION-SUBCY
3070
   OPERAND1-s2
3071
   OPERAND2-00
3072
    COMMENT-
3073
    ADDRESS-B5
3074
      LABEL-
3075
INSTRUCTION-SUBCY
3076
   OPERAND1-s3
3077
   OPERAND2-00
3078
    COMMENT-
3079
    ADDRESS-B6
3080
      LABEL-
3081
INSTRUCTION-
3082
   OPERAND1-
3083
   OPERAND2-
3084
    COMMENT-;
3085
    ADDRESS-B6
3086
      LABEL-
3087
INSTRUCTION-
3088
   OPERAND1-
3089
   OPERAND2-
3090
    COMMENT-; (cluster_number - 2) * sectors_per_cluster(s7);
3091
    ADDRESS-B6
3092
      LABEL-
3093
INSTRUCTION-
3094
   OPERAND1-
3095
   OPERAND2-
3096
    COMMENT-;
3097
    ADDRESS-B6
3098
      LABEL-
3099
INSTRUCTION-
3100
   OPERAND1-
3101
   OPERAND2-
3102
    COMMENT-; to perform the multiplication as sector_per_cluster is 2 multiple must be known
3103
    ADDRESS-B6
3104
      LABEL-
3105
INSTRUCTION-
3106
   OPERAND1-
3107
   OPERAND2-
3108
    COMMENT-; who many times must be shifted
3109
    ADDRESS-B6
3110
      LABEL-
3111
INSTRUCTION-
3112
   OPERAND1-
3113
   OPERAND2-
3114
    COMMENT-; (use sD as temporal register)
3115
    ADDRESS-B6
3116
      LABEL-
3117
INSTRUCTION-LOAD
3118
   OPERAND1-sF
3119
   OPERAND2-08
3120
    COMMENT-
3121
    ADDRESS-B7
3122
      LABEL-
3123
INSTRUCTION-LOAD
3124
   OPERAND1-sD
3125
   OPERAND2-s7
3126
    COMMENT-
3127
    ADDRESS-B8
3128
      LABEL-multiply
3129
INSTRUCTION-
3130
   OPERAND1-
3131
   OPERAND2-
3132
    COMMENT-
3133
    ADDRESS-B8
3134
      LABEL-
3135
INSTRUCTION-SR0
3136
   OPERAND1-sD
3137
   OPERAND2-
3138
    COMMENT-
3139
    ADDRESS-B9
3140
      LABEL-
3141
INSTRUCTION-
3142
   OPERAND1-
3143
   OPERAND2-
3144
    COMMENT-; loop until detection of the 1 (2 multiple) - Add timeout!!!
3145
    ADDRESS-B9
3146
      LABEL-
3147
INSTRUCTION-JUMP
3148
   OPERAND1-C
3149
   OPERAND2-add_cluster_begin_lba
3150
    COMMENT-
3151
    ADDRESS-BA
3152
      LABEL-
3153
INSTRUCTION-
3154
   OPERAND1-
3155
   OPERAND2-
3156
    COMMENT-; LSB '0'
3157
    ADDRESS-BA
3158
      LABEL-
3159
INSTRUCTION-SL0
3160
   OPERAND1-s0
3161
   OPERAND2-
3162
    COMMENT-
3163
    ADDRESS-BB
3164
      LABEL-
3165
INSTRUCTION-
3166
   OPERAND1-
3167
   OPERAND2-
3168
    COMMENT-; CARRY -> LSB , MSB -> CARRY
3169
    ADDRESS-BB
3170
      LABEL-
3171
INSTRUCTION-SLA
3172
   OPERAND1-s1
3173
   OPERAND2-
3174
    COMMENT-
3175
    ADDRESS-BC
3176
      LABEL-
3177
INSTRUCTION-SLA
3178
   OPERAND1-s2
3179
   OPERAND2-
3180
    COMMENT-
3181
    ADDRESS-BD
3182
      LABEL-
3183
INSTRUCTION-SLA
3184
   OPERAND1-s3
3185
   OPERAND2-
3186
    COMMENT-
3187
    ADDRESS-BE
3188
      LABEL-
3189
INSTRUCTION-JUMP
3190
   OPERAND1-multiply
3191
   OPERAND2-
3192
    COMMENT-
3193
    ADDRESS-BF
3194
      LABEL-add_cluster_begin_lba
3195
INSTRUCTION-
3196
   OPERAND1-
3197
   OPERAND2-
3198
    COMMENT-
3199
    ADDRESS-BF
3200
      LABEL-
3201
INSTRUCTION-
3202
   OPERAND1-
3203
   OPERAND2-
3204
    COMMENT-; lba_addr (TMP0,TMP1,TMP2,TMP3)= cluster_begin_lba + (cluster_number - 2) * sectors_per_cluster;
3205
    ADDRESS-BF
3206
      LABEL-
3207
INSTRUCTION-ADD
3208
   OPERAND1-s0
3209
   OPERAND2-s8
3210
    COMMENT-
3211
    ADDRESS-C0
3212
      LABEL-
3213
INSTRUCTION-ADDCY
3214
   OPERAND1-s1
3215
   OPERAND2-s9
3216
    COMMENT-
3217
    ADDRESS-C1
3218
      LABEL-
3219
INSTRUCTION-ADDCY
3220
   OPERAND1-s2
3221
   OPERAND2-sA
3222
    COMMENT-
3223
    ADDRESS-C2
3224
      LABEL-
3225
INSTRUCTION-ADDCY
3226
   OPERAND1-s3
3227
   OPERAND2-sB
3228
    COMMENT-
3229
    ADDRESS-C3
3230
      LABEL-
3231
INSTRUCTION-RETURN
3232
   OPERAND1-
3233
   OPERAND2-
3234
    COMMENT-
3235
    ADDRESS-C4
3236
      LABEL-
3237
INSTRUCTION-
3238
   OPERAND1-
3239
   OPERAND2-
3240
    COMMENT-; --
3241
    ADDRESS-C4
3242
      LABEL-
3243
INSTRUCTION-
3244
   OPERAND1-
3245
   OPERAND2-
3246
    COMMENT-; -- WRITE A WORD INTO THE WB SLAVE INTERFACE (TO THE MASTER)
3247
    ADDRESS-C4
3248
      LABEL-
3249
INSTRUCTION-
3250
   OPERAND1-
3251
   OPERAND2-
3252
    COMMENT-; --
3253
    ADDRESS-C4
3254
      LABEL-
3255
INSTRUCTION-
3256
   OPERAND1-
3257
   OPERAND2-
3258
    COMMENT-; INPUTS :
3259
    ADDRESS-C4
3260
      LABEL-
3261
INSTRUCTION-
3262
   OPERAND1-
3263
   OPERAND2-
3264
    COMMENT-; TMP0 : LSB TO DATA_WB_OUT_7_0_SLAVE
3265
    ADDRESS-C4
3266
      LABEL-
3267
INSTRUCTION-
3268
   OPERAND1-
3269
   OPERAND2-
3270
    COMMENT-; TMP1 : MSB TO DATA_WB_OUT_15_8_SLAVE
3271
    ADDRESS-C4
3272
      LABEL-
3273
INSTRUCTION-
3274
   OPERAND1-
3275
   OPERAND2-
3276
    COMMENT-;
3277
    ADDRESS-C4
3278
      LABEL-write_a_word_to_master
3279
INSTRUCTION-
3280
   OPERAND1-
3281
   OPERAND2-
3282
    COMMENT-
3283
    ADDRESS-C4
3284
      LABEL-
3285
INSTRUCTION-
3286
   OPERAND1-
3287
   OPERAND2-
3288
    COMMENT-; TMP0 => DATA_WB_OUT_7_0_SLAVE
3289
    ADDRESS-C4
3290
      LABEL-
3291
INSTRUCTION-OUTPUT
3292
   OPERAND1-sD
3293
   OPERAND2-DATA_WB_OUT_7_0_SLAVE
3294
    COMMENT-
3295
    ADDRESS-C5
3296
      LABEL-
3297
INSTRUCTION-
3298
   OPERAND1-
3299
   OPERAND2-
3300
    COMMENT-; 00 => DATA_WB_OUT_15_8_SLAVE
3301
    ADDRESS-C5
3302
      LABEL-
3303
INSTRUCTION-
3304
   OPERAND1-
3305
   OPERAND2-
3306
    COMMENT-;LOAD sF,00 -- 8 BIT VERSION
3307
    ADDRESS-C5
3308
      LABEL-
3309
INSTRUCTION-
3310
   OPERAND1-
3311
   OPERAND2-
3312
    COMMENT-;OUTPUT sF,DATA_WB_OUT_15_8_SLAVE -- 8 BIT VERSION
3313
    ADDRESS-C5
3314
      LABEL-
3315
INSTRUCTION-OUTPUT
3316
   OPERAND1-sE
3317
   OPERAND2-DATA_WB_OUT_15_8_SLAVE
3318
    COMMENT-
3319
    ADDRESS-C6
3320
      LABEL-
3321
INSTRUCTION-CALL
3322
   OPERAND1-write_a_byte_to_master
3323
   OPERAND2-
3324
    COMMENT-
3325
    ADDRESS-C7
3326
      LABEL-
3327
INSTRUCTION-
3328
   OPERAND1-
3329
   OPERAND2-
3330
    COMMENT-;
3331
    ADDRESS-C7
3332
      LABEL-
3333
INSTRUCTION-
3334
   OPERAND1-
3335
   OPERAND2-
3336
    COMMENT-; CHECK STB INPUT | CONTROL_WB_IN_SLAVE-> TMP (s6)
3337
    ADDRESS-C7
3338
      LABEL-
3339
INSTRUCTION-
3340
   OPERAND1-
3341
   OPERAND2-
3342
    COMMENT-;
3343
    ADDRESS-C7
3344
      LABEL-wait_strobe
3345
INSTRUCTION-
3346
   OPERAND1-
3347
   OPERAND2-
3348
    COMMENT-
3349
    ADDRESS-C7
3350
      LABEL-
3351
INSTRUCTION-INPUT
3352
   OPERAND1-s6
3353
   OPERAND2-CONTROL_WB_IN_SLAVE
3354
    COMMENT-
3355
    ADDRESS-C8
3356
      LABEL-
3357
INSTRUCTION-
3358
   OPERAND1-
3359
   OPERAND2-
3360
    COMMENT-;
3361
    ADDRESS-C8
3362
      LABEL-
3363
INSTRUCTION-
3364
   OPERAND1-
3365
   OPERAND2-
3366
    COMMENT-;
3367
    ADDRESS-C8
3368
      LABEL-
3369
INSTRUCTION-AND
3370
   OPERAND1-s6
3371
   OPERAND2-STB_I_SLAVE
3372
    COMMENT-
3373
    ADDRESS-C9
3374
      LABEL-
3375
INSTRUCTION-JUMP
3376
   OPERAND1-Z
3377
   OPERAND2-wait_strobe
3378
    COMMENT-
3379
    ADDRESS-CA
3380
      LABEL-
3381
INSTRUCTION-
3382
   OPERAND1-
3383
   OPERAND2-
3384
    COMMENT-; TMP1 => DATA_WB_OUT_7_0_SLAVE
3385
    ADDRESS-CA
3386
      LABEL-
3387
INSTRUCTION-
3388
   OPERAND1-
3389
   OPERAND2-
3390
    COMMENT-; OUTPUT sE,DATA_WB_OUT_7_0_SLAVE
3391
    ADDRESS-CA
3392
      LABEL-
3393
INSTRUCTION-
3394
   OPERAND1-
3395
   OPERAND2-
3396
    COMMENT-; 00 =>DATA_WB_OUT_15_8_SLAVE
3397
    ADDRESS-CA
3398
      LABEL-
3399
INSTRUCTION-
3400
   OPERAND1-
3401
   OPERAND2-
3402
    COMMENT-;LOAD sF,00 -- 8 BIT VERSION
3403
    ADDRESS-CA
3404
      LABEL-
3405
INSTRUCTION-
3406
   OPERAND1-
3407
   OPERAND2-
3408
    COMMENT-;OUTPUT sF,DATA_WB_OUT_15_8_SLAVE -- 8 BIT VERSION
3409
    ADDRESS-CA
3410
      LABEL-
3411
INSTRUCTION-
3412
   OPERAND1-
3413
   OPERAND2-
3414
    COMMENT-;CALL write_a_byte_to_master -- 8 BIT VERSION
3415
    ADDRESS-CA
3416
      LABEL-
3417
INSTRUCTION-RETURN
3418
   OPERAND1-
3419
   OPERAND2-
3420
    COMMENT-
3421
    ADDRESS-CB
3422
      LABEL-write_a_byte_to_master
3423
INSTRUCTION-
3424
   OPERAND1-
3425
   OPERAND2-
3426
    COMMENT-
3427
    ADDRESS-CB
3428
      LABEL-
3429
INSTRUCTION-
3430
   OPERAND1-
3431
   OPERAND2-
3432
    COMMENT-;
3433
    ADDRESS-CB
3434
      LABEL-
3435
INSTRUCTION-
3436
   OPERAND1-
3437
   OPERAND2-
3438
    COMMENT-; WB SLAVE WRITE ENABLE ACTIVE
3439
    ADDRESS-CB
3440
      LABEL-
3441
INSTRUCTION-
3442
   OPERAND1-
3443
   OPERAND2-
3444
    COMMENT-;
3445
    ADDRESS-CB
3446
      LABEL-
3447
INSTRUCTION-LOAD
3448
   OPERAND1-sF
3449
   OPERAND2-WB_BUS_SLAVE_WRITE_ENABLE
3450
    COMMENT-
3451
    ADDRESS-CC
3452
      LABEL-
3453
INSTRUCTION-OUTPUT
3454
   OPERAND1-sF
3455
   OPERAND2-CONTROL_OUT_SLAVE
3456
    COMMENT-
3457
    ADDRESS-CD
3458
      LABEL-
3459
INSTRUCTION-
3460
   OPERAND1-
3461
   OPERAND2-
3462
    COMMENT-;
3463
    ADDRESS-CD
3464
      LABEL-
3465
INSTRUCTION-
3466
   OPERAND1-
3467
   OPERAND2-
3468
    COMMENT-; ACK TO THE MASTER UNTIL STB FINISH
3469
    ADDRESS-CD
3470
      LABEL-
3471
INSTRUCTION-
3472
   OPERAND1-
3473
   OPERAND2-
3474
    COMMENT-;
3475
    ADDRESS-CD
3476
      LABEL-ack_to_the_master
3477
INSTRUCTION-
3478
   OPERAND1-
3479
   OPERAND2-
3480
    COMMENT-
3481
    ADDRESS-CD
3482
      LABEL-
3483
INSTRUCTION-LOAD
3484
   OPERAND1-sF
3485
   OPERAND2-ACK_O_SLAVE
3486
    COMMENT-
3487
    ADDRESS-CE
3488
      LABEL-
3489
INSTRUCTION-OUTPUT
3490
   OPERAND1-sF
3491
   OPERAND2-CONTROL_WB_OUT_SLAVE
3492
    COMMENT-
3493
    ADDRESS-CF
3494
      LABEL-
3495
INSTRUCTION-
3496
   OPERAND1-
3497
   OPERAND2-
3498
    COMMENT-;
3499
    ADDRESS-CF
3500
      LABEL-
3501
INSTRUCTION-
3502
   OPERAND1-
3503
   OPERAND2-
3504
    COMMENT-;
3505
    ADDRESS-CF
3506
      LABEL-
3507
INSTRUCTION-LOAD
3508
   OPERAND1-sF
3509
   OPERAND2-00
3510
    COMMENT-
3511
    ADDRESS-D0
3512
      LABEL-
3513
INSTRUCTION-OUTPUT
3514
   OPERAND1-sF
3515
   OPERAND2-CONTROL_OUT_SLAVE
3516
    COMMENT-
3517
    ADDRESS-D1
3518
      LABEL-
3519
INSTRUCTION-OUTPUT
3520
   OPERAND1-sF
3521
   OPERAND2-CONTROL_WB_OUT_SLAVE
3522
    COMMENT-
3523
    ADDRESS-D2
3524
      LABEL-
3525
INSTRUCTION-RETURN
3526
   OPERAND1-
3527
   OPERAND2-
3528
    COMMENT-
3529
    ADDRESS-D3
3530
      LABEL-
3531
INSTRUCTION-
3532
   OPERAND1-
3533
   OPERAND2-
3534
    COMMENT-; --
3535
    ADDRESS-D3
3536
      LABEL-
3537
INSTRUCTION-
3538
   OPERAND1-
3539
   OPERAND2-
3540
    COMMENT-; -- WRITE A LBA INTO THE WB MASTER INTERFACE (TO THE SLAVE)
3541
    ADDRESS-D3
3542
      LABEL-
3543
INSTRUCTION-
3544
   OPERAND1-
3545
   OPERAND2-
3546
    COMMENT-; --
3547
    ADDRESS-D3
3548
      LABEL-
3549
INSTRUCTION-
3550
   OPERAND1-
3551
   OPERAND2-
3552
    COMMENT-; INPUTS :
3553
    ADDRESS-D3
3554
      LABEL-
3555
INSTRUCTION-
3556
   OPERAND1-
3557
   OPERAND2-
3558
    COMMENT-; TMP0 : LBA_ADDR_7_0, TMP1 : LBA_ADDR_15_8, TMP2 : LBA_ADDR_24_16, TMP3 : LBA_ADDR_27_24
3559
    ADDRESS-D3
3560
      LABEL-
3561
INSTRUCTION-
3562
   OPERAND1-
3563
   OPERAND2-
3564
    COMMENT-;
3565
    ADDRESS-D3
3566
      LABEL-
3567
INSTRUCTION-
3568
   OPERAND1-
3569
   OPERAND2-
3570
    COMMENT-;
3571
    ADDRESS-D3
3572
      LABEL-write_lba_to_slave
3573
INSTRUCTION-
3574
   OPERAND1-
3575
   OPERAND2-
3576
    COMMENT-
3577
    ADDRESS-D3
3578
      LABEL-
3579
INSTRUCTION-
3580
   OPERAND1-
3581
   OPERAND2-
3582
    COMMENT-;
3583
    ADDRESS-D3
3584
      LABEL-
3585
INSTRUCTION-
3586
   OPERAND1-
3587
   OPERAND2-
3588
    COMMENT-; WB MASTER WRITE ENABLE ACTIVE
3589
    ADDRESS-D3
3590
      LABEL-
3591
INSTRUCTION-
3592
   OPERAND1-
3593
   OPERAND2-
3594
    COMMENT-;
3595
    ADDRESS-D3
3596
      LABEL-
3597
INSTRUCTION-LOAD
3598
   OPERAND1-sF
3599
   OPERAND2-WB_BUS_MASTER_WRITE_ENABLE
3600
    COMMENT-
3601
    ADDRESS-D4
3602
      LABEL-
3603
INSTRUCTION-OUTPUT
3604
   OPERAND1-sF
3605
   OPERAND2-CONTROL_OUT_MASTER
3606
    COMMENT-
3607
    ADDRESS-D5
3608
      LABEL-
3609
INSTRUCTION-
3610
   OPERAND1-
3611
   OPERAND2-
3612
    COMMENT-
3613
    ADDRESS-D5
3614
      LABEL-
3615
INSTRUCTION-
3616
   OPERAND1-
3617
   OPERAND2-
3618
    COMMENT-;write_lba_15_0_to_slave:
3619
    ADDRESS-D5
3620
      LABEL-
3621
INSTRUCTION-
3622
   OPERAND1-
3623
   OPERAND2-
3624
    COMMENT-;
3625
    ADDRESS-D5
3626
      LABEL-
3627
INSTRUCTION-
3628
   OPERAND1-
3629
   OPERAND2-
3630
    COMMENT-; TMP0 : LBA_ADDR_7_0 (s0)  => DATA_WB_OUT_7_0_MASTER
3631
    ADDRESS-D5
3632
      LABEL-
3633
INSTRUCTION-
3634
   OPERAND1-
3635
   OPERAND2-
3636
    COMMENT-; TMP1 : LBA_ADDR_15_8 (s1) => DATA_WB_OUT_15_8_MASTER
3637
    ADDRESS-D5
3638
      LABEL-
3639
INSTRUCTION-
3640
   OPERAND1-
3641
   OPERAND2-
3642
    COMMENT-;
3643
    ADDRESS-D5
3644
      LABEL-
3645
INSTRUCTION-OUTPUT
3646
   OPERAND1-s0
3647
   OPERAND2-DATA_WB_OUT_7_0_MASTER
3648
    COMMENT-
3649
    ADDRESS-D6
3650
      LABEL-
3651
INSTRUCTION-OUTPUT
3652
   OPERAND1-s1
3653
   OPERAND2-DATA_WB_OUT_15_8_MASTER
3654
    COMMENT-
3655
    ADDRESS-D7
3656
      LABEL-
3657
INSTRUCTION-
3658
   OPERAND1-
3659
   OPERAND2-
3660
    COMMENT-;
3661
    ADDRESS-D7
3662
      LABEL-
3663
INSTRUCTION-
3664
   OPERAND1-
3665
   OPERAND2-
3666
    COMMENT-; --
3667
    ADDRESS-D7
3668
      LABEL-
3669
INSTRUCTION-
3670
   OPERAND1-
3671
   OPERAND2-
3672
    COMMENT-; -- WRITE LBA 15-0 TO THE SLAVE
3673
    ADDRESS-D7
3674
      LABEL-
3675
INSTRUCTION-
3676
   OPERAND1-
3677
   OPERAND2-
3678
    COMMENT-; --
3679
    ADDRESS-D7
3680
      LABEL-
3681
INSTRUCTION-
3682
   OPERAND1-
3683
   OPERAND2-
3684
    COMMENT-;
3685
    ADDRESS-D7
3686
      LABEL-
3687
INSTRUCTION-
3688
   OPERAND1-
3689
   OPERAND2-
3690
    COMMENT-; WB_CONTROL_OUT_MASTER
3691
    ADDRESS-D7
3692
      LABEL-
3693
INSTRUCTION-
3694
   OPERAND1-
3695
   OPERAND2-
3696
    COMMENT-; W_WE_MASTER = 1
3697
    ADDRESS-D7
3698
      LABEL-
3699
INSTRUCTION-
3700
   OPERAND1-
3701
   OPERAND2-
3702
    COMMENT-; STB_O_MASTER = 1
3703
    ADDRESS-D7
3704
      LABEL-
3705
INSTRUCTION-
3706
   OPERAND1-
3707
   OPERAND2-
3708
    COMMENT-; A0 = 0
3709
    ADDRESS-D7
3710
      LABEL-
3711
INSTRUCTION-
3712
   OPERAND1-
3713
   OPERAND2-
3714
    COMMENT-;
3715
    ADDRESS-D7
3716
      LABEL-
3717
INSTRUCTION-LOAD
3718
   OPERAND1-sF
3719
   OPERAND2-WRITE_LBA_15_0
3720
    COMMENT-
3721
    ADDRESS-D8
3722
      LABEL-
3723
INSTRUCTION-OUTPUT
3724
   OPERAND1-sF
3725
   OPERAND2-CONTROL_WB_OUT_MASTER
3726
    COMMENT-
3727
    ADDRESS-D9
3728
      LABEL-
3729
INSTRUCTION-
3730
   OPERAND1-
3731
   OPERAND2-
3732
    COMMENT-;
3733
    ADDRESS-D9
3734
      LABEL-
3735
INSTRUCTION-
3736
   OPERAND1-
3737
   OPERAND2-
3738
    COMMENT-; WAIT FOR THE ACK
3739
    ADDRESS-D9
3740
      LABEL-
3741
INSTRUCTION-
3742
   OPERAND1-
3743
   OPERAND2-
3744
    COMMENT-;
3745
    ADDRESS-D9
3746
      LABEL-
3747
INSTRUCTION-CALL
3748
   OPERAND1-wait_for_the_ack
3749
   OPERAND2-
3750
    COMMENT-
3751
    ADDRESS-DA
3752
      LABEL-
3753
INSTRUCTION-
3754
   OPERAND1-
3755
   OPERAND2-
3756
    COMMENT-;write_lba_27_16_to_slave:
3757
    ADDRESS-DA
3758
      LABEL-
3759
INSTRUCTION-
3760
   OPERAND1-
3761
   OPERAND2-
3762
    COMMENT-;
3763
    ADDRESS-DA
3764
      LABEL-
3765
INSTRUCTION-
3766
   OPERAND1-
3767
   OPERAND2-
3768
    COMMENT-; TMP2 : LBA_ADDR_23_16 (s2)        => DATA_WB_OUT_7_0_MASTER
3769
    ADDRESS-DA
3770
      LABEL-
3771
INSTRUCTION-
3772
   OPERAND1-
3773
   OPERAND2-
3774
    COMMENT-; TMP3 : LBA_ADDR_27_24 (s3)        => DATA_WB_OUT_15_8_MASTER
3775
    ADDRESS-DA
3776
      LABEL-
3777
INSTRUCTION-
3778
   OPERAND1-
3779
   OPERAND2-
3780
    COMMENT-;
3781
    ADDRESS-DA
3782
      LABEL-
3783
INSTRUCTION-OUTPUT
3784
   OPERAND1-s2
3785
   OPERAND2-DATA_WB_OUT_7_0_MASTER
3786
    COMMENT-
3787
    ADDRESS-DB
3788
      LABEL-
3789
INSTRUCTION-OUTPUT
3790
   OPERAND1-s3
3791
   OPERAND2-DATA_WB_OUT_15_8_MASTER
3792
    COMMENT-
3793
    ADDRESS-DC
3794
      LABEL-
3795
INSTRUCTION-
3796
   OPERAND1-
3797
   OPERAND2-
3798
    COMMENT-
3799
    ADDRESS-DC
3800
      LABEL-
3801
INSTRUCTION-
3802
   OPERAND1-
3803
   OPERAND2-
3804
    COMMENT-; --
3805
    ADDRESS-DC
3806
      LABEL-
3807
INSTRUCTION-
3808
   OPERAND1-
3809
   OPERAND2-
3810
    COMMENT-; -- WRITE LBA 27-16 TO THE SLAVE
3811
    ADDRESS-DC
3812
      LABEL-
3813
INSTRUCTION-
3814
   OPERAND1-
3815
   OPERAND2-
3816
    COMMENT-; --
3817
    ADDRESS-DC
3818
      LABEL-
3819
INSTRUCTION-
3820
   OPERAND1-
3821
   OPERAND2-
3822
    COMMENT-; WB_CONTROL_OUT_MASTER
3823
    ADDRESS-DC
3824
      LABEL-
3825
INSTRUCTION-
3826
   OPERAND1-
3827
   OPERAND2-
3828
    COMMENT-; W_WE_MASTER = 1
3829
    ADDRESS-DC
3830
      LABEL-
3831
INSTRUCTION-
3832
   OPERAND1-
3833
   OPERAND2-
3834
    COMMENT-; STB_O_MASTER = 1
3835
    ADDRESS-DC
3836
      LABEL-
3837
INSTRUCTION-
3838
   OPERAND1-
3839
   OPERAND2-
3840
    COMMENT-; A0 = 0
3841
    ADDRESS-DC
3842
      LABEL-
3843
INSTRUCTION-
3844
   OPERAND1-
3845
   OPERAND2-
3846
    COMMENT-;
3847
    ADDRESS-DC
3848
      LABEL-
3849
INSTRUCTION-LOAD
3850
   OPERAND1-sF
3851
   OPERAND2-WRITE_LBA_27_16
3852
    COMMENT-
3853
    ADDRESS-DD
3854
      LABEL-
3855
INSTRUCTION-OUTPUT
3856
   OPERAND1-sF
3857
   OPERAND2-CONTROL_WB_OUT_MASTER
3858
    COMMENT-
3859
    ADDRESS-DE
3860
      LABEL-
3861
INSTRUCTION-
3862
   OPERAND1-
3863
   OPERAND2-
3864
    COMMENT-;
3865
    ADDRESS-DE
3866
      LABEL-
3867
INSTRUCTION-
3868
   OPERAND1-
3869
   OPERAND2-
3870
    COMMENT-; WAIT FOR THE ACK
3871
    ADDRESS-DE
3872
      LABEL-
3873
INSTRUCTION-
3874
   OPERAND1-
3875
   OPERAND2-
3876
    COMMENT-;
3877
    ADDRESS-DE
3878
      LABEL-
3879
INSTRUCTION-CALL
3880
   OPERAND1-wait_for_the_ack
3881
   OPERAND2-
3882
    COMMENT-
3883
    ADDRESS-DF
3884
      LABEL-
3885
INSTRUCTION-
3886
   OPERAND1-
3887
   OPERAND2-
3888
    COMMENT-; --
3889
    ADDRESS-DF
3890
      LABEL-
3891
INSTRUCTION-
3892
   OPERAND1-
3893
   OPERAND2-
3894
    COMMENT-; -- FINISH WRITE OPERATION ON THE MASTER WB INTERFACE
3895
    ADDRESS-DF
3896
      LABEL-
3897
INSTRUCTION-
3898
   OPERAND1-
3899
   OPERAND2-
3900
    COMMENT-; --
3901
    ADDRESS-DF
3902
      LABEL-
3903
INSTRUCTION-
3904
   OPERAND1-
3905
   OPERAND2-
3906
    COMMENT-;
3907
    ADDRESS-DF
3908
      LABEL-
3909
INSTRUCTION-
3910
   OPERAND1-
3911
   OPERAND2-
3912
    COMMENT-; WB_CONTROL_OUT_MASTER
3913
    ADDRESS-DF
3914
      LABEL-
3915
INSTRUCTION-
3916
   OPERAND1-
3917
   OPERAND2-
3918
    COMMENT-; W_WE_MASTER = 0
3919
    ADDRESS-DF
3920
      LABEL-
3921
INSTRUCTION-
3922
   OPERAND1-
3923
   OPERAND2-
3924
    COMMENT-; STB_O_MASTER = 0
3925
    ADDRESS-DF
3926
      LABEL-
3927
INSTRUCTION-
3928
   OPERAND1-
3929
   OPERAND2-
3930
    COMMENT-; A0 = 0
3931
    ADDRESS-DF
3932
      LABEL-
3933
INSTRUCTION-
3934
   OPERAND1-
3935
   OPERAND2-
3936
    COMMENT-;
3937
    ADDRESS-DF
3938
      LABEL-
3939
INSTRUCTION-LOAD
3940
   OPERAND1-sF
3941
   OPERAND2-00
3942
    COMMENT-
3943
    ADDRESS-E0
3944
      LABEL-
3945
INSTRUCTION-OUTPUT
3946
   OPERAND1-sF
3947
   OPERAND2-CONTROL_WB_OUT_MASTER
3948
    COMMENT-
3949
    ADDRESS-E1
3950
      LABEL-
3951
INSTRUCTION-OUTPUT
3952
   OPERAND1-sF
3953
   OPERAND2-CONTROL_OUT_MASTER
3954
    COMMENT-
3955
    ADDRESS-E2
3956
      LABEL-
3957
INSTRUCTION-RETURN
3958
   OPERAND1-
3959
   OPERAND2-
3960
    COMMENT-
3961
    ADDRESS-E3
3962
      LABEL-
3963
INSTRUCTION-
3964
   OPERAND1-
3965
   OPERAND2-
3966
    COMMENT-; --
3967
    ADDRESS-E3
3968
      LABEL-
3969
INSTRUCTION-
3970
   OPERAND1-
3971
   OPERAND2-
3972
    COMMENT-; -- PERFORM DUMMY READS FROM THE WB SLAVE
3973
    ADDRESS-E3
3974
      LABEL-
3975
INSTRUCTION-
3976
   OPERAND1-
3977
   OPERAND2-
3978
    COMMENT-; --
3979
    ADDRESS-E3
3980
      LABEL-
3981
INSTRUCTION-
3982
   OPERAND1-
3983
   OPERAND2-
3984
    COMMENT-; -- IN sF ARE THE NUMBER OF WORDS THAT MUST BE READED
3985
    ADDRESS-E3
3986
      LABEL-
3987
INSTRUCTION-
3988
   OPERAND1-
3989
   OPERAND2-
3990
    COMMENT-; --
3991
    ADDRESS-E3
3992
      LABEL-do_dummy_reads_from_slave
3993
INSTRUCTION-
3994
   OPERAND1-
3995
   OPERAND2-
3996
    COMMENT-
3997
    ADDRESS-E3
3998
      LABEL-
3999
INSTRUCTION-LOAD
4000
   OPERAND1-s6
4001
   OPERAND2-sF
4002
    COMMENT-
4003
    ADDRESS-E4
4004
      LABEL-dummy_reads_from_slave
4005
INSTRUCTION-
4006
   OPERAND1-
4007
   OPERAND2-
4008
    COMMENT-
4009
    ADDRESS-E4
4010
      LABEL-
4011
INSTRUCTION-CALL
4012
   OPERAND1-read_word_from_slave
4013
   OPERAND2-
4014
    COMMENT-
4015
    ADDRESS-E5
4016
      LABEL-
4017
INSTRUCTION-SUB
4018
   OPERAND1-s6
4019
   OPERAND2-01
4020
    COMMENT-
4021
    ADDRESS-E6
4022
      LABEL-
4023
INSTRUCTION-JUMP
4024
   OPERAND1-NZ
4025
   OPERAND2-dummy_reads_from_slave
4026
    COMMENT-
4027
    ADDRESS-E7
4028
      LABEL-
4029
INSTRUCTION-RETURN
4030
   OPERAND1-
4031
   OPERAND2-
4032
    COMMENT-
4033
    ADDRESS-E8
4034
      LABEL-
4035
INSTRUCTION-
4036
   OPERAND1-
4037
   OPERAND2-
4038
    COMMENT-
4039
    ADDRESS-E8
4040
      LABEL-
4041
INSTRUCTION-
4042
   OPERAND1-
4043
   OPERAND2-
4044
    COMMENT-; --
4045
    ADDRESS-E8
4046
      LABEL-
4047
INSTRUCTION-
4048
   OPERAND1-
4049
   OPERAND2-
4050
    COMMENT-; -- PERFORM A WORD READING FROM THE WB SLAVE
4051
    ADDRESS-E8
4052
      LABEL-
4053
INSTRUCTION-
4054
   OPERAND1-
4055
   OPERAND2-
4056
    COMMENT-; --
4057
    ADDRESS-E8
4058
      LABEL-read_word_from_slave
4059
INSTRUCTION-
4060
   OPERAND1-
4061
   OPERAND2-
4062
    COMMENT-
4063
    ADDRESS-E8
4064
      LABEL-
4065
INSTRUCTION-
4066
   OPERAND1-
4067
   OPERAND2-
4068
    COMMENT-; WB_CONTROL_OUT_MASTER
4069
    ADDRESS-E8
4070
      LABEL-
4071
INSTRUCTION-
4072
   OPERAND1-
4073
   OPERAND2-
4074
    COMMENT-; W_WE_MASTER = 0
4075
    ADDRESS-E8
4076
      LABEL-
4077
INSTRUCTION-
4078
   OPERAND1-
4079
   OPERAND2-
4080
    COMMENT-; STB_O_MASTER = 1
4081
    ADDRESS-E8
4082
      LABEL-
4083
INSTRUCTION-
4084
   OPERAND1-
4085
   OPERAND2-
4086
    COMMENT-; A0 = 0
4087
    ADDRESS-E8
4088
      LABEL-
4089
INSTRUCTION-
4090
   OPERAND1-
4091
   OPERAND2-
4092
    COMMENT-; wait state
4093
    ADDRESS-E8
4094
      LABEL-
4095
INSTRUCTION-LOAD
4096
   OPERAND1-sF
4097
   OPERAND2-READ_SLAVE
4098
    COMMENT-
4099
    ADDRESS-E9
4100
      LABEL-
4101
INSTRUCTION-OUTPUT
4102
   OPERAND1-sF
4103
   OPERAND2-CONTROL_WB_OUT_MASTER
4104
    COMMENT-
4105
    ADDRESS-EA
4106
      LABEL-
4107
INSTRUCTION-
4108
   OPERAND1-
4109
   OPERAND2-
4110
    COMMENT-;
4111
    ADDRESS-EA
4112
      LABEL-
4113
INSTRUCTION-
4114
   OPERAND1-
4115
   OPERAND2-
4116
    COMMENT-; WAIT FOR THE ACK
4117
    ADDRESS-EA
4118
      LABEL-
4119
INSTRUCTION-
4120
   OPERAND1-
4121
   OPERAND2-
4122
    COMMENT-;
4123
    ADDRESS-EA
4124
      LABEL-
4125
INSTRUCTION-
4126
   OPERAND1-
4127
   OPERAND2-
4128
    COMMENT-; CALL wait_for_the_ack
4129
    ADDRESS-EA
4130
      LABEL-
4131
INSTRUCTION-
4132
   OPERAND1-
4133
   OPERAND2-
4134
    COMMENT-;JUMP Z,data_available_on_wb_master
4135
    ADDRESS-EA
4136
      LABEL-wait_for_the_ack
4137
INSTRUCTION-
4138
   OPERAND1-
4139
   OPERAND2-
4140
    COMMENT-
4141
    ADDRESS-EA
4142
      LABEL-
4143
INSTRUCTION-
4144
   OPERAND1-
4145
   OPERAND2-
4146
    COMMENT-;
4147
    ADDRESS-EA
4148
      LABEL-
4149
INSTRUCTION-
4150
   OPERAND1-
4151
   OPERAND2-
4152
    COMMENT-; CONTROL_WB_IN_MASTER -> TMP (s6)
4153
    ADDRESS-EA
4154
      LABEL-
4155
INSTRUCTION-
4156
   OPERAND1-
4157
   OPERAND2-
4158
    COMMENT-;
4159
    ADDRESS-EA
4160
      LABEL-
4161
INSTRUCTION-INPUT
4162
   OPERAND1-sF
4163
   OPERAND2-CONTROL_WB_IN_MASTER
4164
    COMMENT-
4165
    ADDRESS-EB
4166
      LABEL-
4167
INSTRUCTION-
4168
   OPERAND1-
4169
   OPERAND2-
4170
    COMMENT-;
4171
    ADDRESS-EB
4172
      LABEL-
4173
INSTRUCTION-AND
4174
   OPERAND1-sF
4175
   OPERAND2-ACK_I_MASTER
4176
    COMMENT-
4177
    ADDRESS-EC
4178
      LABEL-
4179
INSTRUCTION-JUMP
4180
   OPERAND1-Z
4181
   OPERAND2-wait_for_the_ack
4182
    COMMENT-
4183
    ADDRESS-ED
4184
      LABEL-data_available_on_wb_master
4185
INSTRUCTION-
4186
   OPERAND1-
4187
   OPERAND2-
4188
    COMMENT-
4189
    ADDRESS-ED
4190
      LABEL-
4191
INSTRUCTION-
4192
   OPERAND1-
4193
   OPERAND2-
4194
    COMMENT-; This part is not necessary in write operations
4195
    ADDRESS-ED
4196
      LABEL-
4197
INSTRUCTION-
4198
   OPERAND1-
4199
   OPERAND2-
4200
    COMMENT-; DATA_WB_IN_7_0_MASTER -> (sD) data[7:0] WB MASTER
4201
    ADDRESS-ED
4202
      LABEL-
4203
INSTRUCTION-
4204
   OPERAND1-
4205
   OPERAND2-
4206
    COMMENT-; DATA_WB_IN_15_8_MASTER -> (sE) data[15:8] WB MASTER
4207
    ADDRESS-ED
4208
      LABEL-
4209
INSTRUCTION-INPUT
4210
   OPERAND1-sD
4211
   OPERAND2-DATA_WB_IN_7_0_MASTER
4212
    COMMENT-
4213
    ADDRESS-EE
4214
      LABEL-
4215
INSTRUCTION-INPUT
4216
   OPERAND1-sE
4217
   OPERAND2-DATA_WB_IN_15_8_MASTER
4218
    COMMENT-
4219
    ADDRESS-EF
4220
      LABEL-
4221
INSTRUCTION-
4222
   OPERAND1-
4223
   OPERAND2-
4224
    COMMENT-; DISABLE RD/WR OPERATION REQUEST
4225
    ADDRESS-EF
4226
      LABEL-
4227
INSTRUCTION-LOAD
4228
   OPERAND1-sF
4229
   OPERAND2-00
4230
    COMMENT-
4231
    ADDRESS-F0
4232
      LABEL-
4233
INSTRUCTION-OUTPUT
4234
   OPERAND1-sF
4235
   OPERAND2-CONTROL_WB_OUT_MASTER
4236
    COMMENT-
4237
    ADDRESS-F1
4238
      LABEL-
4239
INSTRUCTION-RETURN
4240
   OPERAND1-
4241
   OPERAND2-
4242
    COMMENT-
4243
    ADDRESS-F2
4244
      LABEL-put_error_code
4245
INSTRUCTION-
4246
   OPERAND1-
4247
   OPERAND2-
4248
    COMMENT-
4249
    ADDRESS-F2
4250
      LABEL-
4251
INSTRUCTION-LOAD
4252
   OPERAND1-sF
4253
   OPERAND2-ERROR
4254
    COMMENT-
4255
    ADDRESS-F3
4256
      LABEL-
4257
INSTRUCTION-OUTPUT
4258
   OPERAND1-sF
4259
   OPERAND2-CONTROL_WB_OUT_SLAVE
4260
    COMMENT-
4261
    ADDRESS-F4
4262
      LABEL-
4263
INSTRUCTION-JUMP
4264
   OPERAND1-put_error_code
4265
   OPERAND2-
4266
    COMMENT-
4267
    ADDRESS-F5
4268
      LABEL-interrupt
4269
INSTRUCTION-
4270
   OPERAND1-
4271
   OPERAND2-
4272
    COMMENT-
4273
    ADDRESS-F5
4274
      LABEL-
4275
INSTRUCTION-RETURNI
4276
   OPERAND1-ENABLE
4277
   OPERAND2-
4278
    COMMENT-

powered by: WebSVN 2.1.0

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