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

Subversion Repositories ffr16

[/] [ffr16/] [branches/] [APERT/] [sources/] [fpu/] [050803KN/] [compile/] [PASS2.DAT] - Rev 2

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

      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; FAT16 READER V.050303 - Armando Astarloa - 16 BIT VER.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; APERT - UPV/EHU 2003 - DISTRIBUTED UNDER GPL LICENCE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; s0 -> TMP0 s1 -> TMP1 s2 -> TMP2 s3 -> TMP3 s4 -> TMP4 / SECTORS_PER_CLUSTER_READED s5 -> TMP5/SECTOR_WORDS_READED (256 TO 0)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; s6 -> TMP s7 -> SECTORS_PER_CLUSTER s8 -> CLUSTER_BEGIN_LBA0 (FAT) s9 -> CLUSTER_BEGIN_LBA1 sA -> CLUSTER_BEGIN_LBA2 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; sB -> CLUSTER_BEGIN_LBA3 sC -> ROOT_DIRECTORY_FIRST_CLUSTER0 (SUPPOSED LESS THAN 256 - USUALLY 2)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; sD -> data[7:0] WB MASTER sE -> data[15:8] WB MASTER sF -> acummulator
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-DATA_WB_OUT_7_0_MASTER
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-DATA_WB_OUT_15_8_MASTER
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-CONTROL_WB_OUT_MASTER
   OPERAND2-02
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D7 = D6 = D5 = D4 = D3 = D2 = A0_MASTER D1 = W_WE_MASTER D0 = STB_O_MASTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; STROBE_O_MASTER = 1 & W_WE=0 & WB_A0 = 0 
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-READ_SLAVE
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; STROBE_O_MASTER = 1 & W_WE=1 & WB_A0 = 0 
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-WRITE_LBA_15_0
   OPERAND2-03
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; STROBE_CF_READER = 1 & W_WE=1 & WB_A0 = 1 
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-WRITE_LBA_27_16
   OPERAND2-07
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;-- SLAVE INTERFACE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-DATA_WB_OUT_7_0_SLAVE
   OPERAND2-03
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-DATA_WB_OUT_15_8_SLAVE
   OPERAND2-04
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-CONTROL_WB_OUT_SLAVE
   OPERAND2-05
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D7 =  D6 =  D5  D4 =  D3 = 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D2 = TAG1_ERROR
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D1 = TAG0_WORD_AVAILABLE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D0 = ACK_O_SLAVE
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-ACK_O_SLAVE
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TAG0_WORD_AVAILABLE
   OPERAND2-02
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-ERROR
   OPERAND2-04
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;-- BUS CONTROL SIGNALS
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-CONTROL_OUT_MASTER
   OPERAND2-06
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D7 =  D6 = D5 = D4 = D3 = D2 = D1 = 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D0 = WB_BUS_MASTER_WRITE_ENABLE
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-WB_BUS_MASTER_WRITE_ENABLE
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-CONTROL_OUT_SLAVE
   OPERAND2-07
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D7 =  D6 = D5 = D4 = D3 = D2 = D1 = 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D0 = WB_BUS_SLAVE_WRITE_ENABLE
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-WB_BUS_SLAVE_WRITE_ENABLE
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;-- EXTERNAL REGISTERS FOR MORE DATA ALLOCATION (OTHER OPTION IS THE USE OF
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;-- ANOTHER BLOCK RAM IF IT IS AVALIABLE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_OUT_0
   OPERAND2-08
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_OUT_1
   OPERAND2-09
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_OUT_2
   OPERAND2-0A
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_OUT_3
   OPERAND2-0B
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_OUT_4
   OPERAND2-0C
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_OUT_5
   OPERAND2-0D
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_OUT_6
   OPERAND2-0E
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_OUT_7
   OPERAND2-0F
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;-- INPUT PORTS
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;-- WISHBONE INTERFACE PORTS - INPUTS
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-CONTROL_WB_IN_MASTER
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D7 = D6 = D5 = D4 = D3 = D2 = 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D1 = ERROR_INPUT
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D0 = ACK_I_MASTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-ACK_I_MASTER
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-ERROR_INPUT
   OPERAND2-02
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-CONTROL_WB_IN_SLAVE
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D7 = D6 = D5 = D4 = D3 = D2 = 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D1 = -
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; D0 = STB_I_SLAVE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-STB_I_SLAVE
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;CONSTANT TAG0_FORCE_RESET,02                       
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;-- WISHBONE INTERFACE PORTS - INPUTS
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-DATA_WB_IN_7_0_MASTER
   OPERAND2-02
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-DATA_WB_IN_15_8_MASTER
   OPERAND2-03
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;-- EXTERNAL REGISTERS FOR MORE DATA ALLOCATION (OTHER OPTION IS THE USE OF
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;-- ANOTHER BLOCK RAM IF IT IS AVALIABLE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_IN_0
   OPERAND2-04
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_IN_1
   OPERAND2-05
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_IN_2
   OPERAND2-06
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_IN_3
   OPERAND2-07
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_IN_4
   OPERAND2-08
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_IN_5
   OPERAND2-09
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_IN_6
   OPERAND2-0A
    COMMENT-
      LABEL-
INSTRUCTION-CONSTANT
   OPERAND1-TMP_IN_7
   OPERAND2-0B
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;-- REGISTERS INITIALIZATION
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;--
      LABEL-inicialization
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; WISHBONE INTERFACES INIZIALIZATION
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-DATA_WB_OUT_7_0_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-DATA_WB_OUT_15_8_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-DATA_WB_OUT_7_0_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-DATA_WB_OUT_15_8_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_WB_OUT_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_WB_OUT_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; WAIT FOR 410NS*3 (RESET DELAY)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-main
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; PROCESS MASTER BOOT RECORD
      LABEL-
INSTRUCTION-CALL
   OPERAND1-process_master_boot_record
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; PROCESS ROOT DIRECTORY
      LABEL-
INSTRUCTION-CALL
   OPERAND1-process_root_directory
   OPERAND2-
    COMMENT-
      LABEL-start
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-cluster_2_lba
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;CALL write_lba_to_slave
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; sector_per_cluster -> sector_per_cluster_readed
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s4
   OPERAND2-s7
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; 256 -> (s6) SECTOR_WORDS_READED 
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_sector
   OPERAND2-
    COMMENT-
      LABEL-idle
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-s6
   OPERAND2-CONTROL_WB_IN_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; CHECK STB INPUT 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; CONTROL_WB_IN_SLAVE-> TMP (s6)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; IF STB=1 GO TO THE NEXT STATE 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; IF STB=0 GO TO THE IDLE STATE
      LABEL-
INSTRUCTION-AND
   OPERAND1-s6
   OPERAND2-STB_I_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
   OPERAND2-idle
    COMMENT-
      LABEL-transfer_word_to_master
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_word_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-write_a_word_to_master
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; (SECTOR WORDS READED)-1
      LABEL-
INSTRUCTION-SUB
   OPERAND1-s5
   OPERAND2-01
    COMMENT-
      LABEL-check_sectors_words_readed
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; IF sector_words_readed = 0 THEN READ_NEW_SECTOR
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; IF sector_words_readed > 0 THEN TRANSFER_WORD_TO_MASTER
      LABEL-
INSTRUCTION-AND
   OPERAND1-s5
   OPERAND2-s5
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-Z
   OPERAND2-check_sector_per_cluster_readed
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-idle
   OPERAND2-
    COMMENT-
      LABEL-track_new_cluster
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; save the number of dummy reads that must be done when the fat sector will be readed
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; an are stored into s5 register
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; in s0 bits 6-0 of the cluster number (offset in the sector -> 256 words-fat16 entries)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; as is each read operation a word is readed no multiplication is needed
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; RESTORE CLUSTER NUMBER
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-s0
   OPERAND2-TMP_IN_4
    COMMENT-
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-s1
   OPERAND2-TMP_IN_5
    COMMENT-
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-s2
   OPERAND2-TMP_IN_6
    COMMENT-
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-s3
   OPERAND2-TMP_IN_7
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; compose LBA address of the sector of the fat that must be readed
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; SHIFT RIGHT 15-8 TO 7-0 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-07
    COMMENT-
      LABEL-do_shift
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SR0
   OPERAND1-s3
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; uses the carry for the MSB and stores LSB into the carry
      LABEL-
INSTRUCTION-SRA
   OPERAND1-s2
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SRA
   OPERAND1-s1
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SRA
   OPERAND1-s0
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SUB
   OPERAND1-sF
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-do_shift
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-add_load_fat_begin_lba
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; adds fat_begin_lba to the sector relative to the fat obteined from the cluster
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; now there is the lba of the FAT sector that must be readed in s0,s1,s2,s3
      LABEL-
INSTRUCTION-CALL
   OPERAND1-write_lba_to_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- DUMMY READ OF THE WORDS OF THE SECTOR TILL THE ONE OF THE CLUSTER INTEGER 
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-sF
   OPERAND2-TMP_IN_4
    COMMENT-
      LABEL-
INSTRUCTION-AND
   OPERAND1-sF
   OPERAND2-7F
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-do_dummy_reads_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s0) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s1) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ 2 BYTES
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_word_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s0
   OPERAND2-sD
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s1
   OPERAND2-sE
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s2) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s3) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ 2 BYTES
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; CHECK IF ITS THE LAST ONE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; CB3-CL2-CB1-CB0 IN FAT LITTLE ENDIAN ORDER CB0-CB1 CB2-CB3
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-sE
    COMMENT-
      LABEL-
