Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
GienekP:
Teraz siedzę nad zrobieniem DOS dla DCarta. Słabo mi to idzie bo nie znam dosów. Ale MEMLO=$0700 jest bardzo kuszące :)
when CART_TYPE_DCART =>
if (cart_s5_reg = '0') then
sram_address_in <= "0111111" & cart_addr_reg;
end if;
atr2max128 Klątwa.atr Klątwa.car $0700
#define CART_TYPE_JACART_8. 40 // 8k
#define CART_TYPE_JACART_16. 41 // 16k
#define CART_TYPE_JACART_32. 42 // 32k
#define CART_TYPE_JACART_64. 43 // 64k
#define CART_TYPE_JACART_128. 44 // 128k
#define CART_TYPE_JACART_256. 45 // 256k
#define CART_TYPE_JACART_512. 46 // 512k
#define CART_TYPE_JACART_1024. 47 // 1024k
#define CART_TYPE_DCART. 48 // 512k
else if (car_type == 104) cart_type = CART_TYPE_JACART_8;
else if (car_type == 105) cart_type = CART_TYPE_JACART_16;
else if (car_type == 106) cart_type = CART_TYPE_JACART_32;
else if (car_type == 107) cart_type = CART_TYPE_JACART_64;
else if (car_type == 108) cart_type = CART_TYPE_JACART_128;
else if (car_type == 109) cart_type = CART_TYPE_JACART_256;
else if (car_type == 110) cart_type = CART_TYPE_JACART_512;
else if (car_type == 111) cart_type = CART_TYPE_JACART_1024;
else if (car_type == 112) cart_type = CART_TYPE_DCART;
constant CART_TYPE_JACART_8 : integer := 40;
constant CART_TYPE_JACART_16 : integer := 41;
constant CART_TYPE_JACART_32 : integer := 42;
constant CART_TYPE_JACART_64 : integer := 43;
constant CART_TYPE_JACART_128 : integer := 44;
constant CART_TYPE_JACART_256 : integer := 45;
constant CART_TYPE_JACART_512 : integer := 46;
constant CART_TYPE_JACART_1024 : integer := 47;
constant CART_TYPE_DCART : integer := 48;
-- atarimax 8mbit bankswitching
when CART_TYPE_ATARIMAX_8MBIT | CART_TYPE_ATARIMAX_8MBIT_NEW | CART_TYPE_JACART_1024=>
high_bank_enabled <= not cart_addr_reg(7);
bank_out <= cart_addr_reg(6 downto 0);
-- jataricart
when CART_TYPE_JACART_8 => high_bank_enabled <= not cart_addr_reg(7); bank_out <= "0000000";
when CART_TYPE_JACART_16 => high_bank_enabled <= not cart_addr_reg(7); bank_out <= "000000" & cart_addr_reg(0);
when CART_TYPE_JACART_32 => high_bank_enabled <= not cart_addr_reg(7); bank_out <= "00000" & cart_addr_reg(1 downto 0);
when CART_TYPE_JACART_64 => high_bank_enabled <= not cart_addr_reg(7); bank_out <= "0000" & cart_addr_reg(2 downto 0);
when CART_TYPE_JACART_128 => high_bank_enabled <= not cart_addr_reg(7); bank_out <= "000" & cart_addr_reg(3 downto 0);
when CART_TYPE_JACART_256 => high_bank_enabled <= not cart_addr_reg(7); bank_out <= "00" & cart_addr_reg(4 downto 0);
when CART_TYPE_JACART_512 => high_bank_enabled <= not cart_addr_reg(7); bank_out <= "0" & cart_addr_reg(5 downto 0);
-- dcart
when CART_TYPE_DCART => high_bank_enabled <= not cart_addr_reg(7); bank_out <= "0" & cart_addr_reg(5 downto 0);
elsif (new_cart_type = CART_TYPE_ATARIMAX_8MBIT_NEW) then
bank_out <= "0000000";
lda:pha:pha
-- dcart
when CART_TYPE_DCART =>
if (cart_rw_reg = '0') then
high_bank_enabled <= not cart_addr_reg(7);
bank_out <= "0" & cart_addr_reg(5 downto 0);
end if;