home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
archives
/
deleteme.tar.gz
/
deleteme.tar
/
ik0mai.asm
< prev
next >
Wrap
Assembly Source File
|
1993-10-21
|
11KB
|
132 lines
*COPY IK0MAI 01500000
CHECKVER IK0MAI,4.3 @SC90072 01500500
TITLE 'Kermit-370 main code' @SC86268 01501000
KERMIT ENTER MAIN @SC86295 01502000
STM 0,1,ORGR0 Save R0,R1 @SC87253 01503000
* Initialize STORAG section 01504000
LM 0,1,=A(IDEFS,LDEFS) Init. value array @SC90080 01506000
LA 14,DEFS Storage to initialize @SC90080 01506200
LR 15,1 @SC90080 01506400
MVCL 14,0 Set up arrays @SC90080 01506600
MVC S1EOL(2),IS1EOL Set up prompt @SC90173 01507000
MVI TRTBL+C' ',1 Set up blank finder @SC86295 01510000
MVI TRMTP,C'&KCONT' Default controller type (TTY) @SC88309 01511000
LA 1,ATOE @SC92352 01511200
LA 2,ETOA @SC92352 01511400
STM 1,2,AEPTRS Initially, use normal tables @SC92352 01511600
MVC ETOA,ETOAD Init translators @SC86295 01512000
MVC ATOE,ATOED @SC86295 01513000
L 1,=A(TRNTBL) 1st entry is A/E @SC90040 01513300
MVC TRNALF(2*LALF),0(1) @SC91325 01513600
MVC FILALF2,FILALF @SC91325 01513800
MVC TETOA,ETOAD @SC87117 01514000
MVC TATOE,ATOED @SC87117 01515000
LA 1,CMD @SC86295 01524000
ST 1,TAKBUF @SC86295 01525000
LA 0,((MAXDOF+7)/8)*8 Allow for offset @SC90264 01526000
A 0,F64KP Length of disk buffers @SC90264 01526060
SRA 0,3 @SC90264 01526120
DMSFREE DWORDS=(0),ERR=KRMXITS @SC90264 01526180
ST 1,FREED1 1st disk buffer @SC90264 01526240
LA 1,STMGT+MAXDOF(,1) Skip over mgmt stuff & offset@SC90264 01526300
ST 1,WBUF Save ptr to buffer itself @SC90264 01526360
L 0,F64KP @SC90264 01526420
SRA 0,3 @SC90264 01526480
DMSFREE DWORDS=(0),ERR=KRMXITS @SC90264 01526540
ST 1,FREED2 2nd disk buffer @SC90264 01526600
LA 1,STMGT(,1) Skip over management stuff, if any@SC90264 01526660
ST 1,RBUF Save ptr to buffer itself @SC90264 01526720
LA 1,STMGT Allow for management stuff @SC90264 01526780
LA 5,4095 For page boundaries... @SC87281 01527000
BAL 14,STPTRS Get length of storage needed @SC86295 01528000
LA 0,7(1,5) Round up @SC87281 01529000
SRA 0,3 @SC86295 01530000
ST 0,FREEDW Number of dw's to get @SC86295 01531000
DMSFREE DWORDS=(0),ERR=KRMXITS @SC86295 01532000
ST 1,FREEPTR Save start of area @SC87286 01533000
LA 1,STMGT(,1) Skip over management stuff, if any@SC90264 01533500
BAL 9,KRMPG Round up to next page @SC87281 01534000
BAL 14,STPTRS Set up ptrs @SC86295 01535000
LH 1,BUFSIZ @SC86295 01536000
ST 1,RIOPTRS+4 Init read length @SC90173 01537000
L 1,LOGBUF @SC86295 01540000
MVI 1(1),C':' Set up prefix @SC86190 01541000
KCALL SETMSG,1,E=KRMXITF Get user's settings 01542000
KCALL SPARSET @SC86152 01543000
MVC DATL,F0 @SC87012 01544000
KCALL SPAR Set defaults for other Kermit @SC87012 01545000
KCALL USNTRF Call main loop @SC87117 01546000
* 01547000
KRMXITF KCALL SETMSG,4 System-dependent clean-up @SC86316 01548000
CLOSF SIMPTR Close @SC91312 01548100
TM FL1,DEBUG @SC88119 01548200
BZ KRMXITG @SC88119 01548400
CLOSF LOGPTR Close @SC88119 01548600
KRMXITG DS 0H @SC88119 01548800
LM 0,1,FREEDW Number of dw's, ptr to area @SC87286 01549000
DMSFRET DWORDS=(0),LOC=(1) @SC86295 01550000
KRMXITQQ ICM 1,15,FREED1 Get 1st buffer area @SC90264 01554000
BZ KRMXITD1 Not assigned @SC90264 01554060
LA 0,((MAXDOF+7)/8)*8 Allow for offset @SC90264 01554120
A 0,F64KP Length of disk buffers @SC90264 01554180
SRA 0,3 @SC90264 01554240
DMSFRET DWORDS=(0),LOC=(1) @SC90264 01554300
KRMXITD1 ICM 1,15,FREED2 Get 2nd buffer area @SC90264 01554360
BZ KRMXITD2 Not assigned @SC90264 01554420
L 0,F64KP Length of disk buffers @SC90264 01554480
SRA 0,3 @SC90264 01554540
DMSFRET DWORDS=(0),LOC=(1) @SC90264 01554600
KRMXITD2 DS 0H @SC90264 01554660
BAL 14,LDERR Get error code @SC90264 01554720
RET MAIN @SC86295 01555000
* 01556000
KRMXITS WTEXT '&NOBUFFS' @SC92300 01557000
B KRMXITQQ 01558000
* 01559000
STPTRS DS 0H Set up buffer pointers @SC90264 01560000
ST 1,TSENT address of sent files 01564000
A 1,=A(MAXNSENT*ACTLEN) Length of table @SC91172 01565000
ST 1,MSNDBUF Buffer for extra filespecs @SC88306 01565590
AH 1,=Y(MSNDMAX*LFSTF) @SC89218 01565700
ST 1,CBUF Ptr to CP answer buffer @SC86295 01566000
LA 1,512(,1) 8*N @SC90264 01567000
KTRACE SETUP Get internal trace buffer @LM91008 01567300
ST 1,EMSGP Ptr to saved micro error msg @SC86295 01568000
LA 1,LEMSG(1) @SC86295 01569000
LA 1,MAXDOF(,1) Leave room for offset, if any @SC90264 01569500
ST 1,LOGBUF Ptr to LOG buffer @SC86295 01570000
LA 1,2(,1) Room for log labels @SC91191 01571000
AH 1,BUFSIZ Room for data buffer @SC91191 01571500
LA 2,TRNSPL(1) Length of transparency starters @SC90173 01572000
BAL 9,KRMPGTB Round up if necessary @SC87281 01573000
ST 1,SIOPTRS @SC90173 01574000
AH 1,BUFSIZ Ptr to input buffer @SC86190 01577000
LA 2,16(,1) Extra for I/O stuff @SC90173 01578000
BAL 9,KRMPGTB Round up if necessary @SC87281 01579000
ST 1,APKT @SC86190 01583000
ST 1,RIOPTRS @SC90173 01584000
AH 1,BUFSIZ Ptr to output holding buffer @SC86190 01585000
ST 1,ASPKT @SC86190 01586000
ST 1,AASPKT @SC86190 01587000
LA 2,7(1) Skip over extended header @SC86190 01588000
ST 2,ASDATA @SC86190 01589000
AH 1,BUFSIZ Ptr to input decoding buffer @SC86190 01590000
ST 1,ARPKT @SC86190 01591000
AH 1,BUFSIZ Ptr to take table @SC86190 01592000
KSYSBUF , Other buffers @SC86355 01593000
BR 14 Return with R1 -> end @SC86295 01594000
* 01595000
* Round up R1 to next page if (R1)-(R2) would cross boundary. @SC87281 01596000
* (R5) = page size - 1 (should be 4095), return to (R9) @SC87281 01597000
KRMPGTB AH 2,BUFSIZ Tentative end of buffer @SC87281 01598000
KRMPGT BCTR 2,0 Last byte @SC87281 01599000
XR 2,1 Same page as first? @SC87281 01600000
NR 2,5 @SC87281 01601000
BZR 9 Same page, ok @SC87281 01602000
KRMPG AR 1,5 Round up to next page @SC87281 01603000
OR 1,5 @SC87281 01604000
XR 1,5 @SC87281 01605000
BR 9 01606000
LOCALS , @SC86295 01607000
KERMIT EXIT 01608000