INSTRUCTION-SUB
   OPERAND1-sF
   OPERAND2-FF
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-continue_file_processing
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-sD
    COMMENT-
      LABEL-
INSTRUCTION-SUB
   OPERAND1-sF
   OPERAND2-FF
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-continue_file_processing
    COMMENT-
      LABEL-file_end
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; infinite loop (file readed and tranferred)
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-file_end
   OPERAND2-
    COMMENT-
      LABEL-continue_file_processing
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; in s0,s1 is the cluster name
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; (SECTOR WORDS READED)= 256
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; sector_per_cluster -> sector_per_cluster_readed
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s2
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s3
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s4
   OPERAND2-s7
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-cluster_2_lba
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_sector
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-add_load_fat_begin_lba
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-sF
   OPERAND2-TMP_IN_0
    COMMENT-
      LABEL-
INSTRUCTION-ADD
   OPERAND1-s0
   OPERAND2-sF
    COMMENT-
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-sF
   OPERAND2-TMP_IN_1
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-s1
   OPERAND2-sF
    COMMENT-
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-sF
   OPERAND2-TMP_IN_2
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-s2
   OPERAND2-sF
    COMMENT-
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-sF
   OPERAND2-TMP_IN_3
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-s3
   OPERAND2-sF
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-check_sector_per_cluster_readed
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; IF sector_per_cluster_readed = 0 THEN TRACK_NEW_CLUSTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; IF sector_per_cluster_readed > 0 THEN CHECK SECTOR WORDS READED
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; (sector_per_cluster_readed)-1
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; (SECTOR WORDS READED)= 256
      LABEL-
