1
0
mirror of synced 2026-01-12 00:02:46 +00:00

Uploaded_7_14_2025

This commit is contained in:
Ted Fried 2025-07-14 10:00:38 -07:00
parent d28f475730
commit 2cdaee56bf
3 changed files with 206 additions and 45 deletions

View File

@ -21,6 +21,9 @@
// Revision 2 7/9/2025
// Fixed a number of bugs found when running core against the MartyPC 8086 test suite.
//
// Revision 3 7/9/2025
// Added BootROM to allow booting from the MicroSD
//
//
//------------------------------------------------------------------------
//
@ -48,6 +51,9 @@
#include <stdint.h>
#include <stdio.h>
#include "bootrom.h"
// Teensy 4.1 pin assignments
@ -182,7 +188,7 @@
#define PSRAM_RESET_VALUE 0x01000000
#define PSRAM_CLK_HIGH 0x02000000
#define SD_LPT_BASE 0x378
#define SD_LPT_BASE 0x280
// --------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------
@ -260,6 +266,11 @@ DMAMEM uint8_t internal_RAM1[0x60000];
uint8_t local_array_data = 0;
uint8_t acceleration_mode = 0;
uint8_t sd_scratch_register[6] = {0, 0, 0, 0, 0, 0};
uint16_t sd_requested_timeout = 0;
elapsedMillis sd_timeout;
#define SD_CONFIG_BYTE 0
// Pre-calculated 8-bit parity array
//
@ -386,7 +397,7 @@ void setup() {
digitalWriteFast(PIN_SD_CLK,0);
digitalWriteFast(PIN_SD_CS_n,1);
//Serial.begin(9600);
Serial.begin(9600);
}
@ -644,46 +655,72 @@ inline uint8_t BIU_Bus_Cycle(uint8_t biu_operation, uint32_t local_address , uin
uint32_t local_address_low=0;
uint32_t new_sbits=0;
uint32_t local_read_data;
uint8_t biu_operation_type;
uint32_t local_address16;
biu_operation_type = biu_operation&0xF; // Strips off byte/word nibble
local_address16 = local_address&0xFFFF;
if (acceleration_mode==3) {
if (( (biu_operation&0xF)==0x4) && (local_address<0xA0000) ) {wait_for_CLK_falling_edge(); return (Internal_RAM_Read(local_address)); } // Internal Code RAM Reads
else if (( (biu_operation&0xF)==0x5) && (local_address<0xA0000) ) { wait_for_CLK_falling_edge(); return (Internal_RAM_Read(local_address)); } // Internal Memory RAM Reads
else if (( (biu_operation&0xF)==0x6) && (local_address<0xA0000) ) { Internal_RAM_Write(local_address,local_data); wait_for_CLK_falling_edge(); return 0xEE; } // Internal RAM Writes
if (( biu_operation_type==0x4) && (local_address<0xA0000) ) { wait_for_CLK_falling_edge(); return (Internal_RAM_Read(local_address)); } // Internal Code RAM Reads
else if (( biu_operation_type==0x5) && (local_address<0xA0000) ) { wait_for_CLK_falling_edge(); return (Internal_RAM_Read(local_address)); } // Internal Memory RAM Reads
else if (( biu_operation_type==0x6) && (local_address<0xA0000) ) { Internal_RAM_Write(local_address,local_data); wait_for_CLK_falling_edge(); return 0xEE; } // Internal RAM Writes
// Internal BIOS ROM Selector
// ----------------------------
//
//if ( ((biu_operation&0xF)>=0x4) && (local_address >= 0xF0000) ) return (Test_Image[local_address-0xF0000]); // 64KB ROMs
//if ( ((biu_operation&0xF)>=0x4) && (local_address >= 0xF8000) ) return (Test_Image[local_address-0xF8000]); // 32KB ROMs
//if ( ((biu_operation&0xF)>=0x4) && (local_address >= 0xFC000) ) return (Test_Image[local_address-0xFC000]); // 16KB ROMs
if ( ((biu_operation&0xF)>=0x4) && (local_address >= 0xFE000) ) return (Test_Image[local_address-0xFE000]); // 8K ROMs
//if ( (biu_operation_type>=0x4) && (local_address >= 0xF0000) ) return (Test_Image[local_address-0xF0000]); // 64KB ROMs
//if ( (biu_operation_type>=0x4) && (local_address >= 0xF8000) ) return (Test_Image[local_address-0xF8000]); // 32KB ROMs
//if ( (biu_operation_type>=0x4) && (local_address >= 0xFC000) ) return (Test_Image[local_address-0xFC000]); // 16KB ROMs
if ( (biu_operation_type>=0x4) && (local_address >= 0xFE000) ) return (Test_Image[local_address-0xFE000]); // 8K ROMs
}
// Support for on-chip I/O and memory emulations
//
if ( (biu_operation==IO_READ_BYTE) && ((local_address&0xFFFF)==SD_LPT_BASE) ) { sd_spi_dataout = 0xff; SD_SPI_Cycle(); return sd_spi_datain; }
if ( (biu_operation==IO_WRITE_BYTE) && ((local_address&0xFFFF)==SD_LPT_BASE) ) { sd_spi_dataout = (local_data&0xFF); SD_SPI_Cycle(); return 0xEE; }
if ( (biu_operation==IO_WRITE_BYTE) && ((local_address&0xFFFF)==SD_LPT_BASE+1) ) { digitalWriteFast(PIN_SD_CS_n,(local_data&0x1)); return 0xEE; }
if ( (biu_operation==IO_WRITE_BYTE) && ((local_address&0xFFFF)==0x260) ) { reg_0x260 = local_data; return 0xEE; }
if ( (biu_operation==IO_WRITE_BYTE) && ((local_address&0xFFFF)==0x261) ) { reg_0x261 = local_data; return 0xEE; }
if ( (biu_operation==IO_WRITE_BYTE) && ((local_address&0xFFFF)==0x262) ) { reg_0x262 = local_data; return 0xEE; }
if ( (biu_operation==IO_WRITE_BYTE) && ((local_address&0xFFFF)==0x263) ) { reg_0x263 = local_data; return 0xEE; }
if ( (biu_operation==IO_READ_BYTE) && ((local_address&0xFFFF)==0x260) ) { return reg_0x260; }
if ( (biu_operation==IO_READ_BYTE) && ((local_address&0xFFFF)==0x261) ) { return reg_0x261; }
if ( (biu_operation==IO_READ_BYTE) && ((local_address&0xFFFF)==0x262) ) { return reg_0x262; }
if ( (biu_operation==IO_READ_BYTE) && ((local_address&0xFFFF)==0x263) ) { return reg_0x263; }
// Support for EMS and MicroSD
//
// IO Reads
if (biu_operation_type==0x1) {
if (local_address16==SD_LPT_BASE+0) { sd_spi_dataout = 0xff; SD_SPI_Cycle(); return sd_spi_datain; }
if (local_address16==SD_LPT_BASE+1) { return SD_CONFIG_BYTE; }
if (local_address16==SD_LPT_BASE+2) { return sd_scratch_register[0]; }
if (local_address16==SD_LPT_BASE+3) { return sd_scratch_register[1]; }
if (local_address16==SD_LPT_BASE+4) { return sd_scratch_register[2]; }
if (local_address16==SD_LPT_BASE+5) { return sd_scratch_register[3]; }
if (local_address16==SD_LPT_BASE+6) { return sd_scratch_register[4]; }
if (local_address16==SD_LPT_BASE+7) { return sd_timeout >= sd_requested_timeout; }
if (local_address16==0x260) { return reg_0x260; }
if (local_address16==0x261) { return reg_0x261; }
if (local_address16==0x262) { return reg_0x262; }
if (local_address16==0x263) { return reg_0x263; }
}
// IO Writes
if (biu_operation_type==0x2) {
if (local_address16==SD_LPT_BASE+0) { sd_spi_dataout = (local_data&0xFF); SD_SPI_Cycle(); return 0xEE; }
if (local_address16==SD_LPT_BASE+1) { digitalWriteFast(PIN_SD_CS_n,(local_data&0x1)); return 0xEE; }
if (local_address16==SD_LPT_BASE+2) { sd_scratch_register[0] = local_data; return 0xEE; }
if (local_address16==SD_LPT_BASE+3) { sd_scratch_register[1] = local_data; return 0xEE; }
if (local_address16==SD_LPT_BASE+4) { sd_scratch_register[2] = local_data; return 0xEE; }
if (local_address16==SD_LPT_BASE+5) { sd_scratch_register[3] = local_data; return 0xEE; }
if (local_address16==SD_LPT_BASE+6) { sd_scratch_register[4] = local_data; return 0xEE; }
if (local_address16==SD_LPT_BASE+7) { sd_timeout = 0; sd_requested_timeout = local_data * 10; return 0xEE; }
if (local_address16==0x260) { reg_0x260 = local_data; return 0xEE; }
if (local_address16==0x261) { reg_0x261 = local_data; return 0xEE; }
if (local_address16==0x262) { reg_0x262 = local_data; return 0xEE; }
if (local_address16==0x263) { reg_0x263 = local_data; return 0xEE; }
// Set the acceleration mode
if ( (local_address16==0x267) && ( (local_data&0xF0)==0x90) ) { acceleration_mode = (0x0F&local_data); return 0xEE; }
// Set the acceleration mode
if ( (biu_operation==IO_WRITE_BYTE) && ((local_address&0xFFFF)==0x267) && ((local_data&0xF0)==0x90) ) {
acceleration_mode = (0x0F&local_data);
return 0xEE;
}
@ -777,6 +814,10 @@ inline uint8_t BIU_Bus_Cycle(uint8_t biu_operation, uint32_t local_address , uin
interrupts(); // Re-enable Teensy's interrupts so the UART and downloading works
if (read_cycle==0) {
if ( (local_address >= (BOOTROM_ADDR+0x800) ) && (local_address < (BOOTROM_ADDR+0x1000) )) {
sd_spi_dataout = (local_data&0xFF); SD_SPI_Cycle();
}
return 0xEE;
}
else
@ -790,7 +831,9 @@ inline uint8_t BIU_Bus_Cycle(uint8_t biu_operation, uint32_t local_address , uin
//if ( ((biu_operation&0xF)>=0x4) && (local_address >= 0xF0000) ) return (Test_Image[local_address-0xF0000]); else return local_read_data; // 64KB ROMs
//if ( ((biu_operation&0xF)>=0x4) && (local_address >= 0xF8000) ) return (Test_Image[local_address-0xF8000]); else return local_read_data; // 32KB ROMs
//if ( ((biu_operation&0xF)>=0x4) && (local_address >= 0xFC000) ) return (Test_Image[local_address-0xFC000]); else return local_read_data; // 16KB ROMs
if ( ((biu_operation&0xF)>=0x4) && (local_address >= 0xFE000) ) return (Test_Image[local_address-0xFE000]); else return local_read_data; // 8K ROMs
if ( ((biu_operation&0xF)>=0x4) && (local_address >= 0xFE000) ) return (Test_Image[local_address-0xFE000]); // 8K ROMs
if ( ((biu_operation&0xF)>=0x4) && (local_address >= BOOTROM_ADDR) && (local_address < (BOOTROM_ADDR+0x800)) ) return (BOOTROM[local_address-BOOTROM_ADDR]);
if ( ((biu_operation&0xF)>=0x4) && (local_address >= (BOOTROM_ADDR+0x800)) && (local_address < ((BOOTROM_ADDR+0x1000))) ) { sd_spi_dataout = 0xff; SD_SPI_Cycle(); return sd_spi_datain; }
return local_read_data;
@ -2413,7 +2456,6 @@ void opcode_0xAA() {
do {
if ( (prefix_repz==1) || (prefix_repnz==1) || (prefix_repc==1) || (prefix_repnc==1) ) {
printf("prefix_repnz: %x register_cx: %x \n,",prefix_repnz,register_cx);
if (register_cx==0) return; // Exit from loop if repeat prefix and CX=0
if (interrupt_pending==1) { register_ip = register_ip - (prefix_count+1); return; } // Exit from loop to service interrupt - adjusting IP to address of prefix
register_cx--;
@ -2638,15 +2680,11 @@ void opcode_0xF6() {
break;
case 0x6: if (ea_is_a_register==1) clock_counter=clock_counter+85; else clock_counter=clock_counter+91; // # 0xF6 REG[6] - DIV REG8/MEM8
local_divr=Fetch_EA();
printf("\nDIVISOR %x \n",local_divr);
if (local_divr==0) DIV0_Handler();
else {
local_quo = register_ax / local_divr;
local_rem = register_ax % local_divr;
if (local_quo> 0xFF) { DIV0_Handler(); }
printf("register_ax %x \n",register_ax);
printf("local_quo %x \n",local_quo);
printf("local_rem %x \n",local_rem);
register_ax = local_rem << 8;
Write_Register(REG_AL , local_quo);
@ -2654,16 +2692,13 @@ void opcode_0xF6() {
break;
case 0x7: if (ea_is_a_register==1) clock_counter=clock_counter+107; else clock_counter=clock_counter+114; // # 0xF6 REG[7] - IDIV REG8/MEM8
signed_local_divr=(int8_t)Fetch_EA();
printf("signed_local_divr %x \n",signed_local_divr);
if (signed_local_divr==0) DIV0_Handler();
else {
signed_local_quo = (int16_t)register_ax / signed_local_divr;
signed_local_rem = (int16_t)register_ax % signed_local_divr;
if ( (signed_local_divr>0) && (signed_local_divr>0x7F) ) {DIV0_Handler(); }
if ( (signed_local_divr<0) && (signed_local_divr<(0x7F-1) )) {DIV0_Handler(); }
printf("register_ax %x \n",register_ax);
printf("local_quo %x \n",signed_local_quo);
printf("local_rem %x \n",signed_local_rem);
register_ax = signed_local_rem << 8;
Write_Register(REG_AL , signed_local_quo);
}
@ -2689,7 +2724,7 @@ void opcode_0xF7() {
uint64_t local_overflow_test;
Calculate_EA(); printf("REG_field: %x ",REG_field);
Calculate_EA();
switch (REG_field) {
case 0x0: clock_counter=clock_counter+11; Boolean_AND(Fetch_EA(),pfq_fetch_word()); break; // # 0xF7 REG[0] - TEST REG16/MEM16 , IMM16
@ -3238,7 +3273,6 @@ void opcode_0x6C() {
if (prefix_repz==0) clock_counter=clock_counter+0; else clock_counter=clock_counter+9; // Add initial clock counts
do {
printf("prefix_repc: %x prefix_repnc: %x flag_z: %x flag_c: %x register_cx: %x \n",prefix_repc,prefix_repnc,flag_z,flag_c,register_cx);
if ( (prefix_repz==1) || (prefix_repnz==1) || (prefix_repc==1) || (prefix_repnc==1) ) {
if (register_cx==0) return; // Exit from loop if repeat prefix and CX=0
if (interrupt_pending==1) { register_ip = register_ip - (prefix_count+1); return; } // Exit from loop to service interrupt - adjusting IP to address of prefix
@ -3368,8 +3402,6 @@ void opcode_0xC0() {
Calculate_EA();
local_byte = pfq_fetch_byte();
printf("REG_FIELD %x", REG_field);
if (ea_is_a_register==1) clock_counter=clock_counter-2; else clock_counter=clock_counter+13;
switch (REG_field) {
@ -3394,8 +3426,6 @@ void opcode_0xC1() {
Calculate_EA();
local_byte = pfq_fetch_byte();
printf("REG_FIELD %x", REG_field);
if (ea_is_a_register==1) clock_counter=clock_counter-2; else clock_counter=clock_counter+21;
switch (REG_field) {
case 0x0: Writeback_EA(ROL16(Fetch_EA(),local_byte) ); break; // # 0xC1 REG[0] - ROL REG16/MEM16 , IMM8
@ -3550,7 +3580,6 @@ void opcode_0x0F() {
register_flags = (register_flags & 0xFFFE); // Zero out Flags: C
if (local_carry == 0x1) register_flags=(register_flags | 0x0001); // Set C Flag
if (local_sum != 0x0) register_flags = (register_flags & 0xFFBF); // Zero out Flags: Z
printf("local_sum %x \n",local_sum);
Biu_Operation(MEM_WRITE_BYTE , SEGMENT_OVERRIDABLE_FALSE , SEGMENT_ES , temp_di , local_sum );
temp_si++;
temp_di++;
@ -3960,6 +3989,8 @@ return;
while(1) {
if (direct_reset_raw!=0) reset_sequence();

View File

@ -0,0 +1,130 @@
#define BOOTROM_ADDR 0xce000
unsigned char BOOTROM[] = {
85, 170, 4, 6, 80, 81, 82, 250, 184, 209, 5, 232, 57, 5, 184, 19,
6, 232, 51, 5, 140, 200, 232, 75, 5, 184, 202, 5, 232, 40, 5, 184,
0, 0, 232, 63, 5, 184, 206, 5, 232, 28, 5, 232, 29, 4, 115, 3,
233, 151, 0, 49, 192, 142, 192, 38, 161, 78, 0, 186, 131, 2, 239, 38,
161, 76, 0, 186, 133, 2, 239, 140, 200, 38, 163, 78, 0, 184, 208, 0,
38, 163, 76, 0, 184, 112, 6, 232, 237, 4, 184, 64, 0, 142, 192, 38,
160, 117, 0, 4, 128, 186, 130, 2, 238, 80, 232, 247, 4, 184, 206, 5,
232, 212, 4, 184, 139, 6, 232, 206, 4, 38, 254, 6, 117, 0, 38, 160,
117, 0, 48, 228, 232, 221, 4, 184, 206, 5, 232, 186, 4, 88, 49, 201,
142, 193, 60, 128, 117, 15, 140, 200, 38, 163, 6, 1, 184, 181, 1, 38,
163, 4, 1, 235, 13, 140, 200, 38, 163, 26, 1, 184, 181, 1, 38, 163,
24, 1, 140, 200, 38, 163, 98, 0, 38, 163, 102, 0, 184, 176, 3, 38,
163, 96, 0, 184, 138, 3, 38, 163, 100, 0, 251, 90, 89, 88, 7, 203,
251, 85, 86, 80, 82, 186, 130, 2, 236, 90, 56, 194, 88, 116, 58, 137,
197, 137, 214, 156, 14, 184, 249, 0, 80, 186, 131, 2, 237, 80, 186, 133,
2, 237, 80, 137, 232, 137, 242, 250, 203, 251, 156, 80, 137, 240, 60, 128,
114, 19, 137, 232, 128, 252, 8, 117, 12, 6, 184, 64, 0, 142, 192, 38,
138, 22, 117, 0, 7, 88, 157, 235, 58, 128, 252, 25, 126, 5, 232, 122,
0, 235, 34, 128, 252, 1, 116, 10, 128, 252, 21, 116, 5, 190, 69, 1,
235, 3, 190, 83, 1, 86, 137, 222, 136, 227, 48, 255, 208, 227, 135, 222,
46, 255, 164, 103, 1, 140, 197, 190, 64, 0, 142, 198, 38, 136, 38, 116,
0, 142, 197, 137, 229, 139, 118, 8, 86, 115, 4, 157, 249, 235, 2, 157,
248, 94, 93, 251, 202, 2, 0, 111, 3, 197, 1, 217, 1, 108, 2, 48,
3, 155, 1, 155, 1, 155, 1, 75, 3, 111, 3, 155, 1, 155, 1, 97,
3, 111, 3, 155, 1, 155, 1, 111, 3, 111, 3, 155, 1, 155, 1, 111,
3, 113, 3, 155, 1, 155, 1, 155, 1, 111, 3, 80, 184, 166, 6, 232,
165, 3, 88, 80, 136, 224, 48, 228, 232, 185, 3, 184, 206, 5, 232, 150,
3, 88, 233, 201, 1, 0, 4, 255, 0, 0, 255, 255, 0, 200, 0, 0,
0, 0, 0, 63, 0, 6, 189, 64, 0, 142, 197, 48, 228, 38, 134, 38,
116, 0, 132, 228, 116, 1, 249, 7, 195, 132, 192, 117, 3, 233, 158, 1,
80, 48, 228, 137, 198, 83, 232, 17, 2, 137, 197, 1, 240, 137, 222, 131,
211, 0, 232, 56, 2, 91, 88, 115, 3, 233, 134, 1, 30, 83, 81, 82,
87, 80, 137, 193, 48, 237, 140, 200, 142, 216, 137, 223, 186, 129, 2, 176,
0, 238, 81, 137, 232, 137, 243, 177, 81, 232, 3, 3, 114, 60, 186, 135,
2, 176, 10, 238, 186, 128, 2, 236, 60, 254, 116, 10, 186, 135, 2, 236,
132, 192, 117, 38, 235, 238, 185, 0, 1, 86, 190, 0, 8, 252, 243, 165,
173, 94, 131, 197, 1, 131, 214, 0, 89, 226, 199, 186, 129, 2, 176, 1,
238, 88, 95, 90, 89, 91, 31, 233, 44, 1, 186, 129, 2, 176, 1, 238,
89, 88, 40, 200, 95, 90, 89, 91, 31, 233, 14, 1, 132, 192, 117, 3,
233, 11, 1, 80, 48, 228, 137, 198, 83, 232, 126, 1, 137, 197, 1, 240,
137, 222, 131, 211, 0, 232, 165, 1, 91, 88, 115, 3, 233, 243, 0, 30,
83, 81, 82, 87, 80, 137, 193, 48, 237, 137, 223, 140, 192, 142, 216, 140,
200, 142, 192, 186, 129, 2, 176, 0, 238, 81, 137, 232, 137, 243, 177, 88,
232, 108, 2, 114, 102, 186, 128, 2, 176, 254, 238, 185, 0, 1, 86, 137,
254, 191, 0, 8, 252, 243, 165, 137, 247, 94, 186, 135, 2, 176, 25, 238,
186, 128, 2, 236, 60, 255, 117, 10, 186, 135, 2, 236, 132, 192, 117, 59,
235, 238, 36, 31, 60, 5, 117, 51, 186, 135, 2, 176, 25, 238, 186, 128,
2, 236, 132, 192, 117, 10, 186, 135, 2, 236, 132, 192, 117, 29, 235, 238,
131, 197, 1, 131, 214, 0, 89, 226, 160, 186, 129, 2, 176, 1, 238, 140,
216, 142, 192, 88, 95, 90, 89, 91, 31, 235, 107, 186, 129, 2, 176, 1,
238, 89, 140, 216, 142, 192, 88, 40, 200, 95, 90, 89, 91, 31, 235, 74,
132, 192, 116, 74, 80, 48, 228, 137, 197, 83, 232, 189, 0, 1, 232, 131,
211, 0, 232, 232, 0, 91, 88, 114, 57, 235, 59, 182, 254, 6, 184, 64,
0, 142, 192, 38, 138, 22, 117, 0, 7, 181, 254, 177, 255, 49, 192, 248,
195, 80, 83, 232, 148, 0, 232, 196, 0, 91, 88, 114, 21, 235, 23, 235,
21, 180, 3, 232, 206, 0, 135, 209, 248, 195, 180, 170, 249, 195, 180, 1,
249, 195, 180, 4, 249, 195, 48, 228, 248, 195, 184, 195, 6, 232, 183, 1,
49, 210, 232, 75, 0, 128, 62, 0, 124, 6, 114, 20, 191, 0, 124, 185,
8, 0, 161, 0, 124, 131, 199, 2, 59, 5, 225, 249, 116, 2, 235, 36,
137, 229, 54, 139, 70, 2, 133, 192, 184, 35, 7, 116, 28, 184, 228, 6,
232, 132, 1, 186, 128, 0, 232, 23, 0, 129, 62, 254, 125, 85, 170, 184,
9, 7, 117, 5, 234, 0, 124, 0, 0, 232, 107, 1, 251, 244, 235, 253,
49, 192, 142, 216, 142, 192, 185, 0, 1, 191, 0, 124, 243, 171, 184, 1,
2, 185, 1, 0, 187, 0, 124, 205, 19, 195, 49, 192, 49, 219, 82, 81,
82, 136, 200, 36, 192, 209, 224, 209, 224, 136, 232, 185, 255, 0, 247, 225,
90, 136, 241, 48, 237, 1, 200, 177, 63, 247, 225, 89, 81, 48, 237, 128,
225, 63, 73, 1, 200, 131, 210, 0, 137, 211, 89, 90, 195, 81, 82, 232,
18, 0, 57, 211, 114, 10, 119, 4, 57, 200, 114, 4, 249, 90, 89, 195,
248, 90, 89, 195, 186, 250, 0, 185, 63, 197, 195, 80, 30, 83, 81, 82,
86, 140, 200, 142, 216, 186, 129, 2, 176, 1, 238, 185, 1, 0, 186, 160,
134, 180, 134, 205, 21, 186, 128, 2, 176, 255, 185, 10, 0, 238, 226, 253,
186, 129, 2, 176, 0, 238, 187, 10, 0, 190, 7, 5, 185, 1, 0, 180,
1, 232, 92, 0, 115, 15, 49, 201, 186, 32, 78, 180, 134, 205, 21, 75,
117, 231, 249, 235, 52, 190, 13, 5, 185, 5, 0, 180, 1, 232, 64, 0,
114, 39, 186, 135, 2, 176, 250, 238, 190, 19, 5, 185, 1, 0, 180, 1,
232, 45, 0, 190, 25, 5, 185, 1, 0, 180, 0, 232, 34, 0, 115, 9,
186, 135, 2, 236, 132, 192, 116, 224, 249, 94, 90, 89, 91, 31, 114, 8,
184, 46, 6, 232, 113, 0, 88, 195, 184, 81, 6, 232, 105, 0, 88, 195,
186, 128, 2, 176, 255, 238, 81, 185, 6, 0, 252, 172, 238, 226, 252, 185,
8, 0, 236, 60, 255, 225, 251, 89, 56, 224, 118, 3, 249, 235, 4, 248,
236, 226, 253, 176, 255, 238, 195, 64, 0, 0, 0, 0, 149, 72, 0, 0,
1, 170, 135, 119, 0, 0, 0, 0, 1, 105, 64, 0, 0, 0, 1, 186,
128, 2, 80, 176, 255, 238, 136, 200, 238, 136, 248, 238, 136, 216, 238, 88,
134, 224, 238, 134, 224, 238, 176, 1, 238, 185, 8, 0, 236, 60, 255, 225,
251, 132, 192, 116, 1, 249, 195, 156, 30, 83, 86, 137, 198, 140, 200, 142,
216, 180, 14, 49, 219, 252, 172, 8, 192, 116, 4, 205, 16, 235, 247, 94,
91, 31, 157, 195, 156, 30, 83, 81, 82, 86, 137, 194, 140, 200, 142, 216,
49, 219, 252, 137, 214, 177, 12, 211, 238, 131, 230, 15, 138, 132, 186, 5,
180, 14, 205, 16, 137, 214, 177, 8, 211, 238, 131, 230, 15, 138, 132, 186,
5, 180, 14, 205, 16, 137, 214, 177, 4, 211, 238, 131, 230, 15, 138, 132,
186, 5, 180, 14, 205, 16, 137, 214, 131, 230, 15, 138, 132, 186, 5, 180,
14, 205, 16, 94, 90, 89, 91, 31, 157, 195, 48, 49, 50, 51, 52, 53,
54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 58, 0, 32, 0, 13, 10,
0, 66, 111, 111, 116, 82, 79, 77, 32, 102, 111, 114, 32, 88, 84, 77,
97, 120, 32, 118, 49, 46, 48, 13, 10, 67, 111, 112, 121, 114, 105, 103,
104, 116, 32, 40, 99, 41, 32, 50, 48, 50, 53, 32, 77, 97, 116, 116,
104, 105, 101, 117, 32, 66, 117, 99, 99, 104, 105, 97, 110, 101, 114, 105,
13, 10, 0, 82, 79, 77, 32, 66, 97, 115, 101, 32, 65, 100, 100, 114,
101, 115, 115, 32, 32, 32, 32, 32, 32, 32, 32, 61, 32, 0, 83, 68,
32, 67, 97, 114, 100, 32, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101,
100, 32, 115, 117, 99, 99, 101, 115, 115, 102, 117, 108, 108, 121, 13, 10,
0, 83, 68, 32, 67, 97, 114, 100, 32, 102, 97, 105, 108, 101, 100, 32,
116, 111, 32, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 13, 10, 0,
70, 105, 120, 101, 100, 32, 68, 105, 115, 107, 32, 73, 68, 32, 32, 32,
32, 32, 32, 32, 32, 32, 32, 32, 61, 32, 0, 84, 111, 116, 97, 108,
32, 70, 105, 120, 101, 100, 32, 68, 105, 115, 107, 32, 68, 114, 105, 118,
101, 115, 32, 61, 32, 0, 85, 110, 115, 117, 112, 112, 111, 114, 116, 101,
100, 32, 73, 78, 84, 49, 51, 104, 32, 70, 117, 110, 99, 116, 105, 111,
110, 32, 0, 65, 116, 116, 101, 109, 112, 116, 105, 110, 103, 32, 98, 111,
111, 116, 32, 102, 114, 111, 109, 32, 102, 108, 111, 112, 112, 121, 46, 46,
46, 13, 10, 0, 65, 116, 116, 101, 109, 112, 116, 105, 110, 103, 32, 98,
111, 111, 116, 32, 102, 114, 111, 109, 32, 102, 105, 120, 101, 100, 32, 100,
105, 115, 107, 46, 46, 46, 13, 10, 0, 78, 111, 32, 98, 111, 111, 116,
97, 98, 108, 101, 32, 109, 101, 100, 105, 97, 32, 102, 111, 117, 110, 100,
13, 10, 0, 78, 111, 32, 97, 99, 116, 105, 118, 101, 32, 112, 97, 114,
116, 105, 116, 105, 111, 110, 32, 102, 111, 117, 110, 100, 13, 10, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175};

BIN
MCLV20_Max/DRIVERS/XTSD.SYS Normal file

Binary file not shown.