Intel 80C186XL Computer Hardware User Manual


 
7-11
REFRESH CONTROL UNIT
Example 7-1. Initializing the Refresh Control Unit
$mod186
name example_80C186_RCU_code
; FUNCTION: This function initializes the DRAM Refresh
; Control Unit to refresh the DRAM starting at dram_addr
; at clock_time intervals.
; SYNTAX:
; extern void far config_rcu(int dram_addr, int clock_time);
; INPUTS: dram_addr - Base address of DRAM to refresh
; clock_time - DRAM refresh rate
; OUTPUTS: None
; NOTE: Parameters are passed on the stack as
; required by high-level languages.
RFBASE equ xxxxh ;substitute register offset
RFTIME equ xxxxh
RFCON equ xxxxh
Enable equ 8000h ;enable bit
lib_80186 segment public 'code'
assume cs:lib_80186
public _config_rcu
_config_rcu proc far
push bp ;save caller's bp
mov bp, sp ;get current top of stack
_clock_time equ word ptr[bp+6] ;get parameters off
_dram_addr equ word ptr[bp+8] ;the stack
push ax ;save registers that
push cx ;will be modified
push dx
push di