INSTRUCTION-SUB
   OPERAND1-s4
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-AND
   OPERAND1-s4
   OPERAND2-s4
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
   OPERAND2-track_new_cluster
    COMMENT-
      LABEL-read_new_sector
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; (SECTOR WORDS READED)= 256
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; increment LBA
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; sector_per_cluster -> sector_per_cluster_readed-1
      LABEL-
INSTRUCTION-ADD
   OPERAND1-s0
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-s1
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-s2
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-s3
   OPERAND2-00
    COMMENT-
      LABEL-read_sector
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s5
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-write_lba_to_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- PROCESS MASTER BOOT RECORD (READ LBA BEGIN OF THE FIRST PARTITION)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-process_master_boot_record
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; LOAD LBA FOR MBR READ
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s0
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s1
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s2
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s3
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-write_lba_to_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; information of the lba begin for the first partition
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; has an offset of 454 bytes -> 227(0xE3) words
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-E3
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-do_dummy_reads_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- MBR READ - Partition_LBA_Begin EXTRACTION
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s0) lba
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sE) data[15:8] WB MASTER -> (s1) lba
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s2) lba
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sE) data[15:8] WB MASTER -> (s3) lba
      LABEL-
INSTRUCTION-CALL
   OPERAND1-store_all_temporal_registers
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s8
   OPERAND2-s0
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s9
   OPERAND2-s1
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sA
   OPERAND2-s2
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sB
   OPERAND2-s3
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; NOW IS THE LBA_BEGIN ON THE TMP REGISTERS
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --------------------
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ FIRST SECTOR (FAT32 VOLUMEN ID) OF THE PARTITION
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; ---------------------
      LABEL-
