OpenCores
URL https://opencores.org/ocsvn/zet86/zet86/trunk

Subversion Repositories zet86

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 46 to Rev 47
    Reverse comparison

Rev 46 → Rev 47

/trunk/impl/virtex4-ml403ep/test/base.cpj
1,7 → 1,7
#ChipScope Pro Analyzer Project File, Version 3.0
#Sat Feb 28 19:48:19 GMT+01:00 2009
#Wed Mar 04 02:05:54 GMT+01:00 2009
device.2.configFileDir=/home/zeus/tmp
device.2.configFilename=kotku_ml403.bit
device.2.configFilename=kotku_ml403-debug.bit
deviceChain.deviceName0=System_ACE_CF
deviceChain.deviceName1=XCF32P
deviceChain.deviceName2=XC4VFX12
50,7 → 50,7
unit.2.0.MFBitsA13=XXX
unit.2.0.MFBitsA14=XXXXX
unit.2.0.MFBitsA15=01001011111111111001100110000000
unit.2.0.MFBitsA2=00110101110111001000
unit.2.0.MFBitsA2=00000000001111100000
unit.2.0.MFBitsA3=X1XX1X
unit.2.0.MFBitsA4=XXXXXX
unit.2.0.MFBitsA5=XXX000
/trunk/soc/bios/rombios.c
423,7 → 423,57
 
ASM_END
 
// for access to RAM area which is used by interrupt vectors
// and BIOS Data Area
 
typedef struct {
unsigned char filler1[0x400];
unsigned char filler2[0x6c];
Bit16u ticks_low;
Bit16u ticks_high;
Bit8u midnight_flag;
} bios_data_t;
 
#define BiosData ((bios_data_t *) 0)
 
typedef struct {
union {
struct {
Bit16u di, si, bp, sp;
Bit16u bx, dx, cx, ax;
} r16;
struct {
Bit16u filler[4];
Bit8u bl, bh, dl, dh, cl, ch, al, ah;
} r8;
} u;
} pusha_regs_t;
 
typedef struct {
union {
struct {
Bit16u flags;
} r16;
struct {
Bit8u flagsl;
Bit8u flagsh;
} r8;
} u;
} flags_t;
 
#define SetCF(x) x.u.r8.flagsl |= 0x01
#define SetZF(x) x.u.r8.flagsl |= 0x40
#define ClearCF(x) x.u.r8.flagsl &= 0xfe
#define ClearZF(x) x.u.r8.flagsl &= 0xbf
#define GetCF(x) (x.u.r8.flagsl & 0x01)
 
typedef struct {
Bit16u ip;
Bit16u cs;
flags_t flags;
} iret_addr_t;
 
typedef struct {
Bit16u type;
Bit16u flags;
Bit32u vector;
446,6 → 496,7
static void int13_diskette_function();
static void int16_function();
static void int19_function();
static void int1a_function();
static Bit16u get_CS();
static Bit16u get_SS();
static unsigned int enqueue_key();
963,7 → 1014,7
}
}
 
static char bios_svn_version_string[] = "$Revision: 1.12 $ $Date: 2009-03-03 16:52:58 $";
static char bios_svn_version_string[] = "$Revision: 1.13 $ $Date: 2009-03-05 00:26:53 $";
 
//--------------------------------------------------------------------------
// print_bios_banner
1776,6 → 1827,39
ASM_END
}
 
void
int1a_function(regs, ds, iret_addr)
pusha_regs_t regs; // regs pushed from PUSHA instruction
Bit16u ds; // previous DS:, DS set to 0x0000 by asm wrapper
iret_addr_t iret_addr; // CS,IP,Flags pushed from original INT call
{
Bit8u val8;
 
ASM_START
sti
ASM_END
 
switch (regs.u.r8.ah) {
case 0: // get current clock count
ASM_START
cli
ASM_END
regs.u.r16.cx = BiosData->ticks_high;
regs.u.r16.dx = BiosData->ticks_low;
regs.u.r8.al = BiosData->midnight_flag;
BiosData->midnight_flag = 0; // reset flag
ASM_START
sti
ASM_END
// AH already 0
ClearCF(iret_addr.flags); // OK
break;
 
default:
SetCF(iret_addr.flags); // Unsupported
}
}
 
ASM_START
;----------------------
;- INT13h (relocated) -
2143,7 → 2227,7
 
;; Keyboard
SET_INT_VECTOR(0x09, #0xF000, #int09_handler)
;SET_INT_VECTOR(0x16, #0xF000, #int16_handler)
SET_INT_VECTOR(0x16, #0xF000, #int16_handler)
 
xor ax, ax
mov ds, ax
2170,6 → 2254,9
mov bx, #0x003E
mov 0x0482, bx
 
;; CMOS RTC
SET_INT_VECTOR(0x1A, #0xF000, #int1a_handler)
 
;; Video setup
SET_INT_VECTOR(0x10, #0xF000, #int10_handler)
 
2423,6 → 2510,44
pop ds
iret
 
;----------
;- INT1Ah -
;----------
.org 0xfe6e ; INT 1Ah Time-of-day Service Entry Point
int1a_handler:
push ds
;pusha ; we do this instead:
push ax
push cx
push dx
push bx
push sp
mov bx, sp
sseg
add [bx], #10
sseg
mov bx, [bx+2]
push bp
push si
push di
 
xor ax, ax
mov ds, ax
int1a_callfunction:
call _int1a_function
; popa ; we do this instead:
pop di
pop si
pop bp
add sp, #2
pop bx
pop dx
pop cx
pop ax
 
pop ds
iret
 
;------------------------------------------------
;- IRET Instruction for Dummy Interrupt Handler -
;------------------------------------------------

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.