.TITLE LATSET .IDENT /050389/ ; Version: ; File:[22,320]LATSET.MAC ; Author: Peter Stadick ; History: ; ; Last Edit: 3-MAY-1989 14:41:20 ; .REM | Procedure LATSET(LUN:Integer; SERVER:CH16; PORT:CH16; EFN:Event_Flag; );EXTERNAL; {*USER* Pascal-3 Procedure to assign a device to a LAT port as a application port. Because this routine uses an Set Multiple Characteristics SF.SMC to a port other then TI: it is required to build the task including this routine PR:0. This procedure will perform the following operation. -Set the LAT port characteristics to the specified server and port. LUN is the logical unit number to be assigned to the appropriate device. SERVER is the name of the server. PORT is the name of the port. EFN is the event flag to be set when the I/O is completed. f0 may not be specified. Directive status is available in $DSW on return. } | ; ; Assemble with PASMAC.MAC as prefix file. ; ; Thanks to Frank S. for the idea and the Pascal-1 version, which I ; brazenly plagiarized. Same here - P. Stadick. ; .MCALL DIR$ ; DECLARE PSECT FOR EXEC DIRECTIVES .PSECT LATDIR,RW,D,LCL,REL QIO: .BYTE 3,12. .WORD 0 .WORD 0 .BYTE 0,0 .WORD IOSB .WORD 0 .WORD 0 .WORD 0 .WORD 0 .WORD 0 .WORD 0 .WORD 0 CHRBUF: .BYTE TC.MAP ; CHARACTERISTIC NAME .BYTE 48. ; CHARACTERISTIC BUFFER LENGTH .BLKB 16. ; SERVER NAME .BLKB 16. ; SERVICE NAME .BLKB 16. ; PORT NAME CHRLEN=.-CHRBUF IOSB: .WORD 0,0 ; I/O STATUS BLOCK ; ; NOW DECLARE PSECT FOR PURE CODE .PSECT LATCON,RO,I,LCL,REL PROC LATSET PARAM LUN, INTEGER PARAM SERVER, 20*CHAR PARAM PORT, 20*CHAR PARAM EFN, SCALAR SAVE BEGIN MOV SP,R0 ;PRESERVE SP ; SET MULTIPLE CHARACTERISTICS MOV #60,R1 ;ZERO OUT SMC BUFFER CHRBUF MOV #CHRBUF+2,R3 4$: MOVB #0,(R3) INC R3 SOB R1, 4$ MOV #20,R1 ;MOVE SERVER NAME TO BUFFER MOV #CHRBUF+2,R3 MOV R0,R4 5$: CMPB SERVER(4),#40 ;IF WE ENCOUNTER A SPACE THEN STOP BEQ 6$ MOVB SERVER(4),(R3) INC R3 INC R4 SOB R1, 5$ 6$: MOV #20,R1 ;MOVE PORT NAME TO BUFFER MOV #CHRBUF+42,R3 MOV R0,R4 7$: CMPB PORT(4),#40 ;IF WE ENCOUNTER A SPACE STOP BEQ 8$ MOVB PORT(4),(R3) INC R3 INC R4 SOB R1, 7$ 8$: MOV #SF.SMC,QIO+2 ;SMC BIT CODE MOV LUN(0),QIO+4 MOVB EFN(0),QIO+6 MOV #CHRBUF,QIO+14 MOV #CHRLEN,QIO+16 DIR$ #QIO XT: ENDPR .END