После долгого перерыва опять вернулся к FPGA. Точнее, к скрипту, который переделывает листинг в MIF файл. Добил до вариант, прогон которого уже позволяет (правда, пока ещё делается некоторое количество правок руками как в исходном листинге, так и в MIF файле) получившийся результат использовать в синтезе. Как выглядит:
Код:
-- begin_signature
-- m9312l
-- end_signature
WIDTH=16;
DEPTH=256;

ADDRESS_RADIX=UNS;
DATA_RADIX=OCT;

CONTENT BEGIN
	0 :	165000;  -- 165000 165000                  data0:   .word data0       ; test data structures
	1 :	165000;  -- 165002 165000                           .word data0       ;
	2 :	100000;  -- 165004    000     200          data1:   .byte 000, 200    ;
	3 :	177777;  -- 165006 177777                  data2:   .word 177777      ;
	4 :	165006;  -- 165010 165006                           .word data2       ;
	5 :	165006;  -- 165012 165006                           .word data2       ;
	6 :	000500;  -- 165014 000500                           .word memloc+0    ;
	7 :	000501;  -- 165016 000501                           .word memloc+1    ;
	                 --                                ;         .=base+20                   
	                 --                                DIAG: ; PRIMARY DIAGNOSTIC ENTRY POINT
	8 :	005003;  -- 165020 005003                  T1:      clr   r3          ; R3=000000 C=0
	9 :	005203;  -- 165022 005203                           inc   r3          ; R3=000001 C=0
	10 :	005103;  -- 165024 005103                           com   r3          ; R3=177776 C=1
	11 :	006203;  -- 165026 006203                           asr   r3          ; R3=177777 C=0
	12 :	006303;  -- 165030 006303                           asl   r3          ; R3=177776 C=1
	13 :	006003;  -- 165032 006003                           ror   r3          ; R3=177777 C=0
	14 :	005703;  -- 165034 005703                           tst   r3          ; R3=177777 C=0
	15 :	005403;  -- 165036 005403                           neg   r3          ; R3=000001 C=1
	16 :	005303;  -- 165040 005303                           dec   r3          ; R3=000000 C=1
	17 :	005603;  -- 165042 005603                           sbc   r3          ; R3=177777 C=1
	18 :	006103;  -- 165044 006103                           rol   r3          ; R3=177777 C=1
	19 :	005503;  -- 165046 005503                           adc   r3          ; R3=000000 C=1
	20 :	000303;  -- 165050 000303                           swab  r3          ; R3=000000 C=0
	21 :	001377;  -- 165052 001377                           bne   .           ; br . if FAIL
	22 :	012702;  -- 165054 012702                  T2:      mov   #data0,r2   ; R2=165000
	23 :	165000;  --        165000

--здесь текст вырезал, особого смысле полностью приводит не вижу - всё вырезанное примерно такое же...

	250 :	014304;  -- 165764 014304                  T8D:     mov   -(r3),r4       ; memory FAIL, put bad data to R4    
	251 :	010300;  -- 165766 010300                           mov   r3,r0          ; put bad addr to R0                 
	252 :	005006;  -- 165770 005006                           clr   sp             ; zap SP                             
	253 :	000000;  -- 165772 000000                           halt                 ; and DIE                            
	254 :	040460;  -- 165774    060     101          verson:  .ascii   "0A"        ; version ID         
	255 :	123162;  -- 165776 123162                  crc16:   .word <123162>       ; CRC-16 will go here
END;
Работа над ним продолжается