INSTRUCTION-CALL
   OPERAND1-write_lba_to_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ -> SECTORS_PER_CLUSTER (OFFSET 0x0D)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; offset 0x0D (13) => READ 13 bytes -> 6(0x06) words and drop LSB in the next
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-06
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-do_dummy_reads_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s7) SECTORS PER CLUSTER
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_word_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s7
   OPERAND2-sE
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ -> Number_of_Reserved_Sectors (2 bytes) (OFFSET 0x0E)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; offset 0x0E (14) => READ 2 bytes -> 1(0x01) words
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[15:8] WB MASTER -> (s6) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_word_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s6
   OPERAND2-sD
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s4) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s4
   OPERAND2-sE
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;fat_begin_lba = Partition_LBA_Begin + Number_of_Reserved_Sectors
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-ADD
   OPERAND1-s8
   OPERAND2-s6
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-s9
   OPERAND2-s4
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-sA
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-sB
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; store fat_begin_lba in external registers
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s8
   OPERAND2-TMP_OUT_0
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s9
   OPERAND2-TMP_OUT_1
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sA
   OPERAND2-TMP_OUT_2
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sB
   OPERAND2-TMP_OUT_3
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;cluster_begin_lba = Partition_LBA_Begin + Number_of_Reserved_Sectors + 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;                           (Number_of_FATs * Sectors_Per_FAT)+ RootDirSectors;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;cluster_begin_lba = fat_begin_lba + (Number_of_FATs * Sectors_Per_FAT)+ RootDirSectors;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ -> Number_of_Fats (OFFSET 0x10) (always 2)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; offset 0x10 (16) => READ 2 bytes -> 1(0x01) words
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s6) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_word_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s6
   OPERAND2-sD
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;           
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; FOR FAT16 => NUMBER OF SECTORS OCCUPIED BY THE ROOT DIRECTORY (BYTES_PER_SEC=512) 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ -> RootEntCnt (OFFSET 0x11) (FAT16 PROCESSING)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; RootDirSectors=((BPB_RootEntCnt*32)+(BPB_BytesPerSec-1))/BPB_BytesPerSec
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; offset 0x11 (17) => READ 1 bytes 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s0) TEMPORAL REGISTER               
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s0
   OPERAND2-sE
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[15:0] WB MASTER -> (sD) TEMPORAL REGISTER - offset 0x12 (18) => READ 1 bytes   
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_word_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s1
   OPERAND2-sD
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; MULTIPLY BY 32 (100000) 5 SHIFTS TO THE LEFT
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-05
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; LSB '0'
      LABEL-mult_32
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SL0
   OPERAND1-s0
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; CARRY -> LSB , MSB -> CARRY
      LABEL-
INSTRUCTION-SLA
   OPERAND1-s1
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SUB
   OPERAND1-sF
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-mult_32
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;BPB_RootEntCnt*32+(BPB_BytesPerSec-1) 511 (0x1FF)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;ADD s0,FF (if rounds up => not necessary??)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;ADDCY s1,01
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;/BPB_BytesPerSec (512) (1000000000)9 SHIFTS TO THE RIGHT
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-09
    COMMENT-
      LABEL-div_512
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; uses the carry for the MSB and stores LSB into the carry
      LABEL-
INSTRUCTION-SR0
   OPERAND1-s1
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SRA
   OPERAND1-s0
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SUB
   OPERAND1-sF
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-div_512
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; ROUNDs UP
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;ADD s0,01
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;ADDCY s1,00
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;fat_begin_lba + RootDirSectors
      LABEL-
INSTRUCTION-ADD
   OPERAND1-s8
   OPERAND2-s0
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-s9
   OPERAND2-s1
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-sA
   OPERAND2-s2
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-sB
   OPERAND2-s3
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ -> Sectors_per_fat (OFFSET 0x24)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; offset 0x16 (22) => READ 2 bytes -> 01(0x01) words
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-do_dummy_reads_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-store_all_temporal_registers
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (Number_of_FATs * Sectors_Per_FAT)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Number_of_FATs = 2 (10) . Do a shift to the left of the Sectors_Per_Fat
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; ***       FAT16 = Sectors_per_fat(BPB_FATSz16)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; LSB '0'
      LABEL-
INSTRUCTION-SL0
   OPERAND1-s0
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; CARRY -> LSB , MSB -> CARRY
      LABEL-
INSTRUCTION-SLA
   OPERAND1-s1
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;SLA s2 for fat16 only 2 bytes
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;SLA s3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; fat_begin_lba + RootDirSectors + (Number_of_FATs * Sectors_Per_FAT)
      LABEL-
