User Tag List

Показано с 1 по 10 из 336

Тема: Эмулятор Союз-Неон ПК-11/16 - EmuStudio

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,392
    Спасибо Благодарностей отдано 
    1,701
    Спасибо Благодарностей получено 
    2,218
    Поблагодарили
    872 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Titus, а как вы заполняете HR0/HR1 при обращении к регистрам эмуляции 174000..177677 ?
    Код прерывания в BIOS для чтения сначала смотрит в HR0 и потом в HR1, для записи сначала в HR1 потом HR0.
    Но отлаживая эмулятор, я понял что всегда надо писать адрес в HR0.
    Не совсем понял вопрос, но вот то, что относится к этим регистрам:

    Скрытый текст


    Код:
    static UINT16 HR0 = 0,						// Регистры MMU HALT-режима
    			  HR1 = 0,
    			  HR2 = 0,
    			  HR3 = 0,
    			  HR4 = 0,
    			  HR5 = 0,
    			  HR6 = 0,
    			  HR7 = 0;
    			  
    			  
    			  
    			  
    
    	CPU_RgRdWProc[0x0280] = CPU_RdW_HR0;		// Регистр HR0 (чтение)
    	CPU_RgWrWProc[0x0280] = CPU_WrW_HR0;		// Регистр HR0
    	CPU_RgRdWProc[0x0282] = CPU_RdW_HR1;		// Регистр HR1 (чтение)
    	CPU_RgWrWProc[0x0282] = CPU_WrW_HR1;		// Регистр HR1
    	CPU_RgRdWProc[0x0284] = CPU_RdW_HR2;		// Регистр HR2 (чтение)
    	CPU_RgWrWProc[0x0284] = CPU_WrW_HR2;		// Регистр HR2
    	CPU_RgRdWProc[0x0286] = CPU_RdW_HR3;		// Регистр HR3 (чтение)
    	CPU_RgWrWProc[0x0286] = CPU_WrW_HR3;		// Регистр HR3
    	CPU_RgRdWProc[0x0288] = CPU_RdW_HR4;		// Регистр HR4 (чтение)
    	CPU_RgWrWProc[0x0288] = CPU_WrW_HR4;		// Регистр HR4
    	CPU_RgRdWProc[0x028A] = CPU_RdW_HR5;		// Регистр HR5 (чтение)
    	CPU_RgWrWProc[0x028A] = CPU_WrW_HR5;		// Регистр HR5
    	CPU_RgRdWProc[0x028C] = CPU_RdW_HR6;		// Регистр HR6 (чтение)
    	CPU_RgWrWProc[0x028C] = CPU_WrW_HR6;		// Регистр HR6
    	CPU_RgRdWProc[0x028E] = CPU_RdW_HR7;		// Регистр HR7 (чтение)
    	CPU_RgWrWProc[0x028E] = CPU_WrW_HR7;		// Регистр HR7
    	
    	
    	
    	
    	printf("HALT MMU: %03X, %03X, %03X, %03X, %03X, %03X, %03X, %03X\nUSER MMU: %03X, %03X, %03X, %03X, %03X, %03X, %03X, %03X\n",
    		   HR0 >> 4, HR1 >> 4, HR2 >> 4, HR3 >> 4, HR4 >> 4, HR5 >> 4, HR6 >> 4, HR7 >> 4,
    		   UR0 >> 4, UR1 >> 4, UR2 >> 4, UR3 >> 4, UR4 >> 4, UR5 >> 4, UR6 >> 4, UR7 >> 4); 
    		   
    		   	
    	
    
    static UINT16 FASTC	CPU_RdW_HR0(void)					// HR0
    {				
    	//printf("Read word from CPU register HR0 from location PC=0x%X\n",
    	//	   (UINT16)CPU->l.PC);
    
    	PPI_B |= 0x0002;									// EF1 = 1
    
    	PPI_B |= 0x0001;									// EF0 = 1
    
    	return(HR0);
    }
    
    static UINT16 FASTC	CPU_RdW_HR1(void)					// HR1
    {				
    	//printf("Read word from CPU register HR1 from location PC=0x%X\n",
    	//	   (UINT16)CPU->l.PC);
    
    	return(HR1);
    }
    
    static UINT16 FASTC	CPU_RdW_HR2(void)					// HR2
    {				
    	//printf("Read word from CPU register HR2 from location PC=0x%X\n",
    	//	   (UINT16)CPU->l.PC);
    
    	return(HR2);
    }
    
    static UINT16 FASTC	CPU_RdW_HR3(void)					// HR3
    {				
    
    	//printf("Read word from CPU register HR3 from location PC=0x%X\n",
    	//	   (UINT16)CPU->l.PC);
    
    	return(HR3);
    }
    
    static UINT16 FASTC	CPU_RdW_HR4(void)					// HR4
    {				
    	//printf("Read word from CPU register HR4 from location PC=0x%X\n",
    	//	   (UINT16)CPU->l.PC);
    
    	return(HR4);
    }
    
    static UINT16 FASTC	CPU_RdW_HR5(void)					// HR5
    {				
    	//printf("Read word from CPU register HR5 from location PC=0x%X\n",
    	//	   (UINT16)CPU->l.PC);
    
    	return(HR5);
    }
    
    static UINT16 FASTC	CPU_RdW_HR6(void)					// HR6
    {				
    	//printf("Read word from CPU register HR6 from location PC=0x%X\n",
    	//	   (UINT16)CPU->l.PC);
    
    	return(HR6);
    }
    
    static UINT16 FASTC	CPU_RdW_HR7(void)					// HR7
    {				
    	//printf("Read word from CPU register HR7 from location PC=0x%X\n",
    	//	   (UINT16)CPU->l.PC);
    
    	return(HR7);
    }
    
    
    
    
    
    
    
    static void FASTC	CPU_WrW_HR0(UINT16 Data)		// [T] HR0
    {		
    	//printf("Write word 0x%04X to CPU register HR0 from location PC = 0x%X\n",
    	//	   Data, (UINT16)CPU->l.PC);
    
    	HR0 = Data;
    
    	return;
    }
    
    static void FASTC	CPU_WrW_HR1(UINT16 Data)		// [T] HR1
    {		
    	//printf("Write word 0x%04X to CPU register HR1 from location PC = 0x%X\n",
    	//	   Data, (UINT16)CPU->l.PC);
    
    	HR1 = Data;
    
    	return;
    }
    
    static void FASTC	CPU_WrW_HR2(UINT16 Data)		// [T] HR2
    {		
    	//printf("Write word 0x%04X to CPU register HR2 from location PC = 0x%X\n",
    	//	   Data, (UINT16)CPU->l.PC);
    
    	HR2 = Data;
    	SetMMU_Halt(2, Data);
    
    	return;
    }
    
    static void FASTC	CPU_WrW_HR3(UINT16 Data)		// [T] HR3
    {		
    	//printf("Write word 0x%04X to CPU register HR3 from location PC = 0x%X\n",
    	//	   Data, (UINT16)CPU->l.PC);
    
    	HR3 = Data;
    	SetMMU_Halt(3, Data);
    
    	return;
    }
    
    static void FASTC	CPU_WrW_HR4(UINT16 Data)		// [T] HR4
    {		
    	//printf("Write word 0x%04X to CPU register HR4 from location PC = 0x%X\n",
    	//	   Data, (UINT16)CPU->l.PC);
    
    	HR4 = Data;
    	SetMMU_Halt(4, Data);
    
    	return;
    }
    
    static void FASTC	CPU_WrW_HR5(UINT16 Data)		// [T] HR5
    {		
    	//printf("Write word 0x%04X to CPU register HR5 from location PC = 0x%X\n",
    	//	   Data, (UINT16)CPU->l.PC);
    
    	HR5 = Data;
    	SetMMU_Halt(5, Data);
    
    	return;
    }
    
    static void FASTC	CPU_WrW_HR6(UINT16 Data)		// [T] HR6
    {		
    	//printf("Write word 0x%04X to CPU register HR6 from location PC = 0x%X\n",
    	//	   Data, (UINT16)CPU->l.PC);
    
    	HR6 = Data;
    	SetMMU_Halt(6, Data);
    
    	return;
    }
    
    static void FASTC	CPU_WrW_HR7(UINT16 Data)		// [T] HR7
    {		
    	//printf("Write word 0x%04X to unrealized CPU register HR7 from location PC = 0x%X\n",
    	//	   Data, (UINT16)CPU->l.PC);
    
    	HR7 = Data;
    
    	return;
    }
    [свернуть]

    Этот пользователь поблагодарил Titus за это полезное сообщение:

    nzeemin(03.01.2023)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Эмулятор УКНЦ - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 1198
    Последнее: 07.05.2025, 13:34
  2. EmuStudio-ZX
    от Titus в разделе Эмуляторы
    Ответов: 726
    Последнее: 16.03.2025, 19:38
  3. Эмулятор ТИА-МЦ-1 EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 107
    Последнее: 20.09.2024, 21:03
  4. Эмулятор МС-0515 - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 143
    Последнее: 09.02.2023, 10:44
  5. ПК-11 'Союз-Неон'
    от Keeper в разделе ДВК, УКНЦ
    Ответов: 12
    Последнее: 16.10.2013, 05:07

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •