home *** CD-ROM | disk | FTP | other *** search
- ;/*
- ;** getsysco.asm
- ;** contains: getsysco(), getrdate()
- ;*/
-
- SYSSERVICE equ 015h ;System Service Software Interrupt
- GETCONFIGPARMS equ 0c0h ;Return System Configuration Parameters
-
-
- include model.h
- include prologue.h
-
- pseg getsysco
-
- ;/*
- ;** SYSTEMCONFIG far *
- ;** getsysco(void)
- ;**
- ;** ARGUMENT(s)
- ;** None.
- ;**
- ;** DESCRIPTION
- ;** Get pointer to system configuration structure.
- ;**
- ;** RETURNS
- ;** 32 bit pointer to system configuration structure, returns 0:0 if
- ;** this call is not supported.
- ;**
- ;** AUTHOR
- ;** "" Fri 11-Nov-1988 11:34:34
- ;** Copyright (C)1988-1990 Greenleaf Software Inc. All Rights Reserved.
- ;**
- ;** MODIFICATIONS
- ;**
- ;*/
- cproc getsysco
- push es
- mov ah,GETCONFIGPARMS
- int SYSSERVICE
- jnc funcsupported
- ifdef AXBX32
- xor ax,ax
- xor bx,bx
- else
- xor ax,ax
- xor dx,dx
- endif
- jmp short gsfuncexit
- funcsupported:
- ifdef AXBX32
- mov ax,es
- else
- mov dx,es
- mov ax,bx
- endif
- gsfuncexit: pop es
- cproce
-
-
-
- ;/*
- ;** void
- ;** getrdate(char *buffer)
- ;**
- ;** ARGUMENT(s)
- ;** buffer - pointer to a user buffer to receive the
- ;** string. This buffer MUST be at least
- ;** nine bytes long.
- ;**
- ;** DESCRIPTION
- ;** Gets the BIOS version date from the ROM-BIOS. This function moves
- ;** the ASCII date from F000:FFF5 through F000:FFFC to the users buffer.
- ;** A NULL byte is also put at the end of the string.
- ;**
- ;** The IBM Personal System/2 and Personal Computer BIOS Technical
- ;** reference documents (page 1-5) this memory location.
- ;**
- ;** RETURNS
- ;** void
- ;**
- ;** AUTHOR
- ;** "" Fri 11-Nov-1988 12:12:33
- ;** Copyright (C)1988-1990 Greenleaf Software Inc. All Rights Reserved.
- ;**
- ;** MODIFICATIONS
- ;**
- ;*/
- cproc getrdate
- if _LDATA
- push ds
- lds bx,parm1_
- else
- mov bx,parm1_
- endif
- push es
- mov ax,0f000h
- mov es,ax
- mov si,0fff5h
- cmp byte ptr es:[si+2],2fh ;do we have a slash
- jz correct
- inc si ;some Compaq's start at :FFF6
- correct: mov cx,8
- grdloop: mov al,es:[si]
- mov [bx],al
- inc bx
- inc si
- loop grdloop
- mov byte ptr [bx],0
- pop es
- if _LDATA
- pop ds
- endif
- cproce
-
-
- endps
- end
-