INSTRUCTION-ADD
   OPERAND1-s8
   OPERAND2-s0
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-s9
   OPERAND2-s1
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-sA
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-sB
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; cluster_begin_lba is stored in s8, s9, sA, SB
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; FOR FAT16 ROOT DIRECTORY POSITION IS FIXED 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; root_first_lba =  fat_begin_lba(in external regs) + (Number_of_FATs * Sectors_Per_FAT) (s0,s1,s2,s3)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s2
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s3
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-add_load_fat_begin_lba
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; s0,s1,s2,s3 have Root directory begin lba
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-store_all_temporal_registers
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ 2 BYTES
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_word_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s0) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s1) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s0
   OPERAND2-sD
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s1
   OPERAND2-sE
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s2) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sE) data[7:0] WB MASTER -> (s3) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ 2 BYTES
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_word_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s2
   OPERAND2-sD
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s3
   OPERAND2-sE
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-process_root_directory
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; INPUT :
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; s0,s1,s2,s3 root directory lba (FAT16- FIXED)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; CALL cluster_2_lba
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; now s0,s1,s2,s3 contains the lba for the root directory
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; the first 32 byte record on the sector must be the root directory information
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; check if EOF (first byte of the 32 bytes is 0)
      LABEL-
INSTRUCTION-CALL
   OPERAND1-write_lba_to_slave
   OPERAND2-
    COMMENT-
      LABEL-check_for_a_file
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_word_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s6) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s6
   OPERAND2-sD
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-s6
    COMMENT-
      LABEL-
INSTRUCTION-AND
   OPERAND1-sF
   OPERAND2-sF
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; if sF=0 the is not directory => error
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
   OPERAND2-put_error_code
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; check that is not a deleted entry
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s6) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-E5
    COMMENT-
      LABEL-
INSTRUCTION-AND
   OPERAND1-sF
   OPERAND2-s6
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; if s6=E5 is a deteled entry => check for new one (offset => sF)
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
   OPERAND2-check_next_directory_entry
    COMMENT-
      LABEL-check_attribute
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; ATTRIBUTE -> OFFSET Bh
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; check that is not a directory or LONG NAME
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; 00arshdv - DV for long name - D for directory
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[7:0] WB MASTER -> (s6) TEMPORAL REGISTER
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-04
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-do_dummy_reads_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_word_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s6
   OPERAND2-sE
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-03
    COMMENT-
      LABEL-
INSTRUCTION-AND
   OPERAND1-sF
   OPERAND2-s6
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-check_next_directory_entry_attribute
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; if s6=0 that is not a file => error
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;JUMP Z,check_next_directory_entry          
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; check that is not a directory
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; check that is a file (short filename entry)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; in other case error
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ CLUSTER INFORMATION FOR THE FILE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_dir_cluster_hi_cluster_low
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-check_next_directory_entry
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; go fwd 11 words
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-05
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-do_dummy_reads_from_slave
   OPERAND2-
    COMMENT-
      LABEL-check_next_directory_entry_attribute
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; go fwd 5 words
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-0A
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-do_dummy_reads_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-check_for_a_file
   OPERAND2-
    COMMENT-
      LABEL-read_dir_cluster_hi_cluster_low
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; INPUT :
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;      before arrive here first two bytes of the directory 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;      structure must be readed 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; OUTPUT :
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; s0,s1 : CLUS_LOW 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; s2,s3 : CLUS_HI
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ -> cluster_HI (OFFSET 0x14) 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; offset 0x14 (20) => READ 18 bytes -> 9(0x09) words
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-04
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-do_dummy_reads_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[7:0] WB MASTER -> s2
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sE) data[7:0] WB MASTER -> s3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ 2 BYTES
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_word_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s2
   OPERAND2-sD
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s3
   OPERAND2-sE
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sE
   OPERAND2-TMP_OUT_7
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ -> cluster_low(OFFSET 0x1A) 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; offset 0x1A (26) => READ 4 bytes -> 2(0x02) words
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-02
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-do_dummy_reads_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sD) data[7:0] WB MASTER ->  s0
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  (sE) data[7:0] WB MASTER ->  s1
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; READ 2 BYTES
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_word_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s0
   OPERAND2-sD
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s1
   OPERAND2-sE
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; s0,s1 clus_low s3,s4 - clus_high
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- MBR READ OPERATION - LBA BEGIN DETERMINATION
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; '00' -> LBA_7_0,LBA_15_8,LBA_23_16,LD_LBA_27_24
      LABEL-cluster_2_lba
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- LBA ADDRESS DETERMINATION
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; lba_addr = cluster_begin_lba + (cluster_number - 2) * sectors_per_cluster;  
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; INPUT :
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; s0 : CLUSTER_NUMBER0, s1 : CLUSTER_NUMBER1, s2: CLUSTER_NUMBER2, s3 : CLUSTER_NUMBER3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; OUTPUT :
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; s0 : LBA_ADDR_7_0 TMP1, s1 : LBA_ADDR_15_8, s2 : LBA_ADDR_24_16, s3 : LBA_ADDR_27_24
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; cluster_number - 2
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s0
   OPERAND2-TMP_OUT_4
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s1
   OPERAND2-TMP_OUT_5
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s2
   OPERAND2-TMP_OUT_6
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s3
   OPERAND2-TMP_OUT_7
    COMMENT-
      LABEL-
