ASMB,R,L,C * * NAME: DSVCP * SOURCE: 91750-18102 * RELOC: 91750-16102 * PGRMR: D. L. M. * * **************************************************************** * COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS RESERVED * * NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, REPRODUCED, OR * * TRANSLATED INTO ANOTHER PROGRAM LANGUAGE WITHOUT THE PRIOR * * WRITTEN CONSENT OF HEWLETT-PACKARD CO. * **************************************************************** * HED DS/1000 L SERIES VCP MASTER PROGRAM *************************************** * * * DSVCP: THE DS/L SERIES VCP INTERFACE* * * *************************************** * * NAM DSVCP,19,90 91750-16102 REV.2013 800610 M,4B,L ENT DSVCP EXT RMPAR,#NRVS,LOGLU,EXEC,IFBRK,REIO,#NMSC,PARSE EXT KCVT,NAMR,CREAT,WRITF,FTIME,CLOSE,CNUMD,.CBT EXT REIO,XLUEX ************************************ * * * PROGRAM INITIALIZATION * * * ************************************ A EQU 0 B EQU 1 SUP PRESS LISTING DSVCP JSB RMPAR GET PARAMETERS DEF DSVP1 RETURN DEF NODE ADDRESS OF PARAMETER ARRAY DSVP1 EQU * * * FUTURE ACCESS TO REMOTE NODES SHOULD BE INSERTED HERE * * CCB STORE A MINUS ONE STB HSTND SAVE HOST NODE JSB LOGLU GET TERMINAL LU DEF LLU RETURN DEF SCR SCRATCH AREA LLU EQU * * SZA,RSS IS IT ZERO ?? INA YES SO PUT A ONE AND . . . STA #TLU SAVE TERMINAL LU IN AREA ADA =B400 MAKE THE ECHO CNTRL WORD STA TRMIS AND SAVE ADA =B1400 MAKE THE OUTPUT CNTRL WORD STA TRMOC AND SAVE * LDA NODE+1 GET DU FLAG STA DUFL AND SAVE * * * VERIFY THAT DS NODE IS LEGAL * * FNDDS JSB #NRVS CHECK FOR LEGAL NETWORK LU DEF #N1 DEF NODE NODE NUMBER ENTERED DEF SCR SCRATCH AREA DEF SCR+1 FOR UNNEEDED INFORMATION DEF NBR NEIGHBOR FLAG DEF #NLU LU NUMBER OF NODE #N1 EQU * * JMP NONDE ERROR - POSSIBLE NO NODE * * VERIFY THE LU * LDB NODE GET THE ORIGINAL PARM CMB,INB CONVERT IT SSB IS IT POSITIVE? JMP #NDE NO - NODE NUMBER CPA B ARE THE TWO LU'S THE SAME? JMP FOUND YES - CONTINUE LDA B NO - SAVE ORIGINAL LU JMP NNDE1 AND INDICATE FOUND #NDE LDB NODE GET THE NODE NUMBER STB #NWLU AND SAVE CMA,INA NEGATE THE LU STA NODE AND RESTORE * JSB #NRVS CHECK IF LU RETURNS SAME NODE DEF #N2 RETURN DEF NODE NODE NUMBER DEF SCR SCRATCH AREAS DEF SCR+1 DEF NBR NEIGHBOR FLAG DEF #NLU NODE NUMBER * #N2 JMP ERR NOT FOUND LDB #NWLU GET THE NODE # CPB #NLU IS IT CORRECT? RSS JMP ERR NO - BAD * SKP * * LU FOUND. GENERATE CONTROL WORDS AND CHECK DRIVER * FOUND LDB NBR GET NEIGHBOR FLAG SZB,RSS IS IT A NEIGHBOR (ADJACENT?) JMP ERR NO - ERROR STA #NWLU SAVE NETWORK LU NUMBER IOR =B100000 SET SYSTEM BIT FOR XLUEX CALLS STA SNDSC STORE STA SBRFC CONTROL STA SVCPM WORDS STA SDSMC FOR CALLS STA STAT INA MAKE THE READ CONTROL WORD STA RVCPM AND SAVE * * CHECK FOR CORRECT DRIVER TYPE (66) * JSB XLUEX CHECK FOR CORRECT DVR TYPE DEF *+4 DEF .13 STATUS DEF STAT DEF SCR FIRST WORD * LDA SCR GET STATUS ALF,ALF MOVE TO UPPER BYTE AND =B77 GET DRIVER TYPE CPA =B66 IS DS DVR? RSS JMP ERR NO - ILLEGAL LU * JSB KCVT LU NUMBER TO ASCII DEF *+2 DEF #NWLU LU NUMBER STA LU# LDA #NLU GET LU NUMBER CPA =A?? IS IT KNOWN?? JMP ZZ NO JSB CNUMD YES - CONVERT IT TO ASCII DEF *+3 DEF #NLU NODE NUMBER DEF NODE# JMP START START ZZ STA NODE# STA NODE#+1 STA NODE#+2 SKP * * PRINT START MESSAGE * START JSB EXEC WRITE PROMPT TO TERMINAL DEF *+5 DEF NAB2 WRITE DEF TRMOC TERMINAL OUTPUT CONTROL DEF PRMSG PROMPT DEF PRMSL AND LENGTH NOP * JSB EXEC NOW WRITE LU AND NODE NUMBER DEF *+5 DEF NAB2 WRITE DEF #TLU TERMINAL DEF ND&LU MESSAGE DEF N&LLN AND LENGTH NOP ** JSB XLUEX SET NON DS MODE DEF RDS RETURN DEF NAB3 NO-ABORT CONTROL DEF SNDSC SET FRONT PANEL WAIT DEF SECUR SECURITY CODE RDS EQU * * JMP RTEER RTE ERROR JSB CKNST GO CHECK NETWORK STATUS * LDA DUFL GET FLAG AGAIN CPA =ADU IS IT A DUMP? JMP DUMP YES GO DO DUMP SKP **************************************************** * * * MAIN BODY OF PROGRAM * * * **************************************************** * PRMPT JSB EXEC SEND PROMPT TO SCREEN DEF PR1 RETURN DEF NAB2 DEF TRMOC TERMINAL OUTPUT CONTROL DEF PRMSG ADDRESS OF PROMPT DEF PRMSL LENGTH OF PROMPT PR1 NOP NO - ABORT * * NOW READ A STRING FROM THE TERMINAL * CMMD JSB RDSTR READ AN ASCII STRING FROM TERMINAL LDA INBUF GET FIRST WORD CPA BRADR,I IS IT A BREAK?? JMP BREAK YES GO DO IT CPA EXADR,I ALL DONE?? JMP EXIT YES - CLEAN UP OUR ACT CPA RDADR,I IS IT A READ? JMP READ1 YES CPA WTADR,I IS IT A WAIT FOR INPUT?? JMP WAIT YES AND =B177400 NOT RECOGNIZED - IS IT A COMMAND? CPA .\ FIRST CHR A \?? JMP BDCMD YES - BAD COMMAND SKP * * MUST BE A MESSAGE FOR VCP. SEND IT!! * * SDBUF STB MLEN SAVE CHARACTER COUNT CLE,SLB,ERB DIVIDE BY TWO WHILE CHECKING IF EVEN JMP ODD MUST BE ODD ADB ADBUF ADD THE BUFFER ADDRESS TO GET LAST WORD LDA =B6400 PUT A CR-NU INTO LAST WORD JMP SB1 AND GO STORE IT * ODD ADB ADBUF ADD BUFFER ADDRESS LDA B,I GET LAST WORD AND =B177400 CLEAR LOWER BYTE IOR =B15 LOAD CR INTO IT SB1 STA B,I RESTORE TO BUFFER LDA MLEN GET LENGTH AGAIN CLE,ERA DIVIDE BY TWO AND CHECK EVEN/ODD INA INCREMENT IF ODD STA MLEN STORE IN LENGTH AREA * JSB XLUEX SEND THE BUFFER DEF SB2 RETURN DEF NAB2 WRITE DEF SVCPM DRIVER CONTROL DEF INBUF BUFFER ADDRESS DEF MLEN AND LENGTH SB2 EQU * JMP RTEER RTE ERROR JSB CKNST CHECK NETWORK STATUS * JMP READ GO READ DS SKP * * IF THIS IS A POSSIBLE COMMAND, * CHECK THE FULL BUFFER OF CHARACTERS FOR CORRECTNESS * CHR2 NOP CPB B2 IS IT ONLY TWO CHARACTERS?? JMP CHR2,I YES - ALL DONE RRR 16 SWAP A & B AND =B7 LOOK AT MAX SEVEN CHR RRR 16 SWAP A & B AGAIN STB CNTR STORE LDB ADBUF GET ADDRESS OF BUFFER RRL 1 MAKE A & B BYTE ADDRESSES JSB .CBT COMPARE FULL BUFFER DEF CNTR NUMBER OF BYTES/CHR NOP FOR USE BY MICROCODE JMP CHR2,I YES - CORRECT COMMAND NOP NO - INCORRECT COMMAND RETURN * * BAD COMMAND - PRINT ERROR AND READ ANOTHER COMMAND * BDCMD JSB EXEC PRINT ERROR MESSAGE DEF BC1 RETURN DEF NAB2 WRITE DEF #TLU TERMINAL OUTPUT CONTROL DEF BDCMM MESSAGE DEF BMLEN LENGTH BC1 NOP * JMP PRMPT GO READ TERMINAL AGAIN SKP ******************************* * * * COMMANDS TO READ THE DS LU * * * ******************************* * * READ1 DOES ONLY ONE READ OF THE DS LU AND THEN RETURNS TO USER. * READ1 LDA RDADR GET ADDRESS JSB CHR2 CHECK FOR CORRECTNESS JSB READS CORRECT SO DO READ JMP PRMPT TIMEOUT SO ALL DONE JMP PRDSM MESSAGE RECEIVED SO PRINT * * WAIT CONTINUES READS FROM DS UNTIL MESSAGE COMES IN * WAIT LDA WTADR GET THE ADDRESS JSB CHR2 AND CHECK FOR COMPLETION JMP READ2 START READING DS FOR MESSAGES * * CHECK FOR BREAK FROM USER * READ JSB IFBRK CHECK FOR BREAK DEF *+1 * SZA WAS THERE A BREAK? JMP PRMPT YES - GO READ TERMINAL READ2 JSB READS NO - READ LU JMP READ TIME-OUT SO READ DS AGAIN * * * MESSAGE RECEIVED FROM DS - PRINT IT * PRDSM LDA B PUT B IN A ALS MULTIPLY LENGTH *2 CMA,INA NEGATE ADA B2 AND DECREASE BY TWO STA BFLN SAVE LENGTH ADB M1 ADD -1 ADB ADMSG ADD FIRST ADDRESS LDA B,I GET LAST WORD AND =B377 LOOK AT LOWER BYTE ONLY CPA =B377 IS THIS THE FLAG? JMP UPPER ISZ BFLN DECREASE COUNT BY ONE MORE ADB M1 LOOK AT PREVIOUS WORD LDA B,I GET IT PDM1 AND =B377 STA RTFLG SAVE FLAG CPA B1 IS THIS A DUMP?? JMP DUMP YES - INITIATE PROCEEDINGS LDA BFLN GET LENGTH AGAIN SZA,RSS IS THIS A ZERO LENGTH REQUEST?? JMP PDM2 YES - DON'T PRINT IT SKP * * PRINTING RECEIVED MESSAGE (CON'T) * JSB EXEC WRITE TO TERMINAL DEF PDM2 RETURN DEF NAB2 WRITE DEF TRMOC TERMINAL OUTPUT CONTROL DEF MSGBF MESSAGE BUFFER DEF BFLN MESSAGE LENGTH PDM2 NOP * LDA RTFLG GET FLAG AGAIN SZA,RSS REQUESTING INPUT?? JMP PRMPT YES - GO READ COMMAND JMP READ NO - GO READ DS * UPPER LDA B,I GET THE WORD AGAIN ALF,ALF AND MOVE FLAG TO LOWER BYTE JMP PDM1 BACK TO CODE SKP * * THE SLAVE L IS REQUESTING A DUMP. ASK THE USER FOR A FILENAME * AND CREATE IT ON THE DISC. THEN REQUEST 128 WORDS BLOCKS FROM * THE SLAVE AND WRITE TO THE DISC. AT THE END OF THE FILE, ASK * FOR A FILE TAG AND POST THE TIME. ALSO ALLOW USER TO APPEND HIS * OWN COMMENTS AT THE END. * DUMP JSB EXEC WRITE TO TERMINAL DUMP REQUEST MESSAGE DEF *+5 DEF NAB2 WRITE DEF TRMOC OUTPUT CONTROL DEF DPMSG BUFFER MESSAGE DEF DPMLN AND LENGTH NOP * RDFIL JSB RDSTR READ THE STRING FROM THE TERMINAL STB SCR SAVE LENGTH LDA B1 GET STARTING LOCATION STA SCR+1 AND SAVE * SZB,RSS IS IT ZERO (DON'T DUMP) JMP NODMP YES - NO DUMP!!!!!! * JSB NAMR PARSE THE NAME STRING DEF *+5 DEF FILNM FILENAME STRING DEF INBUF BUFFER NAME DEF SCR AND LENGTH DEF SCR+1 STARTING LOCATION * * JSB CREAT CREATE THE FILE DEF *+8 DEF DCB DATA CONTROL BLOCK DEF FERR ERROR LOCATION DEF FILNM FILENAME DEF .257 FILE SIZE IN BLOCKS DEF B1 TYPE ONE DEF FILNM+4 SECURITY CODE DEF FILNM+5 CARTRIDGE * SSA WAS THERE AN ERROR? JMP FMPER YES - FMP ERROR CCA SET THE CLOSE FLAG STA CLSFL SKP * * THIS LOOP IS EXECUTED 256 TIMES FOR THE DUMP * LDA =D-256 STA DPCNT STORE DUMP COUNT IN REGISTER DMLOP LDA =D128 GET A COUNT OF 128 ALF,ALF MOVE TO UPPER BYTE STA MSGBF STORE IN MESSAGE BUFFER JSB XLUEX WRITE COUNT TO SLAVE DEF *+5 DEF NAB2 NO-ABORT WRITE DEF SVCPM CONTROL DEF MSGBF MESSAGE BUFFER DEF B1 AND LENGTH * JMP RTEER RTE ERROR JSB READS GET A BUFFER FROM DS JMP DPTMO TIME-OUT ON LINK CMA ADD -1 ADA ADMSG TO ADDRESS OF BUFFER ADB A ADD LENGTH LDA B,I GET LAST WORD ALF,ALF SWAP BYTES AND =B377 CPA B1 IS IT STILL DUMPING? JMP DPTMO NO - DUMP TIMEOUT JSB WRITF WRITE THE BUFFER TO THE FILE DEF *+4 DEF DCB DATA CONTROL BLOCK DEF FERR ERROR DEF MSGBF MESSAGE BUFFER * SSA WAS THERE AN ERROR? JMP FMPER YES - REPORT IT ISZ DPCNT INCREMENT DUMP COUNT JMP DMLOP DO IT AGAIN * * DUMP IS FINISHED. TELL SLAVE * CLA STA MSGBF STORE A ZERO IN BUFFER JSB XLUEX AND TRANSMIT IT DEF *+5 DEF NAB2 NO-ABORT WRITE DEF SVCPM CONTROL DEF MSGBF DEF B1 AND LENGTH * JMP RTEER ERROR LDB ADMSG GET ADDRESS OF MESSAGE BUFFER LDA =D-129 NUMBER OF WORDS JSB CLRBF CLEAR BUFFER JSB FTIME GET TIME IN A STRING DEF *+2 DEF MSGBF ADDRESS OF BUFFER * * NOW ASK FOR INPUT OF A STRING FROM THE TERMINAL FOR THE COMMENT * JSB EXEC WRITE QUESTION DEF *+5 DEF NAB2 WRITE DEF #TLU TO TERMINAL DEF ASKMS ASK MESSAGE DEF ASKML AND LENGTH NOP IGNORE RETURN JSB REIO GET THE STRING DEF *+5 DEF NAB1 INPUT DEF TRMIS CONTROL DEF MSGBF+16 MESSAGE BUFFER DEF ILEN AND LENGTH NOP * JSB WRITF WRITE LAST FILE DEF *+4 DEF DCB DATA CONTROL BLOCK DEF FERR ERROR MESSAGE DEF MSGBF MESSAGE BUFFER * CLA CLEAR THE CLOSE FLAG STA CLSFL JSB CLOSE ALL DONE SO CLOSE THE FILE DEF *+3 RETURN DEF DCB DATA CONTROL BLOCK DEF FERR ERROR MESSAGE * LDA DUFL GET FLAG CPA =ADU WAS THIS A DIRECT DUMP JMP PRMPT YES - READ COMMAND JMP READ NO - GO BACK AND READ SLAVE * * THIS ROUTINE HANDLES ANY FMP ERRORS * FMPER LDA FERR GET NUMBER OF ERROR CMA,INA MAKE POSITIVE STA FERR RESTORE JSB CNUMD CONVERT IT TO AN ASCII NUMBER DEF *+3 DEF FERR DEF #FMP AND STORE IT IN STRING JSB EXEC PRINT THE ERROR MESSAGE DEF *+5 DEF NAB2 WRITE DEF #TLU CONTROL DEF FMPMS MESSAGE DEF FMPEL AND LENGTH NOP * LDA CLSFL GET THE CLOSE FLAG CMA,SZA WAS IT SET?? JMP FPER2 NO - JUST GET NAME AGAIN JSB CLOSE CLOSE THE FILE DEF *+3 DEF DCB DATA CONTROL BLOCK DEF FERR ERROR CODE * FPER2 JMP DUMP START REQUEST AGAIN * * THE USER INDICATES HE DOESN'T WANT TO DUMP! * LET'S GO TELL THE SLAVE ABOUT IT * NODMP LDA =B177400 SEND THE NO DUMP COMMAND STA MSGBF IN THE MESSAGE BUFFER JSB XLUEX SEND TO VCP DEF *+5 DEF B2 WRITE DEF SVCPM TRANSMIT DEF MSGBF MESSAGE BUFFER DEF B1 AND LENGTH * JMP READ READ FAILURE INDICATION * * THE LINK TIMED OUT DURING A DUMP. LETS CLEAN UP OUR ACT!! * DPTMO JSB CLOSE JUST CLOSE THE FILE DEF *+3 DEF DCB DATA CONTROL BLOCK DEF FERR ERROR CODE * LDA M1 SEND ALL ONE'S TO SLAVE STA MSGBF JSB XLUEX CALL EXEC DEF *+5 DEF NAB2 NO ABORT WRITE DEF SVCPM SEND VCP DEF MSGBF MESSAGE BUFFER DEF B1 ONE WORD * JMP RTEER RTE ERROR JSB CKNST CHECK NETWORK STATUS * JSB EXEC NOW TELL USER DEF *+5 DEF NAB2 WRITE DEF #TLU TO TERMINAL DEF ABDSD ABORT DUMP MESSAGE DEF ABDSL AND LENGTH NOP * JMP PRMPT DO A PROMPT SKP * * BREAK SENDS A BREAK FRAME TO THE SLAVE * BREAK LDA BRADR GET ADDRESS OF STRING JSB CHR2 AND CHECK COMMAND BRK1 LDA BRPSW GET PASSWORD FLAG CMA,SZA,RSS IS IT SET? JMP BR2 YES - SEND BREAK * * PASSWORD NOT DETECTED - READ PASSWORD * JSB EXEC SEND PASSWORD PROMPT DEF BR1 RETURN ADDRESS DEF NAB2 WRITE DEF TRMOC TERMINAL CONTROL DEF PSMSG PASSWORD MESSAGE DEF PSMLN PASSWORD LENGTH BR1 NOP * LDA =D-40 LDB ADBUF GET ADDRESS OF INPUT BUFFER JSB CLRBF AND CLEAR IT JSB REIO READ PASSWORD DEF PSW RETURN DEF NAB1 READ DEF #TLU NO ECHO DEF INBUF INPUT BUFFER DEF ILEN PSW NOP * CPB B2 ONLY TWO CHARCTERS? RSS JMP BDCMD NO - BAD COMMAND LDA INBUF GET FIRST WORD ALF,ALF SWAP BYTES CMA AND COMPLEMENT CPA #NMSC IS IT CORRECT PASSWORD? RSS JMP BDCMD NO - BAD COMMAND BR2 CCA YES - SET FLAG STA BRPSW LDA #NWLU GET NETWORK LU CCE SET E ALF,ELA MULTIPLY BY 32 AND ADD 1 STA SCR SKP * * GO SEND BREAK * JSB XLUEX SEND THE BREAK DEF BR3 RETURN DEF NAB2 WRITE DEF SBRFC SEND BREAK FRAME DEF PSMSG IRRELEVANT BUFFER DEF PSMLN AND LENGTH DEF SECUR SECURITY CODE DEF SCR LU*32+1 BR3 EQU * JMP RTEER * * GO BACK TO READING DS * JMP READ NO - NORMAL TIMEOUT SKP * * EXIT - PROGRAM ALL DONE !! * EXIT LDA EXADR GET EXIT ADDRESS JSB CHR2 AND CHECK FOR CORRECTNESS EXIT1 CLA STA BRPSW CLEAR BREAK FLAG LDA CLSFL HAS THE FILE BEEN CLOSED?? CMA,SZA JMP CLOS JSB CLOSE NO - CLOSE IT DEF *+3 DEF DCB DEF FERR * CLOS JSB XLUEX SET DRIVER INTO DS MODE DEF EX1 RETURN DEF B3 CONTROL DEF SDSMC SET DS MODE DEF SECUR SECURITY CODE EX1 EQU * * JSB EXEC PRINT ALL DONE MESSAGE DEF EX2 RETURN DEF NAB2 WRITE DEF #TLU TERMINAL OUTPUT CONTROL DEF ENMSG DEF ENMLN EX2 NOP * JSB EXEC ALL DONE!!! DEF EX3 DEF B6 EX3 NOP SKP * * ERROR ROUTINE FOR ILLEGAL DS NODES OR USER ERRORS * * ERR JSB EXEC SEND ERROR MESSAGE TO TERMINAL DEF ERR1 DEF NAB2 DEF TRMOC DEF ERMSG DEF ERRLN ERR1 NOP * JSB RDSTR READ A NEW COMMAND STRING! * SZB,RSS IF ZERO LENGTH TERMINATE PROGRAM JMP EX1 ALL DONE FOR NOW STB SCR STORE LENGTH IN SCRATCH AREA JSB PARSE PARSE THE INPUT STRING DEF PRS1 RETURN DEF INBUF INPUT BUFFER DEF SCR LENGTH DEF NODE TARGET BUFFER PRS1 EQU * * LDA NODE GET FIRST CHARACTER CPA B1 IS IT A NUMBER?? RSS YES JMP ERR NO - REPRINT ERROR MESSAGE LDA NODE+1 GET NODE INPUT STA NODE AND STORE IN PROPER POSITION JMP FNDDS GO FIND DS LU SKP **************************************************** * * * SUBROUTINES * * * **************************************************** * RDSTR NOP LDA =D-40 LDB ADBUF GET ADDRESS OF BUFFER JSB CLRBF CLEAR THE INPUT BUFFER JSB REIO MAKE THE CALL DEF RDST1 RETURN DEF NAB1 READ DEF TRMIS INPUT AN ASCII STRING DEF INBUF INPUT BUFFER DEF ILEN INPUT LENGTH RDST1 NOP * JMP RDSTR,I BACK WE GO! * * THIS SUBROUTINE READS THE DS LU * READS NOP LDA =D-129 CLEAR 129 LOCATIONS LDB ADMSG STARTING AT THIS ADDRESS JSB CLRBF CLEAR IT JSB XLUEX NOW DO READ OF DS DEF RDS1 RETURN DEF NAB1 NO ABORT READ DEF RVCPM CONTROL WORD DEF MSGBF BUFFER DEF MSGLN AND LENGTH RDS1 EQU * JMP RTEER RTE ERROR RETURN STB SCR SAVE LENGTH JSB CKNST CHECK NETWORK STATUS LDB SCR GET LENGTH AGAIN CPA B2 WAS IT A TIMEOUT?? RSS ISZ READS NO - RETURN + 1 JMP READS,I RETURN SKP * * THIS SUBROUTINE CLEARS ALL MESSAGE BUFFERS * CLRBF NOP STA CNTR IN THE WORD COUNT CLA CLEAR A CLR1 STA B,I STORE IN BUFFER INB INCREMENT ADDRESS ISZ CNTR AND COUNT JMP CLR1 DO IT AGAIN JMP CLRBF,I ALL DONE * * * NONDE LDA NODE GET ORIGINAL NUMBER SSA,RSS WAS IT NEGATIVE? JMP ERR NO - DOESN'T EXIST CMA,INA YES - CONVERT TO LU NNDE1 LDB =A?? DON'T KNOW WHAT IT IS STB #NLU SO INDICATE JMP FOUND AND INDICATE FOUND * SKP * * ERROR ROUTINE FOR ABORTED EXEC CALLS BY SYSTEM * RTEER STA IOER STORE TYPE OF ERROR LDA IOERA GET ERROR MESSAGE STA NERMS AND PUT IN PROPER LOCATION JMP PRNER GO DO IT * * THIS SUBROTINE CHECKS DS STATUS. IF THERE IS A TIME-OUT OR NO ERROR * SUBROUTINE RETURNS, IF THERE IS, PROGRAM PRINTS ERROR MESSAGE AND * RETURNS TO PROGRAM PROMPT. * CKNST NOP CLB CLEAR B ARS,SLA WAS THERE AN ERROR?? RSS JMP CKNST,I NO - RETURN RAR,RAR MOVE A REGISTER RAR TO LOOK AT ERROR CODE AND =B17 GET ERROR CODE CPA B1 IS IT 1? LDB LNFLA YES- LINE FAILURE CPA B2 IS IT 2? JMP CKNST,I YES IT'S LEGAL CPA B11 IS IT DRIVER ERROR?? JMP SUSP YES - SUSPEND FOR A FEW CPA =B5 IS IT 5? LDB BSYA YES - LINE BUSY CPA B10 IS IT 10B? LDB NINTA YES - NO INTERRUPT CPA =B13 IS IT 13B? LDB CDFLA YES - CARD FAILURE CPA =B17 IS IT 17B? LDB BDINA YES - BAD INTERRUPT SZB,RSS ANY OTHER CODE? LDB IOERA GETS THIS MESSAGE STB NERMS SAVE IT STA IOER AND STORE IN STRING JSB KCVT CHANGE TO ASCII DEF *+2 DEF IOER STA IOER STORE CONVERSION AGAIN * * NOW PRINT DS ERROR MESSAGE * PRNER JSB EXEC PRINT DSVCP PREFIX DEF *+5 DEF NAB2 DEF TRMOC DEF PRMSG BUFFER MESSAGE AND LENGTH DEF PRMSL NOP JSB EXEC NOW PRINT MESSAGE DEF *+5 DEF NAB2 DEF #TLU NERMS BSS 1 DEF B10 NOP JMP PRMPT ALL DONE * SUSP JSB EXEC SUSPEND THE PROGRAM FOR FIVE SECONDS DEF *+6 DEF .12 DEF B0 DEF B2 DEF B0 DEF M5 LDA B2 JMP CKNST,I JUMP BACK SKP *********************************************** * * * CONTROL WORD AREA * * * *********************************************** * * NETWORK CONTROL WORDS WITH LU: THESE ARE DOUBLE WORD * FIRST WORD IS THE LU WITH BIT 15 SET FOR SYSTEM LU * SECOND WORD IS DS CONTROL * STAT BSS 1 OCT 0 STATUS OF DRIVER SNDSC BSS 1 OCT 23500 SET FRONT PANEL WAIT SBRFC BSS 1 OCT 20700 SEND BREAK SVCPM BSS 1 OCT 20500 SEND VCP MESSAGE SDSMC BSS 1 OCT 23400 CLEAR FRONT PANEL WAIT RVCPM BSS 1 OCT 60400 RECEIVE VCP MESSAGE * * TERMINAL CONTROL WORDS WITH LU * TRMIS BSS 1 TRMOC BSS 1 SKP ************************************ * * * STRING AREA * * * ************************************ PRMSG ASC 5,/DSVCP: PRMSL ABS *-PRMSG BDCMM ASC 12,/DSVCP: ILLEGAL COMMAND BMLEN DEF *-BDCMM PSMSG ASC 6,PASSWORD?: PSMLN DEF *-PSMSG ERMSG ASC 10,/DSVCP: ILLEGAL NODE CRLF OCT 6412 CARRIAGE RETURN-LINE FEED ASC 18,INPUT DS NODE (CR TERMINATES DSVCP) ERRLN DEF *-ERMSG ENMSG ASC 6,/DSVCP: END ENMLN DEF *-ENMSG DPMSG ASC 18,DUMP REQUEST, ENTER NEW FILENAME: DPMLN DEF *-DPMSG FMPMS ASC 10,/DSVCP: FMP ERROR - #FMP BSS 3 ASC 7, ON DUMP FILE FMPEL DEF *-FMPMS ABDSD ASC 18,/DSVCP: LINE TIMEOUT - DUMP ABORTED ABDSL DEF *-ABDSD ASKMS ASC 10,TYPE COMMENTS BELOW ASKML DEF *-ASKMS LNFLA DEF LNFLR BSYA DEF BUSY NINTA DEF NOINT CDFLA DEF CRDFL BDINA DEF BDINT IOERA DEF IOERM BRADR DEF *+1 ASC 3,\BREAK EXADR DEF *+1 ASC 2,\END RDADR DEF *+1 ASC 3,\READ WTADR DEF *+1 ASC 3,\WAIT LNFLR ASC 8,LINE FAILURE BUSY ASC 8,LINE BUSY NOINT ASC 8,NOT INITIALIZED CRDFL ASC 8,CARD FAILURE BDINT ASC 8,BAD INTERRUPT IOERM ASC 7,DRIVER ERROR IOER BSS 1 ND&LU ASC 3, NODE NODE# BSS 3 ASC 4, AND LU LU# BSS 1 N&LLN DEF *-ND&LU SKP ******************************* * * * CONSTANT AREA * * * ******************************* * NBR BSS 1 NEIGHBOR FLAG #NWLU BSS 1 NETWORK WRITE LU #NRLU BSS 1 NETWORK READ LU #NLU BSS 1 NETWORK #TLU BSS 1 TERMINAL LU NUMBER HSTND NOP HOST NODE OF SYSTEM FILNM BSS 10 FILE PARAMETERS SECUR DEC 29150 NETWORK SECURITY CODE NODE NOP NODE FOR PARSE NOP NOP BSS 30 CNTR BSS 2 SCR BSS 2 BRPSW NOP PASSWORD FLAG CLSFL NOP CLOSE FLAG RTFLG NOP READ TERMINAL FLAG DPCNT BSS 1 .\ OCT 56000 DUFL NOP DUMP FLAG B0 OCT 0 B1 OCT 1 B2 OCT 2 B3 OCT 3 B6 OCT 6 B10 OCT 10 B11 OCT 11 .12 DEC 12 M5 DEC -5 .13 DEC 13 .257 DEC 257 M1 DEC -1 NAB1 OCT 100001 NAB2 OCT 100002 NAB3 OCT 100003 ADMSG DEF *+1 MSGBF BSS 129 MSGLN DEC 129 BFLN BSS 1 ADBUF DEF *+1 INBUF BSS 40 ILEN DEC -78 MLEN BSS 1 DCB BSS 144 DATA CONTROL BSS 10 FERR BSS 1 SKP UNS END DSVCP