home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
kermit.columbia.edu
/
kermit.columbia.edu.tar
/
kermit.columbia.edu
/
archives
/
deleteme.zip
/
ik0cmd.asm
< prev
next >
Wrap
Assembly Source File
|
1993-10-21
|
223KB
|
2,726 lines
*COPY IK0CMD 03000000
CHECKVER IK0CMD,4.3 @SC90072 03000500
TITLE 'USNTRF Routine - execute main loop' 03001000
* Execute Kermit commands (beginning with default TAKE files) 03001500
* Entry: environment already set up 03002000
* Exit: R15=0 03002500
* ERRNUM set appropriately 03003000
USNTRF ENTER 03003500
LA 0,KRMPROT @SC86295 03004000
LA 1,USNCMD Full list of commands @SC87117 03004500
BAL 14,LOOPS Set up loop return @SC86295 03005000
LA 2,USRTAKE 03005500
LA 1,LUSRT Length of name @SC86295 03006000
BAL 9,LUPTIN Test user KERMINI @SC86295 03006500
NOP 0 Not found, skip it @SC86295 03007000
LA 2,SYSTAKE @SC86135 03007500
LA 1,LSYST Length of name @SC86295 03008000
BAL 9,LUPTIN Test system KERMINI @SC86295 03008500
NOP 0 Not found, skip it @SC86295 03009000
MVI ERRNUM,ERRNFT No transfers yet @SC86295 03009500
KCALL SUPFNC,6,E=LOOP @SC86295 03010000
OI KFLG,CMDL+SIGN Got command line, suppress banner@SC86295 03010500
B LOOP @SC86295 03011000
* 03011500
KRMININC WTEXT 'Kermit-&KSYS Version &KVRSN..&KEDIT &KTAG (&KDATE.)' 03012000
WTEXT '&ENTHINT' @SC91295 03012500
OI KFLG,SIGN Banner done @SC86295 03013000
KRMPROB PTEXT BLANK,1 And leave a blank line 03013500
B LUPWRT Not an error @SC86295 03014000
* 03014500
KRMPROT TM KFLG,CMDL @SC86295 03015000
BZ KRMPROCL Go if Not cmd line 03015500
NI KFLG,255-CMDL Turn off command line @SC86295 03016000
OI KFLG,CMDC Command from cmd line @SC86295 03016500
L 1,CBUF address of cmd 03017000
L 0,CLEN Length @SC86171 03017500
B LUPPRS Go process it @SC86295 03018000
* 03018500
KRMPROCL TM KFLG,CMDC @SC86295 03019000
BZ KRMPROR Go if not cmd line 03019500
KCALL SUPFNC,7,E=(KRMXITQ,Z) Go if nothing stacked @SC86295 03020000
KRMPROR TM KFLG,SIGN Already printed banner? @SC86295 03020500
BO KRMPROX Yes, or suppressed @SC86295 03021000
KCALL SUPFNC,7,E=(KRMININC,Z) Go if nothing stacked @SC86295 03021500
KRMPROX LA 3,CMD @SC86295 03022000
LA 4,KPRPT Current prompt @SC87268 03022500
SR 0,0 @SC87268 03023000
IC 0,KPRPL Prompt length @SC87268 03023500
RTEXT (3),PROMPT=((4),(0)) @SC87268 03024000
LA 1,CMD Ptr to command @SC86171 03024500
B LUPPRS Go process it @SC86295 03025000
* 03025500
USNCMD KW '&AAAEXIT',KRMXIT,MIN=2 @SC92300 03026000
KW '&AAAQUIT',KRMXIT @SC92300 03026500
AIF ('&KSYS' NE 'TSO').TS0Z @SC88035 03027000
KW '&AAAAEND',KRMXIT,MIN=2 Synonym for QUIT @SC88035 03027500
.TS0Z ANOP 03028000
USNCMDX KW '&AAAABYE',KRMBYE,MIN=3 @SC86155 03028500
KW '&AAAADIR',KRMDIR,MIN=3 @SC86295 03029000
KW '&AAAECHO',KRMECO,MIN=2 @SC92300 03029500
KW '&AAAAFIN',KRMFIN,MIN=3 @SC86155 03030000
KW '&AAAAGET',KRMGET @SC86155 03030500
KW '&AAAHELP',KRMHLP @SC92300 03031000
KW '&AALOCAL',LUPTOK,MIN=3 @SC86295 03031500
KW '&RECEIVE',KRMREC,MIN=3 @SC92300 03032000
KW '&REMOTE',KRMREM,MIN=3 @SC86155 03032500
KW '&AAASEND',KRMSND,MIN=3 @SC92300 03033000
KW '&AAASERV',KRMSRV,MIN=3 @SC92300 03033500
KW '&AAXECHO',KRMXPE,MIN=2 @SC86204 03034000
KW '&AAXTYPE',KRMNPS,MIN=2 @SC86204 03034500
SRVKCMD KW '&KSYS.',LUPHST,MIN=2 Valid in Server mode ... @SC86295 03035000
AIF ('&KSYS' NE 'CMS').CM0Z @SC86355 03035500
KW 'CP',LUPCP,MIN=2 @SC86295 03036000
.CM0Z KW 'CWD',LUPCWD,MIN=2 @SC86295 03036500
KW '&AAAGIVE',LUPGIV,MIN=2 @SC87117 03037000
KW '&AAAHINT',LUPHNTS @SC91295 03037500
KW '&AAAHOST',LUPHST,MIN=2 @SC87253 03038000
KW 'KERMIT',LUPKRM @SC90059 03038500
KW '&SIMULAT',LUPSIM,MIN=2 @SC91312 03039000
USNCSET KW '&AAAASET',LUPSET,MIN=3 @SC91320 03039500
KW '&AAASHOW',LUPSHO,MIN=2 @SC86295 03040000
KW '&AASPACE',LUPSPA,MIN=2 @SC86295 03040500
KW '&ASTATUS',LUPSTA,MIN=2 @SC86295 03041000
KW '&AAATAKE',LUPTAK,MIN=2 @SC86295 03041500
KW '&AATDUMP',LUPDMP,MIN=2 @SC86295 03042000
KW '&AAATYPE',LUPHSTI,MIN=TYPMIN @SC88018 03042500
KW '&VERSION',LUPVERS,MIN=2 @SC90339 03043000
KW 03043500
* 03044000
KRMECO L 3,ADR Pick rest of line 03044500
ICM 4,B'1111',LEN Remaining data length 03045000
BNP KRMPROB Go if nothing left in cmd 03045500
B LUPWRT Else, print the rest @SC86295 03046000
* @SC86155 03046500
KRMREM KCALL GENCMD,0,E=LUPERK Send remote command @SC86295 03047000
B KRMXFZ @SC87300 03047500
* @SC86155 03048000
KRMBYE BAL 14,LUPCNF Check for illegal extras @SC86295 03048500
KCALL GENCMD,AL Send Logout command @SC86155 03049000
B KRMXFZ @SC87300 03049500
* 03050000
KRMFIN BAL 14,LUPCNF Check for illegal extras @SC86295 03050500
KCALL GENCMD,AF Send Finish command @SC86155 03051000
B KRMXFZ @SC87300 03051500
* 03052000
KRMGET PTEXT '&FORFSPC - ',AREG=1,LREG=0 @SC88035 03052500
BAL 2,USNASKA Prompt if user omitted args @SC88035 03053000
LA 0,FFGET @SC88049 03053500
KCALL FSPEC,JFSPEC Get foreign filespec @SC86295 03054000
BAL 14,LUPCKFN @SC86295 03054500
PTEXT '&SYSFSPC - ',AREG=1,LREG=0 @SC88035 03055000
BAL 2,USNASKT Prompt if necessary @SC88035 03055500
LA 0,FFGET+FFRCF @SC88049 03056000
KCALL FSPEC,FILNAM Get native filespec, if any @SC86295 03056500
BAL 14,LUPCKFN @SC86295 03057000
BAL 14,LUPCNF Check for illegal extras @SC86295 03057500
TM FL3,APPN Going to append anyway? @SC90033 03058000
BO USNGCK Yes, ignore collisions @SC90033 03058500
TM FL1,REN+ROVR Warning ON and name given? @SC88089 03059000
BNO USNGCK No, don't check for collision yet @SC88089 03059500
LA 0,FFNEW+FFGET @SC87012 03060000
KCALL FSPEC,FILNAM,E=LUPWRTE Avoid collisions @SC87012 03060500
USNGCK DS 0H @SC88089 03061000
BAL 8,IPKSET Set state table, exchange parms @SC86295 03061500
* Init packet Rpack interpret input tables @SC86155 03062000
DC AL1(AY),AL3(0) ACK'ed @SC86155 03062500
DC XL1'FF',AL3(KRMGETAB) Stop @SC88074 03063000
DC AL1(00),AL3(KRMGETAB) Error @SC86155 03063500
BAL 9,PAKFIL Copy file specification to buffer @HF86223 03064000
BAL 9,ENCODEN Encode file-spec @SC86295 03064500
MVI STYPE,AR Packet type = receive initiate @SC86155 03065000
KCALL SPACK,E=KRMGETAB Send name @SC86155 03065500
KCALL RECEIV @SC86155 03066000
B KRMXFZ @SC86239 03066500
* 03067000
KRMGETAB KCALL INTINI,0 @SC86155 03067500
B KRMXFZ @SC87300 03068000
* 03068500
KRMREC LA 0,FFRCF @SC86295 03069000
KCALL FSPEC,FILNAM Get filespec @SC86295 03069500
BAL 14,LUPCKFN @SC86295 03070000
BAL 14,LUPCNF Check for illegal extras @SC86295 03070500
TM FL3,APPN Going to append anyway? @SC90033 03071000
BO USNRCK Yes, ignore collisions @SC90033 03071500
TM FL1,REN+ROVR Warning ON and name given? @SC88089 03072000
BNO USNRCK No, don't check for collision yet @SC88089 03072500
LA 0,FFNEW+FFGET @SC87012 03073000
KCALL FSPEC,FILNAM,E=LUPWRTE Avoid collisions @SC87012 03073500
TM FL4,NMCHNG @SC90061 03074000
BZ USNRCK @SC90061 03074500
PTEXT '&COLDISC' @SC90061 03075000
CLI CLSNFL,C'D' @SC90061 03075500
BE LUPWRTE @SC90061 03076000
USNRCK DS 0H @SC88089 03076500
KCALL INTINI,3,E=KRMXFZ Initialize for receive @SC87300 03077000
MVI RTYPE,0 No packet read yet @SC88074 03077500
KCALL RECEIV 03078000
B KRMXFZ @SC86239 03078500
* 03079000
KRMNPS OI FL4,NPS @SC86165 03079500
MVI TCTLQ,0 Turn off control quoting @SC86165 03080000
* 03080500
KRMSND PTEXT '&SYSFSPC - ',AREG=1,LREG=0 @SC88035 03081000
BAL 2,USNASKA Prompt if necessary @SC88035 03081500
SR 6,6 No extra files yet @SC88306 03082000
L 7,MSNDBUF Start of buffer @SC88306 03082500
USNSND1 DS 0H @SC88306 03083000
LA 0,FFSND @SC88035 03083500
KCALL FSPEC,IFILE Get filespec @SC86295 03084000
BAL 14,LUPCKFN @SC86295 03084500
PTEXT '&FORFSPC - ',AREG=1,LREG=0 @SC88035 03085000
BAL 2,USNASKT Prompt if user omitted args @SC88035 03085500
LA 0,FFSND+FFRCF @SC86295 03086000
KCALL FSPEC,JFSPEC Get filespec @SC86295 03086500
BAL 14,LUPCKFN @SC86295 03087000
CLI BRK,C',' Multi-file option? @SC88306 03087500
BNE USNSND2 @SC88306 03088000
A 6,F1 Count files to send @SC88306 03088500
PTEXT '&MANYFIL' @SC88306 03089000
CH 6,=Y(MSNDMAX) Too many? @SC88306 03089500
BH LUPINV Too bad @SC88306 03090000
MVC 0(LFSTF,7),IFILE Save filespecs + options @SC89218 03090500
LA 7,LFSTF(,7) Advance ptr into buffer @SC89218 03091000
PTEXT '&SYSFSPC - ',AREG=1,LREG=0 @SC88306 03091500
BAL 2,USNASKT Prompt if necessary @SC88306 03092000
B USNSND1 Go for another name @SC88306 03092500
USNSND2 ST 7,MSNDPTR Save buffer scan ptr @SC88306 03093000
BAL 14,LUPCNF Check for illegal extras @SC86295 03093500
KRMSNDBG KCALL SEND,0 @SC90239 03094000
KRMXFZ SR 3,3 @SC86355 03094500
ICM 3,1,ERRNUM Ok? @SC86355 03095000
BZ LOOP Yes, get next command @SC86355 03095500
KCALL PEMSG No, convert error number @SC91064 03096000
OI FL5,CMERR Note error @SC91064 03096500
B LOOP @SC91064 03097000
* 03097500
USNASKA NI KFLG,255-PRMP Assume no prompting @SC88035 03098000
FTOKN N=USNASK Check for some text waiting @SC88035 03098500
BR 2 Ok, use it @SC88035 03099000
USNASKT TM KFLG,PRMP Is prompting required? @SC88035 03099500
BZR 2 No, ok @SC88035 03100000
USNASK OI KFLG,PRMP Must prompt for both filespecs @SC88035 03100500
LA 3,CMD Use input buffer @SC88035 03101000
ST 3,ADR @SC88035 03101500
RTEXT (3),PROMPT=((1),(0)) Ask for filespec @SC88035 03102000
ST 0,LEN Save string length @SC88035 03102500
BR 2 @SC88035 03103000
* 03103500
KRMXPE L 5,ADR Pointer to rest of line @HF86150 03104000
ICM 4,15,LEN Remaining data length @HF86150 03104500
BNP KRMXPEH Go if nothing specified @HF86150 03105000
L 3,RBUF @HF86150 03105500
MVC 0(256,3),0(5) Copy to disk read buffer @HF86150 03106000
AR 4,3 Get end @HF86150 03106500
STM 3,4,TXTPTR Point to text to copy @HF86150 03107000
OI FL4,SFM+NPS Data source: text string @SC86165 03107500
XC FLNOPTS(LFOPTS),FLNOPTS @SC91116 03108000
MVI TCTLQ,AUP Turn on control quoting @SC86165 03108500
MVC MSNDPTR,MSNDBUF No extra files @SC88306 03109000
B KRMSNDBG @SC86165 03109500
* 03110000
KRMXPEH PTEXT '&XTYPMSG' @SC86165 03110500
B LUPWRT @SC86295 03111000
* 03111500
KRMSRV BAL 14,LUPCNF Check for illegal extras @SC86295 03112000
KCALL SERVER Call SERVER routine @SC86295 03112500
B KRMXFZ Return to normal mode @SC86355 03113000
* 03113500
KRMDIR LA 0,FFUTL+FFWLD @SC86295 03114000
KCALL FSPEC,FILNAM Get pattern filespec @SC86295 03114500
BAL 14,LUPCKFN Make sure ok @SC86295 03115000
PTEXT '&NOTFOUN' File not found if error here @SC90264 03115500
LA 0,13 @SC86295 03116000
KCALL DISKIO,FILNAM,E=LUPFNF Do a DIR on it @SC90264 03116500
MVI ERRNUM,ERRNOE No problem @SC90264 03117000
B LOOP @SC86295 03117500
* 03118000
KRMHLP KCALL KHELP Issue help request @SC86355 03118500
B LOOP @SC86355 03119000
* 03119500
KRMXIT FTOKN N=KRMXITQ,H=LUPCRH Check for illegal extras @SC86295 03120000
B LUPBAD Not just QUIT, maybe system Q @SC86295 03120500
* 03121000
KRMXITQ NXTFSET ,END Flush pending file list @SC86355 03121500
L 2,TAKLEVK @SC86295 03122000
KRMXITL BCTR 2,0 @SC86295 03122500
LTR 3,2 Any pending TAKE files? @SC86295 03123000
BM RTRN0 No @SC86295 03123500
SLA 3,2 @SC86295 03124000
CLOSF TAKTABK(3) Close the open file @SC86295 03124500
B KRMXITL Keep checking @SC86295 03125000
LOCALS , @SC86295 03125500
* See SERVER for mapping @SC86295 03126000
DS A Return adr if no more TAKE stuff @SC86295 03126500
DS A Adr of command table @SC86295 03127000
TAKLEVK DS F Take file level @SC86295 03127500
TAKTABK DS (TAKMAX)F Tickets for I/O @SC86295 03128000
KFLG DS X Local flags in main program @SC86295 03128500
PRMP EQU X'10' Prompting for filespecs @SC88035 03129000
SIGN EQU X'04' Already printed Kermit banner @SC86295 03129500
CMDC EQU X'02' Command gotten from cmd 03130000
CMDL EQU X'01' Data on cmd line 03130500
USNTRF EXIT 03131000
TITLE 'SIMLAT Routine - set up to replay a file' @SC91312 03131500
* Begin to read a file for supplying incoming packets in lieu @SC91312 03132000
* of reading them from the communication line @SC91312 03132500
* Entry: ADR,LEN point to file name @SC91312 03133000
* Exit: R15=0 if ok, 1 if bad (message already printed) @SC91312 03133500
* ERRNUM set appropriately @SC91312 03134000
SIMLAT ENTER , @SC91312 03134500
BAL 9,SIMCLS Close old input file, if any @SC91312 03135000
SR 0,0 @SC91312 03135500
KCALL FSPEC,FILNAM,E=SIMERR Get filespec @SC91312 03136000
MVI ERRNUM,ERRNOE Reset error @SC91312 03136500
FTOKN N=SIMOK,H=SIMCRH @SC91312 03137000
PTEXT '&EXTRAOP' @SC91312 03137500
B SIMERR @SC91312 03138000
SIMOK OPENF I,FILNAM,FILFDB,SIMPTR,E=SIMFNF @SC91312 03138500
B RTRN0 @SC91312 03139000
SIMFNF BAL 9,SIMCLS Close input file @SC91312 03139500
MVI ERRNUM,ERRFNF File not found @SC91312 03140000
SIMERF PTEXT '&SIMSHRT' @SC91312 03140500
B SIMERR @SC91312 03141000
* 03141500
SIMCLS CLOSF SIMPTR Close it @SC91312 03142000
BR 9 @SC91312 03142500
* 03143000
SIMCRH PTEXT '&NOOPERS' @SC91312 03143500
SIMERR WTEXT (3),(4) Return error message @SC91312 03144000
B RTRN1 @SC91312 03144500
* 03145000
LOCALS , @SC91312 03145500
EXIT @SC91312 03146000
TITLE 'SET Routine - perform SET command options' 03146500
* Set/change values in STORAG. 03147000
* Entry: SCANPTR string has option 03147500
* Exit: R15=0 if ok, 1 if help needed, 2 if bad parameter name 03148000
* ERRNUM unchanged 03148500
SET ENTER 03149000
MVI SETXI,X'97' XI instruction @SC86273 03149500
NTOKN N=RTRN2 @SC86171 03150000
NI FL3,255-PXCH Make sure server renegotiates @SC86295 03150500
L 3,=A(SETCMDS) @SC90040 03151000
USING SETCMDS,3 Address CSECT throughout @SC90040 03151500
SCAN SETCMDKW,RTRN1 @SC86295 03152000
B RTRN2 @SC86295 03152500
* 03153000
SETCMDS CSECT @SC90040 03153500
SETTTKW KW 'KP',SETTTKP Special TTABLE option @SC90278 03154000
KW '&AAAAOFF',SETTTF,MIN=2 @SC92352 03154500
KW '&AAAAAON',SETTTN,MIN=2 @SC92352 03155000
KW , @SC92352 03155500
* 03156000
SETOOKW KW '&AAAAOFF',SETOFF,MIN=2 @SC87166 03156500
KW '&AAAAAON',SETON,MIN=2 @SC87166 03157000
KW , @SC87166 03157500
* 03158000
SETOOFRC KW '&AAAAOFF',SETOFFL,MIN=2 @SC91275 03158500
SETOFRC KW '&AAAAAON',SETONL,MIN=2 @SC91275 03159000
KW '&AFORCED',SETFRC @SC91275 03159500
KW , @SC91275 03160000
* 03160500
SETCMDOO KW '&AAAAOFF',SETOFFS,MIN=2 @SC87166 03161000
SETONKW KW '&AAAAAON',SETONS,MIN=2 @SC87166 03161500
KW , @SC86171 03162000
SET CSECT @SC90040 03162500
* 03163000
SETFRC MVI LCKFRC,X'21' Enable FORCE mode @SC91275 03163500
B SETON @SC91275 03164000
* 03164500
SETTTF LA 1,ATOE Use normal tables @SC92352 03165000
LA 2,ETOA @SC92352 03165500
STM 1,2,AEPTRS @SC92352 03166000
B SETOFF @SC92352 03166500
SETOFFL MVI LCKFRC,0 Disable FORCE mode @SC91275 03167000
SETOFF EX 0,0(9) Yes, first turn flag on... @SC87166 03167500
EX 0,SETXI Then off @SC86273 03168000
B RTRN0 @SC87166 03168500
* 03169000
SETONL MVI LCKFRC,0 Disable FORCE mode @SC91275 03169500
SETON EX 0,0(9) Turn flag on @SC87166 03170000
B RTRN0 @SC87166 03170500
* 03171000
SETOFFS B 4(9) @SC87166 03171500
* 03172000
SETONS BR 9 Go to ON handler @SC87166 03172500
* 03173000
SETCMDS CSECT @SC90040 03173500
SETTRKW KW '&AAAATTY',SETT,T @SC91320 03174000
KW '&SERIES1',SETT,S @SC91320 03174500
KW '&GRAPHIC',SETT,G @SC91320 03175000
KW '&AAAAAEA',SETT,A @SC91320 03175500
KW '&VTAMTTY',SETT,V @SC91320 03176000
KW '&FULLSCR',SETT,F @SC92030 03176500
KW '&AAANONE',SETT,N @SC91320 03177000
KW , @SC87166 03177500
* 03178000
SETBLKKW KW '1-BYTE',SETT,1 @SC92085 03178500
KW '2-BYTE',SETT,2 @SC92085 03179000
KW '3-BYTE',SETT,3 @SC92085 03179500
KW '&BLNKFRE',SETT,B @SC92085 03180000
KW , @SC92085 03180500
SET CSECT @SC90040 03181000
* 03181500
SETT MVC 0(1,8),KWCODE(1) Save value in specified field @SC91320 03182000
B RTRN0 @SC87166 03182500
* 03183000
SETCMDS CSECT @SC90040 03183500
PFXUNPFX KW '&PREFIXD',SETCTL1,0 @SC93173 03184000
KW '&UNPREFD',SETCTL1,1 @SC93173 03184500
KW , @SC93173 03185000
* 03185500
SETSWT KW '&CONTINU',SETOFF @SC86171 03186000
KW '&AAAHALT',SETON @SC86171 03186500
KW , @SC86171 03187000
* 03187500
SETDSC KW '&DISCARD',SETOFF @SC86225 03188000
KW '&AAAKEEP',SETON @SC86225 03188500
KW , @SC86225 03189000
* 03189500
SETCLSKW KW '&AAPPEND',SETCLSA,A @SC91320 03190000
KW '&ABACKUP',SETCLSR,B @SC91320 03190500
KW '&DISCARD',SETCLSR,D @SC91320 03191000
KW '&OVERWRI',SETCLSN,O @SC91320 03191500
KW '&ARENAME',SETCLSR,R @SC91320 03192000
KW , @SC90033 03192500
* 03193000
SETOVWKW KW '&DEFAULT',SETOFF @SC90033 03193500
KW '&PRESERV',SETON @SC90033 03194000
KW , @SC90033 03194500
* 03195000
SETPAR KW '&AAAMARK',SETOFF @SC86316 03195500
KW '&AAANONE',SETON @SC86316 03196000
KW , @SC86316 03196500
SET CSECT @SC90040 03197000
* 03197500
SETTABS LA 4,SETCMDOO @SC87166 03198000
BAL 14,SETSCN @SC87166 03198500
B SETTBON Turn on @SC86355 03199000
NI FL2,255-TABS Turn off @SC86355 03199500
MVC TABCNT,F0 Clear count @SC86355 03200000
B RTRN0 @SC86295 03200500
SETTBON OI FL2,TABS Turn on @SC86355 03201000
MVC TABCNT,F0 Clear count @SC86355 03201500
SR 0,0 Init previous tab @SC86355 03202000
LA 3,TABTBL Point to start of tab table @TS86100 03202500
LA 8,255 Limit on tab stops @SC86355 03203000
LA 5,TABCNT End of table @SC86355 03203500
SETTBLP ICM 2,15,LEN Any more tokens? @SC86355 03204000
BNP SETTBN No, done @SC86355 03204500
STC 0,0(3) Save previous tab @SC86355 03205000
BAL 2,SETNUM Read number @SC86355 03205500
CLM 0,1,0(3) Is this tab higher than previous? @SC86355 03206000
BNH SETTBSEQ No, tab out of sequence @TS86100 03206500
CR 3,5 Exceeded capacity? @SC86355 03207000
BNL SETTBHI Yes @TS86100 03207500
STC 0,0(3) Save tab setting @TS86100 03208000
LA 3,1(3) Bump counter @SC86355 03208500
B SETTBLP @SC86355 03209000
SETTBN LA 0,TABTBL Point to start of tab table @SC86355 03209500
SR 3,0 Get length of table @SC86355 03210000
STH 3,TABCNT Save the tab count @TS86100 03210500
B RTRN0 @SC86355 03211000
SETTBHI PTEXT '&MANYTAB' @SC86355 03211500
B SETTBER Return error @SC86355 03212000
SETTBSEQ PTEXT '&BADTABS' @TS86100 03212500
SETTBER NI FL2,255-TABS Turn off @SC86355 03213000
B SUBERR Return error @TS86100 03213500
* 03214000
SETLIN BAL 2,SETFSTR Get fixed-format string @SC86166 03214500
PTEXT '&BADCOMM' @SC87351 03215000
KCALL SETMSG,5,E=SUBERR Make sure it's ok @SC87351 03215500
B RTRN0 @SC86166 03216000
* 03216500
SETPRP LA 0,KPRPT Ptr to new prompt string @SC87351 03217000
KCALL SUPFNC,11 Ok it with system @SC87351 03217500
B RTRN0 @SC87351 03218000
* 03218500
SETCLSA OI FL3,APPN Set APPEND ON @SC90033 03219000
NI FL1,255-REN ... and "WARN" OFF @SC90033 03219500
B SETCLSZ @SC90033 03220000
SETCLSR OI FL1,REN Set "WARN" ON @SC90033 03220500
B SETCLSY ... and APPEND OFF @SC90033 03221000
SETCLSN NI FL1,255-REN @SC90033 03221500
SETCLSY NI FL3,255-APPN @SC90033 03222000
SETCLSZ B SETT Save collision code @SC91320 03222500
* 03223000
KSETPRC , System-specific options @SC86355 03223500
* 03224000
SETCMDS CSECT @SC90040 03224500
* An alternate name must follow immediately the primary. @SC92113 03225000
* All primary names must be the same length (with blanks). @SC92113 03225500
* (but names not associated in pairs can be any length). @SC92233 03226000
SETALFKW KW 'LATIN1 ',SETALF1,MIN=6 @SC91325 03226500
SETALFL1 KW 'L1',SETALFX,MIN=2 Alternate name @SC90152 03227000
KW 'ARABIC',SETALF1,MIN=2 @SC93027 03227500
KW 'ASCII ',SETALF1,MIN=2 @SC90152 03228000
KW '&CYRILLC',SETALF1,MIN=2 @SC90152 03228500
KW '&AAGREEK',SETALF1,MIN=2 @SC90152 03229000
KW '&HEBREW',SETALF1,MIN=2 @SC90152 03229500
KW '&JAPNEUC',SETALF1,MIN=3 @SC91325 03230000
KW 'KATAKANA',SETALF1,MIN=2 @SC90152 03230500
KW 'LATIN2 ',SETALF1,MIN=6 @SC90152 03231000
KW 'L2',SETALFX,MIN=2 Alternate name @SC90152 03231500
KW 'LATIN3 ',SETALF1,MIN=6 @SC90152 03232000
KW 'L3',SETALFX,MIN=2 Alternate name @SC90152 03232500
KW 'THAI',SETALF1,MIN=2 @SC92233 03233000
KW '&TRANSPA',SETALF1,MIN=2 @SC90250 03233500
KW , @SC90040 03234000
SETFALFK KW 'EBCDIC ',SETALF1,MIN=6 @SC90040 03234500
KW 'CP1047',SETALFX,MIN=6 Alternate name @SC92113 03235000
KW 'CP037 ',SETALF1,MIN=5 @SC90040 03235500
KW 'CP273 ',SETALF1,MIN=5 @SC90040 03236000
KW 'CP275 ',SETALF1,MIN=5 @SC90040 03236500
KW 'CP277 ',SETALF1,MIN=5 @SC90040 03237000
KW 'CP278 ',SETALF1,MIN=5 @SC90040 03237500
KW 'CP280 ',SETALF1,MIN=5 @SC90040 03238000
KW 'CP281',SETALF1,MIN=5 @SC91325 03238500
KW 'CP282 ',SETALF1,MIN=5 @SC90040 03239000
KW 'CP284 ',SETALF1,MIN=5 @SC90040 03239500
KW 'CP285 ',SETALF1,MIN=5 @SC90040 03240000
KW 'CP297 ',SETALF1,MIN=5 @SC90040 03240500
KW 'CP290 ',SETALF1,MIN=5 @SC90040 03241000
KW 'CP420',SETALF1,MIN=5 @SC93027 03241500
KW 'CP424 ',SETALF1,MIN=5 @SC90040 03242000
KW 'CP500 ',SETALF1,MIN=5 @SC90040 03242500
KW 'CP838',SETALF1,MIN=5 @SC92233 03243000
KW 'CP870 ',SETALF1,MIN=5 @SC90152 03243500
KW 'CP871 ',SETALF1,MIN=5 @SC90040 03244000
KW 'CP875 ',SETALF1,MIN=5 @SC90040 03244500
KW 'CP880 ',SETALF1,MIN=5 @SC90152 03245000
KW 'CP905 ',SETALF1,MIN=5 @SC90152 03245500
KW '&CZECH',SETALF1,MIN=2 @SC90152 03246000
KW 'DKOI ',SETALF1,MIN=4 @SC90040 03246500
KW 'H-EBCDIK-DASH',SETALF1,MIN=3 @SC91325 03247000
KW 'KANJI',SETKANJ,MIN=3 @SC91325 03247500
KANJIF KW 'FUJITSU-KANJI',SETALF1,MIN=3 @SC91325 03248000
KANJIH KW 'HITACHI-KANJI',SETALF1,MIN=3 @SC91325 03248500
KANJII KW 'IBM-KANJI',SETALF1,MIN=3 @SC91325 03249000
KW , @SC90040 03249500
* 03250000
SETFKW KW '&AALRECL',SHOLR **COMPAT** @SC87166 03250500
KW '&LONGLIN',SHOLNG,MIN=2 **COMPAT** @SC88120 03251000
KW '&COLLISN',SHOCLSN,MIN=2 **COMPAT** @SC90033 03251500
KW '&OVERWRI',SHOOVWR **COMPAT** @SC90033 03252000
AIF ('&ATTTYPE'(1,1) NE '&AAATEXT'(1,1)).CMPAT01 @SC92300 03252500
KW 'T',SETFT,T **COMPAT** @SC91320 03253000
.CMPAT01 ANOP @SC92300 03253500
KW '&ATTTYPE',SHOFILT **COMPAT** @SC87166 03254000
KFILKW , **COMPAT** @SC87166 03254500
KW '&CHARSET',SHOFALF,MIN=2 @SC90040 03255000
SETFIL KW '&AAATEXT',SETFILET,T @SC91320 03255500
KW '&AAAABIN',SETFILEB,B @SC91320 03256000
SETDBIN KW '&AAADBIN',SETFILEB,D @SC91320 03256500
KW '&AAAVBIN',SETFILEB,V @SC91320 03257000
KW 03257500
SET CSECT @SC90040 03258000
* 03258500
SETKANJ L 1,=A(KANJI&KNJLAB) Use default @SC91325 03259000
B SETALF1 @SC91325 03259500
SETALFX SH 1,=Y(SETALFL1-SETALFKW) Convert to proper entry @SC90152 03260000
SETALF1 MVC 0(LALF,8),=CL(LALF)' ' Fill with blanks @SC91325 03260500
IC 14,KWLEN(,1) Get length-1 of keyword @SC91325 03261000
CLM 14,1,SETALF1+1 See if too long for field @SC91325 03261500
BNH *+8 Ok @SC91325 03262000
IC 14,SETALF1+1 Too long, use field length @SC91325 03262500
EX 14,SETALFMV Copy keyword to field @SC91325 03263000
LR 0,8 Pass ptr to the changed code @SC90040 03263500
KCALL TBLSET,ATOE Set up translations @SC90040 03264000
B RTRN @SC90040 03264500
SETALFMV MVC 0(,8),KWNAME(1) @SC91325 03265000
* 03265500
SETFILEB OI FL1,BINF Set binary on 03266000
B SETT @SC91320 03266500
* 03267000
SETFILET NI FL1,255-BINF Set it OFF 03267500
B SETT @SC91320 03268000
* 03268500
SETCMDS CSECT @SC90040 03269000
SETLNGKW KW '&AAAFOLD',SETT,F @SC91320 03269500
KW '&AAAHALT',SETT,H @SC91320 03270000
KW '&TRUNCAT',SETT,T @SC91320 03270500
KW , @SC88120 03271000
SET CSECT @SC90040 03271500
* 03272000
KFILSET , @SC87012 03272500
* 03273000
SETDEB BAL 4,SETSCN Select among possibilities @SC88168 03273500
KW '&AAAAAON',SETDON @SC88168 03274000
KW '&AAAAOFF',SETDEND,MIN=2 @SC88168 03274500
SETRAW KW '&AAAARAW',SETDRAW @SC88168 03275000
KW '&AAAAAIO',SETDIO @SC88168 03275500
KW '&AAALONG',SETDLO @SC90222 03276000
KW '&AAASAVE',SETDSV @SC88168 03276500
KW '&AAATIME',SETDTM @SC91172 03277000
KW , @SC88168 03277500
SETDEBOF NI FL1,255-DEBUG Set it OFF 03278000
CLOSF LOGPTR Done logging @SC86135 03278500
B RTRN0 @SC86295 03279000
* 03279500
SETDRAW OI SHODBG,DBGON+DBGRW RAW -> ON @SC88168 03280000
B SETDB1 @SC88168 03280500
SETDIO OI SHODBG,DBGON+DBGIO I/O -> ON @SC88168 03281000
B SETDB1 @SC88168 03281500
SETDLO OI SHODBG,DBGON+DBGLO+DBGIO LONG-> ON + I/O @SC90332 03282000
B SETDB1 @SC90222 03282500
SETDSV OI SHODBG,DBGON+DBGSV SAVE-> ON @SC88168 03283000
B SETDB1 @SC88168 03283500
SETDTM OI SHODBG,DBGON+DBGTI TIME-> ON @SC91172 03284000
B SETDB1 @SC91172 03284500
SETDON OI SHODBG,DBGON @SC88168 03285000
SETDB1 ICM 2,15,LEN Any more options? @SC88168 03285500
BP SETDEB Yes, interpret them @SC88168 03286000
SETDEND XC SHODBG,DBGFLG Get changed flags in SHODBG @SC88168 03286500
XC DBGFLG,SHODBG Install new flags @SC88168 03287000
TM SHODBG,DBGON ON/OFF changed? @SC88168 03287500
BZ RTRN0 No, done @SC88168 03288000
TM DBGFLG,DBGON Turned ON? @SC88168 03288500
BZ SETDEBOF No, turn it off @SC88168 03289000
NI LOGFLGS,255-APPN @SC86295 03289500
LA 0,L'LOGNAM Name string length @SC86295 03290000
LA 1,LOGNAM and address @SC86295 03290500
STM 0,1,SCANPTR @SC86295 03291000
LA 0,FFRCF @SC86295 03291500
KCALL FSPEC,IFILE Convert to filespec @SC86295 03292000
PTEXT '&DEBGERR' @SC87012 03292500
OPENF O,IFILE,LOGFDB,LOGPTR,E=SUBERR @SC87012 03293000
OI FL1,DEBUG Enable logging @SC87012 03293500
MVI ERRNUM,ERRNOE Insist no errors @SC88168 03294000
B RTRN0 @SC86295 03294500
* 03295000
SET8B NTOKN N=SET8BH,H=SET8BH @SC87008 03295500
LA 4,AAMP Default value @SC87008 03296000
LA 9,SET8BS @SC87008 03296500
SCAN SETONKW,RTRN2 03297000
SR 4,4 Zero value means OFF @SC87008 03297500
LTR 7,7 Length=1? @SC87008 03298000
BNZ SET8BS No, can't be ON @SC87008 03298500
BAL 2,SETQCH2 Make sure it's valid @SC87008 03299000
SET8BS STC 4,EBQC New value @SC87008 03299500
B RTRN0 @SC87008 03300000
SET8BH PTEXT '&ONOFFCH' @SC87008 03300500
B SUBERR @SC87008 03301000
* 03301500
SETSTR LR 2,14 @SC87268 03302000
MVI 0(8),0 Default to blank @SC87166 03302500
BAL 9,WSP Remaining data length @SC86224 03303000
B RTRN0 Null string @SC86295 03303500
LR 1,4 Max length allowed @SC87268 03304000
CR 6,1 @SC86345 03304500
BH SETSTRH Too long @SC86345 03305000
STC 6,0(8) Save length @SC87166 03305500
LA 8,1(8) Skip over length byte @SC87268 03306000
XR 6,7 Exchange ptr and length @SC87268 03306500
XR 7,6 @SC87268 03307000
XR 6,7 @SC87268 03307500
B SETFST1 Go copy string @SC87268 03308000
* 03308500
SETRCTLQ BAL 2,SETQCHR Get a char for Receive-Ctl-quote 03309000
STC 4,RCTLQ(5) Set receive ctl quote @SC86164 03309500
LTR 5,5 Done if SEND @SC86223 03310000
BNZ RTRN0 @SC86295 03310500
STC 4,DEFPARM+5 Set default for SPAR @SC86120 03311000
B RTRN0 @SC86295 03311500
* 03312000
SETQCHR NTOKN H=SETQCHRH,N=SETQCHRH 03312500
LTR 7,7 Token length - 1 03313000
BP SETQCHRH Pos: token is too long 03313500
SETQCH2 SR 4,4 @SC87008 03314000
IC 4,0(6) Get the quote char @SC86120 03314500
IC 4,ETOAD(4) Get ASCII form @SC89301 03315000
NOTQR SETQCHRH Go if not 33-62 or 96-126 @SC86120 03315500
BR 2 03316000
* 03316500
SETQCHRH PTEXT '&ASCQUOT' @SC86224 03317000
B SUBERR @SC86295 03317500
* 03318000
SETLR ST 0,MAXOUT Max output buffer size @SC87166 03318500
B RTRN0 @SC86295 03319000
* 03319500
SETTIMO BCT 5,RTRN0 Done if rec @SC87166 03320000
TOCHR 0,,DEFPARM+1 Set default for SPAR @SC86164 03320500
B RTRN0 @SC86295 03321000
* 03321500
SETPADN BCT 5,RTRN0 Done if rec @SC87166 03322000
TOCHR 0,,DEFPARM+2 Set default for SPAR @SC86164 03322500
B RTRN0 @SC86295 03323000
* 03323500
SETPADC BCT 5,RTRN0 Done if rec @SC87166 03324000
CTL 0,,DEFPARM+3 Set default for SPAR @SC86164 03324500
B RTRN0 @SC86295 03325000
* 03325500
SETEOL BCT 5,RTRN0 Done if rec @SC87166 03326000
STC 0,S1EOL Extra copy for prompting @SC87274 03326500
TOCHR 0,,DEFPARM+4 Set default for SPAR 03327000
B RTRN0 @SC86295 03327500
* 03328000
SETSIZ C 0,AKMIN Less than min Kermit size? @SC87166 03328500
BL SETKSIZH Yes, error @SC86164 03329000
C 0,AKMAX More than max Kermit size? @SC86164 03329500
BNH SETRPS1 No, skip message call @TB86196 03330000
LTR 5,5 SEND? @SC86224 03330500
BNZ SETKSIZH Yes, can't set it long @SC86224 03331000
L 0,AKMAX Use max Kermit size for default @SC90122 03331500
SETRPS1 DS 0H @TB86196 03332000
BCT 5,RTRN0 Done if recv @SC86295 03332500
TOCHR 0,,DEFPARM+0 Set default for SPAR 03333000
B RTRN0 @SC86295 03333500
* 03334000
SETKSIZH PTEXT '&SENDPAK' @SC90122 03334500
B SUBERR @SC86295 03335000
* 03335500
SETCTL LA 4,PFXUNPFX Select among possibilities @SC93173 03336000
B SETSCN @SC93173 03336500
SETCTL1 IC 3,KWCODE(1) Get code (0=>must prefix, 1=>not) @SC93173 03337000
N 3,F1 @SC93173 03337500
ICM 0,15,LEN Any more tokens? @SC93173 03338000
BP SETCTL2 Yes, must be numeric @SC93173 03338500
STC 3,CTLTAB No, just do whole table @SC93173 03339000
MVC CTLTAB+1(159),CTLTAB @SC93173 03339500
B RTRN0 @SC93173 03340000
SETCTL2 LA 8,159 Limit for control list @SC93173 03340500
BAL 2,SETNUM Get a number for table offset @SC93173 03341000
LA 7,CTLTAB @SC93173 03341500
AR 7,0 Ptr to proper table entry @SC93173 03342000
STC 3,0(,7) @SC93173 03342500
B RTRN0 All done @SC93173 03343000
* 03343500
SETETOA LA 3,ETOA Address of table to change @SC86265 03344000
NI ATFL2,255-ATFENC Suppress Encoding attribute now@SC90040 03344500
B SETTET2 @SC87117 03345000
SETTET LA 3,TETOA Address of table to change @SC87117 03345500
SETTET2 LA 2,ETOAD Address of original @SC87117 03346000
SETTR0 ICM 0,15,LEN Any more tokens? @SC87117 03346500
BP SETTR1 Yes, must be numeric @SC87117 03347000
MVC 0(256,3),0(2) No, just reset table @SC87117 03347500
B RTRN0 @SC87117 03348000
SETTR1 LA 8,255 Limit for each @SC87117 03348500
BAL 2,SETNUM Get a number for table offset @SC86295 03349000
AR 3,0 Save table offset here @SC86295 03349500
BAL 2,SETNUM Get a number for value @SC86295 03350000
STC 0,0(3) Change value @SC86295 03350500
B RTRN0 All done @SC86295 03351000
* 03351500
SETATOE LA 3,ATOE Adr of table to edit @SC86265 03352000
NI ATFL2,255-ATFENC Suppress Encoding attribute now@SC90040 03352500
B SETTAT2 @SC87117 03353000
SETTAT LA 3,TATOE Address of table to change @SC87117 03353500
SETTAT2 LA 2,ATOED Address of original @SC87117 03354000
B SETTR0 Use common routine 03354500
* 03355000
SETTTB LA 4,SETTTKW List of choices: ON, OFF, KP @SC90278 03355500
BAL 14,SHOXY ON or OFF just handles flag @SC90278 03356000
SETTTKP OI FL4,TTAB KP comes here and changes table @SC90278 03356500
L 1,=A(ATOEKP) Replacement table (invertible) @SC90278 03357000
MVC TATOE,0(1) @SC90278 03357500
SR 2,2 @SC90278 03358000
LA 1,255 Now invert into other table @SC90278 03358500
IC 2,TATOE(1) @SC90278 03359000
STC 1,TETOA(2) @SC90278 03359500
BCT 1,*-8 @SC90278 03360000
MVI TETOA,0 Null is always null! @SC90278 03360500
SETTTN LA 1,TATOE Use "T" tables @SC92352 03361000
LA 2,TETOA @SC92352 03361500
STM 1,2,AEPTRS @SC92352 03362000
B SETON @SC92352 03362500
* 03363000
* 03363500
* R6 points to token, R7 has length-1. Convert to binary in R0. 03364000
* Return via R2 03364500
SETNUM2 LR 2,14 Save return @SC87166 03365000
SETNUM NTOKN H=SETNUMH,N=SETNUMH @SC86295 03365500
LA 7,1(7) Length @SC86316 03366000
BAL 14,GETNUM @SC86316 03366500
B SETNUMH @SC86316 03367000
CLR 0,8 Within limit? @SC86295 03367500
BH SETNUMH Too big @SC87166 03368000
CLI 0(2),X'47' Entered at SETNUM2? @SC87166 03368500
BNER 2 No, return immediately @SC87166 03369000
LR 14,2 Ptr to caller @SC87166 03369500
S 14,F8 Back up to the LOAD instr @SC87166 03370000
MVC SETXI,0(14) Copy and modify op instr @SC87166 03370500
NC SETXI(2),=X'F60F' @SC87166 03371000
CLI SETXI,X'B6' Was is ICM? @SC87166 03371500
BNE *+8 No, ok @SC87166 03372000
MVI SETXI,X'BE' Yes, make into STCM @SC87166 03372500
EX 0,SETXI Store value @SC87166 03373000
BR 2 Return @SC87166 03373500
* 03374000
SETNUMH LA 15,CMD+&LOPRNUM @SC86295 03374500
SETMAXH MVC CMD(&LOPRMUS),=C'&OPRMUB&OPRMUL' @SC86295 03375000
MVI 0(15),C'<' @SC86295 03375500
LA 15,1(15) @SC86295 03376000
LR 4,8 @SC86345 03376500
A 4,F1 @SC86345 03377000
BAL 2,EDDEC Put limit into message @SC86295 03377500
LR 4,15 End @SC86295 03378000
LA 3,CMD @SC86295 03378500
SR 4,3 @SC86295 03379000
B SUBERR @SC86295 03379500
* 03380000
SETFSTR LR 1,9 Save length @SC87166 03380500
NTOKN N=SETFST0,H=SETSTRH @SC87166 03381000
LA 7,1(7) @SC86295 03381500
CR 7,1 Name too long? @SC86295 03382000
BNH SETFST1 No, do it @SC86295 03382500
SETSTRH LR 8,1 Copy max length @SC86295 03383000
LA 15,CMD+&LOPRMUS Base message size @SC86295 03383500
B SETMAXH @SC86295 03384000
SETFST0 SR 7,7 Empty string @SC86295 03384500
SETFST1 ICM 7,8,BLANK Set for blank fill @SC86295 03385000
LR 9,1 @SC87166 03385500
MVCL 8,6 Copy name @SC87166 03386000
BR 2 @SC86295 03386500
TITLE 'SHOW Routine - performs SHOW command options' 03387000
* Display current values in STORAG. 03387500
* Entry: SCANPTR string has option 03388000
* Exit: R15=0 if ok, 1 if help needed, 2 if bad parameter name 03388500
* ERRNUM unchanged 03389000
SHOW ENTER ALT @SC86133 03389500
LA 0,CMD @SC86227 03390000
ST 0,SHOPTR Initialize output ptr @SC86227 03390500
MVI SETXI,X'91' TM instruction @SC87166 03391000
L 3,=A(SETCMDS) Addressibility @SC90040 03391500
NTOKN N=SHOALL @SC86133 03392000
SCAN SHOCMDAL,RTRN1 @SC88293 03392500
SHOBAD B RTRN2 Invalid operand @SC86295 03393000
* 03393500
SETCMDS CSECT @SC90040 03394000
SETCMDKW DS 0H @SC87166 03394500
KW '&AAAATOE',SETATOE,MIN=4 @SC87166 03395000
KW '&CTRLCHR',SETCTL,MIN=8 @SC93173 03395500
KW '&AAAETOA',SETETOA,MIN=4 @SC87166 03396000
KW '&FILTYPE',SHOFILT,MIN=5 @SC87166 03396500
KW '&AATATOE',SETTAT,MIN=5 @SC87166 03397000
KW '&AATETOA',SETTET,MIN=5 @SC87166 03397500
KW GOTO,SHOCMDS Skip over 'ALL' @SC88293 03398000
* 03398500
SHOATKW KW '&ATTLENG',SHOATLN @SC90037 03399000
KW '&ATTTYPE',SHOATTP @SC90037 03399500
KW '&ATTDATE',SHOATDT,MIN=2 @SC90037 03400000
KW '&ATTCRET',SHOATCR,MIN=2 @SC90037 03400500
KW '&ATTACCT',SHOATACT,MIN=4 @SC90037 03401000
KW '&ATTAREA',SHOATAR,MIN=2 @SC90037 03401500
KW '&ATTPASS',SHOATPW,MIN=2 @SC90037 03402000
KW '&ATTBLKS',SHOATBLK @SC90037 03402500
KW '&ATTACSS',SHOATACC,MIN=3 @SC90037 03403000
KW '&ATTENCD',SHOATENC @SC90037 03403500
KW '&ATTDISP',SHOATDSP,MIN=2 @SC90037 03404000
KW '&ATTPROT',SHOATPRO,MIN=2 @SC90037 03404500
KW '&ATTORIG',SHOATORG @SC90037 03405000
KW '&ATTFRMT',SHOATFMT @SC90037 03405500
KW '&ATTSINF',SHOATSFO,MIN=2 @SC90037 03406000
KW '&ATTBLEN',SHOATXLN,MIN=2 @SC90037 03406500
KW '&AAAAEND',SHOATEND,MIN=3 @SC91109 03407000
KW , @SC90037 03407500
* 03408000
SHOCMDAL KW '&AAAAALL',SHOALL,MIN=3 @SC88293 03408500
SHOCMDS EQU * @SC90037 03409000
SHOATCM KW '&ATTRIBU',SHOATT,MIN=3 @SC90037 03409500
* 03410000
KW '&AARECFM',SHORFM,MIN=4 @SC87012 03410500
KW '&AALRECL',SHOLR @SC86133 03411000
KW '&WARNING',SHOWARN ***COMPAT*** @SC90033 03411500
KW '&AAPPEND',SHOAPP,MIN=3 ***COMPAT*** @SC90033 03412000
KW '&AAABAUD',SHOBAUD,MIN=2 ***COMPAT*** @SC90099 03412500
SHOCMDKW EQU * Must match order of code 03413000
KW '&TABSEXP',SHOTABS @SC86133 03413500
KW '&AAAAEOF',SHOEOF,MIN=3 @SC86133 03414000
KW '&AADEBUG',SHODEB @SC86133 03414500
KW '&BLKCHCK',SHOBLK @SC86133 03415000
KW '&A8THBQU',SHO8B @SC87008 03415500
KW '&APROMPT',SHOPRP,MIN=2 @SC87268 03416000
KW '&AAALINE',SHOLIN,MIN=3 @SC87166 03416500
KW '&CONTRLR',SHOTRM,MIN=3 @SC87268 03417000
KW '&HANDSHK',SHOHND @SC87274 03417500
KW '&AASPEED',SHOBAUD,MIN=2 @SC90099 03418000
KW '&ASYSCMD',SHOSYS,MIN=2 @SC86295 03418500
KW '&TTTABLE',SHOTTB,MIN=2 @SC87117 03419000
KW '&AADELAY',SHODLY,MIN=3 @SC86164 03419500
KW '&INCOMPL',SHOINC,MIN=3 @SC86225 03420000
KW '&AAATEST',SHOTST,MIN=4 @SC87166 03420500
KW '&SRVTIME',SHOSERV,MIN=3 @SC90045 03421000
KSETKW , Specific parameters @SC87166 03421500
KW '&TRANSFR',SHOTRN,MIN=2 @SC90040 03422000
KW '&AAAFILE',SHOFIL @SC86295 03422500
KW '&AMARGIN',SHOMRG @SC87253 03423000
KW '&FOREIGN',SHOFOR,MIN=3 @HF86223 03423500
KW '&AARETRY',SHORETR,MIN=3 @SC86345 03424000
KW '&AAATAKE',SHOTAK,MIN=3 @SC86171 03424500
KW '&RECEIVE',SHORECV,MIN=3 @SC86133 03425000
KW '&AAASEND',SHOSEND,MIN=3 @SC86224 03425500
KW , @SC86133 03426000
SET CSECT @SC90040 03426500
* 03427000
SHOATT MVC SHOTMP(8),SCANPTR Save string ptrs @SC90037 03427500
LA 0,3 Max interesting count @SC90037 03428000
SHOATL1 NTOKN N=SHOATL2 Count tokens after ATTRIB @SC90037 03428500
BCT 0,SHOATL1 R0=3 => 0 @SC90037 03429000
SHOATL2 MVC SCANPTR(8),SHOTMP Restore 2 => 1 @SC90037 03429500
CLI SETXI,X'97' SET? 1 => 2 @SC90037 03430000
BE *+6 Yes, 2 more means "item" 0 => >2 @SC90037 03430500
BCTR 0,0 No, 1 more means "item" @SC90037 03431000
BCT 0,SHOATS Go if not "item" @SC90037 03431500
LA 4,SHOATKW List of possible items @SC90037 03432000
B SHOGRP Do the right one @SC90037 03432500
SHOATS OI SFLG,ALLF+ASRF Set to display both levels.. @SC90037 03433000
BAL 14,SHOOO Just SET ATT or SHO ATT @SC90037 03433500
OI SCAPA,8 @SC90037 03434000
LA 1,SHOATCM Point at keywork again (SHO ATT) @SC90037 03434500
LA 4,SHOATKW Do whole list @SC90037 03435000
B SHOGRP @SC90037 03435500
SHOATLN BAL 14,SHOOO Length @SC90037 03436000
OI ATFLG,ATFLNG @SC90037 03436500
SHOATTP BAL 14,SHOOO Type @SC90037 03437000
OI ATFLG,ATFTYP @SC90037 03437500
SHOATDT BAL 14,SHOOO Date @SC90037 03438000
OI ATFLG,ATFDAT @SC90037 03438500
SHOATCR BAL 14,SHOOO Creator @SC90037 03439000
OI ATFLG,ATFCRE @SC90037 03439500
SHOATACT BAL 14,SHOOO Account @SC90037 03440000
OI ATFLG,ATFACT @SC90037 03440500
SHOATAR BAL 14,SHOOO Area @SC90037 03441000
OI ATFLG,ATFARE @SC90037 03441500
SHOATPW BAL 14,SHOOO Password @SC90037 03442000
OI ATFLG,ATFPWD @SC90037 03442500
SHOATBLK BAL 14,SHOOO Blocksize @SC90037 03443000
OI ATFLG,ATFBLK @SC90037 03443500
SHOATACC BAL 14,SHOOO Access @SC90037 03444000
OI ATFL2,ATFACC @SC90037 03444500
SHOATENC BAL 14,SHOOO Encoding @SC90037 03445000
OI ATFL2,ATFENC @SC90037 03445500
SHOATDSP BAL 14,SHOOO Disposition @SC90037 03446000
OI ATFL2,ATFDSP @SC90037 03446500
SHOATPRO BAL 14,SHOOO Protection @SC90037 03447000
OI ATFL2,ATFPRO @SC90037 03447500
SHOATORG BAL 14,SHOOO Origin @SC90037 03448000
OI ATFL2,ATFORG @SC90037 03448500
SHOATFMT BAL 14,SHOOO Format @SC90037 03449000
OI ATFL2,ATFFMT @SC90037 03449500
SHOATSFO BAL 14,SHOOO System info @SC90037 03450000
OI ATFL2,ATFSFO @SC90037 03450500
SHOATXLN BAL 14,SHOOO Byte count @SC90037 03451000
OI ATFL3,ATFXLN @SC90037 03451500
SHOATEND BAL 14,SHOOO End @SC91109 03452000
OI ATFL4,ATFEND @SC91109 03452500
B SHOGRPZ @SC90037 03453000
* 03453500
SHOALL OI SFLG,ALLF Do all @SC86295 03454000
SR 0,0 Clear screen (if fullscreen) @SC90045 03454500
KCALL SCRNIO @SC90045 03455000
LA 1,SHOCMDKW Start at beginning @SC86133 03455500
* 03456000
* Each routine begins with R1-> keyword item @SC86133 03456500
SHOTABS CLI SETXI,X'97' SET or SHOW? @SC87166 03457000
BE SETTABS @SC87166 03457500
BAL 14,SHOOO On or off @SC86133 03458000
OI FL2,TABS @SC87166 03458500
SHOTABSZ LH 5,TABCNT Count of tabs @SC86355 03459000
LA 3,TABTBL Ptr to table of tabs @SC86355 03459500
BAL 14,SHOLIST Display list of tab stops, if any @SC86355 03460000
NOP 0 @SC87166 03460500
SHOEOF BAL 14,SHOOO On or off @SC86133 03461000
OI FL2,EOFZ @SC87166 03461500
SHODEB CLI SETXI,X'97' SET or SHOW? @SC87166 03462000
BE SETDEB @SC87166 03462500
BAL 14,SHOOO 1st get ON vs. OFF @SC88168 03463000
OI FL1,DEBUG @SC88168 03463500
SHODEBZ MVC SHODBG,DBGFLG Copy flags for decoding @SC88168 03464000
LA 6,SETRAW List of options @SC88168 03464500
BAL 4,SHOMULT See if any extra flags on @SC88168 03465000
NOP 0 @SC88168 03465500
SHOBLK LA 4,SETBLKKW @SC92085 03466000
LA 6,BCTC Get block check type @SC92085 03466500
BAL 14,SHOBRV Print it @SC92085 03467000
NOP 0 OK @SC92085 03467500
SHO8B LA 8,EBQC @SC87008 03468000
BAL 14,SHOCHRA Display ASCII char @SC87008 03468500
B SET8B @SC87166 03469000
SHOPRP LA 8,KPRPL Ptr to prompt @SC87268 03469500
LA 4,20 Max length @SC87268 03470000
BAL 14,SHOSTR @SC87268 03470500
B SETPRP Do any system-dependent setup @SC87351 03471000
SHOLIN LA 8,TRMLIN @SC87166 03471500
LA 9,L'TRMLIN @SC87166 03472000
BAL 14,SHOCHRN @SC87166 03472500
B SETLIN @SC87166 03473000
SHOTRM LA 4,SETTRKW @SC87166 03473500
LA 6,TRMTP @SC87166 03474000
BAL 14,SHOBRV Get full name from abbrev. @SC87166 03474500
NOP 0 @SC87166 03475000
SHOHND SR 4,4 @SC87274 03475500
IC 4,S1HND @SC87274 03476000
BAL 14,SHOCTL Print it @SC87274 03476500
B RTRN0 @SC87274 03477000
SHOBAUD L 4,BAUD @SC86164 03477500
BAL 14,SHONBIG Print it @SC86164 03478000
B RTRN0 @SC87166 03478500
SHOSYS BAL 14,SHOOO On or off @SC86295 03479000
OI FL2,PASS @SC87166 03479500
SHOTTB CLI SETXI,X'97' @SC90278 03480000
BE SETTTB Do SET subcommand separately @SC90278 03480500
BAL 14,SHOOO On or off @SC90278 03481000
OI FL4,TTAB @SC87166 03481500
SHODLY L 4,LCLDLY @SC86164 03482000
BAL 14,SHONBIG Print it @SC86164 03482500
B RTRN0 @SC87166 03483000
SHOINC LA 4,SETDSC List of possibles @SC87166 03483500
BAL 14,SHOXY @SC86225 03484000
OI FL1,KEEP @SC90037 03484500
SHOTST BAL 14,SHOOO @SC87166 03485000
OI FL1,TSTF Turn on @SC87166 03485500
SHOSERV SR 4,4 @SC90045 03486000
IC 4,TIMOSRV Server timeout (also switch) @SC90045 03486500
BAL 14,SHONBIG @SC90045 03487000
B RTRN0 Index for server @SC90045 03487500
* 03488000
KSHOPRC , System-specific options @SC86355 03488500
* 03489000
SHOTRN LA 4,SHOTRNKW Ptr to sublist @SC90040 03489500
BAL 14,SHOGRP @SC90040 03490000
SHOFIL LA 4,SHOFILKW Ptr to sublist @SC87166 03490500
CLI SETXI,X'97' SET or SHOW **COMPAT** @SC87166 03491000
BNE *+8 SHOW **COMPAT** @SC87166 03491500
LA 4,SETFKW SET **COMPAT** @SC87166 03492000
LA 8,TYPFIL In case just 'SET F T' @SC91320 03492500
BAL 14,SHOGRP @SC86295 03493000
SHOMRG LA 4,SHOMRGKW Ptr to sublist @SC87253 03493500
BAL 14,SHOGRP @SC87253 03494000
SHOFOR LA 4,SHOFORKW Ptr to sublist @SC87166 03494500
BAL 14,SHOGRP @SC86224 03495000
SHORETR LA 4,SHORETKW Ptr to sublist @SC87166 03495500
BAL 14,SHOGRP @SC86345 03496000
SHOTAK LA 4,SHOTAKKW Ptr to sublist @SC87166 03496500
BAL 14,SHOGRP @SC86224 03497000
SHORECV SR 5,5 Index for recv @SC86224 03497500
BAL 14,SHOGRPR @SC86224 03498000
SHOSEND LA 5,1 Index for send @SC86224 03498500
LA 14,SHOZZW @SC87166 03499000
SHOGRPR LA 4,SHORECKW Ptr to common sublist @SC87166 03499500
SHOGRP LR 2,14 Save return adr @SC87166 03500000
STM 1,4,SHOTMP Save top level ptr, return adr @SC87166 03500500
TM SFLG,ALLF Doing all? @SC86295 03501000
BO SHORAL2 Yes @SC86133 03501500
SETSCN LR 2,14 Copy return adr (again) @SC87166 03502000
NTOKN N=SHORALL @SC86133 03502500
LR 9,2 ??? @SC87166 03503000
SCAN (4),RTRN1 @SC87166 03503500
SHOHLP HELP (4),RTRN1 @SC87166 03504000
* 03504500
SETCMDS CSECT @SC90040 03505000
SHOTRNKW KW '&LOCKSHF',SHOLCK @SC91275 03505500
KW '&CHARSET',SHOALF @SC91275 03506000
KW , @SC90040 03506500
* 03507000
SHOFILKW KW '&ATTTYPE',SHOFILT @SC86295 03507500
KW '&LONGLIN',SHOLNG,MIN=2 @SC88120 03508000
KW '&COLLISN',SHOCLSN,MIN=2 @SC90033 03508500
KW '&OVERWRI',SHOOVWR @SC90033 03509000
KW '&AALRECL',SHOLR @SC86133 03509500
KFILKW @SC87166 03510000
KW '&CHARSET',SHOFALF @SC90040 03510500
KW , @SC87012 03511000
* 03511500
SHOMRGKW KW '&AAALEFT',SHOLFT @SC87253 03512000
KW '&AARIGHT',SHORGT @SC87253 03512500
KW , @SC87253 03513000
* 03513500
SHORECKW KW '&ENDOFLI',SHOEOL @SC86133 03514000
KW '&ENDOFPA',SHOEOL @SC86133 03514500
KW '&AAAAEOL',SHOEOL,MIN=3 @SC86133 03515000
KW '&PACKLEN',SHOSIZ @SC90150 03515500
SHOPSKW KW '&PACKSIZ',SHOSIZ @SC86133 03516000
KW '&PADCHAR',SHOPADC,MIN=5 @SC86164 03516500
KW '&PADDING',SHOPADN,MIN=3 @SC86164 03517000
KW '&AAQUOTE',SHOQUO @SC86133 03517500
KW '&STARTOP',SHOMARK @SC86133 03518000
KW '&TIMEOUT',SHOTIMO @SC86164 03518500
KW '&APARITY',SHOPRTY @SC88288 03519000
KW , @SC86133 03519500
* 03520000
SHOTAKKW KW '&AAAECHO',SHOECO,MIN=3 @SC86171 03520500
KW '&ERRACTI',SHOHLT,MIN=3 @SC86171 03521000
KW , @SC86171 03521500
* 03522000
SHOFORKW KW '&APREFIX',SHOPFX @HF86223 03522500
KW '&ASUFFIX',SHOSFX @HF86223 03523000
KW , @HF86223 03523500
* 03524000
SHORETKW KW '&INITIAL',SHORETI @SC86345 03524500
KW '&PACKETS',SHORETN @SC86345 03525000
KW , @SC86345 03525500
SET CSECT @SC90040 03526000
* 03526500
SHORALL OI SFLG,ALLF+ASRF Do just all send/recv items @SC86295 03527000
LA 14,SHOHLP Just help if SET @SC87166 03527500
SHORAL2 BAL 2,SHOKW Get ptr to kw send or receive @SC86133 03528000
BER 14 Help for SET @SC87166 03528500
L 15,SHOPTR Output line buffer ptr @SC86227 03529000
LA 1,CMD @SC86227 03529500
SR 15,1 Anything there? @SC86227 03530000
BNP SHORAL3 No @SC86227 03530500
ST 1,SHOPTR Yes, reset ptr @SC86227 03531000
WTEXT (1),(15) And write it out @SC86227 03531500
SHORAL3 DS 0H @SC86227 03532000
MVC CMD(2),=C' ' @SC86133 03532500
MVC CMD+2(15),0(6) Copy send or receive or ... @SC89226 03533000
LA 0,CMD+2(7) Point past category @SC86316 03533500
ST 0,SHOPTR Save output ptr @SC86316 03534000
L 1,SHOTMP+12 Start at beginning @SC87166 03534500
ICM 14,7,KWADR(1) Ptr to 1st routine @SC90239 03535000
BR 14 @SC86171 03535500
* 03536000
SHOLCK LA 4,SETOOFRC On, Off, Forced @SC91275 03536500
CLI SETXI,X'97' SET or SHOW? @SC91275 03537000
BE SHOLCK1 SET - do it directly @SC91275 03537500
TM LCKFRC,1 @SC91275 03538000
BZ SHOLCK1 @SC91275 03538500
LA 4,SETOFRC Just Forced @SC91275 03539000
SHOLCK1 BAL 14,SHOXY Get ON vs. OFF or FORCED @SC91275 03539500
OI SCAPA,X'20' @SC91275 03540000
* 03540500
SHOALF LA 4,SETALFKW NOTE: this must be last parm @SC90040 03541000
LA 8,TRNALF Ptr to transfer character name @SC90040 03541500
B SHOALFC Processing same as file char set @SC90040 03542000
* 03542500
AIF ('&ATTTYPE'(1,1) NE '&AAATEXT'(1,1)).CMPAT02 @SC92300 03543000
SETFT ICM 15,15,LEN SET F T ... **COMPAT** @SC87166 03543500
LA 8,TYPFIL In case just 'SET F T' @SC91320 03544000
BNP SETFILET Nothing after: 'SET FILE-TYPE T' @SC87166 03544500
.CMPAT02 ANOP @SC92300 03545000
* 03545500
SHOFILT LA 4,SETFIL List of possibles @SC86151 03546000
LA 6,TYPFIL @SC87166 03546500
BAL 14,SHOBRV Get full name from abbrev. @SC87166 03547000
NOP 0 @SC87166 03547500
SHOLNG LA 4,SETLNGKW List of possibles @SC88120 03548000
LA 6,TRNCFL @SC88120 03548500
BAL 14,SHOBRV Get full name from abbrev. @SC88120 03549000
NOP 0 @SC88120 03549500
SHOCLSN LA 4,SETCLSKW List of COLLISION options @SC90033 03550000
LA 6,CLSNFL @SC90033 03550500
BAL 14,SHOBRV @SC90033 03551000
NOP 0 @SC90033 03551500
SHOOVWR LA 4,SETOVWKW List of possibles @SC90033 03552000
BAL 14,SHOXY @SC90033 03552500
OI FL3,SVATT @SC90033 03553000
SHOLR SR 4,4 @SC86133 03553500
L 8,MAXLRC Upper limit @SC87166 03554000
ICM 4,3,FILLRC @SC88120 03554500
BAL 14,SHONUM Print it @SC86133 03555000
B SETLR @SC87166 03555500
KFILSHO , @SC87012 03556000
SHOFALF LA 4,SETFALFK NOTE: this must be last parm @SC90040 03556500
LA 8,FILALF Ptr to file character name @SC90040 03557000
LA 9,2*LALF @SC91325 03557500
CLC FILALF,FILALF2 @SC91325 03558000
BNE SHOALF2 @SC91325 03558500
SHOALFC LA 9,LALF @SC91325 03559000
SHOALF2 DS 0H @SC91325 03559500
BAL 14,SHOCHRN Get name @SC90040 03560000
B SETSCN @SC90040 03560500
B SHOGRPZ @SC86295 03561000
* 03561500
SHOLFT L 4,LMARG @SC87253 03562000
BAL 14,SHONBIG Print it @SC87253 03562500
B RTRN0 @SC87253 03563000
SHORGT L 4,RMARG @SC87253 03563500
BAL 14,SHONBIG Print it @SC87253 03564000
B RTRN0 @SC87253 03564500
B SHOGRPZ @SC87253 03565000
* 03565500
SHOWARN BAL 14,SHOOO On or off ***COMPAT*** @SC90033 03566000
OI FL1,REN @SC90033 03566500
SHOAPP BAL 14,SHOOO On or off ***COMPAT*** @SC90033 03567000
OI FL3,APPN @SC90033 03567500
* 03568000
SHOECO BAL 14,SHOOO On or off @SC86171 03568500
OI FL2,ECHO @SC87166 03569000
SHOHLT LA 4,SETSWT List of possibles @SC87166 03569500
BAL 14,SHOXY @SC86171 03570000
OI FL5,TKHLT @SC87166 03570500
B SHOGRPZ @SC86171 03571000
* 03571500
SHOPFX LA 8,PREFIX Point to prefix @HF86223 03572000
LA 4,FORMAXL Max length @SC87268 03572500
BAL 14,SHOSTR Print message @SC86224 03573000
B RTRN0 @SC87268 03573500
SHOSFX LA 8,SUFFIX Point to suffix @HF86223 03574000
LA 4,FORMAXL Max length @SC87268 03574500
BAL 14,SHOSTR Print message @SC86224 03575000
B RTRN0 @SC87268 03575500
B SHOGRPZ @HF86223 03576000
* 03576500
SHORETI L 4,MAXTNT Initial retry limit @SC86345 03577000
BAL 14,SHONBIG Print it @SC87166 03577500
B RTRN0 @SC87166 03578000
SHORETN L 4,MAXTRY Normal retry limit @SC86345 03578500
BAL 14,SHONBIG Print it @SC87166 03579000
B RTRN0 @SC87166 03579500
B SHOGRPZ @SC86345 03580000
* 03580500
SHOEOL SR 4,4 @SC86133 03581000
IC 4,REOL(5) @SC86133 03581500
BAL 14,SHOCTL Print it @SC87166 03582000
B SETEOL @SC87166 03582500
LA 1,SHOPSKW Skip aliases @SC86133 03583000
SHOSIZ L 8,=A(KMAXE) Limit @SC87166 03583500
LR 3,5 @SC87166 03584000
SLA 3,2 Get fullword index @SC87166 03584500
L 4,RPSIZ(3) @SC87166 03585000
BAL 14,SHONUM Print number @SC86133 03585500
B SETSIZ @SC87166 03586000
SHOPADC SR 4,4 @SC86164 03586500
IC 4,RPADC(5) Pad character @SC86164 03587000
BAL 14,SHOCTL @SC87166 03587500
B SETPADC @SC87166 03588000
SHOPADN SR 4,4 @SC86164 03588500
LA 8,KMAX Same upper limit as packets @SC87166 03589000
IC 4,RPADN(5) Pad count @SC86164 03589500
BAL 14,SHONUM @SC86164 03590000
B SETPADN @SC87166 03590500
SHOQUO LA 8,RCTLQ(5) @SC86133 03591000
BAL 14,SHOCHRA Print as ascii @SC86133 03591500
B SETRCTLQ @SC87166 03592000
SHOMARK SR 4,4 @SC86133 03592500
IC 4,RMARK(5) @SC86133 03593000
BAL 14,SHOCTL @SC87166 03593500
B RTRN0 @SC87166 03594000
SHOTIMO SR 4,4 @SC86164 03594500
IC 4,RTIMO(5) Timeout limit @SC86164 03595000
BAL 14,SHONBIG @SC87166 03595500
B SETTIMO @SC87166 03596000
SHOPRTY LA 4,SETPAR @SC88288 03596500
LA 3,RPRTY(5) Ptr to proper flag @SC88288 03597000
BAL 14,SHOXY @SC88288 03597500
OI 0(3),DAT8 @SC88288 03598000
* 03598500
SHOGRPZ TM SFLG,ASRF Doing just receive/send? @SC86295 03599000
BO SHOZZW Yes, write last line @SC86227 03599500
LM 1,2,SHOTMP Get top level ptr, return adr @SC87166 03600000
LR 14,2 @SC86224 03600500
BAL 2,SHOKW Get ptr to name @SC86133 03601000
LA 1,0(7,6) Advance to next @SC86133 03601500
BR 14 @SC86224 03602000
* 03602500
SHOMULT LR 5,1 Save ptr to current option @SC88168 03603000
LR 1,6 Use ptr to list of suboptions @SC88168 03603500
SHOMULQ ICM 14,7,KWADR(1) Get ptr to handler (assume OI x,y)@SC90239 03604000
BAL 2,SHOKW Get ptrs to KW string, fix SETXI @SC88168 03604500
EX 0,SETXI TM x,y @SC88168 03605000
BNO SHOMULP Not this one @SC88168 03605500
MVI 0(15),C',' Yes, punctuate display @SC88168 03606000
LA 15,1(15) @SC88168 03606500
LR 8,6 @SC88168 03607000
LR 9,7 @SC88168 03607500
BAL 2,EDCHAR Copy this KW to display @SC88168 03608000
SHOMULP LA 1,0(7,6) On to next in list @SC88168 03608500
CLI KWLEN(1),254 End of list? @SC90239 03609000
BL SHOMULQ No, keep checking @SC88168 03609500
LR 14,4 Proper place for return adr @SC88168 03610000
LR 1,5 Restore ptr to current option @SC88168 03610500
B SHOZZZ End of item @SC88168 03611000
* 03611500
SHOLIST LTR 5,5 Length of list @SC86355 03612000
BZ SHOZZ Empty, we're done @SC86355 03612500
LA 0,CMD+75 Set right margin @SC86355 03613000
MVI 0(15),C' ' Start with blank @SC86355 03613500
B *+8 @SC86355 03614000
SHOLSLP MVI 0(15),C',' Insert delimiter @SC86355 03614500
LA 15,1(15) @SC86355 03615000
CR 15,0 Any room? @SC86355 03615500
BL SHOLSED Yes, ok @SC86355 03616000
LA 1,CMD No, dump line @SC86355 03616500
SR 15,1 @SC86355 03617000
WTEXT (1),(15) @SC86355 03617500
MVI CMD,C' ' @SC86355 03618000
LA 15,CMD+1 Start indented @SC86355 03618500
LA 0,CMD+75 @SC86355 03619000
SHOLSED SR 4,4 @SC86355 03619500
IC 4,0(3) Get 1-byte item @SC86355 03620000
BAL 2,EDDEC Format it @SC86355 03620500
LA 3,1(3) Point to next item in list @SC86355 03621000
BCT 5,SHOLSLP @SC86355 03621500
B SHOZZ Finished list @SC86355 03622000
* 03622500
SHOKW MVC SETXI+1(3),1(14) Copy instr operands @SC87166 03623000
CLI SETXI,X'97' 'OI' if SET, but 'TM' if SHOW @SC87166 03623500
LA 6,KWNAME(1) Ptr to name @SC90239 03624000
LA 7,0 Preserve CC @SC86133 03624500
IC 7,KWLEN(1) Length (assumes high bytes clear) @SC90239 03625000
LA 7,1(7) @SC86133 03625500
BR 2 @SC86133 03626000
* 03626500
SHOCTL LA 8,ABL-1 Max control character (ASCII) @SC87166 03627000
CLI TRMTP,C'F' Full-screen non-transparent? @SC92030 03627500
BE SHONBIG Yes, allow any packet char, etc. @SC92030 03628000
TM FL1,TSTF @SC86295 03628500
BZ SHONUM @SC87166 03629000
SHONBIG L 8,=F'999999998' Almost anything @SC87166 03629500
SHONUM BAL 2,SHOKW @SC86133 03630000
BE SETNUM2 Get value for SET @SC87166 03630500
BAL 2,SHONAM Copy option name @SC86209 03631000
BAL 2,EDDEC Edit (R4) as decimal @SC86295 03631500
B SHOZZ @SC86133 03632000
* 03632500
SHOCHRA MVC TMP,0(8) Copy ascii char @SC86133 03633000
PTEXT SETOOKW+KWNAME,3,AREG=8,LREG=9 @SC91320 03633500
TM TMP,X'60' Is it printable? @SC87008 03634000
BZ SHOCHRN No, say it's OFF @SC87008 03634500
TR TMP,ATOED Convert to EBCDIC @SC89301 03635000
LA 8,TMP @SC86133 03635500
B SHOCHR @SC86224 03636000
SHOSTR BAL 2,SHOKW Get ptrs to name @SC87268 03636500
BE SETSTR Branch to dispatch for SET @SC87268 03637000
SR 9,9 Variable-length string @SC86224 03637500
IC 9,0(8) Get length @SC86224 03638000
LA 8,1(8) Ptr to text @SC86224 03638500
B SHOCHRD @SC87268 03639000
SHOCHR LA 9,1 Length is 1 @SC86224 03639500
SHOCHRN BAL 2,SHOKW Get ptrs to name @SC86224 03640000
BER 14 Branch to dispatch for SET @SC87166 03640500
SHOCHRD BAL 2,SHONAM Copy option name @SC87268 03641000
BAL 2,EDCHAR Append string at (R8) @SC87034 03641500
B SHOZZ Print message @SC87034 03642000
* 03642500
SHOBRV CLI SETXI,X'97' SET or SHOW? @SC87166 03643000
LR 8,6 Save ptr to code field @SC91320 03643500
BE SETSCN @SC87166 03644000
LR 9,14 Save return adr @SC87166 03644500
LR 8,1 Save list ptr @SC87166 03645000
LR 1,4 Use list of suboptions @SC87166 03645500
ICM 7,4,0(6) Use code to look up @SC91320 03646000
ICM 7,8,* Indicate just search @SC87166 03646500
BAL 14,SCAN @SC87166 03647000
CR 0,0 These two skipped @SC87166 03647500
LR 4,1 if bad value @SC87166 03648000
LR 1,8 Retrieve ptrs @SC87166 03648500
LR 14,9 @SC87166 03649000
B SHOXY Display it @SC87166 03649500
* 03650000
SHOOO LA 4,SETOOKW Ptr to on/off @SC87166 03650500
SHOXY BAL 2,SHOKW Set up name @SC86133 03651000
BE SETSCN Parse value for SET @SC87166 03651500
LA 8,KWNAME(4) Value if off @SC90239 03652000
SR 9,9 @SC87166 03652500
IC 9,KWLEN(4) Length of name - 1 @SC90239 03653000
EX 0,SETXI Test bit @SC87166 03653500
BZ *+12 @SC86133 03654000
LA 8,KWNAME+1(9,8) Flag is on, advance to other @SC90239 03654500
IC 9,KWNAME+1(9,4) Length-1 of other item @SC90239 03655000
LA 9,1(9) @SC86133 03655500
SHOXL BAL 2,SHONAM Copy option name @SC86209 03656000
BAL 2,EDCHAR Append string at (R8) @SC86295 03656500
SR 15,9 Back up to string @SC87034 03657000
TR 0(30,15),LOCASE And make it lower case @SC87034 03657500
AR 15,9 Resume @SC87034 03658000
SHOZZ LA 1,0(7,6) Advance to next option @SC88168 03658500
SHOZZZ ST 15,SHOPTR Save end of display buffer @SC88168 03659000
L 3,=A(SETCMDS) Recover base reg. @SC90040 03659500
LA 14,4(14) Skip over SET branch @SC87166 03660000
CLM 14,7,=AL3(SHOTABSZ) @SC86355 03660500
BER 14 Special treatment for tabs @SC86355 03661000
CLM 14,7,=AL3(SHODEBZ) @SC88168 03661500
BER 14 Special treatment for DEBUG, too @SC88168 03662000
TM SFLG,ALLF Doing all? @SC86295 03662500
BOR 14 And resume if yes @SC86227 03663000
SHOZZW LA 1,CMD No, get address of buffer @SC86227 03663500
SR 15,1 Get length @SC86227 03664000
WTEXT (1),(15) Write it out @SC86227 03664500
B RTRN0 That's all @SC86295 03665000
* 03665500
SHONAM LA 15,CMD Output message buffer @SC86209 03666000
L 0,SHOPTR End of prev. msg @SC86227 03666500
CR 0,15 Empty? @SC86227 03667000
BE SHON1 Yes, start here @SC86227 03667500
LA 1,CMD+23 2nd column @SC86227 03668000
SR 1,0 Far enough? @SC86227 03668500
BP SHONF Yes, blank fill @SC86227 03669000
AH 1,=H'23' Try 3rd column @SC86227 03669500
BP SHONF OK @SC86227 03670000
SR 0,15 No room, dump line @SC86227 03670500
WTEXT (15),(0) @SC86227 03671000
LA 15,CMD And start over @SC86227 03671500
B SHON1 @SC86227 03672000
SHONF SR 15,15 @SC86295 03672500
ICM 15,8,BLANK @SC86295 03673000
MVCL 0,14 Fill with blanks to next column @SC86227 03673500
LR 15,0 New output ptr @SC86227 03674000
SHON1 MVC 0(40,15),0(6) Copy option name @SC87034 03674500
TR 1(39,15),LOCASE And beautify it @SC87034 03675000
AR 15,7 Space over it @SC86209 03675500
INITSTR '&AAAAAIS' @SC92300 03676000
BR 2 @SC86209 03676500
DROP 3 @SC90040 03677000
* 03677500
LOCALS , @SC86295 03678000
SHOTMP DS 4F @SC87166 03678500
SHOPTR DS A More temporaries @SC86227 03679000
SETXI DS F XI executable instr @SC86273 03679500
SFLG DS X Local flags @SC86295 03680000
ALLF EQU X'80' Doing SHOW ALL @SC86295 03680500
ASRF EQU X'40' Doing SHOW REC or SHOW SEND @SC86295 03681000
SHODBG DS X Temp for DEBUG flags @SC88168 03681500
SHOW EXIT 03682000
TITLE 'STATUS Routine - display latest error, etc.' @SC86295 03682500
* Exit: R15=0. ERRNUM unchanged. 03683000
STATUS ENTER @SC86156 03683500
CLI ERRNUM,ERRNFT Actual error? @BS86090 03684000
BNH STAMSG No @BS86090 03684500
CLI ERRNUM,ERRKCE Last command invalid? @SC86295 03685000
BE STAMSG Yes, do not show last file @HF86232 03685500
CLI FILNAM,0 File name defined? @BS86090 03686000
BE STAMSG No @BS86090 03686500
INITSTR '&LASTFIL',CMD,REG=7 @SC92300 03687000
LA 1,FILNAM @SC86295 03687500
BAL 2,STAFSP Copy name and print @SC86295 03688000
STAMSG ICM 4,15,NSENT Number of files sent @SC86295 03688500
BZ STASNTZ @SC86295 03689000
LA 15,CMD Start of message buffer @SC86295 03689500
BAL 2,EDDEC Format number as decimal @SC86295 03690000
INITSTR '&FSENLST' @SC92300 03690500
BAL 2,STAPM15 Show message @SC86295 03691000
STASNTZ ICM 0,15,PAKCNT Any transfer statistics? @SC86295 03691500
BZ STADATR No, skip it @SC86316 03692000
ICM 6,7,=C'&PKTABBR' @SC86295 03692500
BAL 3,STADPR Format msg @SC86295 03693000
ICM 0,15,SECTOT Any duration? @SC86295 03693500
BZ STADATR No, must have been very short @SC86316 03694000
ICM 6,7,=C'&SECABBR' @SC86295 03694500
BAL 3,STADPR Format msg @SC86295 03695000
INITSTR '&BYTPSEC',CMD @SC92300 03695500
L 0,SECTOT @SC86295 03696000
LM 4,5,DSKTOT @SC86295 03696500
BAL 2,STAVB Format ratio @SC86295 03697000
ICM 1,15,BAUD Efficiency only if speed defined @SC93014 03697500
BNP STADEFCZ @SC93014 03698000
MVC 0(3,15),=C' = ' @SC93014 03698500
LA 15,3(,15) @SC93014 03699000
M 4,=F'1000' *10*100 for bits/byte and percent @SC93014 03699500
L 0,BAUD Compute percentage of line speed @SC93014 03700000
BAL 2,STAVB Format ratio @SC93014 03700500
INITSTR '% (&AASPEED.&AAAAAIS' Remind of rating @SC93014 03701000
L 4,BAUD @SC93014 03701500
BAL 2,EDDEC @SC93014 03702000
MVI 0(15),C')' @SC93014 03702500
LA 15,1(,15) @SC93014 03703000
STADEFCZ DS 0H @SC93014 03703500
BAL 2,STAPM15 Print line @SC86295 03704000
STADATR ICM 4,15,RTRCNT Any retries? @SC86316 03704500
BZ STADATZ No @SC86316 03705000
LA 15,CMD Yes, issue message @SC86316 03705500
BAL 2,EDDEC @SC86316 03706000
INITSTR '&REPTCNT' @SC92300 03706500
BAL 2,STAPM15 Print line @SC86316 03707000
XC TINSV(48),TINSV Completely clear data @SC88325 03707500
KCALL OPTPKT Get best packet size @SC88325 03708000
LTR 4,15 Valid? @SC86345 03708500
BNP STADATZ No, skip it @SC86345 03709000
INITSTR '&OPTSIZE',CMD @SC92300 03709500
BAL 2,EDDEC Format it @SC86345 03710000
BAL 2,STAPM15 @SC86345 03710500
STADATZ ICM 4,15,RECTRC Any truncated records? @SC87268 03711000
BZ STATRCZ No, ok @SC87268 03711500
LA 15,CMD Yes, issue message @SC87268 03712000
BAL 2,EDDEC @SC87268 03712500
INITSTR '&MRCTRNC' @SC92300 03713000
BAL 2,STAPM15 @SC87268 03713500
STATRCZ DS 0H @SC87268 03714000
ICM 4,15,RECFLD Any folded records? @SC88120 03714500
BZ STATFDZ No, ok @SC88120 03715000
LA 15,CMD Yes, issue message @SC88120 03715500
BAL 2,EDDEC @SC88120 03716000
INITSTR '&RECFOLD' @SC92300 03716500
BAL 2,STAPM15 @SC88120 03717000
STATFDZ DS 0H @SC88120 03717500
STAPEMSG DS 0H @SC91064 03718000
SR 5,5 @SC86156 03718500
IC 5,ERRNUM Get offset into error table @SC86156 03719000
SLL 5,2 Get fullword index @SC86156 03719500
A 5,=A(ERRTAB) Pointer address @SC89215 03720000
L 1,0(5) Msg ptr @SC86156 03720500
SR 0,0 @SC86268 03721000
SLDL 0,8 Msg length @SC86316 03721500
SRL 1,8 Realign adr @SC86316 03722000
WTEXT (1),(0) Print message @SC86268 03722500
CLI ERRNUM,ERRTRC Cancelled? @SC86316 03723000
BNE STACKAB No @SC86316 03723500
SR 1,1 @SC86316 03724000
CLI REASON,STACNN Within table? @SC90033 03724500
BH *+8 No, must be new @SC86316 03725000
IC 1,REASON Ok, get the complaint code @SC86316 03725500
SLL 1,3 Index into table @SC86316 03726000
LA 1,STACNTB(1) @SC86316 03726500
LA 0,8 Length of items @SC86316 03727000
WTEXT (1),(0) @SC86316 03727500
STACKAB CLI ERRNUM,ERRABO Micro aborted? @BS86090 03728000
BE *+12 Yes @SC87338 03728500
CLI ERRNUM,ERRDIE No, disk I/O error? @SC87338 03729000
BNE STARET No @BS86090 03729500
ICM 0,15,EMSGL Yes, any message? @SC86268 03730000
BZ STARET No @BS86090 03730500
L 1,EMSGP @BS86090 03731000
WTEXT (1),(0) Yes, show it @SC86268 03731500
STARET TM FL1,TSTF @SC89089 03732000
BZ RTRN0 Skip this message unless testing @SC89089 03732500
LM 3,4,STKLO Get start and end of stack use @SC89089 03733000
SR 4,3 Get length (is mult. of 8) @SC89089 03733500
SRL 4,3 Convert to doublewords @SC89089 03734000
LA 15,CMD Sart of msg buffer @SC89089 03734500
BAL 2,EDDEC Format number @SC89089 03735000
INITSTR '&DWRDSTK' @SC92300 03735500
BAL 2,STAPM15 @SC89089 03736000
B RTRN0 @SC89089 03736500
* 03737000
STADPR INITSTR '&ZZBYTES',CMD @SC92300 03737500
MVC 0(8,15),=C'/___: S=' @SC92300 03738000
STCM 6,7,1(15) Fill in unit name (pkt or sec) @SC92300 03738500
LA 15,8(,15) @SC92300 03739000
LM 4,5,TOUTOT @SC86295 03739500
BAL 2,STAVB Format ratio @SC86295 03740000
MVC 0(3,15),=C' R=' @SC86295 03740500
LA 15,3(15) @SC86295 03741000
LM 4,5,TINTOT @SC86295 03741500
BAL 2,STAVB Format ratio @SC86295 03742000
INITSTR '&REQUIRG' @SC92300 03742500
LR 4,0 @SC86295 03743000
BAL 2,EDDEC Format number of units @SC86295 03743500
MVI 0(15),C' ' @SC86295 03744000
STCM 6,7,1(15) @SC86295 03744500
LA 0,4(15) End of msg @SC86295 03745000
BAL 2,STAPMSG Print it @SC86295 03745500
BR 3 @SC86295 03746000
* 03746500
STAVB DR 4,0 Get ratio @SC86295 03747000
AR 4,4 @SC86295 03747500
CR 4,0 @SC86295 03748000
BL *+8 @SC86295 03748500
A 5,F1 Round up @SC86295 03749000
LR 4,5 @SC86295 03749500
B EDDEC Format it @SC86295 03750000
* 03750500
* Display just error message and its backup explanations. @SC91064 03751000
* (same as STATUS) @SC91064 03751500
PEMSG ENTER ALT @SC91064 03752000
B STAPEMSG Do it @SC91064 03752500
* 03753000
* Table of reasons for rejecting Attribute packet @SC86316 03753500
STACNTB DC C'-&ATTUNK.-&ATTLEN.-&ATTTYP.-&ATTDAT.' @SC92300 03754000
DC C'-&ATTCRE.-&ATTACC.-&ATTARE.-&ATTPAS.' @SC92300 03754500
DC C'-&ATTBLK.-&ATTACS.-&ATTENC.-&ATTDIS.' @SC92300 03755000
DC C'-&ATTPRO.-&ATTPRO.-&ATTORI.-&ATTFRM.' @SC92300 03755500
DC C'-&ATTSIN.-&ATTBLE.' @SC92300 03756000
DC (32-(*-STACNTB)/8)CL8'-??' @SC91109 03756500
DC C'-&AAAAEN.' 32- @SC92300 03757000
STACNCLS EQU (*-STACNTB)/8 One extra reason stuck on the end @SC90033 03757500
DC C'-&COLLIS.' @SC92300 03758000
STACNN EQU (*-STACNTB)/8-1 @SC90033 03758500
LOCALS , @SC91109 03759000
EXIT @SC91109 03759500
TITLE 'DUMP Routine - print translation table' 03760000
* Display current values in STORAG. 03760500
* Entry: SCANPTR string has option 03761000
* Exit: R15=0 if ok, R15=1 if error or help needed. ERRNUM unchanged. 03761500
DUMP ENTER , @SC91109 03762000
NTOKN N=DUMPH A or E? @SC86156 03762500
SCAN DUMPKW,RTRN1 @SC86295 03763000
DUMPH HELP DUMPKW,RTRN1 @SC86295 03763500
* 03764000
DUMPKW KW '&AAAATOE',DUMPA @SC86156 03764500
KW '&CTRLCHR',DUMPCT @SC93173 03765000
KW '&AAAETOA',DUMPE @SC86156 03765500
KW '&AANAMES',DMPN @SC86295 03766000
KW '&AATATOE',DUMPTA,MIN=2 @SC87117 03766500
KW '&AATETOA',DUMPTE,MIN=2 @SC87117 03767000
AIF ('&KTRACE' NE 'YES').NODUMTR @SC92169 03767500
KW '&AATRACE',DUMPTR,MIN=2 @SC92169 03768000
.NODUMTR ANOP @SC92169 03768500
KW , @SC86156 03769000
* 03769500
DUMPTR KTRACE DUMP Dump trace table (only if enabled)@SC92169 03770000
* 03770500
DMPN L 5,TSENT Table ptr @SC86295 03771000
ICM 6,15,NSENT Number of files sent @SC86295 03771500
BNZ DMPNL @SC86295 03772000
WTEXT '&NOFSENT' @SC86295 03772500
B RTRN0 @SC86295 03773000
USING ACTBUF,5 @SC91172 03773500
DMPNL LA 7,CMD Start of message buffer @SC86295 03774000
SR 15,15 @SC91172 03774500
ICM 15,7,ACTBEG Starting time @SC91172 03775000
BAL 2,DMPTIM @SC91172 03775500
LA 0,FFDSP @SC88092 03776000
KCALL FSPEC,ACTFID Copy name for display @SC91172 03776500
MVC 0(2,15),=C' (' @SC88092 03777000
LA 15,2(15) @SC88092 03777500
ICM 4,15,ACTSIZ Get file size @SC91172 03778000
BAL 2,EDDEC Format into message @SC88092 03778500
MVC 0(2,15),=C'k)' @SC88092 03779000
LA 15,2(15) @SC88092 03779500
SR 2,2 @SC88092 03780000
ICM 2,1,ACTERR Get corresponding error code @SC91172 03780500
BZ DMPNN No error, that's fine @SC88092 03781000
SLL 2,2 @SC88092 03781500
A 2,=A(ERRTAB) Get ptr into error table @SC89215 03782000
SR 3,3 @SC88092 03782500
IC 3,0(2) Length of message @SC88092 03783000
L 2,0(2) And message ptr @SC88092 03783500
MVC 0(4,15),=C' -- ' @SC88092 03784000
MVC 4(50,15),0(2) Copy message @SC88092 03784500
LA 15,4(3,15) @SC88092 03785000
CLI ACTERR,ERRTRC Cancelled? @SC91172 03785500
BNE DMPNN No @SC91172 03786000
SR 1,1 @SC91172 03786500
CLI ACTREA,STACNN Within table? @SC91172 03787000
BH *+8 No, must be new @SC91172 03787500
IC 1,ACTREA Ok, get the complaint code @SC91172 03788000
SLL 1,3 Index into table @SC91172 03788500
A 1,=A(STACNTB) @SC91172 03789000
MVI 0(15),C' ' Leave a space @SC91172 03789500
MVC 1(8,15),0(1) Copy to message @SC91172 03790000
LA 15,9(,15) Length of items @SC91172 03790500
DMPNN BAL 2,STAPM15 Display name (+ error) @SC88092 03791000
A 5,FLFID1 Next filespec @SC88092 03791500
BCT 6,DMPNL @SC86295 03792000
LA 7,CMD Start of message buffer @SC91172 03792500
ICM 15,15,TRANEND Quitting time @SC92210 03793000
BAL 2,DMPTIM @SC91172 03793500
LR 15,7 @SC92300 03794000
INITSTR '&FINISHD' @SC92300 03794500
BAL 2,STAPM15 @SC91172 03795000
B RTRN0 @SC86295 03795500
DROP 5 @SC91172 03796000
* Display TOD from R15 as hh:mm:ss in buffer at R7; @SC91172 03796500
* return via R2; clobber R1,R4,R14,R15; update R7. @SC91172 03797000
DMPTIM LA 1,8 Length of output string @SC91172 03797500
BCTR 7,0 Allow for index to start at 1 @SC91172 03798000
SR 4,4 Clear divisor @SC91172 03798500
DMTLP IC 4,DVSR-1(1) Get next divisor @SC91172 03799000
LTR 4,4 See if time for a colon @SC91172 03799500
BNZ DMTDIG Not yet... @SC91172 03800000
LA 14,C':' Yes, put in colon @SC91172 03800500
B DMTSTOR @SC91172 03801000
DMTDIG SR 14,14 Set up next division @SC91172 03801500
DR 14,4 Get remainder for next digit @SC91172 03802000
LA 14,C'0'(,14) Convert to printable @SC91172 03802500
DMTSTOR STC 14,0(1,7) Store character in buffer @SC91172 03803000
BCT 1,DMTLP @SC91172 03803500
MVI 9(7),C' ' Leave a blank @SC91172 03804000
LA 7,10(,7) Space over string @SC91172 03804500
BR 2 @SC91172 03805000
DVSR DC AL1(6,10,0,6,10,0,6,10) @SC91172 03805500
* 03806000
DUMPCT LA 3,CTLTAB @SC93173 03806500
LA 7,160(,3) End of table @SC93173 03807000
B DUMPAEX @SC93173 03807500
DUMPA LA 3,ATOE @SC86156 03808000
B DUMPAE @SC86156 03808500
DUMPE LA 3,ETOA @SC86156 03809000
B DUMPAE @SC87117 03809500
DUMPTA LA 3,TATOE @SC87117 03810000
B DUMPAE @SC87117 03810500
DUMPTE LA 3,TETOA @SC87117 03811000
DUMPAE LA 7,256(,3) End of table @SC93173 03811500
DUMPAEX LA 4,4 Bytes per word @SC93173 03812000
LA 5,15(3) End of 1st line @SC86156 03812500
LA 6,16 Bytes per line @SC86156 03813000
DUMPLL LA 2,CMD Output buffer @SC86156 03813500
DUMPLW UNPK 0(9,2),0(5,3) Convert a word @SC86156 03814000
TR 0(8,2),TRHEX Hex notation @SC86156 03814500
MVI 8(2),C' ' Leave a space between words @SC86156 03815000
LA 2,9(2) @SC86156 03815500
BXLE 3,4,DUMPLW Do next word @SC86156 03816000
LA 1,CMD Done line of 4 @SC86156 03816500
LA 0,35 @SC86268 03817000
WTEXT (1),(0) Print it @SC86268 03817500
BXLE 5,6,DUMPLL Done line, go to next @SC86156 03818000
B RTRN0 03818500
SPACE 3 @SC91172 03819000
* Extra entry point for dumping TOD (in sec) from R0 into buf @SC91172 03819500
* at R1 and return updated buffer ptr in R15 @SC91172 03820000
DUMPTOD ENTER ALT @SC91172 03820500
LR 15,0 Time in sec @SC91172 03821000
LR 7,1 Buffer ptr @SC91172 03821500
BAL 2,DMPTIM Dump it @SC91172 03822000
LR 15,7 @SC91172 03822500
B RTRN @SC91172 03823000
TITLE 'GIVTAB Routine - save translation table' 03823500
* Save current values in STORAG into a TAKE file on disk 03824000
* Entry: SCANPTR string has option 03824500
* Exit: R15=0 if ok, R15=1 if error or help needed. ERRNUM set 03825000
* appropriately as long as command syntax is ok, else unchanged. 03825500
GIVTAB ENTER ALT @SC87117 03826000
NTOKN N=GIVH A or E? @SC87117 03826500
SCAN GIVKW,RTRN1 @SC87117 03827000
GIVH HELP GIVKW,RTRN1 @SC87117 03827500
* 03828000
GIVKW KW '&AAAATOE',GIVA @SC87117 03828500
KW '&CTRLCHR',GIVCTL @SC93173 03829000
KW '&AAAETOA',GIVE @SC87117 03829500
KW '&AATATOE',GIVTA,MIN=2 @SC87117 03830000
KW '&AATETOA',GIVTE,MIN=2 @SC87117 03830500
KW , @SC87117 03831000
* 03831500
GIVCTL LA 6,CTLTAB-1 Permission to transmit "as is" @SC93173 03832000
LA 0,=160X'01' Assume most are permitted @SC93173 03832500
LA161 LA 5,161 Length of table (+ 1) @SC93173 03833000
B GIVANY @SC93173 03833500
GIVA LA 6,ATOE-ATOE ATOE table is first in storage @SC90040 03834000
B GIVSET @SC90040 03834500
GIVE LA 6,ETOA-ATOE i.e., 256 @SC90040 03835000
GIVSET LR 7,1 Save ptr to cmd option @SC90040 03835500
XR 0,0 Quit if invalid pair @SC90040 03836000
L 1,CBUF @SC90040 03836500
KCALL TBLSET,E=RTRN1 Load base tables into CBUF @SC90040 03837000
LA 0,0(6,1) R0->base table @SC90040 03837500
LA 6,ATOE-1(6) R6->working table - 1 @SC90040 03838000
LR 1,7 R1->item in keywords list @SC90040 03838500
B GIVAE @SC90040 03839000
GIVTA LA 6,TATOE-1 @SC87117 03839500
GIVA1 LA 0,ATOED @SC87117 03840000
B GIVAE @SC87117 03840500
GIVTE LA 6,TETOA-1 @SC87117 03841000
GIVE1 LA 0,ETOAD @SC87117 03841500
GIVAE LA 5,257 Length of table (+ 1) @SC93173 03842000
GIVANY SR 15,15 @SC93173 03842500
IC 15,0(1) Get length of name @SC88298 03843000
INITSTR '&AAAASET',GIVBUF,REG=7 @SC92300 03843500
MVI 0(7),C' ' @SC92300 03844000
MVC 1(20,7),KWNAME(1) Copy name to command @SC93173 03844500
LA 15,2(15,7) @SC92300 03845000
MVI 0(15),C' ' @SC87117 03845500
LA 15,1(15) Get ptr for 1st argument @SC87117 03846000
LR 1,0 @SC87117 03846500
BCTR 0,0 Back up to start at "difference" @SC87117 03847000
STM 15,1,GIVSV Save ptrs: cmd, table, table start@SC87117 03847500
LR 7,5 Table length + 1 @SC93173 03848000
LA 0,FFGIV @SC87117 03848500
KCALL FSPEC,FILNAM,E=GIVFNE Error @SC87117 03849000
MVI ERRNUM,ERRNOE Ok now @SC87117 03849500
OPENF O,FILNAM,LOGFDB,GIVPTR,E=GIVOPERR @SC87117 03850000
CH 5,LA161+2 See if doing controls @SC93173 03850500
BNE GIVLP No, just start loop @SC93173 03851000
L 4,GIVSV @SC93173 03851500
MVC 0(,4),=CL1'&UNPREFD' First, set all unprefixed @SC93173 03852000
LA 15,1(,4) @SC93173 03852500
LA 2,GIVBUF @SC93173 03853000
SR 15,2 Length of line @SC93173 03853500
WRITF GIVPTR,BUFFER=(2),BSIZE=(15),E=GIVWRERR @SC93173 03854000
MVC 0(,4),=CL1'&PREFIXD' Then reset infividuals @SC93173 03854500
MVI 1(4),C' ' @SC93173 03855000
LA 4,2(,4) @SC93173 03855500
ST 4,GIVSV @SC93173 03856000
GIVLP LM 15,0,GIVSV Get output ptr, table scan ptr @SC87117 03856500
A 6,F1 Skip last difference @SC93173 03857000
A 0,F1 @SC93173 03857500
BCTR 7,0 New length left @SC87117 03858000
LR 1,7 Copy length @SC87117 03858500
CLCL 0,6 Find next difference @SC87117 03859000
BE GIVFIN All done @SC87117 03859500
ST 0,GIVSV+4 Save new ptr @SC87117 03860000
LR 4,0 Get offset @SC87117 03860500
S 4,GIVSV+8 @SC87117 03861000
BAL 2,EDDEC Write as decimal @SC87117 03861500
CH 5,LA161+2 Doing controls? @SC93173 03862000
BE GIVWRT Yes, skip value @SC93173 03862500
MVI 0(15),C' ' Leave space @SC87117 03863000
LA 15,1(15) @SC87117 03863500
IC 4,0(6) Get tailored character @SC87117 03864000
BAL 2,EDDEC Write as decimal @SC87117 03864500
GIVWRT DS 0H @SC93173 03865000
LA 2,GIVBUF @SC87117 03865500
SR 15,2 Length of line @SC87117 03866000
WRITF GIVPTR,BUFFER=(2),BSIZE=(15),E=GIVWRERR @SC87117 03866500
B GIVLP @SC87117 03867000
GIVWRERR CLOSF GIVPTR Close output file @SC87117 03867500
GIVOPERR PTEXT '&NOWRITE' @SC87117 03868000
GIVFNE WTEXT (3),(4) Show message @SC87117 03868500
B RTRN1 @SC87117 03869000
GIVFIN CLOSF GIVPTR,E=GIVOPERR Close output file @SC87117 03869500
B RTRN0 @SC86295 03870000
LOCALS , @SC86295 03870500
GIVSV DS 3F Saved ptrs for saving table @SC87117 03871000
GIVPTR DS A Ticket for disk I/O @SC87117 03871500
DS (MAXDOF)X Leave room for data offset @SC90264 03872000
GIVBUF DS CL25 Buffer for new file @SC87117 03872500
AIF ('&KTRACE' NE 'YES').NODUMTB @SC92169 03873000
ORG GIVSV @SC92169 03873500
DUMTBL DS (45*16)X @SC92169 03874000
.NODUMTB ANOP @SC92169 03874500
EXIT @SC86164 03875000
TITLE 'OPTPKT Routine - compute optimum packet size' @SC88325 03875500
* Entry: TINSV contains stack of data 03876000
* Exit: R15=0 if no limit, else optimum packet size 03876500
OPTPKT ENTER , @SC88325 03877000
LM 1,2,TINTOT Get byte count @SC88325 03877500
AL 2,TOUTOT+4 @SC88325 03878000
BC 12,*+8 @SC88092 03878500
AL 1,F1 @SC88325 03879000
AL 1,TOUTOT @SC88325 03879500
LM 3,4,PAKCNT Get packets, errors @SC88325 03880000
L 5,CSECTOT Get time (elapsed, if done) @SC88325 03880500
LM 6,9,TINSV 3rd-last snapshot @SC88325 03881000
MVC TINSV(32),TINSV+16 Shift snapshots back @SC88325 03881500
STM 2,5,TINSV+32 And insert latest @SC88325 03882000
LTR 4,4 Any errors ever? @SC88325 03882500
BZ RTRN0 No, use max buffer @SC88325 03883000
SLR 2,6 Get incremental counts: bytes, @SC88325 03883500
SR 3,7 ... packets, @SC88325 03884000
BP *+8 @SC89275 03884500
LA 3,1 Mustn't divide by 0! @SC89275 03885000
SR 4,8 ... errors, @SC88325 03885500
BP *+8 @SC88325 03886000
LA 4,1 Mustn't divide by 0! @SC88325 03886500
SR 5,9 ... and csec. @SC88325 03887000
BNM *+8 @SC88325 03887500
A 5,=F'1759218604' Wraps by 2**44/10000 @SC88325 03888000
LR 7,4 Save error count @SC88325 03888500
M 4,BAUD Total possible transmission @SC88325 03889000
C 4,=F'500' @SC88325 03889500
BNL RTRN0 @SC88325 03890000
D 4,=F'1000' Correct for 10 baud, 100 csec @SC88325 03890500
SR 5,2 Possible - actual @SC88325 03891000
BNP RTRN0 ?? @SC88325 03891500
MR 6,3 Errors * packets @SC88325 03892000
SLA 3,4 Packets * 16 (16 apprx 19) @SC88325 03892500
SR 2,3 Useful bytes @SC88325 03893000
LR 3,2 @SC88325 03893500
SLR 2,2 Prepare divide @SC88325 03894000
DR 2,7 @SC88325 03894500
MR 2,5 @SC88325 03895000
* Compute sq rt of value in (2,3), return in 15. Uses 2,3,4,5,14. 03895500
SQRT LR 14,2 Copy for sqrt @SC86345 03896000
LR 15,3 @SC86345 03896500
LA 4,31 Count bits @SC86345 03897000
SQRL1 CL 2,=XL4'10000000' @SC86345 03897500
BNL SQRL2 Justified now @SC86345 03898000
SLDL 2,2 Keep shifting @SC86345 03898500
BCT 4,SQRL1 @SC86345 03899000
SQRL2 LCR 4,4 @SC86345 03899500
AL 2,=XL4'10000000' 1st guess at sqrt @SC86345 03900000
SRDL 2,62(4) Shift back @SC86345 03900500
LTR 3,3 @SC86345 03901000
BNP SQRX Too small anyway @SC86345 03901500
LA 2,3 @SC86345 03902000
SQRL3 LR 4,14 @SC86345 03902500
LR 5,15 @SC86345 03903000
DR 4,3 Get next guess @SC86345 03903500
AR 3,5 @SC86345 03904000
SRA 3,1 @SC86345 03904500
BCT 2,SQRL3 @SC86345 03905000
SQRX LR 15,3 @SC86345 03905500
B RTRN @SC88325 03906000
LOCALS , @SC88325 03906500
EXIT , @SC88325 03907000
TITLE 'GENCMD Routine - send a Generic command' @SC86155 03907500
* Entry: SCANPTR has string 03908000
* Exit: R15=0 if ok, 1 if help needed, 2 if bad parameter 03908500
* ERRNUM set appropriately 03909000
GENCMD ENTER @SC86155 03909500
LA 8,1 One operand @SC86295 03910000
LTR 1,1 @SC86295 03910500
BZ REMCMD Parse REMOTE command @SC86295 03911000
LA 0,AG Packet type = generic command @SC86155 03911500
GENNUL SR 5,5 NO ARGUMENTS @SC86316 03912000
GENFILL STC 0,STYPE Set packet type @SC86155 03912500
L 3,RBUF Put string here @SC86155 03913000
CLI STYPE,AG Generic? @SC86155 03913500
BNE GENOTH1 No subcommand @SC86155 03914000
STC 1,0(3) Save subcommand byte @SC86155 03914500
LA 3,1(3) Move to next character position @SC86155 03915000
B GENOTH1 @SC86295 03915500
GENNXT NTOKN N=RTRN1 Get next argument @SC86295 03916000
LA 5,1(7) Length @SC86295 03916500
LR 4,6 Address @SC86295 03917000
GENOTH1 LTR 1,5 Any argument? @SC86155 03917500
BZ GENFILZ No, done @SC86155 03918000
CLI STYPE,AG Generic? @SC86155 03918500
BNE GENOTH2 No, skip length indicator @SC86155 03919000
TOCHR 1,,0(3) Yes, do it @SC86155 03919500
LA 3,1(3) @SC86155 03920000
GENOTH2 MVC 0(96,3),0(4) Copy argument @SC86155 03920500
LA 1,ETOA Current E-to-A @SC91284 03921000
CLC =C'&TRANSPA',TRNALF @SC91284 03921500
BNE *+8 @SC91284 03922000
LA 1,ETOAD Use default if "transparent" @SC91284 03922500
TR 0(96,3),0(1) in ASCII @SC91284 03923000
AR 3,5 Advance ptr @SC86155 03923500
BCT 8,GENNXT @SC86295 03924000
GENFILZ S 3,RBUF Length of buffer @SC86155 03924500
ST 3,RBUFL Set buffer size @SC86155 03925000
BAL 8,IPKSET Set state table, exchange parms @SC86155 03925500
DC AL1(AY),AL3(0) ACK'ed Must be just @SC86155 03926000
DC XL1'FF',AL3(GENRET) Stop these 3 @SC88074 03926500
DC AL1(00),AL3(GENAB3) Error items. @SC88074 03927000
BAL 8,GENSET Set state table @SC86155 03927500
* Server cmd Rpack interpret input table @SC86155 03928000
DC AL1(AY),AL3(0) ACK'ed @SC86155 03928500
DC AL1(AS),AL3(GENRPL) Long reply @SC86155 03929000
DC AL1(AX),AL3(GENRPX) Long reply already INIT @SC88074 03929500
DC AL1(AF),AL3(GENRPX) Long reply already INIT @SC88074 03930000
DC XL1'FF',AL3(GENRET) Stop @SC88074 03930500
DC AL1(00),AL3(GENAB3) Error @SC88074 03931000
GENSET BAL 9,ENCODEN Encode command @SC86295 03931500
BAL 9,INPUTSPK Send, get response @SC86295 03932000
MVI ERRNUM,ERRNOE No errors @SC86155 03932500
ICM 0,15,DATL Any short reply? @SC86155 03933000
BZ GENRET No, done @SC86155 03933500
NI FL1,255-EOF Yes, set flags @SC86155 03934000
XC WBUFL,WBUFL Clear old data @SC86155 03934500
OI LOGFLGS,APPN DISP=MOD @SC86295 03935000
BAL 2,GENRPS Set up file name @SC86295 03935500
OPENF O,FILNAM,LOGFDB,FILPTR,E=GENABR @SC89013 03936000
USING FDBD,1 @SC86295 03936500
L 0,FABLRTR Get effective record length @SC88120 03937000
ST 0,MAXOUT Save for folding (if need be) @SC88120 03937500
ST 0,FSIZE Copy LRECL @SC86295 03938000
MVC FRECF,FDBRCF Copy RECFM @SC86295 03938500
DROP 1 @SC86155 03939000
GENOPN KCALL DECODE,E=GENAB2 Copy message to output @SC86155 03939500
ICM 1,15,WBUFL Check length in buffer @SC88120 03940000
BE GENRPZ @SC86155 03940500
KCALL OUTBUF,E=GENAB2 Yes, copy that as well @SC86155 03941000
GENRPZ CLOSF FILPTR @SC86295 03941500
MVI ERRNUM,ERRNOE No errors @SC86155 03942000
B GENFIN @SC86295 03942500
* 03943000
GENRPX CLI BCTR,A1 This works only with 1-byte check @SC92085 03943500
BNE GENAB3 @SC88074 03944000
GENRPL DS 0H Long reply @SC88074 03944500
BAL 2,GENRPS Set up file name @SC86295 03945000
KCALL RECEIV @SC86155 03945500
B GENFIN @SC86155 03946000
* 03946500
GENRPS LA 0,L'REPNAM Name string length @SC86295 03947000
LA 1,REPNAM and address @SC86295 03947500
STM 0,1,SCANPTR @SC86295 03948000
LA 0,FFRCF @SC86295 03948500
KCALL FSPEC,FILNAM Convert to filespec @SC86295 03949000
IC 9,FL3 Save flags @SC86295 03949500
OI FL3,APPN Don't erase it @SC86295 03950000
BR 2 @SC86295 03950500
* 03951000
GENAB2 CLOSF FILPTR @SC86295 03951500
B GENABR @SC88074 03952000
GENAB3 IC 9,FL3 Save flags @SC88074 03952500
GENABR KCALL ERPACK @SC86155 03953000
GENFIN STC 9,FL3 Restore flags @SC86295 03953500
GENRET KCALL INTINI,0 @SC86155 03954000
B RTRN0 @SC86295 03954500
* 03955000
* Make foreign Kermit execute command 03955500
REMCMD NTOKN N=RTRN2 @SC86295 03956000
SCAN REMCMDKW,RTRN1 @SC86295 03956500
B RTRN2 @SC86295 03957000
* 03957500
REMCMDKW KW '&AAACOPY',REMREN,K,MIN=2 @SC91320 03958000
KW 'CWD',REMARG,C,MIN=3 @SC91320 03958500
KW '&AAAADIR',REMARG,D,MIN=3 @SC91320 03959000
KW '&AAERASE',REMARG,E @SC91320 03959500
KW '&AAAHELP',REMARG,H @SC91320 03960000
KW '&AAAHOST',REMKRM,C,MIN=2 @SC91320 03960500
KW 'KERMIT',REMKRM,K @SC91320 03961000
KW '&AAAMAIL',REMPRT,M @SC91320 03961500
KW '&AAPRINT',REMPRT,P @SC91320 03962000
KW '&ARENAME',REMREN,R @SC91320 03962500
KW '&AASPACE',REMARG,U,MIN=2 @SC91320 03963000
KW '&ASUBMIT',REMPRT,S,MIN=2 @SC91320 03963500
KW '&AAATYPE',REMARG,T,MIN=2 @SC91320 03964000
KW , @SC86155 03964500
* 03965000
REMKRM SR 15,15 @SC91320 03965500
IC 15,KWCODE(1) Get one-letter code @SC91320 03966000
IC 15,ETOAD(15) ASCIIify it @SC91320 03966500
LR 0,15 Use it in generic command @SC91320 03967000
REMPRS FTOKN N=RTRN1 See if anything given @SC86295 03967500
LR 4,7 @SC86295 03968000
LR 5,6 Use whole string @SC86295 03968500
B GENFILL @SC86295 03969000
* 03969500
REMREN LA 8,2 Copy or rename: two files @SC91320 03970000
* 03970500
REMARG SR 15,15 @SC91320 03971000
IC 15,KWCODE(1) Get one-letter code @SC91320 03971500
IC 15,ETOAD(15) ASCIIify it @SC91320 03972000
LR 1,15 Use it in generic command @SC91320 03972500
REMPRSG LA 0,AG (generic) @SC86155 03973000
NTOKN N=GENNUL Skip any blanks @SC86295 03973500
LA 5,1(7) Save length @SC86295 03974000
LR 4,6 Save ptr @SC86295 03974500
B GENFILL Copy to output @SC86155 03975000
* 03975500
REMPRT MVC REMPNM,KWNAME(1) Copy command name from table @SC90239 03976000
MVC REMPCD,KWCODE(1) Copy command code from table @SC91320 03976500
MVC REMLEN,KWLEN(1) And length-1 @SC90239 03977000
LA 0,FFSND @SC90239 03977500
KCALL FSPEC,IFILE,E=REMPFIL Get filespec @SC90239 03978000
BAL 9,WSP Skip to options, if any @SC90239 03978500
NOP 0 @SC90239 03979000
XC LEN,LEN Now hide the options @SC90239 03979500
CH 6,=H'70' Can we fit options into A-packet? @SC90239 03980000
BH REMPER Doesn't look good @SC90239 03980500
LTR 6,6 @SC90239 03981000
BNM *+6 @SC90239 03981500
SR 6,6 Don't allow negative count @SC90239 03982000
TM SCAPA,8 Attributes enabled @SC90239 03982500
BZ REMPNO No, can't do it @SC90239 03983000
TM ATFL2,ATFDSP Disposition attribute enabled? @SC90239 03983500
BZ REMPNO Can't do it @SC90239 03984000
LA 0,FFSND+FFRCF @SC90239 03984500
KCALL FSPEC,JFSPEC Default foreign filespec @SC90239 03985000
ST 6,LEN Restore length of options @SC90239 03985500
MVC MSNDPTR,MSNDBUF No extra files @SC90239 03986000
SR 1,1 @SC90239 03986500
IC 1,REMPCD Pass command code for attribute @SC91320 03987000
IC 1,ETOAD(1) (use ASCII version) @SC90239 03987500
KCALL SEND @SC90239 03988000
B RTRN0 @SC90239 03988500
* 03989000
REMPFIL WTEXT (3),(4) @SC90239 03989500
B RTRN1 Indicate kermit command error @SC90239 03990000
REMPNO WTEXT '&ATTRIBU &AZDISAB' @SC90239 03990500
B REMPCNT @SC90239 03991000
REMPER WTEXT '&MANYOPT' @SC90239 03991500
REMPCNT SR 14,14 @SC90239 03992000
IC 14,REMLEN Length-1 of command @SC90239 03992500
LA 0,L'REMMSG+1(,14) Length of explanation @SC90239 03993000
MVC REMMSG,=C'&CANNOT' @SC90239 03993500
WTEXT REMMSG,(0) @SC90239 03994000
B RTRN1 Indicate kermit command error @SC90239 03994500
LOCALS , @SC86295 03995000
REMLEN DS X Length-1 of command name @SC90239 03995500
REMMSG DS C'&CANNOT' @SC90239 03996000
REMPNM DS CL6 MAIL, PRINT, or SUBMIT @SC90239 03996500
REMPCD DS C M, P, or S @SC91320 03997000
REMCMD EXIT , @SC86155 03997500
TITLE 'TBLSET Routine - set up character set' @SC90040 03998000
* Define new translation tables 03998500
* Entry: Names of table in TRNALF and FILALF, R1->tables 03999000
* R0->item just changed, if any (else, 0) 03999500
* Tables should be a pair with ATOE first 04000000
* Exit: R15=0 if ok, R15=1 if error ERRNUM unchanged. 04000500
TBLSET ENTER , @SC90040 04001000
LR 9,1 Save ptr to pair of tables @SC90040 04001500
CLC TRNALF,=CL(LALF)'&TRANSPA' @SC91325 04002000
BE TBLNUL Special "set" - no translation @SC90250 04002500
LA 1,ATOE Usual table to fill @SC90040 04003000
CR 1,9 @SC90040 04003500
BNE *+8 Special case, don't enable attr. @SC90040 04004000
OI ATFL2,ATFENC Now allow Encoding attribute @SC90040 04004500
LA 5,TRNTBL Ptr to list @SC90040 04005000
LA 6,LTRNTBL @SC90040 04005500
LA 7,TRNTBLZ Ptr to end of list @SC90040 04006000
LA 1,TRNALF Ptr to transfer set name @SC90040 04006500
TBLLKP CLC 0(2*LALF,5),0(1) Compare both names @SC91325 04007000
BE TBLFND Got it! @SC90040 04007500
BXLE 5,6,TBLLKP @SC90040 04008000
LTR 0,0 Which char set just changed? @SC90040 04008500
BNZ TBLFIX Patch other to make valid combo @SC90040 04009000
TBLNFND WTEXT '&UNDEFTR' @SC90040 04009500
B RTRN1 @SC90040 04010000
* 04010500
TBLREP MVC TRNALF(2*LALF),0(5) Set up new table name @SC91325 04011000
* Enter here with R9->tables, R5->needed translation entry @SC90040 04011500
TBLFND MVC CDESPTR,2*LALF+16(5) Save char-set designator @SC91325 04012000
LR 1,9 Fill in ATOE table first @SC91325 04012500
LM 6,7,2*LALF(5) @SC91325 04013000
LTR 6,6 @SC91325 04013500
BM TBLSPEC Special translation type @SC91325 04014000
BAL 2,TBLCPY @SC90040 04014500
LA 1,256(,9) Fill in ETOA table second @SC90040 04015000
LM 6,7,2*LALF+8(5) @SC91325 04015500
BAL 2,TBLCPY @SC90040 04016000
MVC FILALF2,FILALF Actual set matches logical @SC91325 04016500
B RTRN0 @SC90040 04017000
* 04017500
TBLSPEC LR 8,7 R7->list of permitted char sets @SC91325 04018000
TBLSPL1 CLC FILALF2,0(8) See if actual file char set is ok @SC91325 04018500
BE TBLSPFN Yes, all done @SC91325 04019000
LA 8,LALF(,8) Not this one, keep checking @SC91325 04019500
CLI 0(8),0 End of list? @SC91325 04020000
BNE TBLSPL1 No, keep looking @SC91325 04020500
MVC FILALF,0(7) Yes, switch to 1st in list @SC91325 04021000
LA 0,FILALF Indicate the file set is changed @SC91325 04021500
KCALL TBLSET Fill in tables (R1->ATOE already) @SC91325 04022000
MVC TRNALF(2*LALF),0(5) Restore logical char sets @SC91325 04022500
MVC CDESPTR,2*LALF+16(5) Resave char-set designator @SC91325 04023000
TBLSPFN DS 0H @SC91325 04023500
B RTRN0 @SC91325 04024000
* 04024500
TBLFIX LA 5,TRNTBL Ptr to list again @SC90040 04025000
CR 0,1 Giving precedence to transfer set?@SC90040 04025500
BNE TBLLKF No, insist on file set @SC90040 04026000
TBLLKT CLC 0(LALF,5),0(1) Compare just transfer set @SC91325 04026500
BE TBLREP First such entry selects file set @SC90040 04027000
BXLE 5,6,TBLLKT @SC90040 04027500
TBLLKF CLC LALF(LALF,5),LALF(1) Compare just file set @SC91325 04028000
BNE TBLLKFZ Keep looking @SC90040 04028500
ICM 0,15,LTRNTBL-4(5) Any preferred transfer set? @SC90040 04029000
BM TBLREP Yes, this very one @SC90040 04029500
TBLLKFZ BXLE 5,6,TBLLKF @SC90040 04030000
B TBLNFND Something bizarre happened @SC90040 04030500
* 04031000
* Make both tables null translators: at R9 and R9 + 256 @SC90250 04031500
TBLNUL NI ATFL2,255-ATFENC Suppress Encoding attribute @SC90250 04032000
LA 7,255 @SC90250 04032500
STC 7,0(7,9) Fill with self mapping @SC90250 04033000
BCT 7,*-4 @SC90250 04033500
MVI 0(9),0 Also map NULL to NULL @SC90250 04034000
MVC 256(256,9),0(9) and copy to 2nd table @SC90250 04034500
B RTRN0 @SC90250 04035000
* 04035500
* Entry: R6->Designator string, R7=length @SC90040 04036000
* Exit: Correct table set up and R15=0 if ok, else 1 @SC90040 04036500
TBLATT ENTER ALT @SC90040 04037000
LA 1,TBLDS Start of designator list @SC90040 04037500
SR 3,3 @SC90040 04038000
TBLALP ICM 3,1,4(1) Get length of next item in list @SC90040 04038500
BZ RTRN1 End. String not found @SC90040 04039000
CR 3,7 Right length? @SC90040 04039500
BNE TBLALQ No, keep looking @SC90040 04040000
LR 4,3 Get length for EX @SC90040 04040500
BCTR 4,0 @SC90040 04041000
EX 4,TBLACLC Strings match? @SC90040 04041500
BNE TBLALQ No, keep looking @SC90040 04042000
ICM 5,15,0(1) Yes, get table pointer @SC90040 04042500
LR 6,5 Set to scan through tables @SC90040 04043000
TBLAFLP CLC 0(LALF,6),0(5) See if still same transfer set @SC91325 04043500
BNE TBLAFND No, use default ??? @SC90040 04044000
CLC FILALF,LALF(6) See if found right local set @SC91325 04044500
BE TBLAFNO Yes, use this table @SC90040 04045000
LA 6,LTRNTBL(,6) No, try next @SC90040 04045500
B TBLAFLP @SC90040 04046000
TBLAFNO LR 5,6 @SC90040 04046500
TBLAFND CLC TRNALF(2*LALF),0(5) Already have this table? @SC91325 04047000
BE RTRN0 Yes, all done @SC90040 04047500
MVC TRNALF(2*LALF),0(5) Set up new table name @SC91325 04048000
LA 9,ATOE Set ptr to working tables @SC90040 04048500
B TBLFND Adopt table @SC90040 04049000
TBLALQ LA 1,5(3,1) @SC90040 04049500
B TBLALP @SC90040 04050000
TBLACLC CLC 0(,6),5(1) Compare against list item @SC90040 04050500
* 04051000
* Copy info into table: basic stuff + any "corrections" @SC90040 04051500
* R1->table, R6->basic stuff, R7->corrections, if any @SC90040 04052000
* R9->ATOE table @SC90250 04052500
TBLCPY LTR 6,6 @SC90040 04053000
BZ TBLCPI No EtoA table - just invert AtoE @SC90040 04053500
MVC 0(256,1),0(6) Basic pattern @SC90040 04054000
LTR 7,7 Ptr to modification list @SC90040 04054500
BZR 2 No list @SC90040 04055000
SR 6,6 @SC90040 04055500
TBLCPL ICM 6,1,0(7) Get offset into table @SC90040 04056000
BZR 2 End of list @SC90040 04056500
IC 0,1(,7) Get changed value @SC90040 04057000
STC 0,0(6,1) @SC90040 04057500
LA 7,2(,7) @SC90040 04058000
B TBLCPL @SC90040 04058500
TBLCPI SR 7,7 Clear work regs. @SC90040 04059000
XC 0(256,1),0(1) Clear out table @SC90040 04059500
LA 7,255 @SC90040 04060000
TBLCPIL IC 6,0(7,9) Get EBCDIC for (7) @SC90250 04060500
STC 7,0(6,1) And store inverse @SC90040 04061000
BCT 7,TBLCPIL Do all but NULL @SC90040 04061500
IC 6,0(7,9) Get EBCDIC for NULL @SC90250 04062000
STC 7,0(6,1) And store inverse @SC90250 04062500
BR 2 @SC90040 04063000
* 04063500
* Format is: CL(LALF)'transfer',CL(LALF)'local' @SC91325 04064000
* A(t-to-l,adjusts,l-to-t,adjusts,designator,flag) @SC90040 04064500
* if any or 0 if any @SC90040 04065000
* Items should be grouped by transfer set, default 1st @SC90040 04065500
* Flag is -1 in exactly one entry for each possible file set, @SC90040 04066000
* but flag is 0 for any others. "-1" marks preferred entry. @SC90040 04066500
TRNTBL DS 0F Table of translations @SC90040 04067000
DC CL(LALF)'ASCII',CL(LALF)'EBCDIC' *** Default ***@SC91325 04067500
DC A(ATOED,0,ETOAD,0,0,0) @SC90040 04068000
LTRNTBL EQU *-TRNTBL Item length @SC91325 04068500
DC CL(LALF)'ASCII',CL(LALF)'CP037' @SC91325 04069000
DC A(ATOED,ASE37F,ETOAD,0,0,0) @SC90040 04069500
DC CL(LALF)'ASCII',CL(LALF)'CP500' @SC91325 04070000
DC A(ATOED,ASE5F,ETOAD,0,0,0) @SC90040 04070500
DC CL(LALF)'ASCII',CL(LALF)'DKOI' @SC91325 04071000
DC A(CYTODKOI,ASDKF,DKOITOAS,0,0,0) @SC90040 04071500
DC CL(LALF)'ASCII',CL(LALF)'CP880' @SC91325 04072000
DC A(CYTODKOI,ASDKF,DKOITOAS,E880ASF,0,0) @SC90271 04072500
TRNTNCY DC CL(LALF)'&CYRILLC',CL(LALF)'DKOI' USSR @SC91325 04073000
DC A(CYTODKOI,0,0,0,TBLDSCY,-1) @SC90040 04073500
DC CL(LALF)'&CYRILLC',CL(LALF)'CP880' USSR @SC91325 04074000
DC A(CYTODKOI,CYE880F,0,0,TBLDSCY,-1) @SC90152 04074500
TRNTNAR DC CL(LALF)'ARABIC',CL(LALF)'CP420' Arabic @SC93027 04075000
DC A(ARTOE420,0,0,0,TBLDSAR,-1) @SC93027 04075500
TRNTNL1 DC CL(LALF)'LATIN1',CL(LALF)'EBCDIC' Default L1 @SC91325 04076000
DC A(L1TOE,0,0,0,TBLDSL1,-1) @SC90040 04076500
TRNTNCA DC CL(LALF)'LATIN1',CL(LALF)'CP037' US, etc @SC91325 04077000
DC A(L1TOE,L1E37F,0,0,TBLDSL1,-1) @SC90040 04077500
TRNTNDE DC CL(LALF)'LATIN1',CL(LALF)'CP273' Germany @SC91325 04078000
DC A(L1TOE,L1E273F,0,0,TBLDSL1,-1) @SC90040 04078500
TRNTNBR DC CL(LALF)'LATIN1',CL(LALF)'CP275' Brazil @SC91325 04079000
DC A(L1TOE,L1E275F,0,0,TBLDSL1,-1) @SC90040 04079500
TRNTNDK DC CL(LALF)'LATIN1',CL(LALF)'CP277' Denmark, Norway@SC91325 04080000
DC A(L1TOE,L1E277F,0,0,TBLDSL1,-1) @SC90040 04080500
TRNTNSE DC CL(LALF)'LATIN1',CL(LALF)'CP278' Finland, Sweden@SC91325 04081000
DC A(L1TOE,L1E278F,0,0,TBLDSL1,-1) @SC90040 04081500
TRNTNIT DC CL(LALF)'LATIN1',CL(LALF)'CP280' Italy @SC91325 04082000
DC A(L1TOE,L1E280F,0,0,TBLDSL1,-1) @SC90040 04082500
TRNTNJR DC CL(LALF)'LATIN1',CL(LALF)'CP281' Japan @SC91325 04083000
DC A(L1TOE,L1E281F,0,0,TBLDSL1,-1) @SC91325 04083500
TRNTNPT DC CL(LALF)'LATIN1',CL(LALF)'CP282' Portugal @SC91325 04084000
DC A(L1TOE,L1E282F,0,0,TBLDSL1,-1) @SC90040 04084500
TRNTNES DC CL(LALF)'LATIN1',CL(LALF)'CP284' Spain @SC91325 04085000
DC A(L1TOE,L1E284F,0,0,TBLDSL1,-1) @SC90040 04085500
TRNTNUK DC CL(LALF)'LATIN1',CL(LALF)'CP285' UK @SC91325 04086000
DC A(L1TOE,L1E285F,0,0,TBLDSL1,-1) @SC90040 04086500
TRNTNFR DC CL(LALF)'LATIN1',CL(LALF)'CP297' France @SC91325 04087000
DC A(L1TOE,L1E297F,0,0,TBLDSL1,-1) @SC90040 04087500
TRNTNBE DC CL(LALF)'LATIN1',CL(LALF)'CP500' Belgium, etc @SC91325 04088000
DC A(L1TOE,L1E5F,0,0,TBLDSL1,-1) @SC90040 04088500
TRNTNIS DC CL(LALF)'LATIN1',CL(LALF)'CP871' Iceland @SC91325 04089000
DC A(L1TOE,L1E871F,0,0,TBLDSL1,-1) @SC90040 04089500
TRNTNL2 DC CL(LALF)'LATIN2',CL(LALF)'CP870' Yugoslavia @SC91325 04090000
DC A(L2TOE870,0,0,0,TBLDSL2,-1) @SC90152 04090500
TRNTNCZ DC CL(LALF)'LATIN2',CL(LALF)'&CZECH' Czechoslovakia@SC91325 04091000
DC A(L2TOE870,L2ECZF,0,0,TBLDSL2,-1) @SC90152 04091500
TRNTNL3 DC CL(LALF)'LATIN3',CL(LALF)'CP905' Turkey @SC91325 04092000
DC A(L3TOE905,0,0,0,TBLDSL3,-1) @SC90152 04092500
TRNTNGR DC CL(LALF)'&AAGREEK',CL(LALF)'CP875' Greece @SC91325 04093000
DC A(GRTOE875,0,0,0,TBLDSGR,-1) @SC90040 04093500
TRNTNIL DC CL(LALF)'&HEBREW',CL(LALF)'CP424' Israel @SC91325 04094000
DC A(L8TOE424,0,0,0,TBLDSHE,-1) @SC90040 04094500
TRNTNTH DC CL(LALF)'THAI',CL(LALF)'CP838' Thailand @SC92233 04095000
DC A(THTOE838,0,0,0,TBLDSTH,-1) @SC92233 04095500
TRNTNKN DC CL(LALF)'&JAPNEUC',CL(LALF)'&KNJDEF.-KANJI' @SC91325 04096000
DC A(-1,TBVJP&KNJLAB,0,0,TBLDSKN,-1) @SC91325 04096500
AIF ('&KNJLAB' EQ 'F').TRNTHIT @SC91325 04097000
DC CL(LALF)'&JAPNEUC',CL(LALF)'FUJITSU-KANJI' @SC91325 04097500
DC A(-1,TBVJPF,0,0,TBLDSKN,-1) @SC91325 04098000
.TRNTHIT AIF ('&KNJLAB' EQ 'H').TRNTIBM @SC91325 04098500
DC CL(LALF)'&JAPNEUC',CL(LALF)'HITACHI-KANJI' @SC91325 04099000
DC A(-1,TBVJPH,0,0,TBLDSKN,-1) @SC91325 04099500
.TRNTIBM AIF ('&KNJLAB' EQ 'I').TRNTKZ @SC91325 04100000
DC CL(LALF)'&JAPNEUC',CL(LALF)'IBM-KANJI' @SC91325 04100500
DC A(-1,TBVJPI,0,0,TBLDSKN,-1) @SC91325 04101000
.TRNTKZ ANOP @SC91325 04101500
TRNTNJP EQU * @SC91325 04102000
AIF ('&KNJLAB' EQ 'H').TRNTK1H @SC91325 04102500
DC CL(LALF)'KATAKANA',CL(LALF)'CP290' Japan @SC91325 04103000
DC A(KATOE290,0,0,0,TBLDSKA,-1) @SC91325 04103500
.TRNTK1H DC CL(LALF)'KATAKANA',CL(LALF)'H-EBCDIK-DASH' Japan@SC91325 04104000
DC A(KATOHEBK,0,0,0,TBLDSKA,-1) @SC91325 04104500
AIF ('&KNJLAB' NE 'H').TRNTK2H @SC91325 04105000
DC CL(LALF)'KATAKANA',CL(LALF)'CP290' Japan @SC91325 04105500
DC A(KATOE290,0,0,0,TBLDSKA,-1) @SC91325 04106000
.TRNTK2H ANOP @SC91325 04106500
TRNTBLZ EQU *-LTRNTBL @SC91325 04107000
* 04107500
* List of transfer character set designators @SC90040 04108000
TBLDS EQU * @SC90040 04108500
TBLDSAR DC AL4(TRNTNAR),AL1(6,AI,A6,ASL,A1,A2,A7) I6/127 @SC93027 04109000
TBLDSCY DC AL4(TRNTNCY),AL1(6,AI,A6,ASL,A1,A4,A4) I6/144 @SC90040 04109500
TBLDSGR DC AL4(TRNTNGR),AL1(6,AI,A6,ASL,A1,A2,A6) I6/126 @SC90040 04110000
TBLDSHE DC AL4(TRNTNIL),AL1(6,AI,A6,ASL,A1,A3,A8) I6/138 @SC90040 04110500
TBLDSKA DC AL4(TRNTNJP),AL1(6,AI,A1,A4,ASL,A1,A3) I14/13 @SC90040 04111000
TBLDSKN DC AL4(TRNTNKN),AL1(9,AI,A1,A4,ASL,A8,A7,ASL,A1,A3) SC91325 04111500
DC AL4(TRNTNKN),AL1(7,AI,A1,A4,ASL,A8,A7,AE) I14/87E *TEMP* 04112000
TBLDSL1 DC AL4(TRNTNL1),AL1(6,AI,A6,ASL,A1,A0,A0) I6/100 @SC90040 04112500
DC AL4(TRNTNL1),AL1(6,AI,A2,ASL,A1,A0,A0) **TEMP** @SC90040 04113000
TBLDSL2 DC AL4(TRNTNL2),AL1(6,AI,A6,ASL,A1,A0,A1) I6/101 @SC90152 04113500
TBLDSL3 DC AL4(TRNTNL3),AL1(6,AI,A6,ASL,A1,A0,A9) I6/109 @SC90152 04114000
TBLDSTH DC AL4(TRNTNTH),AL1(6,AI,A6,ASL,A1,A6,A6) I6/166 @SC92233 04114500
DC XL5'0' End of table @SC90040 04115000
* 04115500
* Lists of file char-sets to go with complex translations @SC91325 04116000
TBVJPH DC CL(LALF)'H-EBCDIK-DASH' @SC91325 04116500
TBVJPF EQU * @SC91325 04117000
TBVJPI EQU * @SC91325 04117500
TBVJP DC CL(LALF)'CP290',CL(LALF)'CP500',CL(LALF)'CP281' @SC91325 04118000
DC CL(LALF)'H-EBCDIK-DASH' @SC91325 04118500
DC X'00' @SC91325 04119000
LOCALS , @SC90040 04119500
TBLSET EXIT , @SC90040 04120000
TRNTBLD CSECT @SC90040 04120500
* 04121000
* Corrections: ASCII -> DKOI @SC90040 04121500
* ref: Konstantin Vinogradov (ICSTI) @SC90040 04122000
ASDKF HTBL 60B8,61B9,62BA,63BB,64BC,65BD @SC90271 04122500
DC X'66BE',X'67BF',X'68CA',X'69CB',X'6ACC',X'6BCD' @SC90040 04123000
DC X'6CCE',X'6DCF',X'6EDA',X'6FDB',X'70DC',X'71DD' @SC90040 04123500
DC X'72DE',X'73DF',X'74EA',X'75EB',X'76EC',X'77ED' @SC90040 04124000
DC X'78EE',X'79EF',X'7AFA',X'7BFB',X'7CFC',X'7DFD' @SC90040 04124500
HTBL 7EFE,00 @SC90271 04125000
* 04125500
* Corrections: LATIN1 -> CP 037 @SC90040 04126000
* ref: Andre Pirard (U Liege) @SC90040 04126500
L1E37F DC X'AC5F',X'DDAD',X'A8BD' @SC90040 04127000
ASE37F DC X'5BBA',X'5DBB',X'5EB0',X'0' @SC90040 04127500
* 04128000
* Corrections: LATIN1 -> CP 273 @SC90040 04128500
* ref: Andre Pirard (U Liege) @SC90040 04129000
L1E273F DC X'214F',X'40B5',X'5B63',X'5CEC',X'5DFC',X'7B43' @SC90040 04129500
DC X'7CBB',X'7DDC',X'7E59',X'A2B0',X'A6CC',X'A77C' @SC90040 04130000
DC X'A8BD',X'ACBA',X'C44A',X'D6E0',X'DC5A',X'DDAD' @SC90040 04130500
DC X'DFA1',X'E4C0',X'F66A',X'FCD0',X'0' @SC90040 04131000
* 04131500
* Corrections: LATIN1 -> CP 275 @SC90040 04132000
* ref: About Type (IBM S544-3516-02) @SC90040 04132500
L1E275F DC X'214F',X'23EF',X'245A',X'4066',X'5B71',X'5D68' @SC90040 04133000
DC X'6046',X'7BCF',X'7CBB',X'7D51',X'A2B0',X'A648' @SC90040 04133500
DC X'A8BD',X'ACBA',X'C37B',X'C75B',X'C94A',X'D57C' @SC90040 04134000
DC X'DDAD',X'E379',X'E76A',X'E9D0',X'F5C0',X'0' @SC90040 04134500
* 04135000
* Corrections: LATIN1 -> CP 277 @SC90040 04135500
* ref: Andre Pirard (U Liege) @SC90040 04136000
L1E277F DC X'214F',X'234A',X'2467',X'4080',X'5B9E',X'5D9F' @SC90040 04136500
DC X'7B9C',X'7CBB',X'7D47',X'7EDC',X'A2B0',X'A45A' @SC90040 04137000
DC X'A670',X'A8BD',X'ACBA',X'C55B',X'C67B',X'D87C' @SC90040 04137500
DC X'DDAD',X'E5D0',X'E6C0',X'F86A',X'FCA1',X'0' @SC90040 04138000
* 04138500
* Corrections: LATIN1 -> CP 278 @SC90040 04139000
* ref: Andre Pirard (U Liege) @SC90040 04139500
L1E278F DC X'214F',X'2363',X'2467',X'40EC',X'5BB5',X'5C71' @SC90040 04140000
DC X'5D9F',X'6051',X'7B43',X'7CBB',X'7D47',X'7EDC' @SC90040 04140500
DC X'A2B0',X'A45A',X'A6CC',X'A74A',X'A8BD',X'ACBA' @SC90040 04141000
DC X'C47B',X'C55B',X'C9E0',X'D67C',X'DDAD',X'E4C0' @SC90040 04141500
DC X'E5D0',X'E979',X'F66A',X'FCA1',X'0' @SC90040 04142000
* 04142500
* Corrections: LATIN1 -> CP 280 @SC90040 04143000
* ref: Andre Pirard (U Liege) @SC90040 04143500
L1E280F DC X'214F',X'23B1',X'40B5',X'5B90',X'5C48',X'5D51' @SC90040 04144000
DC X'60DD',X'7B44',X'7CBB',X'7D54',X'7E58',X'A2B0' @SC90040 04144500
DC X'A37B',X'A6CD',X'A77C',X'A8BD',X'ACBA',X'B04A' @SC90040 04145000
DC X'DDAD',X'E0C0',X'E7E0',X'E8D0',X'E95A',X'ECA1' @SC90040 04145500
DC X'F26A',X'F979',X'0' @SC90040 04146000
* 04146500
* Corrections: LATIN1 -> CP 281 @SC91325 04147000
* ref: IBM C-H 3-220-050 (1989) @SC91325 04147500
L1E281F HTBL 24E0,5BB1,5CB2,5DBB,5EBA,7EBC,A2B0,A34A,A55B @SC91325 04148000
HTBL A8BD,AC5F,AFA1,DDAD,00 @SC91325 04148500
* 04149000
* Corrections: LATIN1 -> CP 282 @SC90040 04149500
* ref: About Type (IBM S544-3516-02) @SC90040 04150000
L1E282F DC X'214F',X'2366',X'40EF',X'5B4A',X'5C68',X'5D5A' @SC90040 04150500
DC X'7B46',X'7CBB',X'7DBE',X'7E48',X'A2B0',X'A6CF' @SC90040 04151000
DC X'A8BD',X'ACBA',X'B4D0',X'C37B',X'C7E0',X'D57C' @SC90040 04151500
DC X'DDAD',X'E3C0',X'E7A1',X'F56A',X'0' @SC90040 04152000
* 04152500
* Corrections: LATIN1 -> CP 284 @SC90040 04153000
* ref: Andre Pirard (U Liege) @SC90040 04153500
L1E284F DC X'21BB',X'2369',X'5B4A',X'5D5A',X'5EBA',X'7EBD' @SC90040 04154000
DC X'A2B0',X'A649',X'A8A1',X'AC5F',X'D17B',X'DDAD' @SC90040 04154500
DC X'F16A',X'0' @SC90040 04155000
* 04155500
* Corrections: LATIN1 -> CP 285 @SC90040 04156000
* ref: Andre Pirard (U Liege) @SC90040 04156500
L1E285F DC X'244A',X'5BB1',X'5DBB',X'5EBA',X'7EBC',X'A2B0' @SC90040 04157000
DC X'A35B',X'A8BD',X'AC5F',X'AFA1',X'DDAD',X'0' @SC90040 04157500
* 04158000
* Corrections: LATIN1 -> CP 297 @SC90040 04158500
* ref: Andre Pirard (U Liege) @SC90040 04159000
L1E297F DC X'214F',X'23B1',X'4044',X'5B90',X'5C48',X'5DB5' @SC90040 04159500
DC X'60A0',X'7B51',X'7CBB',X'7D54',X'7EBD',X'A2B0' @SC90040 04160000
DC X'A37B',X'A6DD',X'A75A',X'A8A1',X'ACBA',X'B04A' @SC90040 04160500
DC X'B579',X'DDAD',X'E07C',X'E7E0',X'E8D0',X'E9C0' @SC90040 04161000
DC X'F96A',X'0' @SC90040 04161500
* 04162000
* Corrections: LATIN1 -> CP 500 @SC90040 04162500
* ref: Andre Pirard (U Liege) @SC90040 04163000
L1E5F DC X'A2B0',X'A8BD',X'ACBA',X'DDAD' @SC90040 04163500
ASE5F DC X'214F',X'5B4A',X'5D5A',X'7CBB',X'0' @SC90040 04164000
* 04164500
* Corrections: LATIN1 -> CP 871 @SC90040 04165000
* ref: About Type (IBM S544-3516-02) @SC90040 04165500
L1E871F DC X'214F',X'40AC',X'5BAE',X'5CBE',X'5D9E',X'5EEC' @SC90040 04166000
DC X'608C',X'7B8E',X'7CBB',X'7D9C',X'7ECC',X'A2B0' @SC90040 04166500
DC X'A8BD',X'ACBA',X'B4E0',X'C65A',X'D07C',X'D65F' @SC90040 04167000
DC X'DDAD',X'DE4A',X'E6D0',X'F079',X'F6A1',X'FEC0' @SC90040 04167500
DC X'0' @SC90040 04168000
* 04168500
* Corrections: CYRILLIC -> CP 880 @SC90152 04169000
* ref: 3174 Character Set Reference (IBM GA27-3831-02)@SC90152 04169500
CYE880F HTBL A163,A259,A362,A464,A565,A666,A767,A868,A969 @SC90152 04170000
HTBL AA70,AB71,AC72,AD73,AE74,AF75,CA57,F144,F242 @SC90152 04170500
HTBL F343,F445,F546,F647,F748,F849,F951,FA52,FB53 @SC90152 04171000
HTBL FC54,FD55,FEFF,FF56,00 @SC90152 04171500
* 04172000
* Corrections: LATIN2 -> CZECH @SC90152 04172500
* ref: Konstantin Vinogradov (ICSTI) @SC90152 04173000
L2ECZF HTBL A178,A243,A465,A5CE,A671,A8B8,A9DF,AA75,ABEA @SC90152 04173500
HTBL ACAE,ADEE,AEFA,B054,B167,B263,B355,B4EC,B59B @SC90152 04174000
HTBL B645,B858,B9AB,BA51,BBAC,BEB2,BF8D,C0BE,C1B9 @SC90152 04174500
HTBL C4DD,C5CD,C8BB,C9ED,CCBD,CDCB,CFBC,D074,D1B6 @SC90152 04175000
HTBL D2DA,D3DB,D4DC,D5FE,D6CF,D8DE,D9CC,DAEB,DCCA @SC90152 04175500
HTBL DDEF,E08C,E177,E4A0,E59A,E880,E9AF,EC8B,ED8F @SC90152 04176000
HTBL EF8A,F047,F157,F29D,F39E,F49F,F5FC,F69C,F8AA @SC90152 04176500
HTBL F990,FAAD,FBFD,FC8E,FDB1,00 @SC90152 04177000
* 04177500
L1TOE EQU * LATIN1 to EBCDIC @SC90040 04178000
* ref: composite @SC90040 04178500
* 0 1 2 3 4 5 6 7 8 9 A B C D E F @SC90040 04179000
HTBL 00,01,02,03,37,2D,2E,2F,16,05,25,0B,0C,0D,0E,0F 0 C90040 04179500
HTBL 10,11,12,13,3C,3D,32,26,18,19,3F,27,1C,1D,1E,1F 1 C90040 04180000
HTBL 40,5A,7F,7B,5B,6C,50,7D,4D,5D,5C,4E,6B,60,4B,61 2 C90040 04180500
HTBL F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,7A,5E,4C,7E,6E,6F 3 C90040 04181000
HTBL 7C,C1,C2,C3,C4,C5,C6,C7,C8,C9,D1,D2,D3,D4,D5,D6 4 C90040 04181500
HTBL D7,D8,D9,E2,E3,E4,E5,E6,E7,E8,E9,AD,E0,BD,5F,6D 5 C90040 04182000
HTBL 79,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96 6 C90040 04182500
HTBL 97,98,99,A2,A3,A4,A5,A6,A7,A8,A9,C0,4F,D0,A1,07 7 C90040 04183000
HTBL 20,21,22,23,24,15,06,17,28,29,2A,2B,2C,09,0A,1B 8 C90040 04183500
HTBL 30,31,1A,33,34,35,36,08,38,39,3A,3B,04,14,3E,FF 9 C90040 04184000
HTBL 41,AA,4A,B1,9F,B2,6A,B5,BB,B4,9A,8A,B0,CA,AF,BC A C90040 04184500
HTBL 90,8F,EA,FA,BE,A0,B6,B3,9D,DA,9B,8B,B7,B8,B9,AB B C90040 04185000
HTBL 64,65,62,66,63,67,9E,68,74,71,72,73,78,75,76,77 C C90040 04185500
HTBL AC,69,ED,EE,EB,EF,EC,BF,80,FD,FE,FB,FC,BA,AE,59 D C90040 04186000
HTBL 44,45,42,46,43,47,9C,48,54,51,52,53,58,55,56,57 E C90040 04186500
HTBL 8C,49,CD,CE,CB,CF,CC,E1,70,DD,DE,DB,DC,8D,8E,DF F C90040 04187000
* 04187500
ARTOE420 EQU * Arabic ISO (+CP864) to CP420 @SC93027 04188000
* ref: IBM code page registry @SC93027 04188500
* 0 1 2 3 4 5 6 7 8 9 A B C D E F @SC93027 04189000
HTBL 00,01,02,03,37,2D,2E,2F,16,05,25,0B,0C,0D,0E,0F 0 C93027 04189500
HTBL 10,11,12,13,3C,3D,32,26,18,19,3F,27,1C,1D,1E,1F 1 C93027 04190000
HTBL 40,5A,7F,7B,5B,6C,50,7D,4D,5D,5C,4E,6B,60,4B,61 2 C93027 04190500
HTBL F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,7A,5E,4C,7E,6E,6F 3 C93027 04191000
HTBL 7C,C1,C2,C3,C4,C5,C6,C7,C8,C9,D1,D2,D3,D4,D5,D6 4 C93027 04191500
HTBL D7,D8,D9,E2,E3,E4,E5,E6,E7,E8,E9,53,54,B6,B7,6D 5 C93027 04192000
HTBL CC,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96 6 C93027 04192500
HTBL 97,98,99,A2,A3,A4,A5,A6,A7,A8,A9,CE,4F,E1,EC,07 7 C93027 04193000
HTBL 09,0A,14,1B,2C,20,21,2A,28,29,06,17,24,15,22,23 8 C93027 04193500
HTBL 30,31,1A,33,34,35,36,08,38,B4,B5,3B,04,B8,B9,45 9 C93027 04194000
HTBL 41,68,48,FA,FF,51,2B,39,57,59,63,65,79,CA,69,71 A C93027 04194500
HTBL DF,EA,EB,ED,EE,EF,FB,FC,FD,FE,AB,C0,77,80,8B,D0 B C93027 04195000
HTBL 4A,46,47,49,52,9B,55,56,58,62,64,66,67,70,72,73 C C93027 04195500
HTBL 74,75,76,78,8A,8C,8E,8F,90,9C,A0,6A,5F,A1,E0,9A D C93027 04196000
HTBL 44,AC,AE,B0,BA,BC,BE,CB,CF,DA,DE,8D,9D,9F,9E,BB E C93027 04196500
HTBL 43,42,BD,BF,CD,DB,DD,AA,AD,B2,B3,B1,AF,DC,3E,3A F C93027 04197000
* 04197500
DKOITOAS EQU * DKOI (EBCDIC) to ASCII @SC90040 04198000
* ref: Konstantin Vinogradov (ICSTI) @SC90040 04198500
* 0 1 2 3 4 5 6 7 8 9 A B C D E F @SC90040 04199000
HTBL 00,01,02,03,1C,09,06,7F,17,0D,0E,0B,0C,0D,0E,0F 0 C90271 04199500
HTBL 10,11,12,13,1D,05,08,07,18,19,12,0F,1C,1D,1E,1F 1 C90271 04200000
HTBL 00,01,02,03,04,0A,17,1B,08,09,0A,0B,0C,05,06,07 2 C90271 04200500
HTBL 10,11,16,13,14,15,16,04,18,19,1A,1B,14,15,1E,1A 3 C90271 04201000
HTBL 20,20,65,00,00,00,53,49,49,4A,5B,2E,3C,28,2B,21 4 C90271 04201500
HTBL 26,00,00,00,6B,2D,75,00,00,65,5D,24,2A,29,3B,5E 5 C90271 04202000
HTBL 2D,2F,00,00,00,53,49,49,4A,00,5C,2C,25,5F,3E,3F 6 C90271 04202500
HTBL 00,00,6B,00,75,27,60,61,62,40,3A,23,40,27,3D,22 7 C90271 04203000
HTBL 63,41,42,43,44,45,46,47,48,49,64,65,66,67,68,69 8 C90040 04203500
HTBL 6A,4A,4B,4C,4D,4E,4F,50,51,52,6B,6C,6D,6E,6F,70 9 C90040 04204000
HTBL 71,5E,53,54,55,56,57,58,59,5A,72,73,74,75,76,77 A C90271 04204500
HTBL 78,79,7A,7B,7C,7D,7E,27,60,61,62,63,64,65,66,67 B C90040 04205000
HTBL 5B,41,42,43,44,45,46,47,48,49,68,69,6A,6B,6C,6D C C90271 04205500
HTBL 5D,4A,4B,4C,4D,4E,4F,50,51,52,6E,6F,70,71,72,73 D C90271 04206000
HTBL 5C,1F,53,54,55,56,57,58,59,5A,74,75,76,77,78,79 E C90271 04206500
HTBL 30,31,32,33,34,35,36,37,38,39,7A,7B,7C,7D,7E,00 F C90040 04207000
* 04207500
* Corrections for CP880 -> ASCII @SC90271 04208000
E880ASF HTBL 4200,4465,5500,5600,5727,5900,6365,732D,7500 @SC90271 04208500
HTBL FF75,00 @SC90271 04209000
* 04209500
CYTODKOI EQU * CYRILLIC to DKOI (EBCDIC) @SC90040 04210000
* 0 1 2 3 4 5 6 7 8 9 A B C D E F @SC90040 04210500
HTBL 00,01,02,03,37,2D,2E,2F,16,05,25,0B,0C,0D,0E,0F 0 C90040 04211000
HTBL 10,11,12,13,3C,3D,32,26,18,19,3F,27,1C,1D,1E,1F 1 C90040 04211500
HTBL 40,4F,7F,7B,5B,6C,50,7D,4D,5D,5C,4E,6B,60,4B,61 2 C90040 04212000
HTBL F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,7A,5E,4C,7E,6E,6F 3 C90040 04212500
HTBL 7C,C1,C2,C3,C4,C5,C6,C7,C8,C9,D1,D2,D3,D4,D5,D6 4 C90040 04213000
HTBL D7,D8,D9,E2,E3,E4,E5,E6,E7,E8,E9,4A,E0,5A,5F,6D 5 C90040 04213500
HTBL 79,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96 6 C90040 04214000
HTBL 97,98,99,A2,A3,A4,A5,A6,A7,A8,A9,C0,6A,D0,A1,07 7 C90040 04214500
HTBL 20,21,22,23,24,15,06,17,28,29,2A,2B,2C,09,0A,1B 8 C90040 04215000
HTBL 30,31,1A,33,34,35,36,08,38,39,3A,3B,04,14,3E,E1 9 C90040 04215500
HTBL 41,42,43,44,45,46,47,48,49,51,52,53,54,55,56,57 A C90040 04216000
HTBL B9,BA,ED,BF,BC,BD,EC,FA,CB,CC,CD,CE,CF,DA,DB,DC B C90040 04216500
HTBL DE,DF,EA,EB,BE,CA,BB,FE,FB,FD,75,EF,EE,FC,B8,DD C C90040 04217000
HTBL 77,78,AF,8D,8A,8B,AE,B2,8F,90,9A,9B,9C,9D,9E,9F D C90040 04217500
HTBL AA,AB,AC,AD,8C,8E,80,B6,B3,B5,B7,B1,B0,B4,76,A0 E C90040 04218000
HTBL 58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,FF F C90040 04218500
* 04219000
GRTOE875 EQU * Latin/Greek to Greece EBCDIC @SC90040 04219500
* ref: Michel Suignard @SC90040 04220000
* 0 1 2 3 4 5 6 7 8 9 A B C D E F @SC90040 04220500
HTBL 00,01,02,03,37,2D,2E,2F,16,05,25,0B,0C,0D,0E,0F 0 C90040 04221000
HTBL 10,11,12,13,3C,3D,32,26,18,19,3F,27,1C,1D,1E,1F 1 C90040 04221500
HTBL 40,4F,7F,7B,5B,6C,50,7D,4D,5D,5C,4E,6B,60,4B,61 2 C90040 04222000
HTBL F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,7A,5E,4C,7E,6E,6F 3 C90040 04222500
HTBL 7C,C1,C2,C3,C4,C5,C6,C7,C8,C9,D1,D2,D3,D4,D5,D6 4 C90040 04223000
HTBL D7,D8,D9,E2,E3,E4,E5,E6,E7,E8,E9,4A,E0,5A,5F,6D 5 C90040 04223500
HTBL 79,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96 6 C90040 04224000
HTBL 97,98,99,A2,A3,A4,A5,A6,A7,A8,A9,C0,6A,D0,A1,07 7 C90040 04224500
HTBL 20,21,22,23,24,15,06,17,28,29,2A,2B,2C,09,0A,1B 8 C90040 04225000
HTBL 30,31,1A,33,34,35,36,08,38,39,3A,3B,04,14,3E,FF 9 C90040 04225500
HTBL 74,CE,DE,B0,DC,E1,DF,EB,70,FB,EC,EE,EF,CA,ED,CF A C90040 04226000
HTBL 90,DA,EA,FA,A0,80,71,DD,72,73,75,FE,76,DB,77,78 B C90040 04226500
HTBL CC,41,42,43,44,45,46,47,48,49,51,52,53,54,55,56 C C90040 04227000
HTBL 57,58,FC,59,62,63,64,65,66,67,68,69,B1,B2,B3,B5 D C90040 04227500
HTBL CD,8A,8B,8C,8D,8E,8F,9A,9B,9C,9D,9E,9F,AA,AB,AC E C90040 04228000
HTBL AD,AE,BA,AF,BB,BC,BD,BE,BF,CB,B4,B8,B6,B7,B9,FD F C90040 04228500
* 04229000
L8TOE424 EQU * Latin/Hebrew to Israel EBCDIC @SC90040 04229500
* ref: Jonathan Rosenne (IBM Israel) @SC90040 04230000
* 0 1 2 3 4 5 6 7 8 9 A B C D E F @SC90040 04230500
HTBL 00,01,02,03,37,2D,2E,2F,16,05,25,0B,0C,0D,0E,0F 0 C90040 04231000
HTBL 10,11,12,13,3C,3D,32,26,18,19,3F,27,1C,1D,1E,1F 1 C90040 04231500
HTBL 40,5A,7F,7B,5B,6C,50,7D,4D,5D,5C,4E,6B,60,4B,61 2 C90040 04232000
HTBL F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,7A,5E,4C,7E,6E,6F 3 C90040 04232500
HTBL 7C,C1,C2,C3,C4,C5,C6,C7,C8,C9,D1,D2,D3,D4,D5,D6 4 C90040 04233000
HTBL D7,D8,D9,E2,E3,E4,E5,E6,E7,E8,E9,BA,E0,BB,B0,6D 5 C90040 04233500
HTBL 79,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96 6 C90040 04234000
HTBL 97,98,99,A2,A3,A4,A5,A6,A7,A8,A9,C0,4F,D0,A1,07 7 C90040 04234500
HTBL 20,21,22,23,24,15,06,17,28,29,2A,2B,2C,09,0A,1B 8 C90040 04235000
HTBL 30,31,1A,33,34,35,36,08,38,39,3A,3B,04,14,3E,FF 9 C90040 04235500
HTBL 74,AA,4A,B1,9F,B2,6A,B5,BD,B4,BF,8A,5F,CA,AF,BC A C90040 04236000
HTBL 90,8F,EA,FA,BE,A0,B6,B3,9D,DA,E1,8B,B7,B8,B9,AB B C90040 04236500
HTBL CB,CC,CD,9C,CE,CF,9E,9B,DD,DE,72,73,70,75,76,77 C C90040 04237000
HTBL AC,8C,ED,EE,EB,EF,EC,9A,80,FD,FE,FB,FC,AD,AE,78 D C90040 04237500
HTBL 41,42,43,44,45,46,47,48,49,51,52,53,54,55,56,57 E C90040 04238000
HTBL 58,59,62,63,64,65,66,67,68,69,71,DB,DC,8D,8E,DF F C90040 04238500
* 04239000
KATOE290 EQU * KATAKANA to Japanese EBCDIC (290) @SC90040 04239500
* ref: C-H 3-3220-050, composite @SC91067 04240000
* 0 1 2 3 4 5 6 7 8 9 A B C D E F @SC90040 04240500
HTBL 00,01,02,03,37,2D,2E,2F,16,05,25,0B,0C,0D,0E,0F 0 C90040 04241000
HTBL 10,11,12,13,3C,3D,32,26,18,19,3F,27,1C,1D,1E,1F 1 C90040 04241500
HTBL 40,5A,7F,7B,E0,6C,50,7D,4D,5D,5C,4E,6B,60,4B,61 2 C90040 04242000
HTBL F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,7A,5E,4C,7E,6E,6F 3 C90040 04242500
HTBL 7C,C1,C2,C3,C4,C5,C6,C7,C8,C9,D1,D2,D3,D4,D5,D6 4 C90040 04243000
HTBL D7,D8,D9,E2,E3,E4,E5,E6,E7,E8,E9,70,5B,80,B0,6D 5 C91067 04243500
HTBL 79,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77 6 C91067 04244000
HTBL 78,8B,9B,AB,B3,B4,B5,B6,B7,B8,B9,C0,4F,D0,A1,07 7 C91067 04244500
HTBL 20,21,22,23,24,15,06,17,28,29,2A,2B,2C,09,0A,1B 8 C90040 04245000
HTBL 30,31,1A,33,34,35,36,08,38,39,3A,3B,04,14,3E,4A 9 C91325 04245500
HTBL 57,41,42,43,44,45,46,47,48,49,51,52,53,54,55,56 A C91325 04246000
HTBL 58,81,82,83,84,85,86,87,88,89,8A,8C,8D,8E,8F,90 B C90040 04246500
HTBL 91,92,93,94,95,96,97,98,99,9A,9D,9E,9F,A2,A3,A4 C C90040 04247000
HTBL A5,A6,A7,A8,A9,AA,AC,AD,AE,AF,BA,BB,BC,BD,BE,BF D C90040 04247500
HTBL 59,5F,6A,9C,A0,B1,B2,CA,DA,DF,EA,EB,EC,ED,EE,EF E C91325 04248000
HTBL FA,FB,CD,CE,CB,CF,CC,E1,FC,DD,DE,DB,DC,FD,FE,FF F C91325 04248500
* 04249000
KATOHEBK EQU * KATAKANA to Hitachi EBCDIK @SC91325 04249500
* ref: Hitachi manual, composite @SC91325 04250000
HTBL 00,01,02,03,37,2D,2E,2F,16,05,25,0B,0C,0D,0E,0F 0 C91325 04250500
HTBL 10,11,12,13,3C,3D,32,26,18,19,3F,27,1C,1D,1E,1F 1 C91325 04251000
HTBL 40,4F,7F,7B,E0,6C,50,7D,4D,5D,5C,4E,6B,60,4B,61 2 C91325 04251500
HTBL F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,7A,5E,4C,7E,6E,6F 3 C91325 04252000
HTBL 7C,C1,C2,C3,C4,C5,C6,C7,C8,C9,D1,D2,D3,D4,D5,D6 4 C91325 04252500
HTBL D7,D8,D9,E2,E3,E4,E5,E6,E7,E8,E9,4A,5B,5A,5F,6D 5 C91325 04253000
HTBL 79,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75 6 C91325 04253500
HTBL 76,77,78,80,8B,9B,9C,A0,AB,B0,B1,C0,6A,D0,A1,07 7 C91325 04254000
HTBL 20,21,22,23,24,15,06,17,28,29,2A,2B,2C,09,0A,1B 8 C91325 04254500
HTBL 30,31,1A,33,34,35,36,08,38,39,3A,3B,04,14,3E,B9 9 C91325 04255000
HTBL 57,41,42,43,44,45,46,47,48,49,51,52,53,54,55,56 A C91325 04255500
HTBL 58,81,82,83,84,85,86,87,88,89,8A,8C,8D,8E,8F,90 B C91325 04256000
HTBL 91,92,93,94,95,96,97,98,99,9A,9D,9E,9F,A2,A3,A4 C C91325 04256500
HTBL A5,A6,A7,A8,A9,AA,AC,AD,AE,AF,BA,BB,BC,BD,BE,BF D C91325 04257000
HTBL B3,B4,B5,B6,B7,B8,B2,CA,DA,DF,EA,EB,EC,ED,EE,EF E C91325 04257500
HTBL FA,FB,CD,CE,CB,CF,CC,E1,FC,DD,DE,DB,DC,FD,FE,FF F C91325 04258000
* 04258500
L2TOE870 EQU * Latin-2 to ROECE EBCDIC @SC90152 04259000
* ref: 3174 Character Set Reference (IBM GA27-3831-02)@SC90152 04259500
* 0 1 2 3 4 5 6 7 8 9 A B C D E F @SC90152 04260000
HTBL 00,01,02,03,37,2D,2E,2F,16,05,25,0B,0C,0D,0E,0F 0 C90152 04260500
HTBL 10,11,12,13,3C,3D,32,26,18,19,3F,27,1C,1D,1E,1F 1 C90152 04261000
HTBL 40,4F,7F,7B,5B,6C,50,7D,4D,5D,5C,4E,6B,60,4B,61 2 C90152 04261500
HTBL F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,7A,5E,4C,7E,6E,6F 3 C90152 04262000
HTBL 7C,C1,C2,C3,C4,C5,C6,C7,C8,C9,D1,D2,D3,D4,D5,D6 4 C90152 04262500
HTBL D7,D8,D9,E2,E3,E4,E5,E6,E7,E8,E9,4A,E0,5A,5F,6D 5 C90152 04263000
HTBL 79,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96 6 C90152 04263500
HTBL 97,98,99,A2,A3,A4,A5,A6,A7,A8,A9,C0,6A,D0,A1,07 7 C90152 04264000
HTBL 20,21,22,23,24,15,06,17,28,29,2A,2B,2C,09,0A,1B 8 C90152 04264500
HTBL 30,31,1A,33,34,35,36,08,38,39,3A,3B,04,14,3E,FF 9 C90152 04265000
HTBL 41,B1,80,BA,9F,77,AA,B5,BD,BC,AF,FD,B9,CA,B8,B4 A C90152 04265500
HTBL 90,A0,9E,9A,BE,57,8A,70,9D,9C,8F,DD,B7,64,B6,B2 B C90152 04266000
HTBL ED,65,62,66,63,78,69,68,67,71,72,73,DA,75,76,FA C C90152 04266500
HTBL AC,BB,AB,EE,EB,EF,EC,BF,AE,74,FE,FB,FC,AD,B3,59 D C91067 04267000
HTBL CD,45,42,46,43,58,49,48,47,51,52,53,DF,55,56,EA E C90152 04267500
HTBL 8C,9B,8B,CE,CB,CF,CC,E1,8E,54,DE,DB,DC,8D,44,B0 F C91067 04268000
* 04268500
L3TOE905 EQU * Latin-3 to Turkish EBCDIC @SC90152 04269000
* ref: 3174 Character Set Reference (IBM GA27-3831-02)@SC90152 04269500
* 0 1 2 3 4 5 6 7 8 9 A B C D E F @SC90152 04270000
HTBL 00,01,02,03,37,2D,2E,2F,16,05,25,0B,0C,0D,0E,0F 0 C90152 04270500
HTBL 10,11,12,13,3C,3D,32,26,18,19,3F,27,1C,1D,1E,1F 1 C90152 04271000
HTBL 40,4F,FC,EC,B9,6C,50,7D,4D,5D,5C,4E,6B,60,4B,61 2 C90152 04271500
HTBL F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,7A,5E,4C,7E,6E,6F 3 C90152 04272000
HTBL AF,C1,C2,C3,C4,C5,C6,C7,C8,C9,D1,D2,D3,D4,D5,D6 4 C90152 04272500
HTBL D7,D8,D9,E2,E3,E4,E5,E6,E7,E8,E9,68,DC,B6,5F,6D 5 C90152 04273000
HTBL DA,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96 6 C90152 04273500
HTBL 97,98,99,A2,A3,A4,A5,A6,A7,A8,A9,48,8F,B3,CC,07 7 C90152 04274000
HTBL 20,21,22,23,24,15,06,17,28,29,2A,2B,2C,09,0A,1B 8 C90152 04274500
HTBL 30,31,1A,33,34,35,36,08,38,39,3A,3B,04,14,3E,FF 9 C90152 04275000
HTBL 41,AA,80,B1,9F,70,BA,B5,BD,5B,7C,5A,BC,CA,AE,B4 A C90152 04275500
HTBL 90,8A,EA,FA,BE,A0,9A,B7,9D,79,6A,D0,9C,B8,DF,B2 B C90152 04276000
HTBL 64,65,62,66,63,67,AB,4A,74,71,72,73,78,75,76,77 C C90152 04276500
HTBL 8E,69,ED,EE,EB,EF,7B,BF,BB,FD,FE,FB,7F,AD,AC,59 D C90152 04277000
HTBL 44,45,42,46,43,47,8B,C0,54,51,52,53,58,55,56,57 E C90152 04277500
HTBL 9E,49,CD,CE,CB,CF,A1,E1,9B,DD,DE,DB,E0,8D,8C,B0 F C90152 04278000
* 04278500
THTOE838 EQU * Thai ISO to Thai EBCDIC @SC92233 04279000
* ref: IBM code page registry + Trin Tantsetthi @SC92233 04279500
* 0 1 2 3 4 5 6 7 8 9 A B C D E F @SC92233 04280000
HTBL 00,01,02,03,37,2D,2E,2F,16,05,25,0B,0C,0D,0E,0F 0 C92233 04280500
HTBL 10,11,12,13,3C,3D,32,26,18,19,3F,27,1C,1D,1E,1F 1 C92233 04281000
HTBL 40,5A,7F,7B,5B,6C,50,7D,4D,5D,5C,4E,6B,60,4B,61 2 C92233 04281500
HTBL F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,7A,5E,4C,7E,6E,6F 3 C92233 04282000
HTBL 7C,C1,C2,C3,C4,C5,C6,C7,C8,C9,D1,D2,D3,D4,D5,D6 4 C92233 04282500
HTBL D7,D8,D9,E2,E3,E4,E5,E6,E7,E8,E9,49,E0,59,69,6D 5 C92233 04283000
HTBL 79,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96 6 C92233 04283500
HTBL 97,98,99,A2,A3,A4,A5,A6,A7,A8,A9,C0,4F,D0,A1,07 7 C92233 04284000
HTBL 20,21,22,23,24,15,06,17,28,29,2A,2B,2C,09,0A,1B 8 C92233 04284500
HTBL 30,31,1A,33,34,35,36,08,38,39,3A,3B,04,14,3E,FF 9 C92233 04285000
HTBL 41,42,43,44,45,46,47,48,52,53,54,55,56,57,58,62 A C92233 04285500
HTBL 63,64,65,66,67,68,72,73,74,75,76,77,78,8A,8B,8C B C92233 04286000
HTBL 8D,8E,8F,9A,9B,9C,9D,9E,9F,AA,AB,AC,AD,AE,AF,BA C C92233 04286500
HTBL BB,BC,BD,BE,BF,CB,CC,CD,CE,CF,DA,51,CA,FD,FE,70 D C92233 04287000
HTBL DB,DC,DD,DE,DF,EA,EB,EC,ED,EE,EF,FA,FB,FC,71,80 E C92233 04287500
HTBL B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,90,A0,4A,5F,6A,E1 F C92233 04288000
* 04288500
TITLE 'SETCON Routine - set correct controller type' @SC91311 04289000
* Set TRMTP after determining that it's fullscreen @SC91311 04289500
* Entry: R1= flags for desired technique: @SC91311 04290000
STCQBIT EQU X'01' WSF Query is allowed @SC91311 04290500
STCQNS1 EQU X'02' WSF Q implies *not* S/1 @SC91311 04291000
STCS1 EQU X'04' Always assume S/1 @SC91311 04291500
STCNOS1 EQU X'08' Always assume *not* S/1 @SC91311 04292000
STCNORD EQU X'10' Asynch READ MOD is forbidden @SC91311 04292500
* Exit: R15=0 if ok. TRMTP set. @SC91311 04293000
SETCON ENTER @SC91311 04293500
STC 1,STCFLGS @SC91311 04294000
MVI TRMTP,C'S' Remember going via S/1 @SC87166 04294500
TM STCFLGS,STCS1 @SC91311 04295000
BO RTRN0 Never check for S/1, assume it @SC91311 04295500
TM STCFLGS,STCNOS1 @SC91311 04296000
BO STCGRP Assume not S/1 @SC91311 04296500
TM STCFLGS,STCQBIT+STCQNS1 @SC91311 04297000
BO STCGRP Definitely not S1 @SC91311 04297500
MVC WRCMDL+4(4),F3 Preset the length to skip @SC91150 04298000
L 8,RIOPTRS @SC90173 04298500
XC 0(9,8),0(8) Zero out buffer @SC88203 04299000
LA 0,1 @SC88203 04299500
KCALL SCRNIO Clear screen and set up @SC88203 04300000
LA 0,6 @SC88203 04300500
KCALL SCRNIO,STCS1ST,E=(STCSC,M) Issue status request @SC91311 04301000
TM STCFLGS,STCNORD READ MOD forbidden? @SC91311 04301500
BZ STCSRST No, do it @SC91311 04302000
LA 0,7 @SC90264 04302500
KCALL SCRNIO,RIOPTRS,E=(STCSC,NP) Read back screen @SC91150 04303000
CLC =X'5BBC',4(8) @SC90264 04303500
BE STCSC String appeared on screen, not S1 @SC91150 04304000
CLC =X'5B60',4(8) @SC93147 04304500
BE STCSC Possible alternate appearance @SC93147 04305000
LA 0,6 @SC91150 04305500
KCALL SCRNIO,STCS1STI,E=(STCSC,M) Again, with intrpt. @SC91150 04306000
STCSRST LA 0,5 @SC91311 04306500
KCALL SCRNIO,RIOPTRS Read back status @SC90173 04307000
STCSC DS 0H @SC91311 04307500
LA 0,2 @SC88203 04308000
KCALL SCRNIO Release screen @SC88203 04308500
CLI 0(8),X'E4' Check for Yale status response @SC88203 04309000
BE *+12 Ok, I trust @SC88294 04309500
CLI 0(8),0 Other possibility @SC88294 04310000
BNE STCGRP No, must be something else @SC88294 04310500
CLI 3(8),X'11' @SC88203 04311000
BNE STCGRP No, must be something else @SC88203 04311500
CLC =X'2B5B5B',6(8) @SC88203 04312000
BE RTRN0 Yes, all set @SC88203 04312500
STCGRP MVI TRMTP,C'A' Assume AEA device @SC90173 04313000
MVI WRRD,5 Will want a reply in the test @SC91311 04313500
TM STCFLGS,STCQBIT Query allowed? @SC91311 04314000
BZ STCGRG No, assume GRAPHICS @SC91311 04314500
L 8,RIOPTRS @SC90173 04315000
XC 0(9,8),0(8) Zero out buffer @SC90173 04315500
LA 0,1 @SC90173 04316000
KCALL SCRNIO Clear screen and set up @SC90173 04316500
LA 0,4 @SC90173 04317000
KCALL SCRNIO,STCAEAST,E=(STCAC,M) Issue Read Part'n @SC91311 04317500
LA 0,5 @SC90173 04318000
KCALL SCRNIO,RIOPTRS Read back status @SC90173 04318500
STCAC DS 0H @SC91311 04319000
LA 0,2 @SC90173 04319500
KCALL SCRNIO Release screen @SC90173 04320000
CLI 0(8),X'88' Check for WSF query reply @SC90173 04320500
BNE STCGRG No, must be something else @SC90173 04321000
CLC 3(2,8),=X'8180' Summary of replies 1st? @SC90173 04321500
BNE STCGRG No, must be something else @SC90173 04322000
SR 1,1 @SC90173 04322500
ICM 1,3,1(8) Get length of reply @SC90173 04323000
C 1,F64 @SC90173 04323500
BNL STCGRN Too big, give up @SC90173 04324000
LA 2,0(8,1) Point to end @SC90173 04324500
STC5AL CLI 0(2),X'8F' OEM Aux device? @SC90173 04325000
BE RTRN0 Yes, all set @SC90173 04325500
BCTR 2,0 No, keep looking @SC90173 04326000
BCT 1,STC5AL @SC90173 04326500
STCGRN MVI TRMTP,C'N' Probably unsupported device @SC90173 04327000
B RTRN0 That's all @SC90173 04327500
STCGRG MVI TRMTP,C'G' Assume graphics device @SC90173 04328000
B RTRN0 @SC90173 04328500
* 04329000
STCS1ST DC A(STCS1ORD,STCS1OL) @SC91311 04329500
STCS1ORD DC &S1CMD1,AL1(SBA),X'4040' Top of screen @SC93147 04330000
DC X'2B5BBC' Yale ASCII status request @SC93147 04330500
STCS1OL EQU *-STCS1ORD @SC91311 04331000
STCS1STI DC A(STCS1ORI,STCS1OIL) @SC91311 04331500
STCS1ORI DC &S1CMD1,X'2B5BBE' Yale ASCII status w/ intrpt @SC91311 04332000
STCS1OIL EQU *-STCS1ORI @SC91311 04332500
STCAEAST DC A(STCAEAQP,STCAEAL) @SC90173 04333000
STCAEAQP DC &AEACMD,X'000501FF02' Read Partition Query @SC90173 04333500
STCAEAL EQU *-STCAEAQP @SC90173 04334000
* 04334500
LOCALS , @SC86295 04335000
STCFLGS DS X Flags for operation @SC91311 04335500
EXIT , @SC86295 04336000
TITLE 'HINTS Routine - give tips on setup etc' @SC91295 04336500
HINTS ENTER , @SC91295 04337000
SR 0,0 Clear screen (if fullscreen) @SC91295 04337500
KCALL SCRNIO @SC91295 04338000
** BEGIN LANGUAGE-SPECIFIC DATA ** @SC92300 04338500
WTEXT 'Enter ? for a list of valid commands.' @SC91295 04339000
WTEXT 'Enter ? at any point (and press ENTER) for a list of op.04339500
tions. The minimum' @SC91295 04340000
WTEXT ' abbreviations will be in uppercase.' @SC91295 04340500
WTEXT 'Generally, RECEIVE PACKET-SIZE should be set as large a.04341000
s possible (to maximize' @SC91295 04341500
WTEXT ' efficiency), but there may be buffer size limits due .04342000
to comm hard/software.' @SC91295 04342500
WTEXT ' For safety, set BLOCK-CHECK to 2 or 3 for packets >10.04343000
0.' @SC91295 04343500
WTEXT 'For safety in sending binary files, set the FILE TYPE t.04344000
o BINARY at both ends,' @SC91295 04344500
WTEXT ' but maybe use V-BINARY at this end to preserve record.04345000
boundaries of the' @SC91295 04345500
WTEXT ' original file. Many Kermits convey the FILE TYPE aut.04346000
omatically.' @SC92300 04346500
WTEXT ' Note: V-BINARY with RECEIVE is only for files origina.04347000
lly sent that way.' @SC91295 04347500
WTEXT 'Set the TRANSFER CHARACTER-SET to something appropriate.04348000
(the default of ASCII' @SC91295 04348500
WTEXT ' limits text files to 128 code points, but it maps som.04349000
e common EBCDIC' @SC91295 04349500
WTEXT ' variants to the "expected" ASCII characters). Reset .04350000
the tables as needed.' @SC91295 04350500
WTEXT 'Hint: gather your habitual setups into an INIT file.' 04351000
** END LANGUAGE-SPECIFIC DATA ** @SC92300 04351500
WTEXT ' ' @SC91295 04352000
STRTMSGS , Any system-specific messages... @SC91295 04352500
CLC =C'ASCII',TRNALF Is it still default? @SC91295 04353000
BNE HINTS1 @SC91295 04353500
WTEXT '&TRANSFR &CHARSET&AAAAAIS.ASCII (7-bit)' @SC91295 04354000
HINTS1 CLC RPSIZ,=A(KMAX) Default packet size (short)? @SC91295 04354500
BE HINTS2 Yes, issue message @SC91295 04355000
BL HINTS3 Actually smaller -- assume need @SC91295 04355500
CLI BCTC,C'1' Greater, desire thorough check @SC92085 04356000
BNE HINTS3 Ok, we're happy @SC92085 04356500
WTEXT '&BLKCHCK&AAAAAIS.1 (&ZZSHORT)' @SC91295 04357000
B HINTS3 @SC91295 04357500
HINTS2 WTEXT '&RECEIVE &PACKSIZ&AAAAAIS.94 (&ZZSHORT)' @SC91295 04358000
HINTS3 CLI CLSNFL,C'O' Overwrite? @SC91295 04358500
BNE HINTS4 No, don't quibble @SC91295 04359000
WTEXT '&AAAFILE &COLLISN&AAAAAIS.&OVERWRI (&ZZBEWAR)' @SC92300 04359500
HINTS4 DS 0H @SC91295 04360000
RET , @SC91295 04360500
* 04361000
LOCALS , @SC91295 04361500
EXIT , @SC91295 04362000