INSTRUCTION-SUB
   OPERAND1-s0
   OPERAND2-02
    COMMENT-
      LABEL-
INSTRUCTION-SUBCY
   OPERAND1-s1
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-SUBCY
   OPERAND1-s2
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-SUBCY
   OPERAND1-s3
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; (cluster_number - 2) * sectors_per_cluster(s7);
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; to perform the multiplication as sector_per_cluster is 2 multiple must be known
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; who many times must be shifted
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; (use sD as temporal register)
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-08
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sD
   OPERAND2-s7
    COMMENT-
      LABEL-multiply
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SR0
   OPERAND1-sD
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; loop until detection of the 1 (2 multiple) - Add timeout!!!
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-C
   OPERAND2-add_cluster_begin_lba
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; LSB '0'
      LABEL-
INSTRUCTION-SL0
   OPERAND1-s0
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; CARRY -> LSB , MSB -> CARRY
      LABEL-
INSTRUCTION-SLA
   OPERAND1-s1
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SLA
   OPERAND1-s2
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SLA
   OPERAND1-s3
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-multiply
   OPERAND2-
    COMMENT-
      LABEL-add_cluster_begin_lba
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; lba_addr (TMP0,TMP1,TMP2,TMP3)= cluster_begin_lba + (cluster_number - 2) * sectors_per_cluster;  
      LABEL-
INSTRUCTION-ADD
   OPERAND1-s0
   OPERAND2-s8
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-s1
   OPERAND2-s9
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-s2
   OPERAND2-sA
    COMMENT-
      LABEL-
