17.05.2015 Views

~ National ~ Semiconductor - Al Kossow's Bitsavers

~ National ~ Semiconductor - Al Kossow's Bitsavers

~ National ~ Semiconductor - Al Kossow's Bitsavers

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

.set iCu imsk,lO *aO<br />

• set icu -csrc,12<br />

-<br />

*aO<br />

.set lCU fprt ,14<br />

- *aO<br />

• set icu mctl,16<br />

-<br />

*aO<br />

• set icu _clptr,18 *aO<br />

• set lCU pdat,19<br />

-<br />

*aO<br />

.set icu<br />

- lps,20<br />

.set *aO<br />

lCU<br />

- pdir,21 *aO<br />

.set lCU cctl,22<br />

-<br />

*aO<br />

• eet icu _clctl,23 *aO<br />

.set lcu_addr,OxfffeOO<br />

.set lrl mod, 17*4<br />

.set irl-off, 17*4+2<br />

.set start2, OxO<br />

.set atartl, OxOa<br />

.set txflag, Ox14<br />

.set sbuf, Oxle<br />

.set rbuf, Ox41e<br />

.set cbuf, Ox61e<br />

.set lntable, Ox81e<br />

#********************** SET UP DISPATCH<br />

start::<br />

bicpsrw $(OxlOO)<br />

movd $OxOc,rO<br />

movd $Ox055555555,rl<br />

addr lntable(sb),r2<br />

movd $OxOc,r3<br />

svc<br />

sprd lntbase,r2<br />

movd isrent,irl_mod(r2)<br />

#<br />

#<br />

#<br />

#<br />

#<br />

#<br />

#<br />

#<br />

#<br />

#<br />

#<br />

#Flrst lCU register address<br />

#<br />

#<br />

#<br />

STARTING LOCATIONS ~*********************<br />

#<br />

#<br />

#<br />

#The followIng are statIc base variables<br />

#used as base pointers. Startl/2 ; flags<br />

#txflaf ; flag, sbuf ; area used to<br />

#store data to be transmitted, rbut<br />

#area used to store received data,<br />

#cbuf ; area used to etore compare<br />

#buffer, intable ; base pointer to the<br />

hnterrupt table<br />

#<br />

TABLE FOR THE 32032 ***.****************<br />

#<br />

#Clear intr's<br />

#Set for monitor svc to move intbase<br />

#from ROM to ram because you have<br />

ito change the address for the<br />

#interrupt service routine.<br />

#Actual svc for move<br />

#Put base addr of intbase In r2<br />

#Put offset ot isr into 1st location<br />

#of dIspatch table<br />

#<br />

#********************* LOAD TRANSMITTER BUFFER (00 to FF) **********************<br />

#<br />

senddat: addr sbuf(sb),rO #RO contains string buffer ptr.<br />

movd $O,rl #Rl contains offset<br />

movb $0, r2 Unlt data reg.<br />

Sbuf100p: movb r2,0(rO) [rl:b] #Load char. to string buffer<br />

addqw l,rl<br />

#Increment offset ptr.<br />

addqw l,r2<br />

#lncrement data<br />

cmpw rl,$256 #Check for 256 chars. loaded<br />

bne sbufloop #Jump back If not done<br />

#<br />

#*********************** LOAD COMPARISON BUFFER (FF TO 00)*********************·<br />

compdat:<br />

Cbufloop:<br />

addr cbuf(sb),rO<br />

movd $O,rl<br />

movb $OxOff,r2<br />

movb r2,0(rO)[rl:b]<br />

addqw l,r1<br />

subb $1,r2<br />

cmpw rl,$256<br />

#<br />

#RO contains pointer<br />

#RI contains offset<br />

Unit data reg.<br />

#Load Char. to compare buffer<br />

#Increment ptr. offset<br />

#Decrement data<br />

#Check for 256 chars. loaded<br />

TL/C/9313-14<br />

»<br />

z<br />

I<br />

~<br />

CD<br />

--'<br />

4-73

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!