$GENONLY %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TITLE: EDEVCF.MAC %' %' DATE: 4/14/82 %' %' ABSTRACT: %' THIS INCLUDE FILE CONTAINS THE DEFINITIONS OF THREE MACROS USED %' TO CONFIGURE LOGICAL DEVICES INTO THE EIOS. THE MACROS ARE: %' DEFAULT_SYSTEM_DEVICE %' DEV_BLOCK_INFO %' END_DEV_CONFIG %' THE LOGICAL DEVICES SPECIFIED WILL BE CONFIGURED AT EIOS %' INITIALIZATION TIME. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' EXTENDED I/O SYSTEM DEVICE INFORMATION BLOCK DEFINITION. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DEVICE_INFO_BLOCK STRUC DB 0 ; LOGICAL NAME LENGTH DB ' ' ; LOGICAL NAME(12) DB 0 ; DEVICE NAME LENGTH DB ' ' ; DEVICE NAME(14) DB 0 ; FILE DRIVER DW 0 ; OWNER ID DEVICE_INFO_BLOCK ENDS %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' STRIP (IN_STR) RETURNS "IN_STR" STRIPPED OF LEADING BLANKS. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %*DEFINE(NIL(X))(%EQS(%0,%X))%' %' %*DEFINE(BLNK(S))(%EQS(%( ),%SUBSTR(%S,1,1)))%' %' %*DEFINE(CDR(C))(%SUBSTR(%C,2,%LEN(%C)))%' %' %*DEFINE(STRIP(STR)) LOCAL Y%' (%DEFINE(Y)(%STR)%' %WHILE(%BLNK(%Y))%' %' '(%DEFINE(Y)(%CDR(%Y)))%Y)%' %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TRIM (STR) TRIMS OFF TRAILING BLANKS %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %*DEFINE(TRIM(STR)) LOCAL A B (%MATCH(A%( )B)(%STR)%A)%' %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' NOCRS (S) REPLACES ALL CR/LFS AND TABS IN S WITH SPACES %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %DEFINE(CRLF)( )%' %DEFINE(TAB)( )%' %' %*DEFINE(REMOVE(CHR,STR))(%' %MATCH(SOME_MORE %CHR REST)(%STR)%' %DEFINE(RSLT)(%SOME_MORE)%' %WHILE(NOT %NIL(%REST))(%MATCH(SOME_MORE %CHR REST)(%REST)%' %' '%DEFINE(RSLT)(%RSLT %SOME_MORE))%' %RSLT)%' %' %*DEFINE(NOCRS(S))(%' %DEFINE(A)(%REMOVE(%CRLF,%S))%' %DEFINE(A)(%REMOVE(%TAB,%A))%' %A)%' %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' ARGUMENT GETS THE NEXT COMMA-DELIMITED ARGUMENT, STRIPPED, %' TRIMMED AND LESS ONE POSSIBLE LEADING AND TRAILING CRLFS %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %DEFINE(MORE_ARGS)(-1) %' TRUE %' %' %*DEFINE(ARGUMENT) %' DO NOT USE $GEN ON ANY MACRO THAT CALLS ARGUMENT !! %' (%MATCH(A,TAIL)(%TAIL)%' %TRIM(%STRIP(%A))%' %IF(%NIL(%TAIL))THEN(%DEFINE(MORE_ARGS)(0))FI)%' %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' STRING GETS AN ARGUMENT THAT MUST BE A STRING OF CHARACTERS %' AND DETERMINES ITS LENGTH %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %*DEFINE(STRING) LOCAL NAME%' %' (%DEFINE(NAME) (%ARGUMENT)%' %EVAL(%LEN(%NAME)-2), %NAME)%' %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TITLE: DEFAULT_SYSTEM_DEVICE %' %' INPUTS: LOGICAL NAME - A MAX OF 12 ASCII CHARACTERS %' PHYSICAL NAME - A MAX OF 14 ASCII CHARACTERS %' FILE DRIVER TYPE - PHYSICAL,STREAM,NUMBERED,NAMED %' OWNER_ID - THE CONNECTION OWNERS ID %' %' THIS MACRO BUILDS A DEVICE_INFO_BLOCK STRUCTURE TO DEFINE %' THE LOGICAL DEVICE TO BE CONFIGURED INTO THE EIOS AT %' CONFIGURATION TIME AS THE SYSTEM DEVICE IF THE iRMX 86 SYSTEM %' WAS NOT LOADED WITH THE BOOTSTRAP LOADER. IF IT WAS BOOTLOADED %' THIS MACRO SUPPLIES THE LOGICAL NAME, FILE DRIVER TYPE AND THE %' OWNER ID WHILE THE STRING DEFINED BY THE EIOS PUBLIC RQBOOTED %' IDENTIFIES THE PHYSICAL DEVICE NAME. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %*DEFINE(DEFAULT_SYSTEM_DEVICE(ARG_LIST))(%DEFINE(TAIL)(%NOCRS(%ARG_LIST))%' %' %DEFINE(USE_ABDR)(TRUE)%' %' %SET(N_DIBS,%N_DIBS + 1)%' DEVICE_INFO_BLOCK < & %STRING, ; LOGICAL NAME STRING & %STRING, ; DEVICE NAME STRING & %ARGUMENT, ; FILE DRIVER & %ARGUMENT ; OWNER ID & > )%' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TITLE: DEV_INFO_BLOCK %' %' INPUTS: LOGICAL NAME - A MAX OF 12 ASCII CHARACTERS %' PHYSICAL NAME - A MAX OF 14 ASCII CHARACTERS %' FILE DRIVER TYPE - PHYSICAL,STREAM,NUMBERED,NAMED %' OWNER_ID - THE CONNECTION OWNERS ID %' %' THIS MACRO BUILDS DEVICE_INFO_BLOCK STRUCTURES TO DEFINE %' THE LOGICAL DEVICES TO BE CONFIGURED INTO THE EIOS AT %' CONFIGURATION TIME. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %*DEFINE(DEV_INFO_BLOCK(ARG_LIST))(%DEFINE(TAIL)(%NOCRS(%ARG_LIST))%' %' %SET(N_DIBS,%N_DIBS + 1)%' DEVICE_INFO_BLOCK < & %STRING, ; LOGICAL NAME STRING & %STRING, ; DEVICE NAME STRING & %ARGUMENT, ; FILE DRIVER & %ARGUMENT ; OWNER ID & > ) %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' TITLE: END_DEV_CONFIG MACRO %' %' INPUT: EIOS_BUFFER_SIZE - THE SIZE OF EIOS BUFFERS. %' %' THIS MACRO GENERATES PUBLICS NEEDED BY THE EIOS. IT MUST BE %' THE LAST MACRO CALLED FROM THE DEVICE CONFIGURATION MODULE. %' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %*DEFINE(END_DEV_CONFIG(EIOS_BUFFER_SIZE)) (%' NUMDEVICEINFOBLOCK DW %N_DIBS PUBLIC NUMDEVICEINFOBLOCK EIOSBUFFERSIZE DW %EIOS_BUFFER_SIZE PUBLIC EIOSBUFFERSIZE AUTOBOOTRECOGNITION DB %USE_ABDR PUBLIC AUTOBOOTRECOGNITION %' %' CLOSE THE CODE SEGMENT OPENED BY IN-LINE CODE %' CODE ENDS )%' %';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %' %' DEFINE LABEL FOR DEVICE INFORMATION BLOCK TABLE. THIS %' CODE WILL BE ASSEMBLED BY INCLUDING THIS MACRO FILE. %' TRUE EQU 0FFH FALSE EQU 000H %' PHYSICAL EQU 001H STREAM EQU 002H NUMBERED EQU 003H NAMED EQU 004H %' %DEFINE(N_DIBS) (0)%' %DEFINE(USE_ABDR)(FALSE)%' %' %' OPEN THE CODE SEGMENT NOW. IT WILL BE CLOSED BY END_DEV_CONFIG %' CODE SEGMENT WORD PUBLIC 'CODE' DEVICEINFOBLOCKTABLE LABEL BYTE PUBLIC DEVICEINFOBLOCKTABLE %'