INSTRUCTION-ADDCY
   OPERAND1-s3
   OPERAND2-sB
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- WRITE A WORD INTO THE WB SLAVE INTERFACE (TO THE MASTER)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; INPUTS :
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; TMP0 : LSB TO DATA_WB_OUT_7_0_SLAVE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; TMP1 : MSB TO DATA_WB_OUT_15_8_SLAVE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-write_a_word_to_master
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; TMP0 => DATA_WB_OUT_7_0_SLAVE
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sD
   OPERAND2-DATA_WB_OUT_7_0_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; 00 => DATA_WB_OUT_15_8_SLAVE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;LOAD sF,00 -- 8 BIT VERSION
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;OUTPUT sF,DATA_WB_OUT_15_8_SLAVE -- 8 BIT VERSION
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sE
   OPERAND2-DATA_WB_OUT_15_8_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-write_a_byte_to_master
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; CHECK STB INPUT | CONTROL_WB_IN_SLAVE-> TMP (s6)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-wait_strobe
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-s6
   OPERAND2-CONTROL_WB_IN_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-AND
   OPERAND1-s6
   OPERAND2-STB_I_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
   OPERAND2-wait_strobe
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; TMP1 => DATA_WB_OUT_7_0_SLAVE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; OUTPUT sE,DATA_WB_OUT_7_0_SLAVE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; 00 =>DATA_WB_OUT_15_8_SLAVE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;LOAD sF,00 -- 8 BIT VERSION
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;OUTPUT sF,DATA_WB_OUT_15_8_SLAVE -- 8 BIT VERSION
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;CALL write_a_byte_to_master -- 8 BIT VERSION
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-write_a_byte_to_master
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; WB SLAVE WRITE ENABLE ACTIVE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-WB_BUS_SLAVE_WRITE_ENABLE
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_OUT_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; ACK TO THE MASTER UNTIL STB FINISH
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-ack_to_the_master
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-ACK_O_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_WB_OUT_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_OUT_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_WB_OUT_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- WRITE A LBA INTO THE WB MASTER INTERFACE (TO THE SLAVE)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; INPUTS :
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; TMP0 : LBA_ADDR_7_0, TMP1 : LBA_ADDR_15_8, TMP2 : LBA_ADDR_24_16, TMP3 : LBA_ADDR_27_24
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-write_lba_to_slave
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; WB MASTER WRITE ENABLE ACTIVE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-WB_BUS_MASTER_WRITE_ENABLE
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_OUT_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;write_lba_15_0_to_slave:
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; TMP0 : LBA_ADDR_7_0 (s0)  => DATA_WB_OUT_7_0_MASTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; TMP1 : LBA_ADDR_15_8 (s1) => DATA_WB_OUT_15_8_MASTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s0
   OPERAND2-DATA_WB_OUT_7_0_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s1
   OPERAND2-DATA_WB_OUT_15_8_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- WRITE LBA 15-0 TO THE SLAVE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; WB_CONTROL_OUT_MASTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; W_WE_MASTER = 1
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; STB_O_MASTER = 1
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; A0 = 0
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-WRITE_LBA_15_0
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_WB_OUT_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; WAIT FOR THE ACK
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-CALL
   OPERAND1-wait_for_the_ack
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;write_lba_27_16_to_slave:  
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; TMP2 : LBA_ADDR_23_16 (s2)        => DATA_WB_OUT_7_0_MASTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; TMP3 : LBA_ADDR_27_24 (s3)        => DATA_WB_OUT_15_8_MASTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s2
   OPERAND2-DATA_WB_OUT_7_0_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s3
   OPERAND2-DATA_WB_OUT_15_8_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- WRITE LBA 27-16 TO THE SLAVE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- 
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; WB_CONTROL_OUT_MASTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; W_WE_MASTER = 1
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; STB_O_MASTER = 1
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; A0 = 0
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-WRITE_LBA_27_16
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_WB_OUT_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; WAIT FOR THE ACK  
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-CALL
   OPERAND1-wait_for_the_ack
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- FINISH WRITE OPERATION ON THE MASTER WB INTERFACE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; WB_CONTROL_OUT_MASTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; W_WE_MASTER = 0
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; STB_O_MASTER = 0
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; A0 = 0
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_WB_OUT_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_OUT_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- PERFORM DUMMY READS FROM THE WB SLAVE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- IN sF ARE THE NUMBER OF WORDS THAT MUST BE READED
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-do_dummy_reads_from_slave
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s6
   OPERAND2-sF
    COMMENT-
      LABEL-dummy_reads_from_slave
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_word_from_slave
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SUB
   OPERAND1-s6
   OPERAND2-01
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-dummy_reads_from_slave
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; -- PERFORM A WORD READING FROM THE WB SLAVE
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; --
      LABEL-read_word_from_slave
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; WB_CONTROL_OUT_MASTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; W_WE_MASTER = 0
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; STB_O_MASTER = 1
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; A0 = 0
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; wait state
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-READ_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_WB_OUT_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; WAIT FOR THE ACK  
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; CALL wait_for_the_ack
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;JUMP Z,data_available_on_wb_master
      LABEL-wait_for_the_ack
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; CONTROL_WB_IN_MASTER -> TMP (s6)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-sF
   OPERAND2-CONTROL_WB_IN_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-AND
   OPERAND1-sF
   OPERAND2-ACK_I_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
   OPERAND2-wait_for_the_ack
    COMMENT-
      LABEL-data_available_on_wb_master
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; This part is not necessary in write operations
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; DATA_WB_IN_7_0_MASTER -> (sD) data[7:0] WB MASTER
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; DATA_WB_IN_15_8_MASTER -> (sE) data[15:8] WB MASTER
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-sD
   OPERAND2-DATA_WB_IN_7_0_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-INPUT
   OPERAND1-sE
   OPERAND2-DATA_WB_IN_15_8_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; DISABLE RD/WR OPERATION REQUEST
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-00
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_WB_OUT_MASTER
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-put_error_code
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-sF
   OPERAND2-ERROR
    COMMENT-
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-sF
   OPERAND2-CONTROL_WB_OUT_SLAVE
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-put_error_code
   OPERAND2-
    COMMENT-
      LABEL-interrupt
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-RETURNI
   OPERAND1-ENABLE
   OPERAND2-
    COMMENT-

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

powered by: WebSVN 2.1.0

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