./ * ... Permanent change ...
./ * PG89001 - Make changes from base code for MUSIC/SP System
./ R 07574000 $ 07574000 500 ->4.3<-
DC AL1(15,0+2) No wild matches @PG89001
./ * ... Other ...
./ * S u m m a r y o f u p d a t e s
./ * SC93236 - Support long userid's and file names (MUSIC)
./ * SC93342 - Use date transmitted with file (CMS only)
./ * SC94074 - NAK bad data packet instead of re-ACKing previous
./ * SC94174 - WHATAMI option for file type
./ * SC94181 - Implement level-1 restart/recovery mode (MUSIC)
./ * SC94245 - More accurate statistics after server transfers
./ * SC94262 - Leave room for table expansion (MUSIC)
./ * SC94264 - Avoid spurious error message for host commands (MUSIC)
./ * SC94287 - Prevent or recover from lost screen (MUSIC)
./ * SC94299 - Make GIVE CONTROL subcommand work (MUSIC)
./ * SC95023 - Fix RESEND for already-sent file, implement APC subcmd.
./ * SC95032 - Allow Recovery into almost-full file system
./ * SC95033 - Update to level 4.3.1
./ * SC95059 - Preserve transmitted time tag for RESENT file
./ * SC95108 - Prevent error-free transfers from halting TAKE files
./ * SC95174 - Implement REGET subcommand
./ * SC96122 - Avoid endless double transmission from windowed Kermit
./ * SC96151 - Add system ID to INIT packets
./ * SC96158 - Never skip sending an I-packet while in remote mode
./ * SC97028 - Clear 'Kermit command error' condition correctly
./ * SC97164 - Update to level 4.3.2
./ * U p d a t e s ...
./ * SC93236 - Support long userid's and file names (MUSIC)
./ R 00917000 $ 917000 500 08/26/93 13:03:01
LH 9,DESTL Length of string @SC93236
./ R 00997000 $ 997000 300 08/24/93 16:50:09
LFCODE EQU 16 @SC93236
LFID EQU 64 Max length of filespec @SC93236
FABFN DS CL(LFID) MUSIC filename & code @SC93236
./ R 01025000 01027000 $ 1025000 1000 08/24/93 16:50:09
UCODE DS CL(LFID) User code @SC93236
SCODE DS CL20 SEARCH CODE @SC93236
FCODE DS CL16 CODE LOCATED BY MFINDX @SC93236
./ R 01033000 $ 1033000 500 08/26/93 13:03:01
MFARG XNAME=0,HINFO=0,INFIN=0,INFOUT=0,ARG=0 @SC93236
./ R 01038000 $ 1038000 500 08/26/93 13:03:01
MFNAME MFVAR XNAME,PRE=MF,PICT=Y @SC93236
ZHINFO MFVAR HINFO,PRE=MF,PICT=Y @SC93236
./ R 01057000 $ 1057000 500 08/27/93 12:44:16
DESTL DS H Non-zero if CWD set. @SC93236
./ R 01059000 01060000 $ 1059000 1000 08/24/93 16:50:09
NXFN DS CL(LFID) Pattern filespec @SC93236
LCFN DS CL(LFID) Located filename @SC93236
./ I 01066000 $ 1066500 500 10/07/94 23:49:07
NXFNWL DS H Length of string to last wildcard @SC93236
./ D 01100000 01101000 09/01/93 16:15:53
./ D 01111000 08/24/93 16:50:09
./ R 01148090 $ 1148090 10 10/12/94 13:31:34
&CWDERRM SETC 'Must be a valid MUSIC path name' @SC93236
./ D 01157000 08/24/93 16:50:09
./ R 05007000 05008000 $ 5007000 200 08/26/93 13:03:01
MVI TRTBL+C':',1 Set to scan for separator @SC93236
EX 7,CWDSCN Look for separator @SC93236
MVI TRTBL+C':',0 Clean up table before leaving @SC93236
BZ CWDTRY Not found. Just setting directory@SC93236
./ R 05012000 05013000 $ 5011000 50 08/26/93 13:03:01
CWDTRY LA 0,MFNAME @SC93236
LA 1,LFID @SC93236
LA 7,1(,7) Set up MVCL @SC93236
ICM 7,8,=C' ' @SC93236
MVCL 0,6 @SC93236
TR MFNAME,UPCASE Up-case it @SC93236
MFARG 0,RLAB=CWDRC,XNAME=MFNAME,RNAME=CWDNAM @SC94272
MFGEN AREA=CWDBLK @SC94272
MFSET CWDBLK,DIRSRV,R=(DIRCD) @SC94272
MFREQ CWDBLK @SC94272
CLI CWDRC,0 Is it valid? @SC94272
BNE CWDERR Something went wrong @SC94272
CLC =C'\ ',CWDNAM Just my root directory? @SC94272
BE CWDRSET Yes, reset @SC94272
SR 1,1 Clear high bits @SC94272
TRT CWDNAM,TRTBL Find end of pathname @SC94272
BZ CWDERR Impossible! No trailing blank @SC94272
LA 0,CWDNAM+1 After the leading "\" @SC94272
LA 2,UCODE Start of destination string @SC94272
LA 15,LFCODE Max length of other userid @SC94272
LA 14,CWDNAM+2 Start scan for code separator @SC94272
CWDCLP CLI 0(14),C':' @SC94272
BE CWDOTH Found it, that's the dest. @SC94272
LA 14,1(,14) @SC94272
BCT 15,CWDCLP Keep looking @SC94272
BCTR 0,0 Not found, must copy whole string @SC94272
CWDME MVC 0(LFCODE,2),$USERID ... as subdirectory @SC94272
SR 15,15 @SC94272
IC 15,$OWNL Length of userid @SC94272
AR 2,15 @SC94272
MVI 0(2),C':' End of userid @SC94272
LA 2,1(,2) Set ptr for copying @SC94272
CWDOTH SR 1,0 Length of stuff to copy @SC94272
LA 15,0(1,2) End of expected value @SC94272
LA 3,UCODE+LFID End of destination field @SC94272
SR 3,2 Length to fill @SC94272
ICM 1,8,=C' ' Fill with blanks @SC94272
MVCL 2,0 Copy to dest field @SC94272
LR 1,15 Ptr to end @SC94272
BCTR 1,0 Back up to last character @SC94272
CLI 0(1),C':' Ends with a separator? @SC93236
BE CWDOK Yes, leave it at that @SC93236
CLI 0(1),C'\' Ends with a separator? @SC93236
BE CWDOK Ok @SC93236
MVI 1(1),C'\' No, tack on a slash @SC93236
LA 15,1(,15) Add to length of string @SC93236
CWDOK LA 1,UCODE @SC94272
SR 15,1 Length of string @SC94272
STH 15,DESTL Save length @SC94272
WTEXT (1),(15) Display now-current directory @SC94272
./ I 05014000 $ 5014500 500 08/26/93 13:03:01
CWDSCN TRT 0(,6),TRTBL @SC93236
./ R 05017000 05019000 $ 5017000 500 08/26/93 13:03:01
CWDRSET LA 2,UCODE Refill default code field @SC94272
LR 1,0 Null path name @SC94272
B CWDME Copy and blank-fill @SC94272
./ I 05043000 $ 5043100 100 09/30/94 18:10:31
CWDBLK MFARG 0,RLAB=CWDRC,XNAME=0,RNAME=0,PICT=Y @SC94272
MFGEN , @SC94272
CWDNAM MFVAR RNAME,PRE=MF,PICT=Y @SC94272
./ R 05077000 $ 5077000 500 08/26/93 13:03:01
MVI 0(1),C' ' Clear the filename to blanks @SC93236
MVC 1(LFID-1,1),0(1) @SC93236
./ R 05091000 05092000 $ 5091000 500 08/26/93 13:03:01
MVC 0(LFID,1),UCODE Default prefix @SC93236
LH 15,DESTL @SC93236
AR 15,1 @SC93236
MVI 0(15),C'*' Yes @SC93236
./ D 05101000 10/26/94 13:03:01
./ R 05105000 05113000 $ 5105000 1000 08/26/93 13:03:01
* Fall through to treatment of received file header @SC93236
FSPHD MVC 0(LFID,1),UCODE Default code @SC93236
LH 15,DESTL @SC93236
AR 15,1 @SC93236
MVI 0(15),C'$' Default fn @SC93236
./ I 05129000 $ 5129200 200 10/26/94 13:03:01
FSPCKNSP TRT 0(,1),TRTBL @SC93236
FSPVALC TR 0(,8),FSPTAB Make valid fn chars @SC93236
./ R 05133600 05140000 $ 5134000 200 08/24/93 16:50:09
MVC 0(LFID,8),UCODE Add the user code in case needed@SC93236
LR 9,8 Yes, keep current user code @SC93236
FSPCPCLP LA 9,1(,9) @SC93236
CLI 0(9),C':' (UCODE always has a ":") @SC93236
BNE FSPCPCLP Find end of user code in output @SC93236
CLI 0(6),C'\' "Absolute" path for current user? @SC93236
BNE FSPCPOTH No, but maybe another user @SC93236
LA 0,1(,9) Yes, keep just user code+colon @SC93236
B FSPCPSEP Go tack on the path @SC93236
FSPCPOTH MVI TRTBL+C':',9 Set to find end of code @SC93236
LA 15,LFCODE Nominal length of code (not ":") @SC93236
CR 15,7 See if string is long enough @SC93236
BNH *+6 @SC93236
LR 15,7 Separator must be in name @SC93236
LR 1,6 Start of possible code in input @SC93236
XR 2,2 Clear result value @SC93236
EX 15,FSPCKNSP Find end of code, if any @SC93236
CLM 2,1,TRTBL+C':' Found a colon? @SC93236
MVI TRTBL+C':',0 Reset table @SC93236
BE FSPCPICD Found separator. Absolute path @SC93236
AH 0,DESTL Use whole destination string @SC93236
B FSPCPSEP All set @SC93236
FSPCPICD SR 1,6 Get offset to colon @SC93236
LA 9,0(1,8) Where it will be in output field @SC93236
* Now R0->where to copy input string, R8->output field @SC93236
FSPCPSEP LA 1,LFID(,8) End of name field @SC93236
SR 1,0 Length remaining to fill @SC93236
TM FSPFLG,FFRCF @SC93236
./ R 05143000 $ 5143000 200 10/27/94 20:25:18
FSPCPN LR 2,0 @SC93236
SR 2,8 Length being preserved in output @SC93236
AR 2,7 Length to be copied - 1 @SC93236
LA 7,1(7) @SC93236
./ I 05145000 $ 5145500 500 10/27/94 20:25:18
SR 2,7 Deduct anything uncopied @SC93236
./ R 05147000 $ 5147000 100 10/26/94 16:50:09
BAL 14,FSPTVAL Error if name was too long @SC93236
./ I 05148000 $ 5148020 20 10/26/94 16:50:09
MVC FSPFN,0(8) Copy tentative version of name @SC93236
CLI FSPFLG,FFRCF @SC93236
BE FSPMVAL Make sure it's valid for receive @SC93236
CLI FSPFLG,FFGET+FFRCF @SC93236
BE FSPMVAL Get 2nd name is like RECEIVE @SC93236
CLI FSPFLG,FFHDR @SC93236
BNE FSPCKNOK Ok, don't bother @SC93236
FSPMVAL CLI 0(8),C'*' Allow asterisk to start a code @SC93236
EX 2,FSPVALC Make valid fn chars @SC93236
BNE *+8 @SC93236
MVI 0(8),C'*' Restore asterisk @SC93236
MVI 0(9),C':' Restore code separator as "valid" @SC93236
MVI TRTBL+C':',9 Set to find separators @SC93236
MVI TRTBL+C'\',9 @SC93236
LA 5,LFID-1(,8) End of field @SC93236
LR 1,8 @SC93236
BCTR 1,0 Back up for starting @SC93236
FSPCKNLP LR 2,1 Save ptr to latest separator @SC93236
LA 1,1(,1) Advance to 1st byte of token @SC93236
LA 6,17(,1) Max for end of name @SC93236
TRT 0(,1),FSPTAB1 Valid to start token? @SC93236
BNZ FSPCKNLZ Ok @SC93236
CLC =C':\',0(2) No, is it end of user code? @SC93236
BE FSPCKNLZ Ok @SC93236
FSPCKNL1 MVI 0(1),C'$' Insist on valid 1st char @SC93236
FSPCKNLZ LR 2,5 Ptr to last char of field @SC93236
SR 2,1 Length-1 remaining @SC93236
EX 2,FSPCKNSP Find next separator, if any @SC93236
BZ FSPCKNF1 No more tokens @SC93236
CLM 2,1,TRTBL+C' ' Reached end of name? @SC93236
BNE FSPCKNLP No, keep scanning @SC93236
LR 5,1 Yes, note the end @SC93236
BCTR 5,0 Point to last char @SC93236
FSPCKNF1 MVI TRTBL+C':',0 Reset search table @SC93236
MVI TRTBL+C'\',0 @SC93236
CR 5,6 Is the name short enough? @SC93236
BL FSPCKNOK Ok @SC93236
LA 7,LFID(,8) End of field @SC93236
SR 7,6 Length to blank @SC93236
SR 15,15 @SC93236
ICM 15,8,UPCASE+C' ' @SC93236
MVCL 6,14 Fill with blanks @SC93236
FSPCKNOK CLC FSPFN,0(8) Was the name valid? @SC93236
BAL 14,FSPTVAL Complain if not @SC93236
./ I 05149000 $ 5149100 100 10/26/94 16:50:09
*
FSPTVAL BZR 14 No error, keep going @SC93236
CLI FSPFLG,FFHDR Was this passed by other Kermit? @SC93236
BER 14 Yes, use modified name @SC93236
B FSPINV No, user should know better @SC93236
./ I 05179000 $ 5179090 90 10/27/94 21:45:49
LR 5,6 Now look back for start of name @SC93236
FSPWRN1 BCTR 5,0 @SC93236
CLI 0(5),C'\' @SC93236
BE FSPWRN2 Last separator is here @SC93236
CLI 0(5),C':' Always a code, if nothing else @SC93236
BNE FSPWRN1 @SC93236
FSPWRN2 LA 5,15(,5) Allow no more than 15 @SC93236
CR 5,6 Is this more restrictive? @SC93236
BNL *+6 No, keep whole name @SC93236
LR 6,5 Yes, chop off what's necessary @SC93236
./ R 05198000 05205000 $ 5199000 500 08/24/93 16:50:09
LA 1,LFID-1(,4) Scan back for start of name part @SC93236
LR 15,1 Save ptr to last char @SC93236
FSPENCLP CLI 0(1),C':' Look for code or last subdirect. @SC93236
BE FSPENC1 Found separator @SC93236
CLI 0(1),C'\' @SC93236
BE FSPENC1 Found last delimiter @SC93236
BCT 1,FSPENCLP @SC93236
FSPENC1 MVC 0(LFID,7),1(1) @SC93236
SR 15,1 @SC93236
LA 1,1(15,7) End of token if no blanks @SC93236
EX 15,FSPETRT Find 1st blank, if any @SC93236
EX 15,FSPETR Convert to ASCII @SC93236
./ I 05208000 $ 5208300 300 08/31/93 00:41:25
FSPETRT TRT 0(,7),TRTBL Find 1st blank @SC93236
FSPETR TR 0(,7),ETOAD ASCII it @SC93236
./ R 05213000 05218000 $ 5213000 200 08/26/93 13:03:01
LA 14,UCODE @SC93236
LA 15,LFID @SC93236
LR 5,15 Save length if using all @SC93236
LR 2,7 @SC93236
LR 3,15 @SC93236
ICM 15,8,UPCASE+C' ' @SC93236
FSPDSPL CLCL 2,14 @SC93236
BNE FSPDSPN @SC93236
MVI 0(7),C'.' Exact match = current directory @SC93236
LA 15,1(,7) Just call it "." @SC93236
B FSPRET @SC93236
FSPDSPN CLI 0(14),C' ' Whole UCODE included? @SC93236
BE FSPDSP1 Yes, abbreviate (omit prefix) @SC93236
CLI 0(14),C'\' No, but maybe equivalent anyway? @SC93236
BNE FSPDSP2 No, use all of token @SC93236
BCTR 14,0 Maybe, look at previous char @SC93236
CLI 0(14),C':' End of userid? @SC93236
BNE FSPDSP2 No, use all of token @SC93236
LA 14,2(,14) Yes, next backslash optional @SC93236
BCTR 15,0 @SC93236
B FSPDSPL See if the rest matches @SC93236
FSPDSP1 MVC 0(LFID,7),0(2) Yes, use just the remainder @SC93236
LR 5,15 and use the abbreviated length @SC93236
FSPDSP2 BCTR 5,0 Correct for EX @SC93236
LA 1,1(5,7) End of token if no blanks @SC93236
EX 5,FSPDSPTR @SC93236
./ I 05220000 $ 5220500 500 08/26/93 13:03:01
FSPDSPTR TRT 0(,7),TRTBL Find 1st blank @SC93236
./ R 05223000 05225000 $ 5223000 500 09/01/93 11:44:20
FSPTAB DC 75C'$',C'.',2C'$',C'+$&&' dot, plus, ampersand @SC93236
DC 09C'$',C'!$' exclamation, dollar sign @SC93236
DC 04C'$',C'-' minus @SC93236
DC 11C'$',C'%_' percent, underscore @SC93236
DC 13C'$',C'#@' pound sign, at sign @SC93236
./ R 05228000 $ 5228000 500 09/01/93 11:44:20
DC 07C'$',C'~STUVWXYZ' tilde, s-z @SC93236
./ R 05231000 $ 5231000 500 09/01/93 11:44:20
DC 06C'$',C'\$STUVWXYZ' backslash, S-Z @SC93236
./ I 05233000 $ 5233100 100 09/01/93 11:44:20
*
* Valid characters to start directory or file name @SC93236
FSPTAB1 DC 91X'00',C'$' dollar @SC93236
DC 17X'00',C'_' underscore @SC93236
DC 13X'00',C'#@' pound sign, at sign @SC93236
DC 68X'00',C'ABCDEFGHI' A-I @SC93236
DC 07X'00',C'JKLMNOPQR' J-R @SC93236
DC 08X'00',C'STUVWXYZ' S-Z @SC93236
DC 22X'00' @SC93236
./ I 05235000 $ 5235500 500 10/26/94 16:50:09
FSPFN DS CL(LFID) Copy of tentative version of name @SC93236
./ R 05422000 $ 5422000 500 08/27/93 12:44:16
MFARG XNAME=MFNAME,HINFO=ZHINFO,INFIN=ZINFIN @SC93236
MFARG INFOUT=ZINFOUT,ARG=ZARG @SC93236
./ R 05426000 05428000 $ 5426000 100 08/24/93 16:50:09
LM 5,6,SCANPTR Save string values @SC94272
MVC SCANPTR,=A(1,UPCASE+C'.') @SC94272
KCALL CWDSET,E=(STM1A,Z) Use current directory @SC94272
XC LEN,LEN Ensure no input string @SC93236
KCALL CWDSET Get default user code @SC93236
STM1A STM 5,6,SCANPTR Restore string values @SC94272
./ D 06112000 08/27/93 12:44:16
./ R 06114000 06118000 $ 6114000 200 08/27/93 12:44:16
MVI TRTBL+C':',9 Set to catch the separator @SC93236
TRT NXFN(LFID),TRTBL (known to be there) @SC93236
MVI TRTBL+C':',0 Restore the table @SC93236
LR 5,1 @SC93236
LA 4,NXFN Start of pattern @SC93236
SR 5,4 Get length of code @SC93236
ICM 5,8,=C' ' Use blank filling @SC93236
LA 0,SCODE Fill whole SCODE field @SC93236
LA 1,L'SCODE @SC93236
MVCL 0,4 @SC93236
LA 4,1(,4) Skip over the separator @SC93236
CLI 0(4),C'\' Starts with a backslash? @SC93236
BNE *+8 No, fine @SC93236
LA 4,1(,4) Skip over the backslash, too @SC93236
LA 5,NXFN+LFID @SC93236
SR 5,4 Get remaining length of name @SC93236
ICM 5,8,=C' ' @SC93236
LA 0,NXFN Recopy NXFN with just name part @SC93236
LA 1,LFID @SC93236
MVCL 0,4 @SC93236
./ R 06121000 $ 6121000 100 08/27/93 12:44:16
LA 0,SCODE Yes, so use the real thing @SC93236
LA 1,L'SCODE @SC93236
LA 4,$USERID @SC93236
XR 5,5 @SC93236
IC 5,$OWNL Length of userid for code @SC93236
ICM 5,8,=C' ' @SC93236
MVCL 0,4 Copy with blank-fill @SC93236
./ R 06133000 $ 6133000 100 08/27/93 12:44:16
DSKNS10 STH 2,NXFNWL Length to last wildcard @SC93236
LA 14,$USERID Are we searching our library? @SC93236
XR 15,15 @SC93236
IC 15,$OWNL Length of user code @SC93236
ICM 15,8,=C' ' Compare with blank padding @SC93236
LA 0,SCODE @SC93236
LA 1,L'SCODE @SC93236
CLCL 0,14 @SC93236
./ R 06144000 $ 6144000 500 08/27/93 12:44:16
CALL MFIND1,((2),F10,SCODE,F10,ZRC),VL,MF=(E,PARMAREA) C93236
./ R 06228000 06229000 $ 6228000 200 08/27/93 12:44:16
DSKFND MVC MFNAME(LFCODE+1),SCODE Rebuild the filename @SC93236
LR 14,1 Save ptr to name portion @SC93236
TRT MFNAME(LFCODE+1),TRTBL Find end of code @SC93236
MVI 0(1),C':' Insert a separator @SC93236
LA 2,MFNAME+LFID-2 @SC93236
SR 2,1 Get length - 1 of remainder @SC93236
MVC 1(,1),0(14) @SC93236
EX 2,*-6 Copy rest into field @SC93236
./ I 06244000 $ 6244050 50 08/24/93 16:50:09
MVI TRTBL+C'\',9 Catch any subdirectory names @SC93236
LH 1,NXFNWL Length to last wildcard @SC93236
LA 15,LFID @SC93236
SR 15,1 Length to scan @SC93236
BCTR 15,0 Set up for EX @SC93236
LA 1,LCFN(1) Place to start scan for backslash @SC93236
TRT 0(,1),TRTBL @SC93236
EX 15,*-6 @SC93236
MVI TRTBL+C'\',0 @SC93236
CLI 0(1),C'\' Got a subdirectory file? @SC93236
BNE NXT31 No, carry on @SC93236
CLI 1(1),C' ' Just a subdirectory? @SC93236
BNE DSKSRCH No, a subdir file. Skip it @SC93236
L 15,4(,13) Look at caller @SC93236
C KSUBBASE,20+4*KSUBBASE(,15) Was it DIR? @SC93236
BNE DSKSRCH No, return only files @SC93236
NXT31 DS 0H @SC93236
./ R 06247000 $ 6247000 500 08/24/93 16:50:09
CLC FCODE(LFCODE),SCODE Is this the right code? @SC93236
./ R 06249000 $ 6249000 500 09/01/93 16:15:58
CALL MATCH,(LCFN,FM64,NXFN,NXFNL,ASTER,QUEST),VL, @SC93236+
./ I 06260500 $ 6260600 100 08/27/93 12:44:16
LA 1,MFNAME+LFID @SC93236
TRT MFNAME(LFID),TRTBL @SC93236
LR 5,1 @SC93236
./ R 06261000 06269500 $ 6261000 500 10/07/94 20:10:57
LA 7,CMD Yes, build the filename with @SC93236
LR 2,7 the attributes we want @SC93236
LA 0,FFDSP @SC93236
KCALL FSPEC,MFNAME Get display form @SC93236
LR 1,7 Save ptr to start of buffer @SC93236
LR 5,15 End of output name @SC93236
LA 3,22 Length of name buffer @SC93236
LR 4,2 Copy self unless too long @SC93236
SR 5,4 Length of name @SC93236
CR 5,3 Room for everything on line? @SC93236
BNH DSKDIRL2 Ok @SC93236
SR 5,3 No, skip over beginning of name @SC93236
AR 4,5 @SC93236
LR 5,3 Use as much as possible @SC93236
DSKDIRL2 LA 7,CMD-1(5) Ptr to last character @SC93236
ICM 5,8,F64+3 Get blank for padding @SC93236
./ I 06270000 $ 6270500 500 08/27/93 12:44:16
XR 0,0 @SC93236
./ R 06273000 $ 6273000 200 08/27/93 12:44:16
MVC 0(2,2),=C' ' Leave some blanks @SC88308
./ I 06279000 $ 6279100 100 10/08/94 00:09:12
CLC =C'. ',CMD Is it the current directory? @SC93236
BE DSKDRL2 Yes, mark it @SC93236
CLI 0(7),C'\' Is it a directory? @SC93236
BNE DSKDRL3 @SC93236
DSKDRL2 SH 2,=H'5' Yes, mark it such @SC93236
MVC 0(5,2),=C'
' @SC93236
AH 2,=H'5' Restore output ptr @SC93236
DSKDRL3 DS 0H @SC93236
./ R 06317000 $ 6317000 100 09/22/94 09:44:47
LA 14,$USERID Our own code? @SC93236
SR 15,15 @SC93236
IC 15,$OWNL Length of user code @SC93236
ICM 15,8,UPCASE+C' ' Pad if necessary @SC93236
LA 0,MFHIFC Code for file (blank padded) @SC93236
LA 1,16 Length of field @SC93236
CLCL 0,14 See if we match @SC93236
./ I 06327000 $ 6327500 500 08/27/93 12:44:16
FM64 DC F'-64' @SC93236
./ * SC93342 - Use date transmitted with file (CMS only)
./ I 01416400 $ 1416500 100 09/01/94 21:20:42
SSYMS , @SC93342
./ D 01416800 09/01/94 21:20:42
./ * SC94074 - NAK bad data packet instead of re-ACKing previous
./ I 01917000 $ 1917200 200 03/15/94 16:25:11
CLI STYPE,AY See if sent a plain ACK @SC94074
BNE *+12 No, resend whatever it was @SC94074
CLI DATLSN,0 "plain" only if no data @SC94074
BE SENDNAK Yes, send a NAK @SC94074
./ R 02579000 $ 2579000 1000 03/15/94 16:25:11
DATL DS F Size of data in packet (S or R) @SC94074
./ I 02617000 $ 2617200 200 03/15/94 16:25:11
DATLSN DS X Data length in last packet sent @SC94074
./ I 08466500 $ 8466600 100 03/15/94 16:25:11
STC 9,DATLSN Copy length of data sent, if any @SC94074
./ * SC94174 - WHATAMI option for file type
./ I 01424200 $ 1424300 100 06/23/94 22:46:07
AUND EQU 95 ASCII underscore @SC94174
./ I 02082200 $ 2082300 100 06/23/94 22:46:07
MVI WHATRU,0 No valid value anymore @SC94174
./ R 02492000 $ 2492000 500 06/24/94 00:00:08
DC AL1(ABL,ABL,ABL,A0),3AL1(AUND),AL1(ABL) @SC94174
./ I 02680000 $ 2680500 500 06/23/94 18:34:18
WHATRU DS X Mode info from other Kermit @SC94174
./ R 02716000 $ 2716000 500 06/24/94 00:00:08
DS AL1(ABL,ABL,ABL,A0),3AL1(AUND),AL1(ABL) @SC94174
./ D 08159500 08160000 06/24/94 01:36:05
./ I 08167500 $ 8167600 100 06/24/94 01:36:05
TM RCAPA,LONGP Test for long packet bit @SC94174
BZ SPARNX No extended packets @SC94174
./ I 08168500 $ 8168510 10 06/23/94 18:26:14
BAL 14,SPARFTCH Get checkpoint flag @SC94174
* UNCHR 4,,SCKPNT Save for later @SC94174
XR 1,1 Clear checkpoint length @SC94174
LA 15,3 @SC94174
SPARCKPL MH 1,XLFCT+2 Shift left @SC94174
BAL 14,SPARFTCH Get next checkpoint length byte @SC94174
UNCHR 4 @SC94174
AR 1,4 @SC94174
BCT 15,SPARCKPL @SC94174
* ST 1,SCKINT @SC94174
BAL 14,SPARFTCH Get WHATAMI @SC94174
UNCHR 4,,WHATRU @SC94174
TM WHATRU,X'20' Valid? @SC94174
BZ SPARWHT No, skip it @SC94174
TM FL2,SRV Acting as server? @SC94174
BZ SPARWHT No, skip it @SC94174
IC 0,FL1 Get my file-type flag @SC94174
SRL 0,1 Shift BINF (4) to 2-bit @SC94174
XR 0,4 Compare (client 2-bit is binary) @SC94174
N 0,F2 Do they match? @SC94174
BZ SPARWHT Yes, all set @SC94174
XI FL1,BINF No, switch my setting @SC94174
MVI TYPFIL,C'T' Also set the subflag @SC94174
TM FL1,BINF @SC94174
BZ SPARWHT @SC94174
MVI TYPFIL,C'B' @SC94174
SPARWHT DS 0H @SC94174
./ R 08219000 $ 8219000 100 06/23/94 18:26:14
MVI 10(9),ABL Window size is blank @SC86295
./ R 08229500 $ 8229500 200 06/23/94 18:26:14
BNH RPARS1 KMAX >= RPSIZ @SC94174
./ R 08230500 $ 8230500 200 06/23/94 18:26:14
SH 5,=H'7' Allow for long header @SC94174
./ D 08231500 06/24/94 00:00:08
./ R 08233500 08234000 $ 8233400 100 06/23/94 18:26:14
MVC 13(4,9),DEFPARM+13 No ckpt support @SC94174
LA 4,X'24' Bits always on in WHATAMI @SC94174
TM FL1,BINF Binary? @SC94174
BZ *+8 @SC94174
LA 4,2(,4) Yes @SC94174
TM FL2,SRV Server mode? @SC94174
BZ *+8 @SC94174
LA 4,1(,4) Yes @SC94174
TOCHR 4,,17(9) @SC94174
LA 0,18 Size of data including WHATAMI @SC94174
./ * SC94181 - Implement level-1 restart/recovery mode (MUSIC)
./ I 00990000 $ 990300 300 06/29/94 18:55:26
FDBSIZEB DS F File size in bytes @SC94181
./ I 01413600 $ 1413700 100 09/14/94 15:49:04
GBLC &AAARSND,&AUPDATE @SC94181
./ R 01415400 01415600 $ 1415400 200 09/30/93 14:45:03
&KDATE SETC '94/06/30' @SC94181
&KEDIT SETC '1 TEST' @SC94181
./ I 01460400 $ 1460500 100 06/28/94 18:25:34
&AAARSND SETC 'RESEND' cmd, m=3 @SC94181
./ I 01475800 $ 1475900 100 09/20/94 21:29:31
&AUPDATE SETC 'UPDATE' kwd->COLLISN @SC94181
./ I 02119000 $ 2119100 100 09/21/94 15:17:19
CLI ERRNUM,ERRTRC Canceled? @SC94181
BNE LDERR2 @SC94181
CLI REASON,STACNDAT Date too early? @SC94181
BER 14 Not an error @SC94181
CLI REASON,STACNDSC Simply a duplicate? @SC94181
BER 14 Not an error @SC94181
LDERR2 DS 0H @SC94181
./ R 02494000 $ 2494000 500 06/28/94 18:25:34
DC X'38' Capabilities I have SCAPA @SC94181
./ R 03033000 $ 3033000 80 06/28/94 18:25:34
KW '&AAARSND',KRMSND,R,MIN=3 @SC94181
SNDKCMD KW '&AAASEND',KRMSND,MIN=3 @SC94181
ORG SNDKCMD+KWCODE @SC94181
DC X'0' Normal send has no disp code @SC94181
ORG , @SC94181
./ R 03034500 $ 3034500 100 10/15/94 18:25:34
XTYKCMD KW '&AAXTYPE',KRMNPS,MIN=2 @SC94181
ORG XTYKCMD+KWCODE @SC94181
DC X'0' Normal send has no disp code @SC94181
ORG , @SC94181
./ R 03081000 $ 3081000 200 06/28/94 18:25:34
KRMSND MVC USNCOD,KWCODE(1) Save send command abbrev @SC94181
PTEXT '&SYSFSPC - ',AREG=1,LREG=0 @SC94181
./ R 03094000 03095000 $ 3094000 90 09/21/94 16:45:10
KRMSNDBG SR 1,1 @SC94181
ICM 1,1,USNCOD Get send command code @SC94181
BZ USNSND3 Fine, no special disposition @SC94181
TM SCAPA,8 Can we do attributes? @SC94181
BZ USNSNDX No, give up right away @SC94181
TM ATFL2,ATFDSP Disposition attribute enabled? @SC94181
BZ USNSNDX No, can't do it @SC94181
TM ATFLG,ATFTYP Type attribute enabled? @SC94181
BZ USNSNDX Can't do it @SC94181
TM ATFL4,ATFEND End-of-atts attribute enabled? @SC94181
BZ USNSNDX Can't do it @SC94181
TM FL1,BINF Are we binary? @SC94181
BZ USNSNDX1 No, can't do it @SC94181
USNSND3 IC 1,ETOAD(1) Use ASCII version of Disp code @SC94181
XC LEN,LEN Clear length of Disp options @SC94181
KCALL SEND @SC94181
KRMXFZ BAL 14,LDERR Get massaged error code @SC94181
./ I 03096000 $ 3096080 80 06/28/94 18:25:34
B USNSNDZ @SC94181
USNSNDX WTEXT '&ATTRIBU &AZDISAB' @SC94181
B USNSNDZ @SC94181
USNSNDX1 WTEXT '&CANNOT.&AAARSND ->&AAAABIN' @SC94181
USNSNDZ DS 0H @SC94181
./ I 03105000 $ 3105200 200 06/28/94 18:25:34
MVI USNCOD,0 No special disposition @SC94181
./ I 03130500 $ 3130700 200 06/28/94 18:25:34
USNCOD DS X Temporary flags for SEND/RESEND @SC94181
./ I 03192000 $ 3192200 200 09/20/94 21:29:31
KW '&AUPDATE',SETCLSN,U @SC94181
./ R 03754000 $ 3754000 100 09/20/94 21:29:31
STACNTB DC C'-&ATTUNK.-&ATTLEN.-&ATTTYP' @SC94181
STACNDAT EQU (*-STACNTB)/8 Date reason code @SC94181
DC C'-&ATTDAT.' @SC94181
./ R 03756500 $ 3756500 100 09/20/94 16:08:33
DC (31-(*-STACNTB)/8)CL8'-??' @SC94181
STACNDSC EQU (*-STACNTB)/8 One extra reason (not in A-packet)@SC94181
DC C'-&COLLIS.' @SC94181
./ I 05843000 $ 5843500 500 09/20/94 21:29:31
XC FDBD(FDBINFO),FDBD Clear it out @SC94181
./ I 06205000 $ 6205100 100 06/29/94 18:55:26
ICM 0,15,MFNLRC Number of records @SC94181
MH 0,MFORSIZ Record length @SC94181
ST 0,FDBSIZEB Save @SC94181
./ I 07683000 $ 7683100 100 06/28/94 18:25:34
CLI SNDDSP,AR Trying to recover? @SC94181
BNE SNDFIL No, fine @SC94181
TM RCAPA,X'10' Yes, can the other Kermit do it? @SC94181
BZ SNDCMDER No. Give up @SC94181
./ I 07685000 $ 7685200 200 06/28/94 18:25:34
XC SNDBLEN,SNDBLEN Clear "recovery" length @SC94181
./ I 07757500 $ 7757530 30 06/28/94 18:25:34
CLI SNDDSP,AR Trying to recover? @SC94181
BNE SNDPKLX No @SC94181
CLC DATL,F3 Any byte length? @SC94181
BL SNDPKLX No @SC94181
CLI 0(1),A1 Is this it? @SC94181
BNE SNDPKLX No @SC94181
UNCHR 7,1(1) Yes, get length of number string @SC94181
LA 6,2(,1) Ptr to numeric string @SC94181
LR 14,7 @SC94181
BCTR 14,0 @SC94181
EX 14,SNDTRAT @SC94181
BAL 14,GETNUM Get file length @SC94181
LA 0,0 Default is to send all @SC94181
ST 0,SNDBLEN Save expected size @SC94181
./ I 07760500 $ 7760700 200 06/28/94 18:25:34
SNDTRAT TR 0(,6),ATOED Convert to EBCDIC for decoding @SC94181
./ I 07765000 $ 7765050 50 06/28/94 18:25:34
L 5,SNDBLEN Length to skip @SC94181
SNDRECL LTR 5,5 Any more? @SC94181
BNP SNDENC No, start sending @SC94181
KCALL INBUF,E=SNDEND @SC94181
S 5,RBUFL Data length in RBUF @SC94181
BNM SNDRECL Keep skipping @SC94181
A 5,RBUFL Must use part of this buffer @SC94181
ST 5,RBUFP Index of next char in RBUF @SC94181
./ I 07797000 $ 7797200 200 12/19/94 15:58:18
SNDEND MVC DATL,F0 End while restarting: do nothing @SC94181
./ I 07809000 $ 7809060 60 09/21/94 15:58:18
CLI ERRNUM,ERRTRC Cancelled? @SC94181
BNE SNDBRKA No, it's a solid error @SC94181
CLI REASON,STACNDAT Refused as duplicate (date)? @SC94181
BE SNDBRKP Yes, not really an error @SC94181
CLI REASON,STACNDSC Refused as duplicate? @SC94181
BE SNDBRKP Yes, not really an error @SC94181
SNDBRKA DS 0H @SC94181
./ I 07833000 $ 7833200 200 06/28/94 18:25:34
SNDBLEN DS F Length to skip in resending file @SC94181
./ R 07864500 07875500 $ 7865500 500 06/29/94 20:43:04
RECOVR XC FILFLGS,FL3 Set flag for DISP @SC94181
NI FILFLGS,255-APPN-SVATT @SC90033
XC FILFLGS,FL3 @SC86295
TM RCAPA,X'18' Attributes, including End? @SC94181
BNO RECCOL No, do collision test now @SC94181
TM SCAPA,X'08' Am I expecting A-packets? @SC94181
BNO RECCOL No, do collision test now @SC94181
TM ATFL4,ATFEND Will I honor the End attribute? @SC94181
BO RECOPN Yes, defer collision test @SC94181
RECCOL KCALL TCOLL,E=(RECOPN,Z) @SC94181
./ R 07879000 07883500 $ 7879000 1000 06/29/94 20:43:04
RECOPN DS 0H @SC94181
./ I 07892500 $ 7892560 60 06/30/94 14:49:18
MVI RECDISP,0 No disposition specified @SC94181
TM RCAPA,X'18' Does he promise End attribute? @SC94181
BNO RECDAT No, let it ride @SC94181
TM SCAPA,X'08' Am I expecting A-packets @SC94181
BNO RECDAT No, but I'll accept them @SC94181
TM ATFL4,ATFEND Will I honor the End attribute? @SC94181
BNO RECDAT No, let it ride @SC94181
LA 8,RECAST Ok, accept only A-packets for now @SC94181
./ I 07896500 $ 7896600 100 06/29/94 21:14:51
L 2,FSIZE Default lrecl @SC94181
ICM 0,15,FILPTR Already opened? @SC94181
BNZ RECDATO Yes, fine @SC94181
./ I 07899500 $ 7899700 200 06/29/94 21:14:51
RECDATO DS 0H @SC94181
./ R 07908000 $ 7908000 100 06/30/94 14:49:18
RECDAK XC DATL,DATL Set length to zero @SC94181
RECDAKL BAL 2,SENDACKL Send an ack @SC94181
./ R 07927000 $ 7927000 200 09/20/94 16:42:43
BNZ RECADTX Invalid, stop now @SC94181
./ R 07930500 $ 7930500 200 09/20/94 16:42:43
BH RECADTX Too big, stop now @SC94181
./ R 07932000 $ 7932000 200 09/20/94 16:42:43
BNE RECADTX No, illegal @SC94181
./ R 07940500 $ 7940500 200 09/20/94 16:42:43
BNE RECADTX No, error @SC94181
./ I 07942500 $ 7942600 100 09/20/94 16:42:43
RECADTX MVI ERRNUM,ERRIPS Bad syntax @SC94181
B RECABR Quit @SC94181
./ I 07945000 $ 7945200 200 06/30/94 16:32:21
XC DATL,DATL Normally no data on ACK @SC94181
./ R 07946000 $ 7946000 200 06/30/94 16:32:21
BNL RECDAKL No, done @SC94181
./ R 07947000 $ 7947000 200 06/30/94 16:32:21
BO RECDAKL Yes, ignore further attributes @SC94181
./ I 07951000 $ 7951100 100 06/30/94 14:49:18
CLC FILPTR,F0 End attribute already seen? @SC94181
BNE RECRJC Yes, this is forbidden @SC94181
./ R 07959000 $ 7959000 200 06/28/94 18:25:34
RECDSPCD DC AL1(11),AL3(RECADI) + - Disposition @SC94181
./ R 07994500 $ 7994500 200 06/28/94 18:25:34
RECADI MVC RECDISP,0(6) Save disp code @SC94181
BAL 2,RECALKP @SC94181
./ I 07996000 $ 7996300 300 06/28/94 18:25:34
DC AL1(AR),AL3(RECCKL) Recover @SC94181
./ R 08026000 08026500 $ 8025800 20 06/30/94 14:49:18
RECAZZ DS 0H End of attributes, must be last @SC94181
CLI RECDISP,AR Recover? @SC94181
BNE RECAZ2 No, fine @SC94181
TM FL1,BINF Yes, make sure binary @SC94181
BZ RECRJD Oops, can't do it @SC94181
BAL 14,RDWSET Decide which kind of binary @SC94181
OI FILFLGS,APPN Yes, must append @SC94181
RECAZ2 TM RCAPA,X'18' Did other Kermit promise End att? @SC94181
BNO RECAZ3 No, already tested collision @SC94181
KCALL TCOLL,E=RECRJC Do it now @SC94181
RECAZ3 XC DATL,DATL @SC94181
CLI RECDISP,AR Recover? @SC94181
BNE RECAZ4 No, fine @SC94181
SR 4,4 Ok, get exact length of file @SC94181
OPENF T,FILNAM,E=RECBLCZ Does it exist? @SC94181
CLI TYPFIL,C'B' Ordinary binary? @SC94181
BE RECBLCA Yes, try shortcut @SC94181
MVC FDBSIZEB-FDBD(4,1),F0 No, can't trust n*lrecl @SC94181
RECBLCA ICM 4,15,FDBSIZEB-FDBD(1) Yes, get length, if poss. @SC94181
BNZ RECBLCZ Ok, got it @SC94181
OPENF I,FILNAM,FILFDB,FILPTR,E=RECBLCZ @SC94181
RECBLCL KCALL INBUF,E=RECBLCZ @SC94181
A 4,RBUFL (Doing it the hard way) @SC94181
B RECBLCL @SC94181
RECBLCZ CLOSF FILPTR Done, close file for input @SC94181
NI FL1,255-EOF Clear eof condition @SC94181
ST 4,RECBLEN Got total length @SC94181
LTR 4,4 Any? @SC94181
BZ RECAZ4 No, just process normally @SC94181
LA 0,512 @SC94181
ALR 0,4 Round to nearest K @SC94181
SRL 0,10 @SC94181
L 6,FILFSIZ Size of promised file @SC94181
SLR 6,0 Amount to be sent and appended @SC94181
BC 3,*+6 Ok @SC94181
SLR 6,6 All received already! @SC94181
ST 6,FILFSIZ Corrected size for space check @SC94181
L 6,ASDATA Output buffer @SC94181
MVI 0(6),A1 Byte-length attribute code @SC94181
LA 15,2(,6) @SC94181
BAL 2,EDDEC Format it (clobbers R8!) @SC94181
TR 2(9,6),ETOAD Convert plenty to ASCII @SC94181
SR 15,6 @SC94181
ST 15,DATL Length of data field @SC94181
LA 4,ABL-2(,15) Number of digits (printably) @SC94181
STC 4,1(,6) @SC94181
RECAZ4 DS 0H @SC94181
KCALL ACCTNM,FILNAM Insert revised name, if necessary @SC94181
OPENF O,FILNAM,FILFDB,FILPTR,E=RECRJA @SC94181
USING FDBD,1 @SC94181
MVC FSIZE,FABLRTR Copy LRECL from effective length @SC94181
MVC FRECF,FDBRCF Save info @SC94181
DROP 1 @SC94181
ICM 0,15,FILFSIZ Expected size, if known @SC94181
BZ RECAZ5 Not known, proceed @SC94181
OPENF S,FILNAM,FILFDB,FILPTR,E=RECRJLL Check disk spac@SC94181
XC FILFSIZ,FILFSIZ No need to repeat this test @SC94181
RECAZ5 DS 0H @SC94181
LA 8,RECANST Now accept D-packets @SC94181
./ I 08027500 $ 8027550 50 06/28/94 18:25:34
RECRJD MVC REASON,RECDSPCD Because of disposition @SC94181
B RECRJC @SC94181
RECRJLL MVC REASON,RECLNCOD Because of length @SC94181
B RECRJC @SC94181
RECRJA MVI REASON,6 Because of "area" (couldn't open) @SC94181
B RECRJC @SC94181
./ I 08034500 $ 8034700 200 06/30/94 17:17:14
LA 8,RECANST Accept A, D, or Z now @SC94181
./ R 08036000 08036500 $ 8036000 200 06/30/94 16:32:21
B RECDAKL Acknowledge @SC94181
./ I 08041500 $ 8041700 200 10/28/94 22:42:46
L 5,FILPTR @SC94181
./ I 08042000 $ 8042100 100 10/28/94 22:42:46
LTR 5,5 Was the file actually open? @SC94181
BZ RECKEP No, don't worry about it @SC94181
./ R 08058500 $ 8058500 70 09/21/94 15:17:19
BZ RECBRKA No, that's fine @SC94181
CLI REASON,STACNDAT Refused as duplicate (date)? @SC94181
BE RECBRKA Yes, not really an error @SC94181
CLI REASON,STACNDSC Refused as duplicate? @SC94181
BNE RECERP No, send an error packet @SC94181
RECBRKA DS 0H @SC94181
./ R 08079000 $ 8079000 200 09/21/94 01:21:04
* DC XL1'FF',AL3(RECABR) Stop (same as unknown) @SC94181
./ D 08081500 09/21/94 01:21:04
./ R 08084000 $ 8084000 200 06/30/94 14:49:18
DC AL1(00),AL3(RECABR) Error return @SC94181
RECAST DC AL1(AA),AL3(RECCKA) Micro sent A-packet @SC94181
./ I 08089500 $ 8089600 100 06/28/94 18:25:34
RECBLEN DS F Length of recovery file @SC94181
RECDISP DS X Requested disposition @SC94181
./ I 08113500 $ 8113540 40 10/28/94 22:42:46
*
* Copy file name from (R1) to current file table entry, if any @SC94181
ACCTNM ENTER ALT @SC94181
L 3,NSENT Number of current file @SC94181
C 3,NSENTAC Off the end? @SC94181
BNE RTRN0 Yes, quit now @SC94181
BCTR 3,0 Ok, get offset @SC94181
MH 3,FLFID1+2 Times length of items @SC94181
A 3,TSENT Loc in sent-table @SC94181
MVC ACTFID,0(1) Save filespec @SC94181
B RTRN0 @SC94181
./ R 08985500 $ 8986000 500 06/29/94 20:43:04
TITLE 'TCOLL Routine - test for collision (RECEIV)' @SC94181
* Exit: R15=0 if ok (use name in FILNAM), else reject @SC94181
TCOLL ENTER , @SC94181
TM FILFLGS,APPN Appending to old file? @SC94181
BO RTRN0 Yes, just do it @SC94181
CLI CLSNFL,C'U' @SC94181
BE *+12 Update option overrides "warn" @SC94181
TM FL1,REN @SC94181
BZ RTRN0 No, just do it @SC94181
LA 0,FFNEW @SC86295
KCALL FSPEC,FILNAM,E=RTRN1 Check collisions @SC94181
TM FL4,NMCHNG @SC90033
BZ RTRN0 @SC90033
CLI CLSNFL,C'B' @SC90033
BNE TCLTSTD @SC90033
LA 2,FILNAM Must back up original file @SC90033
LA 0,15 Rename it to unique new name @SC90033
KCALL DISKIO,XFILE,E=RTRN1 Give up if rename fails @SC90264
CLI TRMLIN,C' ' Alt. line? @SC90033
BE TCLBZ No, be quiet @SC90033
INITSTR '&BACKDUP',CMD,REG=7 @SC92300
LA 1,FILNAM @SC90033
BAL 2,STAFSP Format backup name and show it @SC90033
TCLBZ MVC FILNAM,XFILE Now, just use intended name @SC90033
TCLMSG DS 0H @SC90033
CLI TRMLIN,C' ' Alt. line? @SC87300
BE RTRN0 No, be quiet @SC94181
INITSTR '&RECVDAS',CMD,REG=7 Yes, display message @SC92300
LA 1,FILNAM @SC87300
BAL 2,STAFSP Format name and show it @SC87300
B RTRN0 @SC94181
TCLTSTD CLI CLSNFL,C'D' @SC90033
BNE TCLTSTU See if UPDATE @SC94181
MVI REASON,STACNDSC Reason is collision (DISCARD) @SC94181
B RTRN1 @SC94181
TCLTSTU CLI CLSNFL,C'U' @SC94181
BNE TCLMSG Other case is just "rename" @SC94181
CLI FDATE,0 @SC94181
BE TCLOKU @SC94181
OPENF T,XFILE,E=TCLOKU Look at existing file @SC94181
USING FDBD,1 @SC94181
CLI FDBDATE,0 Is there a time tag? @SC94181
BE TCLOKU No, skip this test @SC94181
CLC FDATE,FDBDATE Is the incoming file newer? @SC94181
BH TCLOKU Yes, overwrite the file @SC94181
DROP 1 @SC94181
MVI REASON,STACNDAT No, reason is date @SC94181
B RTRN1 @SC94181
TCLOKU MVC FILNAM,XFILE Restore original name @SC94181
B RTRN0 @SC94181
LOCALS , @SC94181
EXIT , @SC94181
END KERMIT
./ * SC94245 - More accurate statistics after server transfers
./ R 02084000 $ 2084000 500 05/29/92 ->4.3<-
LR 15,7 Get time supplied as "end" @SC94245
./ I 07824500 $ 7824600 100 05/29/92 ->4.3<-
KCALL SUPFNC,10 Get time of completion @SC94245
LR 7,15 Save for statistics @SC94245
./ I 08060500 $ 8060700 200 05/29/92 ->4.3<-
KCALL SUPFNC,10 Say completion time is now @SC94245
ST 15,RECTIMZ Save @SC94245
./ R 08070000 $ 8070000 200 05/29/92 ->4.3<-
RECERP KCALL SUPFNC,10 Say completion time is now @SC94245
ST 15,RECTIMZ Save @SC94245
KCALL ERPACK Send error packet @SC94245
./ I 08070500 $ 8070700 200 05/29/92 ->4.3<-
L 7,RECTIMZ @SC94245
./ I 08089500 $ 8089550 50 05/29/92 ->4.3<-
RECTIMZ DS F Ending time of transfer @SC94245
./ * SC94262 - Leave room for table expansion (MUSIC)
./ R 01415400 $ 1415400 200 09/30/93 14:45:03
&KDATE SETC '94/09/20' @SC94262
./ R 01513000 $ 1513000 100 09/20/94 17:56:54
L 3,PTATOED @SC94262
MVC ATOE,0(3) @SC94262
./ R 01515000 $ 1515000 1000 09/20/94 17:56:54
MVC TATOE,0(3) @SC94262
./ R 01893000 $ 1893000 300 09/20/94 17:56:54
L 4,PTATOED @SC94262
TR 0(LEMSG,1),0(4) Convert to EBCDIC @SC94262
./ I 02453000 $ 2453200 200 09/20/94 17:56:54
PTATOED DC A(ATOED) Address of ASCII-to-EBCDIC def. @SC94262
./ I 02519000 $ 2519500 500 09/20/94 17:56:54
DEFTBLS CSECT @SC94262
./ I 02536000 $ 2536500 500 09/20/94 17:56:54
COMMON CSECT @SC94262
./ R 03354000 $ 3354000 200 09/20/94 17:56:54
SETTAT2 L 2,PTATOED Address of original @SC94262
./ R 03635000 $ 3635000 100 09/20/94 17:56:54
L 8,PTATOED @SC94262
TR TMP,0(8) Convert to EBCDIC @SC94262
./ R 03840000 $ 3840000 200 09/20/94 17:56:54
GIVA1 L 0,PTATOED @SC94262
./ I 05099000 $ 5099500 500 09/20/94 17:56:54
L 14,PTATOED @SC94262
./ R 05102300 $ 5102300 100 09/20/94 17:56:54
FSPTRAE TR 0(,5),0(14) @SC94262
./ R 07610500 $ 7610500 200 09/20/94 17:56:54
L 14,PTATOED Use default if "transparent" @SC94262
./ R 07690000 $ 7690000 100 09/20/94 17:56:54
L 2,PTATOED @SC94262
TR 0(250,15),0(2) Back to EBCDIC @SC94262
./ I 07757800 $ 7757810 10 09/20/94 17:56:54
L 4,PTATOED @SC94262
./ R 07760700 $ 7760700 100 09/20/94 17:56:54
SNDTRAT TR 0(,6),0(4) Convert to EBCDIC for decoding @SC94262
./ R 07859000 $ 7859000 100 09/20/94 17:56:54
L 14,PTATOED @SC94262
TR 0(256,1),0(14) Convert to std EBCDIC @SC94262
./ I 07925500 $ 7925700 200 09/20/94 17:56:54
L 4,PTATOED @SC94262
./ R 07973000 $ 7973000 100 09/20/94 17:56:54
L 14,PTATOED @SC94262
IC 4,0(4,14) Ok, set file type as well @SC94262
./ I 07978500 $ 7978700 200 09/20/94 17:56:54
L 4,PTATOED @SC94262
./ I 07984000 $ 7984200 200 09/20/94 17:56:54
L 4,PTATOED @SC94262
./ R 07987500 $ 7987500 200 09/20/94 17:56:54
RECTRAT TR 0(,6),0(4) Convert to EBCDIC for decoding @SC94262
./ R 08013000 $ 8013000 100 09/20/94 17:56:54
L 1,PTATOED @SC94262
TR 0(94,4),0(1) Convert to EBCDIC @SC94262
./ R 08397000 $ 8397000 100 09/20/94 17:56:54
L 4,PTATOED @SC94262
TR 0(5,6),0(4) No, must be 5-byte ASCII prefix @SC94262
./ R 08584000 $ 8584000 100 09/20/94 17:56:54
L 4,PTATOED @SC94262
TR STOPBUF,0(4) @SC94262
./ * SC94264 - Avoid spurious error message for host commands (MUSIC)
./ R 01415400 $ 1415400 200 09/30/93 14:45:03
&KDATE SETC '94/09/30' @SC94264
./ I 05293000 $ 5293200 200 10/12/94 14:05:00
FTOKN N=SFCHBAD Skip over leading blanks @SC94264
L 4,ADR Save adr of string @SC94264
L 5,LEN Save length of string @SC94264
./ I 05295000 $ 5295050 50 10/12/94 14:05:00
LA 6,128+64+32 Flags for subshell @SC94264
TM SVCFLG,INTERCPT Intercepting messages? @SC94264
BZ *+8 Ok @SC94264
LA 6,128+64+32 No display (can't intercept) @SC94264
STM 5,6,SFCPRMS Save length and option codes @SC94264
CALL NXTCMD,((4),SFCPRMS,SFCPRMS+4),VL,MF=(E,PARMAREA) C94264
CALL GETRET,SFCPRMS,VL,MF=(E,PARMAREA) @SC94264
L 15,SFCPRMS @SC94264
CH 15,=H'1000' Code for non-existant cmd? @SC94264
BE RTRNM1 Yes @SC94264
B SFCRC @SC94264
SFCPRMS EQU PARMAREA+12 @SC94264
./ I 05302000 $ 5302500 500 10/06/94 15:10:26
KW 'CD',SFCCWD @SC94264
./ I 05304000 $ 5304100 100 10/06/94 15:10:26
SFCCWD FTOKN N=SFCPWD If no argument, just do current @SC94264
KCALL CWDSET Yes, try to set directory @SC94264
B SFCRC Report if failure @SC94264
SFCPWD LH 0,DESTL Length of string @SC94264
WTEXT UCODE,(0) Display it @SC94264
B RTRN0 @SC94264
./ R 05306000 $ 5306000 300 09/23/94 20:08:36
LA 0,FFUTL+FFWLD Default to dir * @SC94264
B SFCUT0 @SC94264
./ I 05315000 $ 5315500 500 09/23/94 20:08:36
SFCUT0 DS 0H @SC94264
./ R 05328840 $ 5328840 20 09/22/94 15:23:46
SFCZRC LR 15,4 @SC94264
TM FL1,TSTF @SC94264
BO RTRN Retain any error code if testing @SC94264
./ * SC94287 - Prevent or recover from lost screen (MUSIC)
./ I 01024000 $ 1024500 500 10/17/94 19:59:06
STMSAV DS F Saved message bit for user @SC94287
./ R 01415400 $ 1415400 200 09/30/93 14:45:03
&KDATE SETC '94/10/17' @SC94287
./ I 05458000 $ 5459000 300 10/17/94 19:47:07
CALL MSGBIT,(F0,F0,STMSAV),VL,MF=(E,PARMAREA) Msg flg@SC94287
CALL MSGBIT,(F1,F0,F1),VL,MF=(E,PARMAREA) Msg off @SC94287
./ I 05466000 $ 5466500 500 10/17/94 19:47:07
CALL MSGBIT,(F1,F0,STMSAV),VL,MF=(E,PARMAREA) Restore@SC94287
./ R 05687000 05688000 $ 5687000 1000 10/15/94 01:26:33
SCRCLRA MVC FSFSFG(2),=X'8460' Set up FSIO @SC94287
./ I 05714500 $ 5714600 100 10/15/94 01:26:33
MVC SCRARGSV,ZFSARG @SC94287
LA 4,5 Max tries to recover screen @SC94287
SCRNEXLP DS 0H @SC94287
./ R 05716200 $ 5716200 10 10/15/94 01:26:33
CLI SCRRC,11 Lost screen? @SC94287
BNE SCRRD2 No, rejoin @SC94287
TM SCRRC+1,X'40' Lost screen? @SC94287
BZ SCRRD2 No, rejoin @SC94287
BCT 4,SCRBRK Go recover unless retries exhaust @SC94287
B RTRN0 Error, say no data received @SC94287
SCRBRK XC ZFSARG(20),ZFSARG Clear FSIO Control Block @SC94287
MVC FSFSFG(2),=X'8460' Set up FSIO @SC94287
MVC CONSSAV,CONSOPR @SC94287
MVI CONSOPR,RTRYCOD-CONSOPRS @SC94287
BAL 9,SCRNEX Clear screan @SC94287
MVC FSFSFG(2),SCRFGS+4 Erase/write flags @SC94287
LA 0,LRTRYCM @SC94287
ST 0,FSFSWL Copy buffer length @SC94287
LA 0,RTRYCM Dummy write @SC94287
ST 0,FSFSWB Copy buffer address @SC94287
BAL 9,SCRNEX Erase/write to reset @SC94287
LA 1,RTRYCM @SC94287
LA 2,LRTRYCM @SC94287
BAL 7,SCRLOGD Log the dummy data @SC94287
MVC CONSOPR,CONSSAV Restore @SC94287
MVC ZFSARG(20),SCRARGSV @SC94287
B SCRNEXLP Try again @SC94287
./ R 05730200 $ 5730200 100 10/15/94 01:26:33
LA 2,4 @SC94287
./ I 05743600 $ 5743700 100 10/15/94 01:26:33
RTRYCOD DC C'b' For recovery @SC94287
RTRYCM DC &S1CMD @SC94287
LRTRYCM EQU *-RTRYCM @SC94287
./ I 05744600 $ 5744700 100 10/15/94 01:26:33
SCRARGSV DS XL20 Saved I/O block @SC94287
CONSSAV DS XL1 Saved I/O operation @SC94287
./ * SC94299 - Make GIVE CONTROL subcommand work (MUSIC)
./ R 00853000 00861000 $ 853000 1000 10/27/94 00:09:00
&LABEL READF &TICK,BUFFER=&BUFFER,BSIZE=&BSIZE,E=&E,CODE=10 @SC94299
./ R 00865000 00866000 $ 865000 1000 10/27/94 00:09:00
&LABEL READF &TICK,&NONUM,&BUFFER=,&BSIZE=,&E=,&CODE=9 @SC94299
.* Read from disk file (or write) (see WRITF, but also...) @SC94299
./ I 00867000 $ 867100 100 10/27/94 00:09:00
LCLC &R @SC86299
LCLA &C @SC88101
&C SETA &CODE @SC88101
AIF (T'&NONUM EQ 'O').RDC @SC88101
AIF ('&NONUM' NE 'NONUM').ER1 @SC88101
&C SETA 0 Code 0 means exclude sequence nos.@SC88101
.RDC ANOP @SC88101
./ R 00870000 00871000 $ 870000 200 10/27/94 00:09:00
AIF ('&BUFFER'(1,1) NE '(').BLA @SC86299
&R SETC '&BUFFER(1)' @SC86299
AGO .BST @SC86299
.BLA LA 15,&BUFFER @SC86299
&R SETC '15' @SC86299
.BST ST &R,FDBBUFF-FABD(1) @SC86299
./ R 00873000 00879000 $ 873000 1000 10/27/94 00:09:00
AIF ('&BSIZE'(1,1) NE '(').SLA @SC86299
&R SETC '&BSIZE(1)' @SC86299
AGO .SST @SC86299
.SLA LA 15,&BSIZE @SC86299
&R SETC '15' @SC86299
.SST ST &R,FDBBSIZ-FABD(1) @SC86299
.RGO LA 0,&C @SC88101
./ R 01415400 $ 1415400 200 10/26/94 14:45:03
&KDATE SETC '94/10/30' @SC94299
./ * SC95023 - Fix RESEND for already-sent file, implement APC subcmd.
./ R 01415400 $ 1415400 200 01/23/95 11:12:19
&KDATE SETC '95/01/23' @SC95023
./ I 01422200 $ 1422300 100 01/23/95 11:12:19
AESC EQU 27 ASCII ESC @SC95023
./ I 01424000 $ 1424100 100 01/23/95 11:12:19
ABSL EQU 92 ASCII backslash @SC95023
./ I 03028500 $ 3028700 200 01/23/95 11:12:19
KW 'APC',USNAPC,MIN=3 @SC95023
./ I 03103000 $ 3103030 30 01/23/95 11:12:19
*
USNAPC L 5,ADR Pointer to rest of line @SC95023
ICM 4,15,LEN Remaining data length @SC95023
BNP KRMXPEH Go if nothing specified @SC95023
L 3,RBUF @SC95023
ICM 0,2,ATOE+AESC Get special wrapper for APC @SC95023
ICM 0,1,ATOE+AUND Must use current EBCDIC codes @SC95023
STCM 0,3,0(3) @SC95023
MVC 2(256,3),0(5) Copy to disk read buffer @SC95023
AR 4,3 Get end @SC95023
ICM 0,1,ATOE+ABSL Closing wrapper @SC95023
STCM 0,3,2(4) @SC95023
LA 4,4(4) Account for wrapper @SC95023
B USNAPC1 @SC95023
./ D 03105200 01/23/95 11:12:19
./ I 03106500 $ 3106700 200 01/23/95 11:12:19
USNAPC1 MVI USNCOD,0 No special disposition @SC95023
./ R 07765100 $ 7765100 50 01/23/95 19:14:24
LTR 5,5 Any? @SC95023
./ R 07765200 $ 7765200 50 01/23/95 19:14:24
SNDRECL KCALL INBUF,E=SNDEND @SC95023
./ R 07765300 $ 7765300 50 01/23/95 19:14:24
BH SNDRECL Keep skipping @SC95023
./ * SC95032 - Allow Recovery into almost-full file system
./ R 01415400 $ 1415400 200 02/01/95 12:29:03
&KDATE SETC '95/02/01' @SC95032
./ I 07986000 $ 7986080 80 02/01/95 16:54:31
TM RCAPA,X'18' Attributes, including End? @SC95032
BNO RECAL3 No, do space test now @SC95032
TM ATFL4,ATFEND Will I honor the End attribute? @SC95032
BO RECCKL Yes, defer space test @SC95032
RECAL3 DS 0H @SC95032
./ * SC95033 - Update to level 4.3.1
./ R 01415400 01415600 $ 1415400 200 02/02/95 12:29:03
&KDATE SETC '95/02/02' @SC95033
&KEDIT SETC '1' @SC95033
./ * SC95059 - Preserve transmitted time tag for RESENT file
./ I 08026040 $ 8026050 10 02/28/95 19:49:43
MVC RECBDAT,FDATE Save date for output file @SC95059
./ I 08026280 $ 8026290 10 02/28/95 19:49:43
MVC FDATE,RECBDAT Restore date for output file @SC95059
./ I 08089600 $ 8089650 50 02/28/95 19:49:43
RECBDAT DS XL7 Saved date for output file @SC95059
./ * SC95108 - Prevent error-free transfers from halting TAKE files
./ I 02116000 $ 2116500 500 04/18/95 18:47:43
* Set CC according to R15. @SC95108
./ R 02120000 $ 2120490 490 04/18/95 18:47:43
ICM 15,1,ERRNUM Return status code @SC95108
./ * SC95174 - Implement REGET subcommand
./ R 01413700 $ 1413700 40 06/23/95 21:21:34
GBLC &AAARSND,&AUPDATE,&AAARGET @SC95174
./ I 01460400 $ 1460450 50 06/23/95 21:21:34
&AAARGET SETC 'REGET' cmd, m=3 @SC95174
./ R 03030500 $ 3030500 200 06/23/95 21:13:35
KW '&AAAAGET',KRMGET,R @SC95174
./ I 03032000 $ 3032200 200 06/23/95 21:13:35
KW '&AAARGET',KRMGET,J,MIN=3 @SC95174
./ R 03034700 $ 3034700 40 06/23/95 21:13:35
DC X'0' Normal type has no disp code @SC95174
./ R 03052500 $ 3052500 100 06/23/95 21:13:35
KRMGET MVC USNCOD,KWCODE(1) Save send command abbrev @SC95174
PTEXT '&FORFSPC - ',AREG=1,LREG=0 @SC95174
./ R 03065000 $ 3065000 100 06/23/95 21:13:35
MVC STYPE,USNCOD Type = receive initiate (R/J) @SC95174
TR STYPE,ETOAD @SC95174
./ I 07508500 $ 7508700 200 06/23/95 21:13:35
DC AL1(AJ),AL3(SRVSND) Micro wants to get a file @SC95174
./ R 07530500 $ 7530500 100 06/23/95 21:13:35
SR 1,1 Normal send is code 0 @SC95174
CLI RTYPE,AJ Is it a REGET? @SC95174
BNE *+8 @SC95174
LA 1,AR Yes, use the RESEND code @SC95174
KCALL SEND @SC95174
./ * SC96122 - Avoid endless double transmission from windowed Kermit
./ R 01917400 01917800 $ 1917400 100 05/02/96 20:09:53
BNE SENDRTA No, resend whatever it was @SC96122
CLI DATLSN,0 "plain" only if no data @SC96122
BNE SENDRTA No, resend whatever it was @SC96122
CLC RSN,SSN Yes, did we rereceive the prev? @SC96122
BNE SENDNAK No, must be bad packet, send NAK @SC96122
SENDRTA DS 0H @SC96122
./ I 02619000 $ 2619100 100 05/02/96 20:09:53
SSN DS X Last sent pkt number @SC96122
./ I 08473000 $ 8473200 200 05/02/96 20:09:53
MVC SSN,SEQ Save an extra copy @SC96122
./ * SC96151 - Add system ID to INIT packets
./ R 08234300 $ 8234250 50 05/31/96 22:26:14
MVC 18(LSYSATR-1,9),SYSATR+1 Copy system ID @SC96151
LA 0,18+LSYSATR-1 Size of data including ID @SC96151
./ * SC96158 - Never skip sending an I-packet while in remote mode
./ I 01934000 $ 1934300 300 06/06/96 23:14:40
CLI TRMLIN,C' ' Alt. line? @SC96158
BE IPKGO No, send I-packet regardless @SC96158
./ I 01936000 $ 1936500 500 06/06/96 23:14:40
IPKGO DS 0H @SC96158
./ * SC97028 - Clear 'Kermit command error' condition correctly
./ I 02279000 $ 2279500 500 01/28/97 20:49:24
LUPWRT WTEXT (3),(4) @SC97028
./ R 02288000 $ 2288000 500 01/28/97 20:49:24
WTEXT (3),(4) @SC97028
./ * SC97164 - Update to level 4.3.2
./ R 01415400 01415600 $ 1415400 200 06/13/97 12:29:03
&KDATE SETC '97/06/13' @SC97164
&KEDIT SETC '2' @SC97164
./ * End of updates