Sprinter-Core/src/altera/acex/k30/AY.MIF
Anatoliy Belyanskiy 0271ac3713 Creation
2023-06-12 05:56:21 +10:00

155 lines
3.4 KiB
Plaintext

DEPTH = 256; % Memory depth and width are required %
WIDTH = 8; % Enter a decimal number %
ADDRESS_RADIX = HEX; % Address and value radixes are optional %
DATA_RADIX = BIN; % Enter BIN, DEC, HEX, or OCT; unless %
% otherwise specified, radixes = HEX %
-- Specify values for addresses, which can be single address or range
CONTENT
BEGIN
[0..7F] : 00000000;
0 : 00000000 00000000
00000000 00000000
00000000 00000000
00000000 11111111
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00000000
11111111 11111111
11111111 11111111
11111111 11111111
11111111 11111111
11111111 11111111
11111111 11111111
11111111 00000001
00000000 11111111
;
1E : 00000000;
1F : 11111111;
30 : 00000000
00000010
00000011
00000100
00000110
00001000
00001011
00010000
00010110
00100000
00101101
01000000
01011010
10000000
10110100
11111111;
[80..FF]: 00000000;
%
000 - set CX, load & sub 1
001 - load
010 - save, if NZ,reset CX
011 - bit_out
100 - load & sub 1
101 - load & sub C
110 - if CX, save
111 - read states /RESET, AY_F_RES
%
80 :
00010000 -- set C,CX load reg10 & sub C
01010000 -- save reg10 & reset CX if NZ
10110001 -- load reg11 & sub C
01010001 -- save reg11 & reset CX if NZ
00100000 -- set C load reg00 & sub C
11010000 -- save reg10 if CX
00100001 -- load reg01 & sub C
11010001 -- save reg11 if CX
00101000 -- load reg08
01100001 -- set AY_OUT1
00010010 -- set C,CX load reg12 & sub C
01010010 -- save reg12 & reset CX if NZ
10110011 -- load reg13 & sub C
01010011 -- save reg13 & reset CX if NZ
00100010 -- set C load reg02 & sub C
11010010 -- save reg12 if CX
00100011 -- load reg03 & reset CX if NZ
11010011 -- save reg13 if CX
00101001 -- load reg09
01100010 -- set AY_OUT2
00010100 -- set C,CX load reg14 & sub C
01010100 -- save reg14 & reset CX if NZ
10110101 -- load reg15 & sub C
01010101 -- save reg15 & reset CX if NZ
00100100 -- set C load reg04 & sub C
11010100 -- save reg14 if CX
00100101 -- load reg05 & reset CX if NZ
11010101 -- save reg15 if CX
00101010 -- load reg0A
01100011 -- set AY_OUT3
00010111 -- set C,CX load reg17 & dec 1
01010111 -- save reg17 & reset CX if NZ
00100110 -- load reg06 dec 1 ***********
11010111 -- save reg17 if CX
01100100 -- set AY_SH
00000000 -- NOP
00011000 -- set C,CX load reg18 & sub C
01011000 -- save reg18 & reset CX if NZ
10111001 -- load reg19 & sub C
01011001 -- save reg19 & reset CX if NZ
00101011 -- load reg0B & sub 1
11011000 -- save reg18 if CX
00101100 -- load reg0C & sub C
11011001 -- save reg19 if CX
01100101 -- set FORM_CLK
11100000 -- set CX = AY_F_RES
-- 00101011 -- load reg0B & sub 1
-- 11011000 -- save reg18 if CX
-- 00101100 -- load reg0C & sub C
-- 11011001 -- save reg19 if CX
11100001 -- set CX = /RESET
00111111 -- load reg1F - FF ***********
11000111 -- save reg07 if CX
00111110 -- load reg1E - 00 ***********
11001101 -- save reg0D if CX
11001000 -- save reg08 if CX
11001001 -- save reg09 if CX
11001010 -- save reg0a if CX
00100111 -- load reg07 ***********
01100110 -- set keys_bits
00101101 -- load reg0D ***********
01100111 -- set keys_bits SET-FORM-bits
-- 01100000 -- set AY_OUT_ALL
;
END ;