Trailing-Edge
-
PDP-10 Archives
-
BB-FB51A-RM
-
sna-ai/sources/saidnf.lst
There are no other files named saidnf.lst in the archive.
SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 1
21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (1)
; 0001 0 %title 'SNA GATEWAY ACCESS DECNET FUNCTIONS'
; 0002 0
; 0003 0 module SAIDNF (%if %switches (TOPS10) %then ots = 'SYS:B361LB.REL', %fi
; 0004 0 ident = 'Version 1.0') =
; 0005 1 begin
; 0006 1
; 0007 1 ! Copyright (c) 1985 by
; 0008 1 ! DIGITAL EQUIPMENT CORPORATION, Maynard, Massachusetts
; 0009 1 !
; 0010 1 ! This software is furnished under a license and may be used and copied
; 0011 1 ! only in accordance with the terms of such license and with the
; 0012 1 ! inclusion of the above copyright notice. This software or any other
; 0013 1 ! copies thereof may not be provided or otherwise made available to any
; 0014 1 ! other person. No title to and ownership of the software is hereby
; 0015 1 ! transferred.
; 0016 1 !
; 0017 1 ! The information in this software is subject to change without notice
; 0018 1 ! and should not be construed as a commitment by Digital Equipment
; 0019 1 ! Corporation.
; 0020 1 !
; 0021 1 ! Digital assumes no responsibility for the use or reliability of its
; 0022 1 ! software on equipment which is not supplied by Digital.
; 0023 1
; 0024 1
; 0025 1 !++
; 0026 1 ! FACILITY:
; 0027 1 !
; 0028 1 ! SNA Gateway Access Module
; 0029 1 !
; 0030 1 ! ABSTRACT:
; 0031 1 !
; 0032 1 !
; 0033 1 ! ENVIRONMENT:
; 0034 1 !
; 0035 1 ! TOPS-10/20 Operating Systems, user interface.
; 0036 1 !
; 0037 1 !
; 0038 1 !--
; 0039 1
; 0040 1 !
; 0041 1 ! INCLUDE FILES
; 0042 1 !
; 0043 1
; U 0044 1 %if %switches (TOPS10) %then
; U 0045 1
; U 0046 1 library 'UUOSYM'; ! Monitor symbols
; U 0047 1 library 'NSPUUO'; ! NSP. UUO macros
; U 0048 1 builtin uuo;
; U 0049 1
; 0050 1 %fi
; 0051 1
; 0052 1 %if %switches (TOPS20) %then
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 2
Version 1.0 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (1)
; 0053 1
; 0054 1 library 'MONSYM'; ! Monitor symbols
; 0055 1 require 'JSYS'; ! JSYS declarations
; 0396 1
; 0397 1 %fi
; 0398 1
; 0399 1 library 'SNACOM'; ! SNA Gateway Access Common symbols
; 0400 1
; 0401 1 !
; 0402 1 ! FORWARD ROUTINE
; 0403 1 !
; 0404 1
; 0405 1 forward routine ! Global routine definitions
; 0406 1 GAD$ABORT_LINK,
; 0407 1 GAD$ABORT_REASON,
; 0408 1 GAD$DISCONNECT_LINK,
; 0409 1 GAD$LINK_STATUS,
; 0410 1 GAD$NETWORK_DESCRIPTOR,
; 0411 1 GAD$OPEN_LINK,
; 0412 1 GAD$OPEN_SERVER,
; 0413 1 GAD$PROTOCOL_TYPE,
; 0414 1 GAD$PSI_CHANNELS,
; 0415 1 GAD$RECEIVE_DATA,
; 0416 1 GAD$RECEIVE_INTERRUPT,
; 0417 1 GAD$SEND_DATA,
; 0418 1 GAD$SEND_INTERRUPT,
; 0419 1 GAD$EC_SEND_DATA;
; 0420 1
; 0421 1
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 3
Version 1.0 GAD$ABORT_LINK (GADABT) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (2)
; 0422 1 %global_routine ('GAD$ABORT_LINK', CHANNEL) =
; 0423 1
; 0424 1 !++
; 0425 1 ! FUNCTIONAL DESCRIPTION:
; 0426 1 !
; 0427 1 ! Function disconnects the DECnet logical link between the Gateway
; 0428 1 ! Access Module and the Gateway Module. Abort any output operation
; 0429 1 ! currently being done.
; 0430 1 !
; 0431 1 ! FORMAL PARAMETERS:
; 0432 1 !
; 0433 1 ! CHANNEL DECnet logical link's channel.
; 0434 1 !
; 0435 1 ! IMPLICIT INPUTS:
; 0436 1 !
; 0437 1 ! none
; 0438 1 !
; 0439 1 ! IMPLICIT OUTPUTS:
; 0440 1 !
; 0441 1 ! none
; 0442 1 !
; 0443 1 ! ROUTINE VALUE:
; 0444 1 !
; 0445 1 ! $TRUE Link was aborted successfully.
; 0446 1 ! $FALSE Failed to abort link.
; 0447 1 !
; 0448 1 ! SIDE EFFECTS:
; 0449 1 !
; 0450 1 ! The DECnet logical link is disconnected abortively.
; 0451 1 !
; 0452 1 !--
; 0453 1
; 0454 2 begin
; 0455 2
; U 0456 2 %if %switches (TOPS10) %then
; U 0457 2
; U 0458 2 if uuo_nsfab (.CHANNEL)
; U 0459 2 then return $TRUE
; U 0460 2 else uuo_nsfrl (.CHANNEL);
; U 0461 2
; 0462 2 %fi
; 0463 2
; 0464 2 %if %switches (TOPS20) %then
; 0465 2
; 0466 2 return jsys_closf (.CHANNEL+cz_abt);
; 0467 2
; 0468 2 %fi
; 0469 2
; 0470 1 end; ! End of GAD$ABORT_LINK
TITLE SAIDNF
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 4
Version 1.0 GAD$ABORT_LINK (GADABT) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (2)
TWOSEG
.REQUEST SYS:B362LB.REL
JSYS_ACCES== 552 ; 000000 000552
JSYS_ADBRK== 570 ; 000000 000570
JSYS_AIC== 131 ; 000000 000131
JSYS_ALLOC== 520 ; 000000 000520
JSYS_ARCF== 247 ; 000000 000247
JSYS_ASND== 70 ; 000000 000070
JSYS_ASNSQ== 752 ; 000000 000752
JSYS_ATACH== 116 ; 000000 000116
JSYS_ATI== 137 ; 000000 000137
JSYS_ATNVT== 274 ; 000000 000274
JSYS_BIN== 50 ; 000000 000050
JSYS_BKJFN== 42 ; 000000 000042
JSYS_BOOT== 562 ; 000000 000562
JSYS_BOUT== 51 ; 000000 000051
JSYS_CACCT== 4 ; 000000 000004
JSYS_CFIBF== 100 ; 000000 000100
JSYS_CFOBF== 101 ; 000000 000101
JSYS_CFORK== 152 ; 000000 000152
JSYS_CHFDB== 64 ; 000000 000064
JSYS_CHKAC== 521 ; 000000 000521
JSYS_CIS== 141 ; 000000 000141
JSYS_CLOSF== 22 ; 000000 000022
JSYS_CLZFF== 34 ; 000000 000034
JSYS_COMND== 544 ; 000000 000544
JSYS_CRDIR== 240 ; 000000 000240
JSYS_CRJOB== 2 ; 000000 000002
JSYS_CRLNM== 502 ; 000000 000502
JSYS_CVHST== 276 ; 000000 000276
JSYS_CVSKT== 275 ; 000000 000275
JSYS_DEBRK== 136 ; 000000 000136
JSYS_DELDF== 67 ; 000000 000067
JSYS_DELF== 26 ; 000000 000026
JSYS_DELNF== 317 ; 000000 000317
JSYS_DEQ== 514 ; 000000 000514
JSYS_DEVST== 121 ; 000000 000121
JSYS_DFIN== 234 ; 000000 000234
JSYS_DFOUT== 235 ; 000000 000235
JSYS_DIAG== 530 ; 000000 000530
JSYS_DIBE== 212 ; 000000 000212
JSYS_DIC== 133 ; 000000 000133
JSYS_DIR== 130 ; 000000 000130
JSYS_DIRST== 41 ; 000000 000041
JSYS_DISMS== 167 ; 000000 000167
JSYS_DOBE== 104 ; 000000 000104
JSYS_DSKAS== 244 ; 000000 000244
JSYS_DSKOP== 242 ; 000000 000242
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 5
Version 1.0 GAD$ABORT_LINK (GADABT) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (2)
JSYS_DTACH== 115 ; 000000 000115
JSYS_DTI== 140 ; 000000 000140
JSYS_DUMPI== 65 ; 000000 000065
JSYS_DUMPO== 66 ; 000000 000066
JSYS_DVCHR== 117 ; 000000 000117
JSYS_EIR== 126 ; 000000 000126
JSYS_ENQ== 513 ; 000000 000513
JSYS_ENQC== 515 ; 000000 000515
JSYS_EPCAP== 151 ; 000000 000151
JSYS_ERSTR== 11 ; 000000 000011
JSYS_ESOUT== 313 ; 000000 000313
JSYS_FFFFP== 31 ; 000000 000031
JSYS_FFORK== 154 ; 000000 000154
JSYS_FFUFP== 211 ; 000000 000211
JSYS_FLHST== 277 ; 000000 000277
JSYS_FLIN== 232 ; 000000 000232
JSYS_FLOUT== 233 ; 000000 000233
JSYS_GACCT== 546 ; 000000 000546
JSYS_GACTF== 37 ; 000000 000037
JSYS_GCVEC== 300 ; 000000 000300
JSYS_GDSKC== 214 ; 000000 000214
JSYS_GDSTS== 145 ; 000000 000145
JSYS_GDVEC== 542 ; 000000 000542
JSYS_GET== 200 ; 000000 000200
JSYS_GETAB== 10 ; 000000 000010
JSYS_GETER== 12 ; 000000 000012
JSYS_GETJI== 507 ; 000000 000507
JSYS_GETNM== 177 ; 000000 000177
JSYS_GETOK_== 574 ; 000000 000574
JSYS_GEVEC== 205 ; 000000 000205
JSYS_GFRKH== 164 ; 000000 000164
JSYS_GFRKS== 166 ; 000000 000166
JSYS_GFUST== 550 ; 000000 000550
JSYS_GIVOK_== 576 ; 000000 000576
JSYS_GJINF== 13 ; 000000 000013
JSYS_GNJFN== 17 ; 000000 000017
JSYS_GPJFN== 206 ; 000000 000206
JSYS_GTAD== 227 ; 000000 000227
JSYS_GTDAL== 305 ; 000000 000305
JSYS_GTDIR== 241 ; 000000 000241
JSYS_GTFDB== 63 ; 000000 000063
JSYS_GTHST== 273 ; 000000 000273
JSYS_GTJFN== 20 ; 000000 000020
JSYS_GTRPI== 172 ; 000000 000172
JSYS_GTNCP== 272 ; 000000 000272
JSYS_GTRPW== 171 ; 000000 000171
JSYS_GTSTS== 24 ; 000000 000024
JSYS_GTTYP== 303 ; 000000 000303
JSYS_HALTF== 170 ; 000000 000170
JSYS_HFORK== 162 ; 000000 000162
JSYS_HPTIM== 501 ; 000000 000501
JSYS_HSYS== 307 ; 000000 000307
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 6
Version 1.0 GAD$ABORT_LINK (GADABT) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (2)
JSYS_IDCNV== 223 ; 000000 000223
JSYS_IDTIM== 221 ; 000000 000221
JSYS_IDTNC== 231 ; 000000 000231
JSYS_IIC== 132 ; 000000 000132
JSYS_INLNM== 503 ; 000000 000503
JSYS_JFNS== 30 ; 000000 000030
JSYS_KFORK== 153 ; 000000 000153
JSYS_LGOUT== 3 ; 000000 000003
JSYS_LNMST== 504 ; 000000 000504
JSYS_LOGIN== 1 ; 000000 000001
JSYS_LPINI== 547 ; 000000 000547
JSYS_MDDT_== 777 ; 000000 000777
JSYS_METER_== 766 ; 000000 000766
JSYS_MRECV== 511 ; 000000 000511
JSYS_MSEND== 510 ; 000000 000510
JSYS_MSFRK== 312 ; 000000 000312
JSYS_MSTR== 555 ; 000000 000555
JSYS_MTALN== 774 ; 000000 000774
JSYS_MTOPR== 77 ; 000000 000077
JSYS_MTU_== 600 ; 000000 000600
JSYS_MUTIL== 512 ; 000000 000512
JSYS_NIN== 225 ; 000000 000225
JSYS_NODE== 567 ; 000000 000567
JSYS_NOUT== 224 ; 000000 000224
JSYS_ODCNV== 222 ; 000000 000222
JSYS_ODTIM== 220 ; 000000 000220
JSYS_ODTNC== 230 ; 000000 000230
JSYS_OPENF== 21 ; 000000 000021
JSYS_PBIN== 73 ; 000000 000073
JSYS_PBOUT== 74 ; 000000 000074
JSYS_PEEK== 311 ; 000000 000311
JSYS_PLOCK== 561 ; 000000 000561
JSYS_PMAP== 56 ; 000000 000056
JSYS_PMCTL== 560 ; 000000 000560
JSYS_PPNST== 557 ; 000000 000557
JSYS_PRARG== 545 ; 000000 000545
JSYS_PSOUT== 76 ; 000000 000076
JSYS_RCDIR== 553 ; 000000 000553
JSYS_RCM== 134 ; 000000 000134
JSYS_RCUSR== 554 ; 000000 000554
JSYS_RCVIM== 751 ; 000000 000751
JSYS_RCVOK_== 575 ; 000000 000575
JSYS_RDTTY== 523 ; 000000 000523
JSYS_RELD== 71 ; 000000 000071
JSYS_RELSQ== 753 ; 000000 000753
JSYS_RESET== 147 ; 000000 000147
JSYS_RFACS== 161 ; 000000 000161
JSYS_RFBSZ== 45 ; 000000 000045
JSYS_RFCOC== 112 ; 000000 000112
JSYS_RFMOD== 107 ; 000000 000107
JSYS_RFORK== 155 ; 000000 000155
JSYS_RFPOS== 111 ; 000000 000111
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 7
Version 1.0 GAD$ABORT_LINK (GADABT) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (2)
JSYS_RFPTR== 43 ; 000000 000043
JSYS_RFRKH== 165 ; 000000 000165
JSYS_RFSTS== 156 ; 000000 000156
JSYS_RFTAD== 533 ; 000000 000533
JSYS_RIN== 54 ; 000000 000054
JSYS_RIR== 144 ; 000000 000144
JSYS_RIRCM== 143 ; 000000 000143
JSYS_RLJFN== 23 ; 000000 000023
JSYS_RMAP== 61 ; 000000 000061
JSYS_RNAMF== 35 ; 000000 000035
JSYS_ROUT== 55 ; 000000 000055
JSYS_RPACS== 57 ; 000000 000057
JSYS_RPCAP== 150 ; 000000 000150
JSYS_RSCAN== 500 ; 000000 000500
JSYS_RTFRK== 322 ; 000000 000322
JSYS_RTIW== 173 ; 000000 000173
JSYS_RUNTM== 15 ; 000000 000015
JSYS_RWM== 135 ; 000000 000135
JSYS_RWSET== 176 ; 000000 000176
JSYS_SACTF== 62 ; 000000 000062
JSYS_SAVE== 202 ; 000000 000202
JSYS_SCTTY== 324 ; 000000 000324
JSYS_SCVEC== 301 ; 000000 000301
JSYS_SDSTS== 146 ; 000000 000146
JSYS_SDVEC== 543 ; 000000 000543
JSYS_SETER== 336 ; 000000 000336
JSYS_SETJB== 541 ; 000000 000541
JSYS_SETNM== 210 ; 000000 000210
JSYS_SETSN== 506 ; 000000 000506
JSYS_SEVEC== 204 ; 000000 000204
JSYS_SFACS== 160 ; 000000 000160
JSYS_SFBSZ== 46 ; 000000 000046
JSYS_SFCOC== 113 ; 000000 000113
JSYS_SFMOD== 110 ; 000000 000110
JSYS_SFORK== 157 ; 000000 000157
JSYS_SFPOS== 526 ; 000000 000526
JSYS_SFPTR== 27 ; 000000 000027
JSYS_SFRKV== 201 ; 000000 000201
JSYS_SFTAD== 534 ; 000000 000534
JSYS_SFUST== 551 ; 000000 000551
JSYS_SIBE== 102 ; 000000 000102
JSYS_SIN== 52 ; 000000 000052
JSYS_SINR== 531 ; 000000 000531
JSYS_SIR== 125 ; 000000 000125
JSYS_SIRCM== 142 ; 000000 000142
JSYS_SIZEF== 36 ; 000000 000036
JSYS_SJPRI== 245 ; 000000 000245
JSYS_SKED_== 577 ; 000000 000577
JSYS_SKPIR== 127 ; 000000 000127
JSYS_SMAP_== 767 ; 000000 000767
JSYS_SMON== 6 ; 000000 000006
JSYS_SNDIM== 750 ; 000000 000750
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 8
Version 1.0 GAD$ABORT_LINK (GADABT) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (2)
JSYS_SNOOP== 516 ; 000000 000516
JSYS_SOBE== 103 ; 000000 000103
JSYS_SOBF== 175 ; 000000 000175
JSYS_SOUT== 53 ; 000000 000053
JSYS_SOUTR== 532 ; 000000 000532
JSYS_SPACS== 60 ; 000000 000060
JSYS_SPJFN== 207 ; 000000 000207
JSYS_SPLFK== 314 ; 000000 000314
JSYS_SPOOL== 517 ; 000000 000517
JSYS_SPRIW== 243 ; 000000 000243
JSYS_SSAVE== 203 ; 000000 000203
JSYS_STAD== 226 ; 000000 000226
JSYS_STCMP== 540 ; 000000 000540
JSYS_STDEV== 120 ; 000000 000120
JSYS_STI== 114 ; 000000 000114
JSYS_STIW== 174 ; 000000 000174
JSYS_STO== 246 ; 000000 000246
JSYS_STPAR== 217 ; 000000 000217
JSYS_STPPN== 556 ; 000000 000556
JSYS_STSTS== 25 ; 000000 000025
JSYS_STTYP== 302 ; 000000 000302
JSYS_SWJFN== 47 ; 000000 000047
JSYS_SWTRP_== 573 ; 000000 000573
JSYS_SYERR== 527 ; 000000 000527
JSYS_SYSGT== 16 ; 000000 000016
JSYS_TBADD== 536 ; 000000 000536
JSYS_TBDEL== 535 ; 000000 000535
JSYS_TBLUK== 537 ; 000000 000537
JSYS_TEXTI== 524 ; 000000 000524
JSYS_TFORK== 321 ; 000000 000321
JSYS_THIBR== 770 ; 000000 000770
JSYS_TIME== 14 ; 000000 000014
JSYS_TIMER== 522 ; 000000 000522
JSYS_TLINK== 216 ; 000000 000216
JSYS_TMON== 7 ; 000000 000007
JSYS_TTMSG== 775 ; 000000 000775
JSYS_TWAKE== 771 ; 000000 000771
JSYS_UFPGS== 525 ; 000000 000525
JSYS_USAGE== 564 ; 000000 000564
JSYS_USRIO== 310 ; 000000 000310
JSYS_UTEST== 563 ; 000000 000563
JSYS_UTFRK== 323 ; 000000 000323
JSYS_VACCT== 566 ; 000000 000566
JSYS_WAIT== 306 ; 000000 000306
JSYS_WFORK== 163 ; 000000 000163
JSYS_WILD_== 565 ; 000000 000565
JSYS_XRIR_== 601 ; 000000 000601
JSYS_XSIR_== 602 ; 000000 000602
AC0= 0
AC1= 1
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 9
Version 1.0 GAD$ABORT_LINK (GADABT) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (2)
AC2= 2
AC3= 3
AC4= 4
AC5= 5
AC6= 6
AC7= 7
AC10= 10
AC11= 11
AC12= 12
AC13= 13
AC14= 14
FP= 15
AC16= 16
SP= 17
RELOC 400000 ; 400000'
GADABT::MOVE AC1,-1(SP) ; AC1,CHANNEL 400000' 200 01 0 17 777777 0466
ADD AC1,C.1 ; AC1,[4000000000] 400001' 270 01 0 00 400007'
JSYS 22 ; 22 400002' 104 00 0 00 000022
TDZA AC2,AC2 ; AC2,AC2 400003' 634 02 0 00 000002
MOVEI AC2,1 ; AC2,1 400004' 201 02 0 00 000001
MOVE AC1,AC2 ; AC1,AC2 400005' 200 01 0 00 000002 0454
POPJ SP, ; SP, 400006' 263 17 0 00 000000 0422
C.1: EXP 4000000000 ; 4000000000 400007' 004000 000000
; Routine Size: 8 words
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 10
Version 1.0 GAD$ABORT_REASON (GADRSN) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (3)
; 0471 1 %global_routine ('GAD$ABORT_REASON', CHANNEL, REASON) =
; 0472 1
; 0473 1 !++
; 0474 1 ! FUNCTIONAL DESCRIPTION:
; 0475 1 !
; 0476 1 ! Function reads reason for aborted link
; 0477 1 !
; 0478 1 ! FORMAL PARAMETERS:
; 0479 1 !
; 0480 1 ! CHANNEL The DECnet logical link's channel.
; 0481 1 ! REASON Reason to be returned.
; 0482 1 !
; 0483 1 ! IMPLICIT INPUTS:
; 0484 1 !
; 0485 1 ! none
; 0486 1 !
; 0487 1 ! IMPLICIT OUTPUTS:
; 0488 1 !
; 0489 1 ! none
; 0490 1 !
; 0491 1 ! ROUTINE VALUE:
; 0492 1 !
; 0493 1 ! $TRUE Reason found, and returned in REASON.
; 0494 1 ! $FALSE Failed to find reason.
; 0495 1 !
; 0496 1 ! SIDE EFFECTS:
; 0497 1 !
; 0498 1 ! Due to a bug in TOPS-10 7.02 DECnet code, the .NSFRD function does
; 0499 1 ! not return single-byte user reject data correctly. Therefore, this
; 0500 1 ! procedure uses the .NSFRI function instead. The .NSFRI function is
; 0501 1 ! not intended for this purpose, but apparently it works equally well
; 0502 1 ! with a lot of pointers to be set up prior to the NSP. call.
; 0503 1 !
; 0504 1 ! The macros V702 and V703 are defined to correspond with the version
; 0505 1 ! of TOPS-10 that the software is compiled to run under. Their values
; 0506 1 ! should be defined appropriately for future release.
; 0507 1 !--
; 0508 1
; 0509 2 begin
; 0510 2
; 0511 2 macro
; 0512 2 V702 = 1 %, ! Update these macros for
; 0513 2 V703 = 0 %; ! appropriate releases
; 0514 2
; U 0515 2 %if %switches (TOPS10) %then
; U 0516 2
; U 0517 2 local
; U 0518 2 %if V702 %then BUFFER: CONNECT_BLOCK %fi
; U 0519 2 %if V703 %then BUFFER: STRING_BLOCK (5) %fi;
; U 0520 2
; U 0521 2 %if V702 %then
; U 0522 2
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 11
Version 1.0 GAD$ABORT_REASON (GADRSN) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (3)
; U 0523 2 bind
; U 0524 2 DSTMP = BUFFER[NSCSDB]: ref DESCRIPTOR_BLOCK,
; U 0525 2 STTMP = BUFFER[NSCUSB]: ref STRING_BLOCK (11),
; U 0526 2 UDBLK = BUFFER[NSCUDB]: ref STRING_BLOCK (5);
; U 0527 2
; U 0528 2 %fi
; U 0529 2
; 0530 2 %fi
; 0531 2
; 0532 2 %if %switches (TOPS20) %then
; 0533 2
; 0534 2 local
; 0535 2 BUFFER,
; 0536 2 POINTER,
; 0537 2 LENGTH;
; 0538 2
; 0539 2 %fi
; 0540 2
; 0541 2 local
; 0542 2 TEMP;
; 0543 2
; U 0544 2 %if %switches (TOPS10) %then
; U 0545 2
; U 0546 2 %if V702 %then
; U 0547 2
; U 0548 2 BUFFER[NSCNL] = 8; ! Connect block length
; U 0549 2 BUFFER[NSCXX] = 0; ! Unused
; U 0550 2 BUFFER[NSCSD] = ! Source/Destination descriptor blocks
; U 0551 2 BUFFER[NSCDD] = DSTMP;
; U 0552 2 BUFFER[NSCND] = ! Node name block
; U 0553 2 BUFFER[NSCUS] = ! User id block
; U 0554 2 BUFFER[NSCPW] = ! Password block
; U 0555 2 BUFFER[NSCAC] = STTMP; ! Account block
; U 0556 2 BUFFER[NSCUD] = BUFFER[NSCUDB]; ! User data block
; U 0557 2
; U 0558 2 UDBLK[NSAS0] = (16^18) + 5; ! User data block maximum length
; U 0559 2 DSTMP[NSDFL] = ! Temporary blocks with length 0
; U 0560 2 STTMP[NSAS0] = 0;
; U 0561 2
; U 0562 2 if (TEMP = (uuo_nsfri (.CHANNEL, 0, BUFFER) and (.UDBLK[NSASC] gtr 0)))
; U 0563 2 then .REASON = ch$rchar (ch$ptr (UDBLK[NSAST],,8));
; U 0564 2
; U 0565 2 %fi
; U 0566 2
; U 0567 2 %if V703 %then
; U 0568 2
; U 0569 2 BUFFER[NSAS0] = (16^18) + 5; ! String block maximum length
; U 0570 2 if (TEMP = (uuo_nsfrd (.CHANNEL, 0, BUFFER) and (.BUFFER[NSASC] gtr 0)))
; U 0571 2 then .REASON = ch$rchar (ch$ptr (BUFFER[NSAST],,8));
; U 0572 2
; U 0573 2 %fi
; U 0574 2
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 12
Version 1.0 GAD$ABORT_REASON (GADRSN) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (3)
; 0575 2 %fi
; 0576 2
; 0577 2 %if %switches (TOPS20) %then
; 0578 2
; 0579 2 POINTER = ch$ptr (BUFFER,,8); ! Read reason for aborting link
; 0580 2 jsys_mtopr (.CHANNEL, $morda, .POINTER; ,,, LENGTH);
; 0581 2
; 0582 3 if (TEMP = (.LENGTH gtr 0))
; 0583 2 then .REASON = ch$rchar (.POINTER); ! Return reason code
; 0584 2
; 0585 2 %fi
; 0586 2
; 0587 2 ! Close link and release logical link channel
; 0588 2
; 0589 2 GAD$ABORT_LINK (.CHANNEL);
; 0590 2
; 0591 2 return .TEMP;
; 0592 1 end; ! End of GAD$ABORT_REASON
GADRSN::PUSH SP,AC16 ; SP,AC16 400010' 261 17 0 00 000016 0471
ADJSP SP,1 ; SP,1 400011' 105 17 0 00 000001
MOVEI AC3,-1(SP) ; AC3,BUFFER-1 400012' 201 03 0 17 777777 0579
HRLI AC3,41000 ; AC3,41000 400013' 505 03 0 00 041000
MOVE AC5,AC3 ; POINTER,AC3 400014' 200 05 0 00 000003
MOVE AC1,-4(SP) ; AC1,CHANNEL 400015' 200 01 0 17 777774 0580
MOVEI AC2,33 ; AC2,33 400016' 201 02 0 00 000033
MOVE AC3,AC5 ; AC3,POINTER 400017' 200 03 0 00 000005
JSYS 77 ; 77 400020' 104 00 0 00 000077
JUMP 16,L.1 ; 16,L.1 400021' 320 16 0 00 400022'
L.1: SETZ AC1, ; AC1, 400022' 400 01 0 00 000000 0582
JUMPLE AC4,L.2 ; LENGTH,L.2 400023' 323 04 0 00 400025'
MOVEI AC1,1 ; AC1,1 400024' 201 01 0 00 000001
L.2: MOVE AC16,AC1 ; TEMP,AC1 400025' 200 16 0 00 000001
TRNN AC1,1 ; AC1,1 400026' 606 01 0 00 000001
JRST L.3 ; L.3 400027' 254 00 0 00 400034'
MOVE AC2,-3(SP) ; AC2,REASON 400030' 200 02 0 17 777775 0583
MOVE AC3,AC5 ; AC3,POINTER 400031' 200 03 0 00 000005
ILDB AC1,AC3 ; AC1,AC3 400032' 134 01 0 00 000003
MOVEM AC1,0(AC2) ; AC1,0(AC2) 400033' 202 01 0 02 000000
L.3: PUSH SP,-4(SP) ; SP,CHANNEL 400034' 261 17 0 17 777774 0589
PUSHJ SP,GADABT ; SP,GADABT 400035' 260 17 0 00 400000'
ADJSP SP,-1 ; SP,-1 400036' 105 17 0 00 777777 0591
MOVE AC1,AC16 ; AC1,TEMP 400037' 200 01 0 00 000016 0509
ADJSP SP,-1 ; SP,-1 400040' 105 17 0 00 777777 0471
POP SP,AC16 ; SP,AC16 400041' 262 17 0 00 000016
POPJ SP, ; SP, 400042' 263 17 0 00 000000
; Routine Size: 27 words
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 13
Version 1.0 GAD$DISCONNECT_LINK (GADDIS) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (4)
; 0593 1 %global_routine ('GAD$DISCONNECT_LINK', CHANNEL) =
; 0594 1
; 0595 1 !++
; 0596 1 ! FUNCTIONAL DESCRIPTION:
; 0597 1 !
; 0598 1 ! Function disconnects the DECnet logical link between the Gateway
; 0599 1 ! Access Module and the Gateway Module normally.
; 0600 1 !
; 0601 1 ! FORMAL PARAMETERS:
; 0602 1 !
; 0603 1 ! CHANNEL The DECnet logical link's channel.
; 0604 1 !
; 0605 1 ! IMPLICIT INPUTS:
; 0606 1 !
; 0607 1 ! none
; 0608 1 !
; 0609 1 ! IMPLICIT OUTPUTS:
; 0610 1 !
; 0611 1 ! none
; 0612 1 !
; 0613 1 ! ROUTINE VALUE:
; 0614 1 !
; 0615 1 ! $TRUE Link was disconnected successfully.
; 0616 1 ! $FALSE Failed to disconnect link.
; 0617 1 !
; 0618 1 ! SIDE EFFECTS:
; 0619 1 !
; 0620 1 ! The DECnet logical link is disconnected normally.
; 0621 1 !
; 0622 1 !--
; 0623 1
; 0624 2 begin
; 0625 2
; U 0626 2 %if %switches (TOPS10) %then
; U 0627 2
; U 0628 2 if uuo_nsfsd (.CHANNEL)
; U 0629 2 then return $TRUE
; U 0630 2 else if uuo_nsfrl (.CHANNEL)
; U 0631 2 then return $TRUE;
; U 0632 2 return $FALSE;
; U 0633 2
; 0634 2 %fi
; 0635 2
; 0636 2 %if %switches (TOPS20) %then
; 0637 2
; 0638 2 return jsys_closf (.CHANNEL);
; 0639 2
; 0640 2 %fi
; 0641 2
; 0642 1 end; ! End of GAD$DISCONNECT_LINK
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 14
Version 1.0 GAD$DISCONNECT_LINK (GADDIS) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (4)
GADDIS::MOVE AC1,-1(SP) ; AC1,CHANNEL 400043' 200 01 0 17 777777 0638
JSYS 22 ; 22 400044' 104 00 0 00 000022
TDZA AC2,AC2 ; AC2,AC2 400045' 634 02 0 00 000002
MOVEI AC2,1 ; AC2,1 400046' 201 02 0 00 000001
MOVE AC1,AC2 ; AC1,AC2 400047' 200 01 0 00 000002 0624
POPJ SP, ; SP, 400050' 263 17 0 00 000000 0593
; Routine Size: 6 words
; 0643 1
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 15
Version 1.0 GAD$LINK_STATUS (GADSTA) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (5)
; 0644 1 %global_routine ('GAD$LINK_STATUS', CHANNEL, STATUS) =
; 0645 1
; 0646 1 !++
; 0647 1 ! FUNCTIONAL DESCRIPTION:
; 0648 1 !
; 0649 1 ! Function gets the current status of the logical link.
; 0650 1 !
; 0651 1 ! FORMAL PARAMETERS:
; 0652 1 !
; 0653 1 ! CHANNEL The DECnet logical link's channel.
; 0654 1 ! STATUS Address of the status word which content is to be
; 0655 1 ! returned.
; 0656 1 !
; 0657 1 ! IMPLICIT INPUTS:
; 0658 1 !
; 0659 1 ! none
; 0660 1 !
; 0661 1 ! IMPLICIT OUTPUTS:
; 0662 1 !
; 0663 1 ! none
; 0664 1 !
; 0665 1 ! ROUTINE VALUE:
; 0666 1 !
; 0667 1 ! $TRUE Obtained the status of the link successfully.
; 0668 1 ! $FALSE The status of the link is abnormal, the calling party should
; 0669 1 ! check for error code in the right half of the status word.
; 0670 1 !
; 0671 1 ! SIDE EFFECTS:
; 0672 1 !
; 0673 1 ! none
; 0674 1 !
; 0675 1 !--
; 0676 1
; 0677 2 begin
; 0678 2
; U 0679 2 %if %switches (TOPS10) %then
; U 0680 2
; U 0681 2 return uuo_nsfrs (.CHANNEL, .STATUS);
; U 0682 2
; 0683 2 %fi
; 0684 2
; 0685 2 %if %switches (TOPS20) %then
; 0686 2
; 0687 2 jsys_mtopr (.CHANNEL, $morls; ,, .STATUS);
; 0688 2 return (.(.STATUS)<0,18> eql 0);
; 0689 2
; 0690 2 %fi
; 0691 2
; 0692 1 end; ! End of GAD$LINK_STATUS
GADSTA::MOVE AC1,-2(SP) ; AC1,CHANNEL 400051' 200 01 0 17 777776 0687
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 16
Version 1.0 GAD$LINK_STATUS (GADSTA) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (5)
MOVEI AC2,25 ; AC2,25 400052' 201 02 0 00 000025
JSYS 77 ; 77 400053' 104 00 0 00 000077
JUMP 16,L.4 ; 16,L.4 400054' 320 16 0 00 400055'
L.4: MOVE AC2,-1(SP) ; AC2,STATUS 400055' 200 02 0 17 777777
MOVEM AC3,0(AC2) ; AC3,0(AC2) 400056' 202 03 0 02 000000
SETZ AC1, ; AC1, 400057' 400 01 0 00 000000 0688
HRRZ AC3,0(AC2) ; AC3,0(AC2) 400060' 550 03 0 02 000000
JUMPN AC3,L.5 ; AC3,L.5 400061' 326 03 0 00 400063'
MOVEI AC1,1 ; AC1,1 400062' 201 01 0 00 000001
L.5: POPJ SP, ; SP, 400063' 263 17 0 00 000000 0644
; Routine Size: 11 words
; 0693 1
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 17
Version 1.0 GAD$NETWORK_DESCRIPTOR (GADNET) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (6)
; 0694 1 %global_routine ('GAD$NETWORK_DESCRIPTOR', CONNECT, NODE, OBJECT) =
; 0695 1
; 0696 1 !++
; 0697 1 ! FUNCTIONAL DESCRIPTION:
; 0698 1 !
; 0699 1 ! Function to build the network file descriptor, using information
; 0700 1 ! supplied by the user.
; 0701 1 !
; 0702 1 ! FORMAL PARAMETERS:
; 0703 1 !
; 0704 1 ! CONNECT TOPS-10: Address of the buffer where the
; 0705 1 ! Connect block is to be returned.
; 0706 1 ! TOPS-20: String pointer to the buffer where
; 0707 1 ! the network file descriptor is to be
; 0708 1 ! returned.
; 0709 1 !
; 0710 1 ! NODE User supplied Gateway node name.
; 0711 1 !
; 0712 1 ! OBJECT Object number to use in Network file descriptor.
; 0713 1 !
; 0714 1 !
; 0715 1 ! IMPLICIT INPUTS:
; 0716 1 !
; 0717 1 ! none
; 0718 1 !
; 0719 1 ! IMPLICIT OUTPUTS:
; 0720 1 !
; 0721 1 ! Network File Descriptor is built and returned in the given buffer.
; 0722 1 !
; 0723 1 ! ROUTINE VALUE:
; 0724 1 !
; 0725 1 ! $TRUE The network file descriptor was built successfully.
; 0726 1 ! -1 Failed. Unable to obtain gateway node name.
; 0727 1 !
; 0728 1 ! SIDE EFFECTS:
; 0729 1 !
; 0730 1 ! none
; 0731 1 !
; 0732 1 !--
; 0733 1
; U 0734 1 %if %switches (TOPS10) %then
; U 0735 1 begin
; U 0736 1
; U 0737 1
; U 0738 1 map ! Set up the connect block fields
; U 0739 1 CONNECT: ref CONNECT_BLOCK;
; U 0740 1
; U 0741 1 bind
; U 0742 1 NDBLK = CONNECT[NSCNDB]: STRING_BLOCK (3),
; U 0743 1 SDBLK = CONNECT[NSCSDB]: DESCRIPTOR_BLOCK,
; U 0744 1 SNBLK = SDBLK[NSDPB]: STRING_BLOCK (6),
; U 0745 1 DDBLK = CONNECT[NSCDDB]: DESCRIPTOR_BLOCK,
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 18
Version 1.0 GAD$NETWORK_DESCRIPTOR (GADNET) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (6)
; U 0746 1 PWBLK = CONNECT[NSCPWB]: STRING_BLOCK (11),
; U 0747 1 UDBLK = CONNECT[NSCUDB]: STRING_BLOCK (5);
; U 0748 1
; U 0749 1
; U 0750 1 local
; U 0751 1 RESULT,
; U 0752 1 LENGTH,
; U 0753 1 POINTER;
; U 0754 1
; U 0755 1 ! Set up the connect block buffer
; U 0756 1
; U 0757 1 CONNECT[NSCNL] = 8; ! Connect block length
; U 0758 1 CONNECT[NSCND] = CONNECT[NSCNDB]; ! Node name block
; U 0759 1 CONNECT[NSCSD] = CONNECT[NSCSDB]; ! Source descriptor block
; U 0760 1 CONNECT[NSCDD] = CONNECT[NSCDDB]; ! Destination descriptor block
; U 0761 1 CONNECT[NSCPW] = CONNECT[NSCPWB]; ! Password block
; U 0762 1 CONNECT[NSCUD] = CONNECT[NSCUDB]; ! User data block
; U 0763 1 CONNECT[NSCXX] = ! Unused and should be set to 0
; U 0764 1 CONNECT[NSCUS] = ! User id block
; U 0765 1 CONNECT[NSCAC] = 0; ! Account block
; U 0766 1
; U 0767 1 NDBLK[NSAS0] = (.LENGTH^18) + 3; ! Node name length
; U 0768 1 ch$move (.LENGTH, .NICE, ch$ptr (NDBLK[NSAST],,8));
; U 0769 1
; U 0770 1 ! X.25 Gateway target task number
; U 0771 1
; U 0772 1 SDBLK[NSDFL] = 5; ! Set up the source block
; U 0773 1 SDBLK[NSDFM] = 1; ! Format 1 (user program name only)
; U 0774 1 SDBLK[NSDOB] = 0; ! Object type 0
; U 0775 1 SDBLK[NSDPP] = 0; ! No PPN
; U 0776 1 SDBLK[NSDPN] = SDBLK[NSDPB]; ! Task name string
; U 0777 1 SNBLK[NSAS0] = (4^18) + 2; ! Task name string length
; U 0778 1 ch$move (4, CH$ASCIZ ('USER'), ch$ptr (SNBLK[NSAST],,8));
; U 0779 1
; U 0780 1 DDBLK[NSDFL] = 3; ! Set up the destination block
; U 0781 1 DDBLK[NSDFM] = 0; ! Format 0
; U 0782 1 DDBLK[NSDOB] = 31; ! Gateway Software Object number
; U 0783 1
; U 0784 1 ! Version number
; U 0785 1
; U 0786 1 UDBLK[NSAS0] = (3^18) + 2; ! User data length
; U 0787 1 POINTER = ch$ptr (UDBLK[NSAST],,8);
; U 0788 1 ch$wchar_a (XV$VER, POINTER); ! Version number
; U 0789 1 ch$wchar_a (XV$ECO, POINTER); ! ECO number
; U 0790 1 ch$wchar_a (XV$UEC, POINTER); ! User ECO number
; U 0791 1
; U 0792 1 ! Password
; U 0793 1
; U 0794 1 if (.PASSWORD neq 0)
; U 0795 1 and (LENGTH = CH$LEN (.PASSWORD)) gtr 0
; U 0796 1 then begin ! User supplies network access code
; U 0797 1
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 19
Version 1.0 GAD$NETWORK_DESCRIPTOR (GADNET) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (6)
; U 0798 1 PWBLK[NSAS0] = (.LENGTH^18) + 9; ! Password string length
; U 0799 1 ch$move (.LENGTH, .PASSWORD, ch$ptr (PWBLK[NSAST],,8));
; U 0800 1 end;
; U 0801 1
; U 0802 1 return $TRUE;
; U 0803 1 end; ! End of GAD$NETWORK_DESCRIPTOR
; U 0804 1
; 0805 1 %fi
; 0806 1
; 0807 1 %if %switches (TOPS20) %then
; 0808 1
; 0809 2 begin
; 0810 2
; 0811 2 local
; 0812 2 RESULT,
; 0813 2 LENGTH,
; 0814 2 SNA_GATEWAY,
; 0815 2 POINTER;
; 0816 2
; 0817 2 POINTER = .CONNECT;
; 0818 2 SNA_GATEWAY = ch$ptr (uplit ('SNAGAT'));
; 0819 2
; 0820 3 begin ! Build DECnet DCN: file specification
; 0821 3 CH$MOVSTRING (POINTER, 'DCN:');
; 0822 3
; 0823 3 if .NODE eql 0
; 0824 4 then begin
; 0825 4
; 0826 4 local
; 0827 4 LEN,
; 0828 4 PTR,
; 0829 4 TMP,
; 0830 4 BUF: block [2];
; 0831 4
; 0832 4 PTR = ch$ptr (BUF);
; 0833 4
; 0834 4 ! Translate SNAGAT=SNA Node Name
; 0835 5 if not (jsys_lnmst ($lnsjb, .SNA_GATEWAY, .PTR))
; 0836 5 then begin
; 0837 5 if not (jsys_lnmst ($lnssy, .SNA_GATEWAY, .PTR)) then return -1;
; 0838 4 end;
; 0839 4
; 0840 4 LEN = CH$LEN (.PTR);
; 0841 4 POINTER = ch$move (.LEN, .PTR, .POINTER);
; 0842 4 end
; 0843 4
; 0844 4 else begin
; 0845 4 LENGTH = CH$LEN (.NODE);
; 0846 4 POINTER = ch$move (.LENGTH, .NODE, .POINTER);
; 0847 3 end;
; 0848 2 end;
; 0849 2
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 20
Version 1.0 GAD$NETWORK_DESCRIPTOR (GADNET) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (6)
; 0850 2 ! SNA Gateway target task number
; 0851 2
; 0852 2 ch$move (3, .OBJECT, .POINTER);
; 0853 2
; 0854 2 return $TRUE;
; 0855 1 end; ! End of GAD$NETWORK_DESCRIPTOR
P.AAA: BYTE (7)"S","N","A","G","A" ; SNAGA 400064' 123 116 101 107 101
BYTE (7)"T",000,000,000,000 ; T 400065' 124 000 000 000 000
P.AAB: BYTE (7)"D","C","N",":",000 ; DCN: 400066' 104 103 116 072 000
GADNET::PUSH SP,AC12 ; SP,AC12 400067' 261 17 0 00 000012 0694
PUSH SP,AC13 ; SP,AC13 400070' 261 17 0 00 000013
PUSH SP,AC14 ; SP,AC14 400071' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 400072' 261 17 0 00 000016
ADJSP SP,2 ; SP,2 400073' 105 17 0 00 000002
MOVE AC14,-11(SP) ; POINTER,CONNECT 400074' 200 14 0 17 777767 0817
MOVE AC12,C.3 ; SNA_GATEWAY,[POINT 7,P.AAA-1,34] <1,7>
; 400075' 200 12 0 00 400175' 0818
MOVEI AC1,4 ; AC1,4 400076' 201 01 0 00 000004 0821
MOVE AC2,C.4 ; AC2,[POINT 7,P.AAB-1,34] <1,7> 400077' 200 02 0 00 400176'
MOVEI AC4,4 ; AC4,4 400100' 201 04 0 00 000004
MOVE AC5,AC14 ; AC5,POINTER 400101' 200 05 0 00 000014
EXTEND AC1,C.2 ; AC1,[MOVSLJ ] 400102' 123 01 0 00 400174'
JFCL ; 400103' 255 00 0 00 000000
MOVE AC14,AC5 ; POINTER,AC5 400104' 200 14 0 00 000005
MOVE AC16,-10(SP) ; AC16,NODE 400105' 200 16 0 17 777770 0823
JUMPN AC16,L.9 ; AC16,L.9 400106' 326 16 0 00 400141'
MOVEI AC3,-2(SP) ; AC3,BUF-1 400107' 201 03 0 17 777776 0832
HRLI AC3,10700 ; AC3,10700 400110' 505 03 0 00 010700
MOVE AC13,AC3 ; PTR,AC3 400111' 200 13 0 00 000003
SETZ AC1, ; AC1, 400112' 400 01 0 00 000000 0835
MOVE AC2,AC12 ; AC2,SNA_GATEWAY 400113' 200 02 0 00 000012
MOVE AC3,AC13 ; AC3,PTR 400114' 200 03 0 00 000013
JSYS 504 ; 504 400115' 104 00 0 00 000504
JRST L.6 ; L.6 400116' 254 00 0 00 400120'
JRST L.8 ; L.8 400117' 254 00 0 00 400130'
L.6: MOVEI AC1,1 ; AC1,1 400120' 201 01 0 00 000001 0837
MOVE AC2,AC12 ; AC2,SNA_GATEWAY 400121' 200 02 0 00 000012
MOVE AC3,AC13 ; AC3,PTR 400122' 200 03 0 00 000013
JSYS 504 ; 504 400123' 104 00 0 00 000504
JRST L.7 ; L.7 400124' 254 00 0 00 400126'
JRST L.8 ; L.8 400125' 254 00 0 00 400130'
L.7: SETO AC1, ; AC1, 400126' 474 01 0 00 000000
JRST L.11 ; L.11 400127' 254 00 0 00 400166'
L.8: PUSH SP,C.5 ; SP,[4000] 400130' 261 17 0 00 400177' 0840
PUSH SP,AC13 ; SP,PTR 400131' 261 17 0 00 000013
PUSH SP,C.6 ; SP,[0] 400132' 261 17 0 00 400200'
PUSHJ SP,CHFCH% ; SP,CHFCH% 400133' 260 17 0 00 000000*
PUSH SP,AC1 ; SP,AC1 400134' 261 17 0 00 000001
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 21
Version 1.0 GAD$NETWORK_DESCRIPTOR (GADNET) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (6)
PUSH SP,AC13 ; SP,PTR 400135' 261 17 0 00 000013
PUSHJ SP,CHDIF% ; SP,CHDIF% 400136' 260 17 0 00 000000*
MOVE AC2,AC13 ; AC2,PTR 400137' 200 02 0 00 000013 0841
JRST L.10 ; L.10 400140' 254 00 0 00 400151'
L.9: PUSH SP,C.5 ; SP,[4000] 400141' 261 17 0 00 400177' 0845
PUSH SP,AC16 ; SP,AC16 400142' 261 17 0 00 000016
PUSH SP,C.6 ; SP,[0] 400143' 261 17 0 00 400200'
PUSHJ SP,CHFCH% ; SP,CHFCH% 400144' 260 17 0 00 000000*
PUSH SP,AC1 ; SP,AC1 400145' 261 17 0 00 000001
PUSH SP,AC16 ; SP,AC16 400146' 261 17 0 00 000016
PUSHJ SP,CHDIF% ; SP,CHDIF% 400147' 260 17 0 00 000000*
MOVE AC2,AC16 ; AC2,AC16 400150' 200 02 0 00 000016 0846
L.10: MOVE AC4,AC1 ; AC4,LENGTH 400151' 200 04 0 00 000001
MOVE AC5,AC14 ; AC5,POINTER 400152' 200 05 0 00 000014
EXTEND AC1,C.2 ; AC1,[MOVSLJ ] 400153' 123 01 0 00 400174'
JFCL ; 400154' 255 00 0 00 000000
MOVE AC14,AC5 ; POINTER,AC5 400155' 200 14 0 00 000005
MOVEI AC1,3 ; AC1,3 400156' 201 01 0 00 000003 0852
MOVE AC2,-14(SP) ; AC2,OBJECT 400157' 200 02 0 17 777764
MOVEI AC4,3 ; AC4,3 400160' 201 04 0 00 000003
MOVE AC5,AC14 ; AC5,POINTER 400161' 200 05 0 00 000014
EXTEND AC1,C.2 ; AC1,[MOVSLJ ] 400162' 123 01 0 00 400174'
JFCL ; 400163' 255 00 0 00 000000
ADJSP SP,-5 ; SP,-5 400164' 105 17 0 00 777773 0854
MOVEI AC1,1 ; AC1,1 400165' 201 01 0 00 000001 0809
L.11: ADJSP SP,-2 ; SP,-2 400166' 105 17 0 00 777776 0694
POP SP,AC16 ; SP,AC16 400167' 262 17 0 00 000016
POP SP,AC14 ; SP,AC14 400170' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 400171' 262 17 0 00 000013
POP SP,AC12 ; SP,AC12 400172' 262 17 0 00 000012
POPJ SP, ; SP, 400173' 263 17 0 00 000000
C.2: MOVSLJ ; 400174' 016 00 0 00 000000
C.3: POINT 7,P.AAA-1,34 ; 7,P.AAA-1,34 400175' 01 07 0 00 400063'
C.4: POINT 7,P.AAB-1,34 ; 7,P.AAB-1,34 400176' 01 07 0 00 400065'
C.5: EXP 4000 ; 4000 400177' 000000 004000
C.6: EXP 0 ; 0 400200' 000000 000000
; Routine Size: 74 words
; 0856 1
; 0857 1 %fi
; 0858 1
; 0859 1
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 22
Version 1.0 GAD$OPEN_LINK (GADOPN) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (7)
; 0860 1 %global_routine ('GAD$OPEN_LINK', CONNECT, CHANNEL, SYSERR) =
; 0861 1
; 0862 1 !++
; 0863 1 ! FUNCTIONAL DESCRIPTION:
; 0864 1 !
; 0865 1 ! Function to establish a DECnet logical link between the Gateway
; 0866 1 ! Access Module and the Gateway node.
; 0867 1 !
; 0868 1 ! FORMAL PARAMETERS:
; 0869 1 !
; 0870 1 ! CONNECT The Network File Description to be used to open the
; 0871 1 ! network connection.
; 0872 1 ! CHANNEL The address where the channel of the DECnet logical
; 0873 1 ! link is to be returned, if the link is established
; 0874 1 ! successfully.
; 0875 1 !
; 0876 1 ! SYSERR This is the TOP20 system error code to be returned
; 0877 1 ! to the user. It is either a moniter code error
; 0878 1 ! or a Decnet disconnect code.
; 0879 1 !
; 0880 1 ! IMPLICIT INPUTS:
; 0881 1 !
; 0882 1 ! none
; 0883 1 !
; 0884 1 ! IMPLICIT OUTPUTS:
; 0885 1 !
; 0886 1 ! none
; 0887 1 !
; 0888 1 ! ROUTINE VALUE:
; 0889 1 !
; 0890 1 ! $TRUE The DECnet link was established successfully.
; 0891 1 ! The channel number is returned.
; 0892 1 ! $FALSE Failed to establish a network connection.
; 0893 1 ! Reason: Node not available
; 0894 1 !
; 0895 1 ! SIDE EFFECTS:
; 0896 1 !
; 0897 1 ! A DECnet Logical Link is established between the local host and the
; 0898 1 ! Gateway node.
; 0899 1 !
; 0900 1 !--
; 0901 1
; 0902 2 begin
; 0903 2
; 0904 2 local
; 0905 2 REASON,
; 0906 2 NEW_CHANNEL;
; 0907 2
; U 0908 2 %if %switches (TOPS10) %then
; U 0909 2
; U 0910 2 if not uuo_nsfea (NEW_CHANNEL, 0, .CONNECT)
; U 0911 2 then GAD$ABORT_LINK (.NEW_CHANNEL) ! Failed to enter active state, abort
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 23
Version 1.0 GAD$OPEN_LINK (GADOPN) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (7)
; U 0912 2 else begin
; U 0913 2 register AC;
; U 0914 2
; U 0915 2 decr I from 10 to 1
; U 0916 2 do begin ! Counting down while waiting
; U 0917 2 local STATUS;
; U 0918 2
; U 0919 2 GAD$LINK_STATUS (.NEW_CHANNEL, STATUS); ! Get link status
; U 0920 2
; U 0921 2 selectone .STATUS<$(ns$sta)> of
; U 0922 2 set
; U 0923 2 [$nssrn]: ! Running
; U 0924 2 begin
; U 0925 2 .CHANNEL = .NEW_CHANNEL;
; U 0926 2
; U 0927 2 return $TRUE ! Done
; U 0928 2 end;
; U 0929 2
; U 0930 2 [$nssrj]: ! Reject
; U 0931 2 begin
; U 0932 2 local REASON;
; U 0933 2
; U 0934 2 if GAD$ABORT_REASON (.NEW_CHANNEL, REASON)
; U 0935 2 then return (-.REASON)
; U 0936 2 else return $FALSE;
; U 0937 2 end;
; U 0938 2
; U 0939 2 [$nssdr, ! Disconnect Received
; U 0940 2 $nssnr, ! No Resources
; U 0941 2 $nsscf, ! No Confidence
; U 0942 2 $nsslk, ! No Link
; U 0943 2 $nsscm]: ! No Communication
; U 0944 2 return $FALSE;
; U 0945 2 tes;
; U 0946 2
; U 0947 2 AC = 2; ! Sleep for 2 seconds
; U 0948 2 uuo (0, sleep (AC));
; U 0949 2 end;
; U 0950 2 end;
; U 0951 2
; 0952 2 %fi
; 0953 2
; 0954 2 %if %switches (TOPS20) %then
; 0955 2
; 0956 2 if jsys_gtjfn (gj_sht, .CONNECT; NEW_CHANNEL)
; 0957 3 then begin ! Got logical link successfully
; 0958 3 if not jsys_openf (.NEW_CHANNEL, of_rd+of_wr+$$(8,of_bsz); REASON)
; 0959 4 then begin
; 0960 4 .SYSERR = .REASON;
; 0961 4 jsys_rljfn (.NEW_CHANNEL);
; 0962 4 jsys_closf (.NEW_CHANNEL+cz_abt);
; 0963 4 return -1;
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 24
Version 1.0 GAD$OPEN_LINK (GADOPN) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (7)
; 0964 4 end
; 0965 4 else begin ! Open for READ/WRITE 8-bit
; 0966 4 decr I from 10 to 1
; 0967 5 do begin ! Check link status
; 0968 5 local STATUS;
; 0969 5
; 0970 5 GAD$LINK_STATUS (.NEW_CHANNEL, STATUS);
; 0971 5
; 0972 5 if .STATUS<$(mo_con)> ! Return if the link is connected
; 0973 6 then begin
; 0974 6 .CHANNEL = .NEW_CHANNEL;
; 0975 6 return $TRUE;
; 0976 5 end;
; 0977 5
; 0978 5 if .STATUS<$(mo_syn)> ! If link was aborted, find out why
; 0979 5 or .STATUS<$(mo_abt)>
; 0980 6 then begin
; 0981 7 if not (GAD$ABORT_REASON (.NEW_CHANNEL, .SYSERR))
; 0982 6 then .SYSERR = .STATUS;
; 0983 6 return -2;
; 0984 5 end;
; 0985 5
; 0986 5 jsys_disms (2000); ! Idle for 2 seconds before tries
; 0987 4 end;
; 0988 4
; 0989 4 jsys_closf (.NEW_CHANNEL+cz_abt);
; 0990 3 end;
; 0991 2 end;
; 0992 2
; 0993 2 %fi
; 0994 2
; 0995 2 return $FALSE;
; 0996 1 end; ! End of GAD$OPEN_LINK
GADOPN::PUSH SP,AC12 ; SP,AC12 400201' 261 17 0 00 000012 0860
PUSH SP,AC13 ; SP,AC13 400202' 261 17 0 00 000013
PUSH SP,AC14 ; SP,AC14 400203' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 400204' 261 17 0 00 000016
ADJSP SP,1 ; SP,1 400205' 105 17 0 00 000001
MOVSI AC1,1 ; AC1,1 400206' 205 01 0 00 000001 0956
MOVE AC2,-10(SP) ; AC2,CONNECT 400207' 200 02 0 17 777770
JSYS 20 ; 20 400210' 104 00 0 00 000020
TDZA AC5,AC5 ; AC5,AC5 400211' 634 05 0 00 000005
MOVEI AC5,1 ; AC5,1 400212' 201 05 0 00 000001
MOVE AC13,AC1 ; AC13,AC1 400213' 200 13 0 00 000001
JUMPE AC5,L.19 ; AC5,L.19 400214' 322 05 0 00 400301'
MOVE AC12,AC13 ; AC12,NEW_CHANNEL 400215' 200 12 0 00 000013 0962
ADD AC12,C.1 ; AC12,[4000000000] 400216' 270 12 0 00 400007'
MOVE AC1,AC13 ; AC1,NEW_CHANNEL 400217' 200 01 0 00 000013 0958
MOVE AC2,C.7 ; AC2,[100000300000] 400220' 200 02 0 00 400310'
JSYS 21 ; 21 400221' 104 00 0 00 000021
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 25
Version 1.0 GAD$OPEN_LINK (GADOPN) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (7)
JRST L.12 ; L.12 400222' 254 00 0 00 400224'
JRST L.13 ; L.13 400223' 254 00 0 00 400236'
L.12: MOVE AC2,-6(SP) ; AC2,SYSERR 400224' 200 02 0 17 777772 0960
MOVEM AC1,0(AC2) ; REASON,0(AC2) 400225' 202 01 0 02 000000
MOVE AC1,AC13 ; AC1,NEW_CHANNEL 400226' 200 01 0 00 000013 0961
JSYS 23 ; 23 400227' 104 00 0 00 000023
JFCL ; 400230' 255 00 0 00 000000
MOVE AC1,AC12 ; AC1,AC12 400231' 200 01 0 00 000012 0962
JSYS 22 ; 22 400232' 104 00 0 00 000022
JFCL ; 400233' 255 00 0 00 000000
SETO AC1, ; AC1, 400234' 474 01 0 00 000000 0959
JRST L.20 ; L.20 400235' 254 00 0 00 400302'
L.13: MOVEI AC14,11 ; I,11 400236' 201 14 0 00 000011 0966
L.14: PUSH SP,AC13 ; SP,NEW_CHANNEL 400237' 261 17 0 00 000013 0970
MOVEI AC1,-1(SP) ; AC1,STATUS 400240' 201 01 0 17 777777
PUSH SP,AC1 ; SP,AC1 400241' 261 17 0 00 000001
PUSHJ SP,GADSTA ; SP,GADSTA 400242' 260 17 0 00 400051'
SKIPL -2(SP) ; STATUS 400243' 331 00 0 17 777776 0972
JRST L.15 ; L.15 400244' 254 00 0 00 400252'
MOVE AC1,-11(SP) ; AC1,CHANNEL 400245' 200 01 0 17 777767 0974
MOVEM AC13,0(AC1) ; NEW_CHANNEL,0(AC1) 400246' 202 13 0 01 000000
ADJSP SP,-2 ; SP,-2 400247' 105 17 0 00 777776 0975
MOVEI AC1,1 ; AC1,1 400250' 201 01 0 00 000001 0973
JRST L.20 ; L.20 400251' 254 00 0 00 400302'
L.15: MOVSI AC1,14000 ; AC1,14000 400252' 205 01 0 00 014000 0979
TDNN AC1,-2(SP) ; AC1,STATUS 400253' 616 01 0 17 777776
JRST L.17 ; L.17 400254' 254 00 0 00 400271'
MOVEM AC13,0(SP) ; NEW_CHANNEL,0(SP) 400255' 202 13 0 17 000000 0981
MOVE AC16,-10(SP) ; AC16,SYSERR 400256' 200 16 0 17 777770
PUSH SP,AC16 ; SP,AC16 400257' 261 17 0 00 000016
PUSHJ SP,GADRSN ; SP,GADRSN 400260' 260 17 0 00 400010'
ADJSP SP,-1 ; SP,-1 400261' 105 17 0 00 777777
TRNE AC1,1 ; AC1,1 400262' 602 01 0 00 000001
JRST L.16 ; L.16 400263' 254 00 0 00 400266'
MOVE AC1,-2(SP) ; AC1,STATUS 400264' 200 01 0 17 777776 0982
MOVEM AC1,0(AC16) ; AC1,0(AC16) 400265' 202 01 0 16 000000
L.16: ADJSP SP,-2 ; SP,-2 400266' 105 17 0 00 777776 0983
HRROI AC1,-2 ; AC1,-2 400267' 561 01 0 00 777776 0980
JRST L.20 ; L.20 400270' 254 00 0 00 400302'
L.17: MOVEI AC1,3720 ; AC1,3720 400271' 201 01 0 00 003720 0986
JSYS 167 ; 167 400272' 104 00 0 00 000167
JUMP 16,L.18 ; 16,L.18 400273' 320 16 0 00 400274'
L.18: ADJSP SP,-2 ; SP,-2 400274' 105 17 0 00 777776 0967
SOJGE AC14,L.14 ; I,L.14 400275' 365 14 0 00 400237' 0966
MOVE AC1,AC12 ; AC1,AC12 400276' 200 01 0 00 000012 0989
JSYS 22 ; 22 400277' 104 00 0 00 000022
JFCL ; 400300' 255 00 0 00 000000
L.19: SETZ AC1, ; AC1, 400301' 400 01 0 00 000000 0902
L.20: ADJSP SP,-1 ; SP,-1 400302' 105 17 0 00 777777 0860
POP SP,AC16 ; SP,AC16 400303' 262 17 0 00 000016
POP SP,AC14 ; SP,AC14 400304' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 400305' 262 17 0 00 000013
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 26
Version 1.0 GAD$OPEN_LINK (GADOPN) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (7)
POP SP,AC12 ; SP,AC12 400306' 262 17 0 00 000012
POPJ SP, ; SP, 400307' 263 17 0 00 000000
C.7: EXP 100000300000 ; 100000300000 400310' 100000 300000
; Routine Size: 72 words
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 27
Version 1.0 GAD$OPEN_SERVER (GADSRV) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (8)
; 0997 1 %global_routine ('GAD$OPEN_SERVER', OBJECT, CHANNEL) =
; 0998 1
; 0999 1 !++
; 1000 1 ! FUNCTIONAL DESCRIPTION:
; 1001 1 !
; 1002 1 ! Function to establish a DECnet server task waiting for
; 1003 1 ! incoming connect from the Gateway node.
; 1004 1 !
; 1005 1 ! FORMAL PARAMETERS:
; 1006 1 !
; 1007 1 ! OBJECT Pointer to the object name or numeric ASCIZ string.
; 1008 1 ! CHANNEL The address where the channel to the DECnet server
; 1009 1 ! task is to be returned, if the task is established
; 1010 1 ! successfully.
; 1011 1 !
; 1012 1 ! IMPLICIT INPUTS:
; 1013 1 !
; 1014 1 ! none
; 1015 1 !
; 1016 1 ! IMPLICIT OUTPUTS:
; 1017 1 !
; 1018 1 ! none
; 1019 1 !
; 1020 1 ! ROUTINE VALUE:
; 1021 1 !
; 1022 1 ! $TRUE The DECnet server task was established successfully.
; 1023 1 ! The channel is returned.
; 1024 1 ! $FALSE Failed to establish a network connection.
; 1025 1 ! Reason: Insufficient access resources.
; 1026 1 ! -1 Failed to establish a network connection.
; 1027 1 ! Reason: Illegal object id.
; 1028 1 !
; 1029 1 ! SIDE EFFECTS:
; 1030 1 !
; 1031 1 ! none
; 1032 1 !
; 1033 1 !--
; 1034 1
; 1035 2 begin
; 1036 2
; 1037 2 local
; 1038 2 %if %switches (TOPS10) %then CONNECT: CONNECT_BLOCK, %fi
; 1039 2 %if %switches (TOPS20) %then CONNECT: CH$SEQUENCE (128), %fi
; 1040 2 NUMERIC,
; 1041 2 POINTER,
; 1042 2 LENGTH,
; 1043 2 NEW_CHANNEL;
; 1044 2
; U 1045 2 %if %switches (TOPS10) %then
; U 1046 2
; U 1047 2 bind
; U 1048 2 SDBLK = CONNECT[NSCSDB]: DESCRIPTOR_BLOCK,
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 28
Version 1.0 GAD$OPEN_SERVER (GADSRV) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (8)
; U 1049 2 DDBLK = CONNECT[NSCDDB]: DESCRIPTOR_BLOCK,
; U 1050 2 DNBLK = DDBLK[NSDPB]: STRING_BLOCK (6);
; U 1051 2
; 1052 2 %fi
; 1053 2
; 1054 2 if (LENGTH = CH$LEN (.OBJECT)) leq 0
; 1055 2 then return (-1); ! Get object string length
; 1056 2
; 1057 2 NUMERIC = ch$rchar (.OBJECT); ! Get first character of object string
; 1058 2 selectone .NUMERIC of
; 1059 2 set
; 1060 2 [%C'0' to %C'9']: ! Object number
; 1061 2 NUMERIC = $TRUE;
; 1062 2
; 1063 2 [%C'a' to %C'z', ! Object name
; 1064 2 %C'A' to %C'Z']:
; 1065 2 NUMERIC = $FALSE;
; 1066 2
; 1067 2 [otherwise]: ! Illegal object id
; 1068 2 return (-1);
; 1069 2 tes;
; 1070 2
; U 1071 2 %if %switches (TOPS10) %then
; U 1072 2
; U 1073 2 ! Parse Object Identification string
; U 1074 2
; U 1075 2 if .NUMERIC
; U 1076 2 then begin ! Object number
; U 1077 2 local DIGIT, VALUE;
; U 1078 2
; U 1079 2 VALUE = 0; ! Reset object number
; U 1080 2 POINTER = .OBJECT; ! Set pointer to the numeric string
; U 1081 2
; U 1082 2 decr I from 3 to 1
; U 1083 2 do begin ! Process up to 3rd digit only
; U 1084 2 if (DIGIT = ch$rchar_a (POINTER)) eql 0
; U 1085 2 then exitloop; ! At the end of ASCIZ string
; U 1086 2
; U 1087 2 if not (selectone .DIGIT of
; U 1088 2 set
; U 1089 2 [%C'0' to %C'9']: $TRUE;
; U 1090 2 [otherwise]: $FALSE;
; U 1091 2 tes)
; U 1092 2 then return (-1); ! Illegal object number digit
; U 1093 2
; U 1094 2 VALUE = (.VALUE * 10) + (.DIGIT - %C'0');
; U 1095 2 end;
; U 1096 2
; U 1097 2 if (.DIGIT neq 0) ! Third digit is non-zero
; U 1098 2 and (ch$rchar (.POINTER)) neq 0
; U 1099 2 then return (-1); ! Object number is too big
; U 1100 2
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 29
Version 1.0 GAD$OPEN_SERVER (GADSRV) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (8)
; U 1101 2 DDBLK[NSDFL] = 3; ! Destination descriptor block length
; U 1102 2 DDBLK[NSDFM] = 0; ! Format 0
; U 1103 2 DDBLK[NSDOB] = .VALUE; ! Object number
; U 1104 2 end
; U 1105 2 else begin ! Object name
; U 1106 2 DDBLK[NSDFL] = 5; ! Destination descriptor block length
; U 1107 2 DDBLK[NSDFM] = 1; ! Format 1 (user task name)
; U 1108 2 DDBLK[NSDOB] = 0; ! Object number 0
; U 1109 2 DDBLK[NSDPP] = 0; ! No PPN
; U 1110 2 DDBLK[NSDPN] = DDBLK[NSDPB]; ! Task name string block
; U 1111 2 DNBLK[NSAS0] = (.LENGTH^18) + 5; ! Task name string length
; U 1112 2 ch$move (.LENGTH, .OBJECT, ch$ptr (DNBLK[NSAST],,8));
; U 1113 2 end;
; U 1114 2
; U 1115 2 ! Build Enter Passive DECnet Connect block
; U 1116 2
; U 1117 2 CONNECT[NSCNL] = 4; ! Connect block length
; U 1118 2 CONNECT[NSCSD] = CONNECT[NSCSDB]; ! Source descriptor block
; U 1119 2 CONNECT[NSCDD] = CONNECT[NSCDDB]; ! Destination descriptor block
; U 1120 2 CONNECT[NSCXX] = ! Unused and should be set to 0
; U 1121 2 CONNECT[NSCND] = 0; ! Node name block
; U 1122 2
; U 1123 2 SDBLK[NSDFL] = 3; ! Source descriptor block length
; U 1124 2 SDBLK[NSDFM] = 0; ! Format 0
; U 1125 2 SDBLK[NSDOB] = 31; ! Gateway software Object number
; U 1126 2
; U 1127 2 if not uuo_nsfep (NEW_CHANNEL, 0, CONNECT)
; U 1128 2 then GAD$ABORT_LINK (.NEW_CHANNEL) ! Failed
; U 1129 2 else begin ! Entered passive successfully
; U 1130 2 .CHANNEL = .NEW_CHANNEL;
; U 1131 2 return $TRUE;
; U 1132 2 end;
; U 1133 2
; 1134 2 %fi
; 1135 2
; 1136 2 %if %switches (TOPS20) %then
; 1137 2
; 1138 2 ! Build DECnet SRV: file description string
; 1139 2
; 1140 2 POINTER = ch$move (4, CH$ASCIZ ('SRV:'), ch$ptr (CONNECT));
; 1141 2 if not .NUMERIC
; 1142 2 then ch$wchar_a (%C'.', POINTER);
; 1143 2 POINTER = ch$move (.LENGTH, .OBJECT, .POINTER);
; 1144 2 ch$wchar (0, .POINTER); ! Make ASCIZ
; 1145 2
; 1146 2 if jsys_gtjfn (gj_sht, ch$ptr (CONNECT); NEW_CHANNEL)
; 1147 3 then begin ! Got logical link successfully
; 1148 3 if jsys_openf (.NEW_CHANNEL, of_rd+of_wr+$$(8,of_bsz))
; 1149 4 then begin ! Open for READ/WRITE 8-bit
; 1150 4 .CHANNEL = .NEW_CHANNEL; ! Return new channel
; 1151 4 return $TRUE;
; 1152 3 end;
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 30
Version 1.0 GAD$OPEN_SERVER (GADSRV) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (8)
; 1153 3
; 1154 3 jsys_rljfn (.NEW_CHANNEL); ! Release channel
; 1155 2 end;
; 1156 2
; 1157 2 %fi
; 1158 2
; 1159 2 return $FALSE;
; 1160 1 end; ! End of GAD$OPEN_SERVER
P.AAC: BYTE (7)"S","R","V",":",000 ; SRV: 400311' 123 122 126 072 000
GADSRV::PUSH SP,AC16 ; SP,AC16 400312' 261 17 0 00 000016 0997
ADJSP SP,32 ; SP,32 400313' 105 17 0 00 000032
PUSH SP,C.5 ; SP,[4000] 400314' 261 17 0 00 400177' 1054
PUSH SP,-36(SP) ; SP,OBJECT 400315' 261 17 0 17 777742
PUSH SP,C.6 ; SP,[0] 400316' 261 17 0 00 400200'
PUSHJ SP,CHFCH% ; SP,CHFCH% 400317' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 400320' 105 17 0 00 777775
PUSH SP,AC1 ; SP,AC1 400321' 261 17 0 00 000001
PUSH SP,-36(SP) ; SP,OBJECT 400322' 261 17 0 17 777742
PUSHJ SP,CHDIF% ; SP,CHDIF% 400323' 260 17 0 00 000000*
MOVE AC16,AC1 ; LENGTH,AC1 400324' 200 16 0 00 000001
ADJSP SP,-2 ; SP,-2 400325' 105 17 0 00 777776
JUMPLE AC16,L.24 ; LENGTH,L.24 400326' 323 16 0 00 400347'
MOVE AC1,-35(SP) ; AC1,OBJECT 400327' 200 01 0 17 777743 1057
ILDB AC3,AC1 ; NUMERIC,AC1 400330' 134 03 0 00 000001
CAIL AC3,60 ; NUMERIC,60 400331' 301 03 0 00 000060 1060
CAILE AC3,71 ; NUMERIC,71 400332' 303 03 0 00 000071
JRST L.21 ; L.21 400333' 254 00 0 00 400336'
MOVEI AC3,1 ; NUMERIC,1 400334' 201 03 0 00 000001 1061
JRST L.25 ; L.25 400335' 254 00 0 00 400351' 1058
L.21: CAIGE AC3,101 ; NUMERIC,101 400336' 305 03 0 00 000101 1063
JRST L.22 ; L.22 400337' 254 00 0 00 400342'
CAIG AC3,132 ; NUMERIC,132 400340' 307 03 0 00 000132
JRST L.23 ; L.23 400341' 254 00 0 00 400345'
L.22: CAIL AC3,141 ; NUMERIC,141 400342' 301 03 0 00 000141
CAILE AC3,172 ; NUMERIC,172 400343' 303 03 0 00 000172
JRST L.24 ; L.24 400344' 254 00 0 00 400347'
L.23: SETZ AC3, ; NUMERIC, 400345' 400 03 0 00 000000 1065
JRST L.25 ; L.25 400346' 254 00 0 00 400351' 1058
L.24: SETO AC1, ; AC1, 400347' 474 01 0 00 000000 1068
JRST L.29 ; L.29 400350' 254 00 0 00 400417'
L.25: MOVEI AC5,-32(SP) ; AC5,CONNECT-1 400351' 201 05 0 17 777746 1140
HRLI AC5,10700 ; AC5,10700 400352' 505 05 0 00 010700
MOVEI AC1,4 ; AC1,4 400353' 201 01 0 00 000004
MOVE AC2,C.8 ; AC2,[POINT 7,P.AAC-1,34] <1,7> 400354' 200 02 0 00 400422'
MOVEI AC4,4 ; AC4,4 400355' 201 04 0 00 000004
EXTEND AC1,C.2 ; AC1,[MOVSLJ ] 400356' 123 01 0 00 400174'
JFCL ; 400357' 255 00 0 00 000000
TRNE AC3,1 ; NUMERIC,1 400360' 602 03 0 00 000001 1141
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 31
Version 1.0 GAD$OPEN_SERVER (GADSRV) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (8)
JRST L.26 ; L.26 400361' 254 00 0 00 400364'
MOVEI AC1,56 ; AC1,56 400362' 201 01 0 00 000056 1142
IDPB AC1,AC5 ; AC1,POINTER 400363' 136 01 0 00 000005
L.26: MOVE AC1,AC16 ; AC1,LENGTH 400364' 200 01 0 00 000016 1143
MOVE AC2,-35(SP) ; AC2,OBJECT 400365' 200 02 0 17 777743
MOVE AC4,AC16 ; AC4,LENGTH 400366' 200 04 0 00 000016
EXTEND AC1,C.2 ; AC1,[MOVSLJ ] 400367' 123 01 0 00 400174'
JFCL ; 400370' 255 00 0 00 000000
SETZ AC1, ; AC1, 400371' 400 01 0 00 000000 1144
IDPB AC1,AC5 ; AC1,AC5 400372' 136 01 0 00 000005
MOVEI AC2,-32(SP) ; AC2,CONNECT-1 400373' 201 02 0 17 777746 1146
HRLI AC2,10700 ; AC2,10700 400374' 505 02 0 00 010700
MOVSI AC1,1 ; AC1,1 400375' 205 01 0 00 000001
JSYS 20 ; 20 400376' 104 00 0 00 000020
TDZA AC16,AC16 ; AC16,AC16 400377' 634 16 0 00 000016
MOVEI AC16,1 ; AC16,1 400400' 201 16 0 00 000001
MOVE AC5,AC1 ; AC5,AC1 400401' 200 05 0 00 000001
JUMPE AC16,L.28 ; AC16,L.28 400402' 322 16 0 00 400416'
MOVE AC1,AC5 ; AC1,NEW_CHANNEL 400403' 200 01 0 00 000005 1148
MOVE AC2,C.7 ; AC2,[100000300000] 400404' 200 02 0 00 400310'
JSYS 21 ; 21 400405' 104 00 0 00 000021
JRST L.27 ; L.27 400406' 254 00 0 00 400413'
MOVE AC1,-34(SP) ; AC1,CHANNEL 400407' 200 01 0 17 777744 1150
MOVEM AC5,0(AC1) ; NEW_CHANNEL,0(AC1) 400410' 202 05 0 01 000000
MOVEI AC1,1 ; AC1,1 400411' 201 01 0 00 000001 1149
JRST L.29 ; L.29 400412' 254 00 0 00 400417'
L.27: MOVE AC1,AC5 ; AC1,NEW_CHANNEL 400413' 200 01 0 00 000005 1154
JSYS 23 ; 23 400414' 104 00 0 00 000023
JFCL ; 400415' 255 00 0 00 000000
L.28: SETZ AC1, ; AC1, 400416' 400 01 0 00 000000 1035
L.29: ADJSP SP,-32 ; SP,-32 400417' 105 17 0 00 777746 0997
POP SP,AC16 ; SP,AC16 400420' 262 17 0 00 000016
POPJ SP, ; SP, 400421' 263 17 0 00 000000
C.8: POINT 7,P.AAC-1,34 ; 7,P.AAC-1,34 400422' 01 07 0 00 400310'
; Routine Size: 73 words
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 32
Version 1.0 GAD$PROTOCOL_TYPE (GADTYP) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (9)
; 1161 1 %global_routine ('GAD$PROTOCOL_TYPE', CHANNEL, TYPE) =
; 1162 1
; 1163 1 !++
; 1164 1 ! FUNCTIONAL DESCRIPTION:
; 1165 1 !
; 1166 1 ! Function determines the type of the message incoming from the logical
; 1167 1 ! link by examining the first byte of the record.
; 1168 1 !
; 1169 1 ! FORMAL PARAMETERS:
; 1170 1 !
; 1171 1 ! CHANNEL The DECnet logical link's channel.
; 1172 1 ! TYPE Address of the word where the message type is to be
; 1173 1 ! returned.
; 1174 1 !
; 1175 1 ! IMPLICIT INPUTS:
; 1176 1 !
; 1177 1 ! none
; 1178 1 !
; 1179 1 ! IMPLICIT OUTPUTS:
; 1180 1 !
; 1181 1 ! none
; 1182 1 !
; 1183 1 ! ROUTINE VALUE:
; 1184 1 !
; 1185 1 ! $TRUE The first byte was read successfully.
; 1186 1 ! $FALSE Failed to read the first byte or the link is empty.
; 1187 1 !
; 1188 1 ! SIDE EFFECTS:
; 1189 1 !
; 1190 1 ! none
; 1191 1 !
; 1192 1 !--
; 1193 1
; 1194 2 begin
; 1195 2
; 1196 2 local
; 1197 2 BUFFER,
; 1198 2 POINTER,
; 1199 2 LENGTH;
; 1200 2
; U 1201 2 %if %switches (TOPS10) %then
; U 1202 2
; U 1203 2 POINTER = ch$ptr (BUFFER,,8);
; U 1204 2 if uuo_nsfdr (.CHANNEL, 0, 1, .POINTER)
; U 1205 2 then begin ! Read one byte from the link
; U 1206 2 .TYPE = ch$rchar (.POINTER);
; U 1207 2 return $TRUE;
; U 1208 2 end;
; U 1209 2
; 1210 2 %fi
; 1211 2
; 1212 2 %if %switches (TOPS20) %then
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 33
Version 1.0 GAD$PROTOCOL_TYPE (GADTYP) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (9)
; 1213 2
; 1214 2 if jsys_sibe (.CHANNEL; , LENGTH) ! Check if logical link buffer is empty
; 1215 2 then return $FALSE; ! return if buffer is indeed empty
; 1216 2
; 1217 2 if .LENGTH eql 0 ! Return if number of bytes remaining
; 1218 2 then return $FALSE; ! in logical link buffer is 0
; 1219 2
; 1220 2 ! Read exactly 1 byte from the logical link
; 1221 2
; 1222 2 POINTER = ch$ptr (BUFFER,,8);
; 1223 2 if jsys_sin (.CHANNEL, .POINTER, -1)
; 1224 3 then begin
; 1225 3 .TYPE = ch$rchar (.POINTER);
; 1226 3 return $TRUE;
; 1227 2 end;
; 1228 2
; 1229 2 %fi
; 1230 2
; 1231 2 return $FALSE;
; 1232 1 end;
GADTYP::ADJSP SP,1 ; SP,1 400423' 105 17 0 00 000001 1161
MOVE AC1,-3(SP) ; AC1,CHANNEL 400424' 200 01 0 17 777775 1214
JSYS 102 ; 102 400425' 104 00 0 00 000102
JRST L.30 ; L.30 400426' 254 00 0 00 400430'
JRST L.31 ; L.31 400427' 254 00 0 00 400447' 1215
L.30: JUMPE AC2,L.31 ; LENGTH,L.31 400430' 322 02 0 00 400447' 1217
MOVEI AC2,-1(SP) ; AC2,BUFFER-1 400431' 201 02 0 17 777777 1222
HRLI AC2,41000 ; AC2,41000 400432' 505 02 0 00 041000
MOVE AC5,AC2 ; POINTER,AC2 400433' 200 05 0 00 000002
MOVE AC1,-3(SP) ; AC1,CHANNEL 400434' 200 01 0 17 777775 1223
MOVE AC2,AC5 ; AC2,POINTER 400435' 200 02 0 00 000005
SETO AC3, ; AC3, 400436' 474 03 0 00 000000
JSYS 52 ; 52 400437' 104 00 0 00 000052
JUMP 16,L.31 ; 16,L.31 400440' 320 16 0 00 400447'
MOVE AC3,-2(SP) ; AC3,TYPE 400441' 200 03 0 17 777776 1225
MOVE AC2,AC5 ; AC2,POINTER 400442' 200 02 0 00 000005
ILDB AC1,AC2 ; AC1,AC2 400443' 134 01 0 00 000002
MOVEM AC1,0(AC3) ; AC1,0(AC3) 400444' 202 01 0 03 000000
MOVEI AC1,1 ; AC1,1 400445' 201 01 0 00 000001 1224
JRST L.32 ; L.32 400446' 254 00 0 00 400450'
L.31: SETZ AC1, ; AC1, 400447' 400 01 0 00 000000 1194
L.32: ADJSP SP,-1 ; SP,-1 400450' 105 17 0 00 777777 1161
POPJ SP, ; SP, 400451' 263 17 0 00 000000
; Routine Size: 23 words
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 34
Version 1.0 GAD$PSI_CHANNELS (GADPSI) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (10)
; 1233 1 %global_routine ('GAD$PSI_CHANNELS', CHANNEL, NUMBER) =
; 1234 1
; 1235 1 !++
; 1236 1 ! FUNCTIONAL DESCRIPTION:
; 1237 1 !
; 1238 1 ! TOPS-10
; 1239 1 !
; 1240 1 ! Function allows a network task to enable software interrupt
; 1241 1 ! channels for all of the DECnet events.
; 1242 1 !
; 1243 1 ! TOPS-20
; 1244 1 !
; 1245 1 ! Function allows a network task to enable software interrupt
; 1246 1 ! channels for the following work types:
; 1247 1 !
; 1248 1 ! . Connect event pending
; 1249 1 ! . Interrupt message available
; 1250 1 ! . Data available
; 1251 1 !
; 1252 1 ! TOPS-10 & TOPS-20
; 1253 1 !
; 1254 1 ! If the channel has a negative value, no channel will be enabled.
; 1255 1 !
; 1256 1 ! FORMAL PARAMETERS:
; 1257 1 !
; 1258 1 ! CHANNEL The DECnet logical link's channel.
; 1259 1 ! NUMBER The software interrupt channel to be enabled.
; 1260 1 ! If value is negative, none will be enabled.
; 1261 1 !
; 1262 1 ! IMPLICIT INPUTS:
; 1263 1 !
; 1264 1 ! none
; 1265 1 !
; 1266 1 ! IMPLICIT OUTPUTS:
; 1267 1 !
; 1268 1 ! none
; 1269 1 !
; 1270 1 ! ROUTINE VALUE:
; 1271 1 !
; 1272 1 ! $TRUE The requested channel was enabled successfully.
; 1273 1 ! $FALSE Failed to enable the requested channel.
; 1274 1 !
; 1275 1 ! COMPLETION CODES:
; 1276 1 !
; 1277 1 ! none
; 1278 1 !
; 1279 1 ! SIDE EFFECTS:
; 1280 1 !
; 1281 1 ! The requested software interrupt channel is enabled for the above 3
; 1282 1 ! types of event.
; 1283 1 !
; 1284 1 !--
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 35
Version 1.0 GAD$PSI_CHANNELS (GADPSI) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (10)
; 1285 1
; 1286 2 begin
; 1287 2
; 1288 2 local
; 1289 2 EVENT;
; 1290 2
; 1291 2 if .NUMBER lss 0 ! Return if interrupt channel
; 1292 2 then return $TRUE; ! is not selected
; 1293 2
; U 1294 2 %if %switches (TOPS10) %then
; U 1295 2
; U 1296 2 ! Enable interrupts for all DECnet link states and available
; U 1297 2 ! received normal and interrupt data. Disable interrupts when
; U 1298 2 ! link is ready to send data
; U 1299 2
; U 1300 2 uuo_nsfpi (.CHANNEL, 0, %O'537777');
; U 1301 2
; 1302 2 %fi
; 1303 2
; 1304 2 %if %switches (TOPS20) %then
; 1305 2
; 1306 2 EVENT<$(mo_cdn)> = .NUMBER; ! Connect event pending
; 1307 2 EVENT<$(mo_ina)> = .NUMBER; ! Interrupt message available
; 1308 2 EVENT<$(mo_dav)> = .NUMBER; ! Data available
; 1309 2
; 1310 2 return jsys_mtopr (.CHANNEL, $moacn, .EVENT);
; 1311 2
; 1312 2 %fi
; 1313 2
; 1314 1 end; ! End of GAD$PSI_CHANNELS
GADPSI::MOVE AC1,-1(SP) ; AC1,NUMBER 400452' 200 01 0 17 777777 1291
JUMPGE AC1,L.33 ; AC1,L.33 400453' 325 01 0 00 400456'
MOVEI AC1,1 ; AC1,1 400454' 201 01 0 00 000001 1292
POPJ SP, ; SP, 400455' 263 17 0 00 000000
L.33: DPB AC1,C.9 ; AC1,[POINT 9,EVENT,8] <27,9> 400456' 137 01 0 00 400471' 1306
DPB AC1,C.10 ; AC1,[POINT 9,EVENT,17] <18,9> 400457' 137 01 0 00 400472' 1307
DPB AC1,C.11 ; AC1,[POINT 9,EVENT,26] <9,9> 400460' 137 01 0 00 400473' 1308
MOVE AC1,-2(SP) ; AC1,CHANNEL 400461' 200 01 0 17 777776 1310
MOVEI AC2,24 ; AC2,24 400462' 201 02 0 00 000024
SETZ AC4, ; AC4, 400463' 400 04 0 00 000000
JSYS 77 ; 77 400464' 104 00 0 00 000077
JUMP 16,L.34 ; 16,L.34 400465' 320 16 0 00 400467'
MOVEI AC4,1 ; AC4,1 400466' 201 04 0 00 000001
L.34: MOVE AC1,AC4 ; AC1,AC4 400467' 200 01 0 00 000004 1286
POPJ SP, ; SP, 400470' 263 17 0 00 000000 1233
C.9: POINT 9,AC3,8 ; 9,EVENT,8 400471' 33 11 0 00 000003
C.10: POINT 9,AC3,17 ; 9,EVENT,17 400472' 22 11 0 00 000003
C.11: POINT 9,AC3,26 ; 9,EVENT,26 400473' 11 11 0 00 000003
; Routine Size: 18 words
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 36
Version 1.0 GAD$PSI_CHANNELS (GADPSI) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (10)
; 1315 1
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 37
Version 1.0 GAD$RECEIVE_DATA (GADRCV) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (11)
; 1316 1 %global_routine ('GAD$RECEIVE_DATA', CHANNEL, COUNT, POINTER) =
; 1317 1
; 1318 1 !++
; 1319 1 ! FUNCTIONAL DESCRIPTION:
; 1320 1 !
; 1321 1 ! Function reads incoming data from the link.
; 1322 1 !
; 1323 1 ! FORMAL PARAMETERS:
; 1324 1 !
; 1325 1 ! CHANNEL The DECnet logical link's channel.
; 1326 1 ! COUNT Address of the data buffer size, contains the maximum
; 1327 1 ! size that the buffer can receive data. The returned
; 1328 1 ! value reflects the actual size of the received buffer.
; 1329 1 ! POINTER String pointer (8-bit) to the receiving buffer.
; 1330 1 !
; 1331 1 ! IMPLICIT INPUTS:
; 1332 1 !
; 1333 1 ! none
; 1334 1 !
; 1335 1 ! IMPLICIT OUTPUTS:
; 1336 1 !
; 1337 1 ! One record of data is read and returned in the buffer pointed to
; 1338 1 ! by POINTER.
; 1339 1 !
; 1340 1 ! ROUTINE VALUE:
; 1341 1 !
; 1342 1 ! $TRUE One record was read successfully from the logical link.
; 1343 1 ! Actual size of the received buffer is returned in COUNT.
; 1344 1 ! $FALSE Failed to read or link data buffer is empty.
; 1345 1 !
; 1346 1 ! SIDE EFFECTS:
; 1347 1 !
; 1348 1 ! none
; 1349 1 !
; 1350 1 !--
; 1351 1
; 1352 2 begin
; 1353 2
; 1354 2 local
; 1355 2 SIZE;
; 1356 2
; U 1357 2 %if %switches (TOPS10) %then
; U 1358 2
; U 1359 2 if uuo_nsfdr (.CHANNEL, ns$wai, ..COUNT, .POINTER, SIZE)
; U 1360 2 then begin ! Read data from the link
; U 1361 2 .COUNT = ..COUNT - .SIZE;
; U 1362 2 return $TRUE;
; U 1363 2 end;
; U 1364 2
; 1365 2 %fi
; 1366 2
; 1367 2 %if %switches (TOPS20) %then
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 38
Version 1.0 GAD$RECEIVE_DATA (GADRCV) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (11)
; 1368 2
; 1369 2 if jsys_sibe (.CHANNEL; , SIZE) ! Check if logical link buffer is empty
; 1370 2 then return $FALSE; ! Return error if it is indeed empty
; 1371 2
; 1372 2 if .SIZE eql 0 ! Return if number of bytes remaining
; 1373 2 then return $FALSE; ! in the logical link buffer is 0
; 1374 2
; 1375 2 ! Read in one record
; 1376 2
; 1377 2 if jsys_sinr (.CHANNEL, .POINTER, -..COUNT; ,, SIZE)
; 1378 3 then begin
; 1379 3 .COUNT = ..COUNT + .SIZE;
; 1380 3 return $TRUE;
; 1381 2 end;
; 1382 2
; 1383 2 %fi
; 1384 2
; 1385 2 return $FALSE;
; 1386 1 end; ! End of GAD$RECEIVE_DATA
GADRCV::PUSH SP,AC14 ; SP,AC14 400474' 261 17 0 00 000014 1316
PUSH SP,AC16 ; SP,AC16 400475' 261 17 0 00 000016
MOVE AC1,-5(SP) ; AC1,CHANNEL 400476' 200 01 0 17 777773 1369
JSYS 102 ; 102 400477' 104 00 0 00 000102
TDZA AC5,AC5 ; AC5,AC5 400500' 634 05 0 00 000005
MOVEI AC5,1 ; AC5,1 400501' 201 05 0 00 000001
MOVE AC16,AC2 ; AC16,AC2 400502' 200 16 0 00 000002
JUMPN AC5,L.37 ; AC5,L.37 400503' 326 05 0 00 400523'
JUMPE AC16,L.37 ; SIZE,L.37 400504' 322 16 0 00 400523' 1372
MOVE AC5,-4(SP) ; AC5,COUNT 400505' 200 05 0 17 777774 1377
MOVN AC3,0(AC5) ; AC3,0(AC5) 400506' 210 03 0 05 000000
MOVE AC1,-5(SP) ; AC1,CHANNEL 400507' 200 01 0 17 777773
MOVE AC2,-3(SP) ; AC2,POINTER 400510' 200 02 0 17 777775
JSYS 531 ; 531 400511' 104 00 0 00 000531
JUMP 16,L.35 ; 16,L.35 400512' 320 16 0 00 400514'
JRST L.36 ; L.36 400513' 254 00 0 00 400515'
L.35: TDZA AC14,AC14 ; AC14,AC14 400514' 634 14 0 00 000014
L.36: MOVEI AC14,1 ; AC14,1 400515' 201 14 0 00 000001
MOVE AC16,AC3 ; AC16,AC3 400516' 200 16 0 00 000003
JUMPE AC14,L.37 ; AC14,L.37 400517' 322 14 0 00 400523'
ADDM AC16,0(AC5) ; SIZE,0(AC5) 400520' 272 16 0 05 000000 1379
MOVEI AC1,1 ; AC1,1 400521' 201 01 0 00 000001 1378
JRST L.38 ; L.38 400522' 254 00 0 00 400524'
L.37: SETZ AC1, ; AC1, 400523' 400 01 0 00 000000 1352
L.38: POP SP,AC16 ; SP,AC16 400524' 262 17 0 00 000016 1316
POP SP,AC14 ; SP,AC14 400525' 262 17 0 00 000014
POPJ SP, ; SP, 400526' 263 17 0 00 000000
; Routine Size: 27 words
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 39
Version 1.0 GAD$RECEIVE_INTERRUPT (GADRCI) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (12)
; 1387 1 %global_routine ('GAD$RECEIVE_INTERRUPT', CHANNEL, COUNT, POINTER) =
; 1388 1
; 1389 1 !++
; 1390 1 ! FUNCTIONAL DESCRIPTION:
; 1391 1 !
; 1392 1 ! Function reads interrupt data incoming on interrupt channel of
; 1393 1 ! the logical link.
; 1394 1 !
; 1395 1 ! FORMAL PARAMETERS:
; 1396 1 !
; 1397 1 ! CHANNEL The DECnet logical link's channel.
; 1398 1 ! COUNT The address of the buffer size where the actual
; 1399 1 ! size of the received buffer is to be returned.
; 1400 1 ! POINTER String pointer (8-bit) to the buffer where interrupt
; 1401 1 ! data is to be returned.
; 1402 1 !
; 1403 1 ! IMPLICIT INPUTS:
; 1404 1 !
; 1405 1 ! none
; 1406 1 !
; 1407 1 ! IMPLICIT OUTPUTS:
; 1408 1 !
; 1409 1 ! Interrupt data is read and returned in the given buffer.
; 1410 1 !
; 1411 1 ! ROUTINE VALUE:
; 1412 1 !
; 1413 1 ! $TRUE Interrupt data is read from the link successfully.
; 1414 1 ! $FALSE Failed to read or interrupt data buffer is empty.
; 1415 1 !
; 1416 1 ! SIDE EFFECTS:
; 1417 1 !
; 1418 1 ! none
; 1419 1 !
; 1420 1 !--
; 1421 1
; 1422 2 begin
; 1423 2
; U 1424 2 %if %switches (TOPS10) %then
; U 1425 2
; U 1426 2 local
; U 1427 2 BUFFER: STRING_BLOCK (5);
; U 1428 2
; U 1429 2 BUFFER[NSAS0] = (16^18) + 5; ! Data buffer length
; U 1430 2 if not uuo_nsfir (.CHANNEL, ns$wai, BUFFER)
; U 1431 2 then .COUNT = 0 ! No interrupt data received
; U 1432 2 else begin
; U 1433 2 .COUNT = .BUFFER[NSASC]; ! Return actual byte count
; U 1434 2 ch$move (.BUFFER[NSASC], ch$ptr (BUFFER[NSAST],,8), .POINTER);
; U 1435 2 return $TRUE;
; U 1436 2 end;
; U 1437 2
; 1438 2 %fi
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 40
Version 1.0 GAD$RECEIVE_INTERRUPT (GADRCI) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (12)
; 1439 2
; 1440 2 %if %switches (TOPS20) %then
; 1441 2
; 1442 2 local
; 1443 2 LENGTH;
; 1444 2
; 1445 2 if not jsys_mtopr (.CHANNEL, $morim, .POINTER; ,,, LENGTH)
; 1446 2 then .COUNT = 0
; 1447 3 else begin
; 1448 3 .COUNT = .LENGTH;
; 1449 3 return $TRUE;
; 1450 2 end;
; 1451 2
; 1452 2 %fi
; 1453 2
; 1454 2 return $FALSE;
; 1455 1 end; ! End of GAD$RECEIVE_INTERRUPT
GADRCI::MOVE AC5,-2(SP) ; AC5,COUNT 400527' 200 05 0 17 777776 1446
MOVE AC1,-3(SP) ; AC1,CHANNEL 400530' 200 01 0 17 777775 1445
MOVEI AC2,35 ; AC2,35 400531' 201 02 0 00 000035
MOVE AC3,-1(SP) ; AC3,POINTER 400532' 200 03 0 17 777777
JSYS 77 ; 77 400533' 104 00 0 00 000077
JUMP 16,L.39 ; 16,L.39 400534' 320 16 0 00 400536'
JRST L.40 ; L.40 400535' 254 00 0 00 400540'
L.39: SETZM 0(AC5) ; 0(AC5) 400536' 402 00 0 05 000000 1446
JRST L.41 ; L.41 400537' 254 00 0 00 400543' 1445
L.40: MOVEM AC4,0(AC5) ; LENGTH,0(AC5) 400540' 202 04 0 05 000000 1448
MOVEI AC1,1 ; AC1,1 400541' 201 01 0 00 000001 1447
POPJ SP, ; SP, 400542' 263 17 0 00 000000
L.41: SETZ AC1, ; AC1, 400543' 400 01 0 00 000000 1422
POPJ SP, ; SP, 400544' 263 17 0 00 000000 1387
; Routine Size: 14 words
; 1456 1
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 41
Version 1.0 GAD$SEND_DATA (GADSEN) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (13)
; 1457 1 %global_routine ('GAD$SEND_DATA', CHANNEL, POINTER, COUNT) =
; 1458 1
; 1459 1 !++
; 1460 1 ! FUNCTIONAL DESCRIPTION:
; 1461 1 !
; 1462 1 ! Function sends data to the logical link.
; 1463 1 !
; 1464 1 ! FORMAL PARAMETERS:
; 1465 1 !
; 1466 1 ! CHANNEL The DECnet logical link's channel.
; 1467 1 ! POINTER String pointer (8-bit) to the data buffer to be sent.
; 1468 1 ! COUNT Size of the given buffer.
; 1469 1 !
; 1470 1 ! IMPLICIT INPUTS:
; 1471 1 !
; 1472 1 ! none
; 1473 1 !
; 1474 1 ! IMPLICIT OUTPUTS:
; 1475 1 !
; 1476 1 ! none
; 1477 1 !
; 1478 1 ! ROUTINE VALUE:
; 1479 1 !
; 1480 1 ! $TRUE The data buffer was sent successfully.
; 1481 1 ! $FALSE Failed to send the buffer.
; 1482 1 !
; 1483 1 ! SIDE EFFECTS:
; 1484 1 !
; 1485 1 ! none
; 1486 1 !
; 1487 1 !--
; 1488 1
; 1489 2 begin
; 1490 2
; U 1491 2 return %if %switches (TOPS10) %then
; 1492 2 uuo_nsfds (.CHANNEL, ns$eom or ns$wai, .COUNT, .POINTER); %fi
; 1493 2
; 1494 2 %if %switches (TOPS20) %then
; 1495 2 jsys_soutr (.CHANNEL, .POINTER, -.COUNT); %fi
; 1496 2
; 1497 1 end; ! End of GAD$SEND_DATA
GADSEN::MOVN AC3,-1(SP) ; AC3,COUNT 400545' 210 03 0 17 777777 1495
MOVE AC1,-3(SP) ; AC1,CHANNEL 400546' 200 01 0 17 777775
MOVE AC2,-2(SP) ; AC2,POINTER 400547' 200 02 0 17 777776
SETZ AC4, ; AC4, 400550' 400 04 0 00 000000
JSYS 532 ; 532 400551' 104 00 0 00 000532
JUMP 16,L.42 ; 16,L.42 400552' 320 16 0 00 400554'
MOVEI AC4,1 ; AC4,1 400553' 201 04 0 00 000001
L.42: MOVE AC1,AC4 ; AC1,AC4 400554' 200 01 0 00 000004 1489
POPJ SP, ; SP, 400555' 263 17 0 00 000000 1457
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 42
Version 1.0 GAD$SEND_DATA (GADSEN) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (13)
; Routine Size: 9 words
; 1498 1
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 43
Version 1.0 GAD$SEND_INTERRUPT (GADSNI) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (14)
; 1499 1 %global_routine ('GAD$SEND_INTERRUPT', CHANNEL, POINTER, COUNT) =
; 1500 1
; 1501 1 !++
; 1502 1 ! FUNCTIONAL DESCRIPTION:
; 1503 1 !
; 1504 1 ! Function sends interrupt data to the logical link interrupt channel.
; 1505 1 !
; 1506 1 ! FORMAL PARAMETERS:
; 1507 1 !
; 1508 1 ! CHANNEL The DECnet logical link's channel.
; 1509 1 ! POINTER String pointer (8-bit) to the data buffer to be sent.
; 1510 1 ! COUNT Size of the data buffer.
; 1511 1 !
; 1512 1 ! IMPLICIT INPUTS:
; 1513 1 !
; 1514 1 ! none
; 1515 1 !
; 1516 1 ! IMPLICIT OUTPUTS:
; 1517 1 !
; 1518 1 ! none
; 1519 1 !
; 1520 1 ! ROUTINE VALUE:
; 1521 1 !
; 1522 1 ! $TRUE The interrupt data was sent successfully.
; 1523 1 ! $FALSE Failed to send data to link.
; 1524 1 !
; 1525 1 ! SIDE EFFECTS:
; 1526 1 !
; 1527 1 ! none
; 1528 1 !
; 1529 1 !--
; 1530 1
; 1531 2 begin
; 1532 2
; U 1533 2 %if %switches (TOPS10) %then
; U 1534 2
; U 1535 2 local
; U 1536 2 BUFFER: STRING_BLOCK (5);
; U 1537 2
; U 1538 2 BUFFER[NSAS0] = (.COUNT^18) + 5; ! Data buffer length
; U 1539 2 ch$move (.COUNT, .POINTER, ch$ptr (BUFFER[NSAST],,8));
; U 1540 2 uuo_nsfis (.CHANNEL, ns$wai, BUFFER);
; U 1541 2
; 1542 2 %fi
; 1543 2
; 1544 2 %if %switches (TOPS20) %then
; 1545 2
; 1546 2 return jsys_mtopr (.CHANNEL, $mosim, .POINTER, .COUNT);
; 1547 2
; 1548 2 %fi
; 1549 2
; 1550 1 end; ! End of GAD$SEND_INTERRUPT
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 44
Version 1.0 GAD$SEND_INTERRUPT (GADSNI) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (14)
GADSNI::MOVE AC1,-3(SP) ; AC1,CHANNEL 400556' 200 01 0 17 777775 1546
MOVEI AC2,36 ; AC2,36 400557' 201 02 0 00 000036
MOVE AC3,-2(SP) ; AC3,POINTER 400560' 200 03 0 17 777776
MOVE AC4,-1(SP) ; AC4,COUNT 400561' 200 04 0 17 777777
SETZ AC5, ; AC5, 400562' 400 05 0 00 000000
JSYS 77 ; 77 400563' 104 00 0 00 000077
JUMP 16,L.43 ; 16,L.43 400564' 320 16 0 00 400566'
MOVEI AC5,1 ; AC5,1 400565' 201 05 0 00 000001
L.43: MOVE AC1,AC5 ; AC1,AC5 400566' 200 01 0 00 000005 1531
POPJ SP, ; SP, 400567' 263 17 0 00 000000 1499
; Routine Size: 10 words
; 1551 1
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 45
Version 1.0 GAD$EC_SEND_DATA (GADSEC) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (15)
; 1552 1 %global_routine ('GAD$EC_SEND_DATA', CHANNEL, POINTER, COUNT, SYSERR) =
; 1553 1
; 1554 1 !++
; 1555 1 ! FUNCTIONAL DESCRIPTION:
; 1556 1 !
; 1557 1 ! Function sends data to the logical link.
; 1558 1 !
; 1559 1 ! FORMAL PARAMETERS:
; 1560 1 !
; 1561 1 ! CHANNEL The DECnet logical link's channel.
; 1562 1 ! POINTER String pointer (8-bit) to the data buffer to be sent.
; 1563 1 ! COUNT Size of the given buffer.
; 1564 1 !
; 1565 1 ! IMPLICIT INPUTS:
; 1566 1 !
; 1567 1 ! none
; 1568 1 !
; 1569 1 ! IMPLICIT OUTPUTS:
; 1570 1 !
; 1571 1 ! none
; 1572 1 !
; 1573 1 ! ROUTINE VALUE:
; 1574 1 !
; 1575 1 ! $TRUE The data buffer was sent successfully.
; 1576 1 ! $FALSE Failed to send the buffer.
; 1577 1 !
; 1578 1 ! SIDE EFFECTS:
; 1579 1 !
; 1580 1 ! none
; 1581 1 !
; 1582 1 !--
; 1583 1
; 1584 2 begin
; 1585 2
; U 1586 2 return %if %switches (TOPS10) %then
; 1587 2 uuo_nsfds (.CHANNEL, ns$eom or ns$wai, .COUNT, .POINTER); %fi
; 1588 2
; 1589 2 %if %switches (TOPS20) %then
; 1590 2 jsys_soutr (.CHANNEL, .POINTER, -.COUNT; SYSERR); %fi
; 1591 2
; 1592 1 end; ! End of GAD$EC_SEND_DATA
GADSEC::MOVN AC3,-2(SP) ; AC3,COUNT 400570' 210 03 0 17 777776 1590
MOVE AC1,-4(SP) ; AC1,CHANNEL 400571' 200 01 0 17 777774
MOVE AC2,-3(SP) ; AC2,POINTER 400572' 200 02 0 17 777775
SETZ AC4, ; AC4, 400573' 400 04 0 00 000000
JSYS 532 ; 532 400574' 104 00 0 00 000532
JUMP 16,L.44 ; 16,L.44 400575' 320 16 0 00 400577'
MOVEI AC4,1 ; AC4,1 400576' 201 04 0 00 000001
L.44: MOVEM AC1,-1(SP) ; AC1,SYSERR 400577' 202 01 0 17 777777
MOVE AC1,AC4 ; AC1,AC4 400600' 200 01 0 00 000004 1584
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 46
Version 1.0 GAD$EC_SEND_DATA (GADSEC) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (15)
POPJ SP, ; SP, 400601' 263 17 0 00 000000 1552
; Routine Size: 10 words
; 1593 1
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 47
Version 1.0 GAD$EC_SEND_DATA (GADSEC) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (16)
; 1594 1 end ! End of Module XGADNF
; 1595 0 eludom
; Low segment length: 0 words
; High segment length: 386 words
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks Processing
; File Total Loaded Percent Read Time
;
; KL2102:<BRELEASE.XPORT>MONSYM.L36.1 3863 268 6 95 00:00.6
; STAR:<SNA.TAPE2.AI.SOURCE>SNACOM.L36.2
; 337 23 6 16 00:00.4
SAIDNF SNA GATEWAY ACCESS DECNET FUNCTIONS 13-Feb-1985 13:34:50 TOPS-20 Bliss-36 4A(225) Page 48
Version 1.0 GAD$EC_SEND_DATA (GADSEC) 21-Jan-1985 13:45:10 STAR:<SNA.TAPE2.AI.SOURCE>SAIDNF.B36.1 (17)
; 1596 0
; 1597 0 ! Local Modes:
; 1598 0 ! Mode:BLISS
; 1599 0 ! Auto Save Mode:2
; 1600 0 ! Comment Column:40
; 1601 0 ! Comment Rounding:+1
; 1602 0 ! End:
; COMPILER INTERNAL TIMING
; Phase Faults Cpu-time Elapsed-time
; LEXSYN 171 00:25.9 01:40.0
; FLOWAN 10 00:00.6 00:07.5
; DELAY 11 00:00.5 00:17.8
; TNBIND 19 00:00.8 00:15.9
; CODE 29 00:00.6 00:13.4
; FINAL 35 00:02.8 00:18.2
; Total 275 00:31.1 02:52.8
; Size: 382 code + 4 data words
; Run Time: 00:31.3
; Elapsed Time: 02:53.7
; Lines/CPU Min: 3071
; Lexemes/CPU-Min:143502
; Memory Used: 68 pages
; Compilation Complete