31.01.2013 Views

using the bootstrap loader

using the bootstrap loader

using the bootstrap loader

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

WRITING A CUSTOM FIRST-STAGE DRIVER<br />

5-22<br />

Example<br />

This example illustrates <strong>the</strong> fundamentals of message passing from <strong>the</strong> bootable device<br />

controller board to <strong>the</strong> host CPU board. This example is written in PL/M-86 code and is<br />

intended to be generic in nature.<br />

1************************************************************<br />

* This example illustrates how a host CPU board *<br />

* receives a data message from <strong>the</strong> bootable *<br />

* controller board located in slot 1 at port lF4H of *<br />

* <strong>the</strong> MULTIBUS II system. *<br />

* *<br />

* The control portion of <strong>the</strong> message received is *<br />

* located in <strong>the</strong> l6-byte array p$status$msg *<br />

* (Peripheral Status Message). The data portion of *<br />

* <strong>the</strong> message received is located in <strong>the</strong> l024-byte *<br />

* data array sent$data. *<br />

************************************************************1<br />

SAMPLE_BS$RECEIVE: DO;<br />

DECLARE socket<br />

DECLARE socket$o structure<br />

(host$id<br />

port$id<br />

DECLARE p$status$msg(l6)<br />

DECLARE data$adr<br />

DECLARE data$length<br />

DECLARE flags<br />

DECLARE exception<br />

DECLARE sent$data(1024)<br />

DECLARE slot LITERALLY<br />

DECLARE port LITERALLY<br />

DECLARE length LITERALLY<br />

DECLARE null LITERALLY<br />

CODE: DO;<br />

DWORD;<br />

socket$o.host$id = slot;<br />

socket$o.port$id = port;<br />

data$length = length;<br />

flags = null;<br />

WORD,<br />

WORD) AT (@socket);<br />

BYTE;<br />

DWORD;<br />

WORD;<br />

WORD;<br />

WORD;<br />

BYTE;<br />

'lH' ;<br />

, lF4H' ;<br />

, 400H' ;<br />

'OH' ;<br />

data$adr = CONVERT ADDRESS (@sent$data(O));<br />

Bootstrap Loader

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

Saved successfully!

Ooh no, something went wrong!