home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / ibmtsonih.tar.gz / ibmtsonih.tar / tsntbl.asm < prev    next >
Assembly Source File  |  1986-12-18  |  10KB  |  284 lines

  1. KEXT     TITLE 'NIH TSO KERMIT - EXTERNAL ROUTINES AND TABLES'
  2. *
  3. *  THE FOLLOWING MACROS ARE USED TO BUILD THE TRANSLATE TABLES
  4. *
  5. *  3 TABLES ARE BUILT:
  6. *
  7. *     ASCII TO EBCDIC TRANSLATION TABLE
  8. *     EBCDIC TO ASCII TRANSLATION TABLE
  9. *     EBCDIC TO ASCII INVALID CODES TRANSLATE AND TEST TABLE
  10. *
  11. *  THE MACROS ARE
  12. *
  13. *     TTABLES - DEFINES TABLE NAMES AND DEFAULT VALUES
  14. *     TTCH    - DEFINES ASCII/EBCDIC AND EBCDIC/ASCII TRANSLATION
  15. *     TRCHAE  - DEFINES ASCII/EBCDIC TRANSLATION ONLY
  16. *     TRCHEA  - DEFINES EBCDIC/ASCII TRANSLATION ONLY
  17. *
  18. *  IN THE TRTABLES MACRO THE OPERANDS ARE
  19. *
  20. *     NAME OF ASCII TO EBCDIC TRANSLATE TABLE
  21. *     DEFAULT EBCDIC CODE FOR ASCII TO EBCDIC TRANSLATION
  22. *     NAME OF EBCDIC TO ASCII TRANSLATE TABLE
  23. *     DEFAULT ASCII CODE FOR EBCDIC TO ASCII TRANSLATION
  24. *     NAME OF THE INVALID CHARACTER TABLE FOR EBCDIC TO ASCII
  25. *
  26. *  IN THE TTCH MACROS THE EBCDIC CODE IS GIVEN FIRST, THEN THE ASCII.
  27. *  THE THIRD OPERAND IS AN OPTIONAL COUNT FOR A SEQUENCE OF CONSECUTIVE
  28. *  CHARACTERS.
  29. *
  30.          EJECT
  31.          MACRO
  32.          TTABLES &AE,&AEDEF,&EA,&EADEF,&TEA
  33.          GBLC  &TTAE,&TTEA,&TTTEA
  34. .*
  35. &TTAE    SETC  '&AE'
  36. &TTEA    SETC  '&EA'
  37. &TTTEA   SETC  '&TEA'
  38. .*
  39. &TTAE    DC    256AL1(&AEDEF)
  40. &TTEA    DC    256AL1(&EADEF)
  41. &TTTEA   DC    256AL1(4)
  42.          MEND
  43. *
  44.          MACRO
  45.          TTCH  &EBCDIC,&ASCII,&COUNT
  46.          GBLC  &TTAE,&TTEA,&TTTEA
  47.          LCLA  &X
  48. .*
  49. .LOOP    ANOP
  50.          ORG   &TTAE+&ASCII+&X
  51.          DC    AL1(&EBCDIC+&X)
  52.          ORG   &TTAE+&ASCII+&X+128
  53.          DC    AL1(&EBCDIC+&X)
  54.          ORG   &TTEA+&EBCDIC+&X
  55.          DC    AL1(&ASCII+&X)
  56.          ORG   &TTTEA+&EBCDIC+&X
  57.          DC    AL1(0)
  58. &X       SETA  &X+1
  59.          AIF   ('&COUNT' EQ '').END
  60.          AIF   (&X LT &COUNT).LOOP
  61. .END     MEND
  62. *
  63.          MACRO
  64.          TTCHAE &EBCDIC,&ASCII,&COUNT
  65.          GBLC  &TTAE,&TTEA,&TTTEA
  66.          LCLA  &X
  67. .*
  68. .LOOP    ANOP
  69.          ORG   &TTAE+&ASCII+&X
  70.          DC    AL1(&EBCDIC+&X)
  71.          ORG   &TTAE+&ASCII+&X+128
  72.          DC    AL1(&EBCDIC+&X)
  73. &X       SETA  &X+1
  74.          AIF   ('&COUNT' EQ '').END
  75.          AIF   (&X LT &COUNT).LOOP
  76. .END     MEND
  77. *
  78.          MACRO
  79.          TTCHEA &EBCDIC,&ASCII,&COUNT
  80.          GBLC  &TTAE,&TTEA,&TTTEA
  81.          LCLA  &X
  82. .*
  83. .LOOP    ANOP
  84.          ORG   &TTEA+&EBCDIC+&X
  85.          DC    AL1(&ASCII+&X)
  86.          ORG   &TTTEA+&EBCDIC+&X
  87.          DC    AL1(0)
  88. &X       SETA  &X+1
  89.          AIF   ('&COUNT' EQ '').END
  90.          AIF   (&X LT &COUNT).LOOP
  91. .END     MEND
  92.          EJECT
  93. *
  94. *  BUILD THE TRANSLATE TABLES
  95. *
  96. TABLES   CSECT
  97.          ENTRY ATOETBL,ETOATBL,ETOAERRT
  98.          TTABLES ATOETBL,C':',ETOATBL,X'3A',ETOAERRT   DEFAULT IS COLON
  99.          TTCH  X'00',X'00'             NUL - NULL
  100.          TTCH  X'01',X'01'             SOH - START OF HEADER
  101.          TTCH  X'02',X'02'             STX - START OF TEXT
  102.          TTCH  X'03',X'03'             ETX - END OF TEXT
  103. *
  104. *  DUE TO A GLITCH IN TCAM, AN EBCDIC EOT (X'37') WILL NOT
  105. *  BE SENT OUT AS AN ASCII EOT (X'04') EVEN IF THE TRANSLATE
  106. *  TABLE IS SET UP THAT WAY.  THEREFORE NIH HAS X'33' GOING
  107. *  TO AN EOT IN ITS OUTGOING TSO TRANSLATE TABLE.
  108. *
  109.          TTCHEA X'37',X'04'            EOT - END OF TRANSMISSION
  110.          TTCHEA X'33',X'04'            EOT - END OF TRANSMISSION
  111.          TTCHAE X'33',X'04'            EOT - END OF TRANSMISSION
  112.          TTCH  X'2D',X'05'             ENQ - ENQUIRY
  113.          TTCH  X'2E',X'06'             ACK - ACKNOWLEDGE
  114.          TTCH  X'2F',X'07'             BEL - BELL
  115.          TTCH  X'16',X'08'             BS  - BACKSPACE
  116.          TTCH  X'05',X'09'             HT  - HORIZONTAL TAB
  117.          TTCH  X'25',X'0A'             LF  - LINEFEED
  118.          TTCH  X'0B',X'0B'             VT  - VERTICAL TAB
  119.          TTCH  X'0C',X'0C'             FF  - FORM FEED
  120.          TTCH  X'0D',X'0D'             CR  - CARRIAGE RETURN
  121.          TTCH  X'0E',X'0E'             SO  - SHIFT OUT
  122.          TTCH  X'0F',X'0F'             SI  - SHIFT IN
  123.          TTCH  X'10',X'10'             DLE - DATA LINK ESCAPE
  124.          TTCH  X'11',X'11'             DC1 - DEVICE CONTROL 1 (XON)
  125.          TTCH  X'12',X'12'             DC2 - DEVICE CONTROL 2
  126.          TTCH  X'35',X'13'             DC3 - DEVICE CONTROL 3 (XOFF)
  127.          TTCH  X'3C',X'14'             DC4 - DEVICE CONTROL 4
  128.          TTCH  X'3D',X'15'             NAK - NEGATIVE ACKNOWLEDGE
  129.          TTCH  X'32',X'16'             SYN - SYNCHRONOUS IDLE
  130.          TTCH  X'26',X'17'             ETB - END TRANSMISSION BLOCK
  131.          TTCH  X'18',X'18'             CAN - CANCEL
  132.          TTCH  X'19',X'19'             EM  - END OF MEDIUM
  133.          TTCH  X'3F',X'1A'             SUB - SUBSTITUTE
  134.          TTCH  X'27',X'1B'             ESC - ESCAPE
  135.          TTCH  X'1C',X'1C'             FS  - FILE SEPARATOR
  136.          TTCH  X'1D',X'1D'             GS  - GROUP SEPARATOR
  137.          TTCH  X'1E',X'1E'             RS  - RECORD SEPARATOR
  138.          TTCH  X'1F',X'1F'             US  - UNIT SEPARATOR
  139.          TTCH  C' ',X'20'              SPACE
  140.          TTCH  C'!',X'21'              EXCLAMATION POINT
  141.          TTCH  C'"',X'22'              DOUBLE QUOTE
  142.          TTCH  C'#',X'23'              POUND SIGN
  143.          TTCH  C'$',X'24'              DOLLAR SIGN
  144.          TTCH  C'%',X'25'              PERCENT SIGN
  145.          TTCH  C'&&',X'26'             AMPERSAND
  146.          TTCH  C'''',X'27'             SINGLE QUOTE
  147.          TTCH  C'(',X'28'              LEFT PARENTHESIS
  148.          TTCH  C')',X'29'              RIGHT PARENTHESIS
  149.          TTCH  C'*',X'2A'              ASTERISK
  150.          TTCH  C'+',X'2B'              PLUS SIGN
  151.          TTCH  C',',X'2C'              COMMA
  152.          TTCH  C'-',X'2D'              MINUS SIGN (HYPHEN)
  153.          TTCHEA X'62',X'2D'            WYLBUR INSERTED HYPHEN
  154.          TTCH  C'.',X'2E'              PERIOD
  155.          TTCH  C'/',X'2F'              SLASH
  156.          TTCH  C'0',X'30',10           DIGITS 0-9
  157.          TTCH  C':',X'3A'              COLON
  158.          TTCH  C';',X'3B'              SEMICOLON
  159.          TTCH  C'<',X'3C'              LESS THAN
  160.          TTCH  C'=',X'3D'              EQUAL SIGN
  161.          TTCH  C'>',X'3E'              GREATER THAN
  162.          TTCH  C'?',X'3F'              QUESTION MARK
  163.          TTCH  C'@',X'40'              AT SIGN
  164.          TTCH  C'A',X'41',9            UPPER CASE A-I
  165.          TTCH  C'J',X'4A',9            UPPER CASE J-R
  166.          TTCH  C'S',X'53',8            UPPER CASE S-Z
  167.          TTCH  X'AD',X'5B'             LEFT SQUARE BRACKET
  168.          TTCH  X'E0',X'5C'             BACKSLASH
  169.          TTCH  X'BD',X'5D'             RIGHT SQUARE BRACKET
  170.          TTCH  X'5F',X'5E'             CIRCUMFLEX (EBCDIC NOT SIGN)
  171.          TTCHEA X'BE',X'5E'            CIRCUMFLEX
  172.          TTCH  C'_',X'5F'              UNDERSCORE
  173.          TTCH  X'79',X'60'             ACCENT GRAVE
  174.          TTCH  C'a',X'61',9            LOWER CASE A-I
  175.          TTCH  C'j',X'6A',9            LOWER CASE J-R
  176.          TTCH  C's',X'73',8            LOWER CASE S-Z
  177.          TTCH  X'8B',X'7B'             LEFT CURLY BRACE
  178.          TTCHEA X'C0',X'7B'            LEFT CURLY BRACE
  179.          TTCH  X'4F',X'7C'             VERTICAL BAR
  180.          TTCH  X'9B',X'7D'             RIGHT CURLY BRACE
  181.          TTCHEA X'D0',X'7D'            RIGHT CURLY BRACE
  182.          TTCH  X'A1',X'7E'             TILDE
  183.          TTCH  X'07',X'7F'             DEL - DELETE
  184.          ORG
  185.          EJECT
  186. *
  187. *   THIS ROUTINE RETURNS THE NAME OF THE SYSTEM WIDE PROFILE
  188. *   USE THIS TO SET DEFAULTS FOR ALL TSO KERMIT USERS IN THE
  189. *   SYSTEM
  190. *
  191. *   RETURN - REG 1 POINTS TO NAME OF SYSTEM PROFILE
  192. *            REG 0 IS LENGTH OF STRING
  193. *
  194.          ENTRY SYSPRODS
  195. SYSPRODS BALR  15,0
  196.          USING *,15
  197.          LA    1,SYSPROF               ADDRESS OF PROFILE NAME
  198.          LA    0,SYSPROFL              LENGTH OF PROFILE NAME
  199.          BR    14
  200.          DROP  15
  201. *
  202. *  PLACE THE FULLY QUALIFIED DSNAME OF YOUR SYSTEM PROFILE IN SYSPROF
  203. *
  204. SYSPROF  DC    C'NIH.KERMIT.PROFILE.CLIST'
  205. SYSPROFL EQU   *-SYSPROF
  206.          EJECT
  207. *
  208. *   THIS ROUTINE RETURNS THE NAME OF THE USER PROFILE
  209. *   USE THIS TO SET DEFAULTS FOR EACH TSO KERMIT USER
  210. *
  211. *   RETURN - REG 1 POINTS TO NAME OF USER PROFILE
  212. *            REG 0 IS LENGTH OF STRING
  213. *
  214.          ENTRY USRPRODS
  215. USRPRODS BALR  15,0
  216.          USING *,15
  217.          LA    1,USRPROF               ADDRESS OF PROFILE NAME
  218.          LA    0,USRPROFL              LENGTH OF PROFILE NAME
  219.          BR    14
  220.          DROP  15
  221. *
  222. *      PLACE THE DATA SET NAME OF YOUR USER PROFILE IN USRPROF
  223. *      THE USERID PREFIX WILL BE ADDED BY TSO KERMIT
  224. *
  225. USRPROF  DC    C'KERMIT.PROFILE.CLIST'
  226. USRPROFL EQU   *-USRPROF
  227.          EJECT
  228. *
  229. *   THIS ROUTINE RETURNS A NAME USED IN SET VOLUME TO INDICATE
  230. *   THAT THE SYSTEM MAY CHOOSE THE VOLUME TO BE USED TO STORE
  231. *   A RECEIVED DATA SET.
  232. *
  233. *   RETURN - REG 1 POINTS TO STRING CONTAINING NAME
  234. *            REG 0 IS LENGTH OF STRING
  235. *
  236.          ENTRY XANYVOL
  237. XANYVOL  BALR  15,0
  238.          USING  *,15
  239.          LA    1,ANYVOL                ADDRESS OF NAME
  240.          LA    0,ANYVOLL               LENGTH OF NAME
  241.          BR    14
  242.          DROP  15
  243. *
  244. *  PLACE THE NAME OF YOUR CHOICE HERE
  245. *
  246. ANYVOL   DC    C'TMP'
  247. ANYVOLL  EQU   *-ANYVOL
  248.          EJECT
  249. *
  250. *   THIS ROUTINE RETURNS A STRING CONTAINING THE USERID
  251. *   PREFIX THAT TSO KERMIT USES TO PREFIX DATA SET NAMES
  252. *   UNLESS THE DATA SET NAMES ARE IN QUOTES.  UPON
  253. *   ENTRY TO THE ROUTINE, ADDRESSES OF THE COMMAND
  254. *   PROCESSOR PARAMETER LIST AND THE USER PROFILE TABLE ARE
  255. *   AVAILABLE IN REGISTERS.  NIH USES STANDARD IBM CONTROL
  256. *   BLOCKS IN THIS AREA.  INSTALLATIONS WHICH HAVE MODIFIED
  257. *   THE WAY DATA SET NAMES ARE PREFIXED CAN MODIFY
  258. *   THIS ROUTINE.  NIH USES THE FIELDS UPTPREX AND
  259. *   UPTPREFL FOR PREFIX AND LENGTH RESPECTIVELY.  IF YOUR
  260. *   INSTALLATION USES THE SAME STANDARDS, THEN NO
  261. *   MODIFICATIONS WILL BE NECESSARY ON YOUR PART.
  262. *
  263. *   INPUT REG 1=A(CPPL)
  264. *         REG 0=A(UPT)
  265. *
  266. *   RETURN - REG 1 POINTS TO USER PREFIX
  267. *            REG 0 IS PREFIX LENGTH
  268. *
  269.          ENTRY USERID
  270. USERID   BALR  15,0
  271.          USING *,15
  272.          LR    1,0
  273.          USING UPT,1
  274.          SR    0,0
  275.          IC    0,UPTPREFL
  276.          LA    1,UPTPREFX
  277.          DROP  1
  278.          BR    14
  279.          EJECT
  280.          IKJCPPL
  281.          EJECT
  282.          IKJUPT
  283.          END
  284.