REFRESH CONTROL UNIT

$mod186

nameexample_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

 

Example 7-1. Initializing the Refresh Control Unit

7-11

Page 190
Image 190
Intel 80C188XL, 80C186XL user manual Example 7-1. Initializing the Refresh Control Unit