IMD 1.17: 11/11/2014 14:40:57 82VKXBVERDOS C* VERSADOS/RMS68K OBJECT 4.4 SN=48634 (EQUATE FILES) 11 OF 22  BT11\82VKXBVERDOS 0420¿=-'.#BKSLASH‚EQU‡$5C‡Backslashchar'\'.'CARET„EQU‡$5E‡Uparrow(caret)char'^'.8DEL†EQU‡$7F‡Deletechar(alsocalled'rubout').‚LikeBS. $HI_CTLƒEQU‡$1F‡Highestcontrolchar. IBS_SP_BSEQUBS<<24+SPACE<<16+BS<<8‚Backspace,space,backspaceallleft-*§justifiedin32bits. *)*‚Equatesforbaudrategeneratorvalues.* BAU50…EQU„0 BAU75…EQU„1 BAU110„EQU„2BAU134_5‚EQU„3 BAU150„EQU„4 BAU300„EQU„5 BAU600„EQU„6 BAU1200ƒEQU„7 BAU1800ƒEQU„8 BAU2000ƒEQU„9BAU2400ƒEQU„10BAU3600ƒEQU„11BAU4800ƒEQU„12BAU7200ƒEQU„13BAU9600ƒEQU„14BAU19200‚EQU„15 **‚Miscellaneousequates.**IOEVCD„EQU„1’Eventcodewewilluse(I/O).;BRK_LENƒEQU„300#ofmillisecondstomaintainbreaksignal. ŠPAGEK*****************************************************************************‰EQUATESFORTRANSPARENTMODE*K*************************************************************************** *F*‚EquatesdescribingthepartoftheCSBusedwhensettingTRANSPARENTH*‚MODE.‚WepassthedrivertheaddressofourbranchtableandhepassesI*‚usbacktheaddressofhisbranchtable,thevalueweshouldhaveinA5G*‚whenwecallhim,andtheSRthatweshoulduse.‚Actually,wemayuseG*‚adifferentSRaslongasthesupervisorbitissetandtheinterrupt9*‚levelisnotlowerthantheoneintheSRhepassesus.*7ŠOFFSETIOSTTMThisstuffwillbeintheCSBatIOSTTM.9IOSTMU„DS.Bƒ4’Heretheuserwillstore,beforemakingthe&*§CHANGEDEFAULTScall,theaddressofE( *§histableofbranches. 7ŠOFFSETIOSTTMThisstuffwillbeintheCSBatIOSTTM.9IOSTMD„DS.Bƒ4’theaddrofthedriver'stableofbranches;/IOSTMA„DS.Bƒ4’thevaluethedriverwantsinA5;5IOSTMS„DS.Bƒ2’theSRwiththeMINIMUMinterruptlevel*§set. 5ŠOFFSET0ŽThisdefinestheuser'sTMinterfacetable.!*ŸWeJSRtothegivenentrywhen:#TM_RCA„DS.Bƒ4’...wereceiveachar.7TM_TBE„DS.Bƒ4’...webecomecapableofanothertransmit.2TM_BRK_RECVDS.B4’...wedetectanincomingbreak.THEN.SˆRTE—thenreturntouser;ENDIXREF.SCOMINT_PERTURB IFC„'\0',''0BRA.L‚COMINT_PERTURB…elsegotocomint_perturb;ENDC IFNCƒ'\0',''0B\0.L‚COMINT_PERTURB…elsegotocomint_perturb;ENDCŠENDCŠIFC„'\1','PREEMPT'XREF.SPREEMPT IFC„'\0',''BRA.L‚PREEMPTENDC IFNCƒ'\0',''B\0.L‚PREEMPTENDCŠENDCŠIFC„'\1','DISPATCH'XREF.SDISPATCH IFC„'\0',''BRA.L‚DISPATCHENDC IFNCƒ'\0',''B\0.L‚DISPATCHENDCŠENDCŠIFC„'\1','RTCDDIRN'XREF.SERROR_01 IFC„'\0',''BRA.L‚ERROR_01ENDC IFNCƒ'\0',''B\0.L‚ERROR_01ENDCŠENDCŠIFC„'\1','RTCDPBLK'XREF.SERROR_02 IFC„'\0',''BRA.L‚ERROR_02ENDC IFNCƒ'\0',''B\0.L‚ERROR_02ENDCŠENDCŠIFC„'\1','RTCDTASK'XREF.SERROR_03 IFC„'\0',''BRA.L‚ERROR_03ENDC IFNCƒ'\0',''B\0.L‚ERROR_03ENDCŠENDCŠIFC„'\1','RTCDNTBL'XREF.SERROR_04 IFC„'\0',''BRA.L‚ERROR_04ENDC IFNCƒ'\0',''B\0.L‚ERROR_04ENDCŠENDCŠIFC„'\1','RTCDTFUL'XREF.SERROR_05 IFC„'\0',''BRA.L‚ERROR_05ENDC IFNCƒ'\0',''B\0.L‚ERROR_05ENDCŠENDCŠIFC„'\1','RTCDDPRQ'XREF.SERROR_06 IFC„'\0',''BRA.L‚ERROR_06ENDC IFNCƒ'\0',''B\0.L‚ERROR_06ENDCŠENDCŠIFC„'\1','RTCDNFND'XREF.SERROR_07 IFC„'\0',''BRA.L‚ERROR_07ENDC IFNCƒ'\0',''B\0.L‚ERROR_07ENDCŠENDCŠIFC„'\1','RTCDNMEM'XREF.SERROR_08 IFC„'\0',''BRA.L‚ERROR_08ENDC IFNCƒ'\0',''B\0.L‚ERROR_08ENDCŠENDCŠIFC„'\1','RTCDALOW'XREF.SERROR_09 IFC„'\0',''BRA.L‚ERROR_09ENDC IFNCƒ'\0',''B\0.L‚ERROR_09ENDCŠENDCŠIFC„'\1','RTCDSTAT'XREF.SERROR_10 IFC„'\0',''BRA.L‚ERROR_10ENDC IFNCƒ'\0',''B\0.L‚ERROR_10ENDCŠENDCŠIFC„'\1','RTCDLGCF'XREF.SERROR_11 IFC„'\0',''BRA.L‚ERROR_11ENDC IFNCƒ'\0',''B\0.L‚ERROR_11ENDCŠENDCŠIFC„'\1','RTCDADR1'XREF.SERROR_12 IFC„'\0',''BRA.L‚ERROR_12ENDC IFNCƒ'\0',''B\0.L‚ERROR_12ENDCŠENDCŠIFC„'\1','RTCDADR2'XREF.SERROR_13 IFC„'\0',''BRA.L‚ERROR_13ENDC IFNCƒ'\0',''B\0.L‚ERROR_13ENDCŠENDCŠIFC„'\1','RTCDENAB'XREF.SERROR_14 IFC„'\0',''BRA.L‚ERROR_14ENDC IFNCƒ'\0',''B\0.L‚ERROR_14ENDCŠENDCŠIFC„'\1','RTCDOPT'XREF.SERROR_15 IFC„'\0',''BRA.L‚ERROR_15ENDC IFNCƒ'\0',''B\0.L‚ERROR_15ENDCŠENDCŠIFC„'\1','RTCDPCNT'XREF.SERROR_16 IFC„'\0',''BRA.L‚ERROR_16ENDC IFNCƒ'\0',''B\0.L‚ERROR_16ENDCŠENDCŠNOLISTŠOPT„CLŠLISTŠENDM*************************** Ending of &.TR1RTCD.EQ ***************************‰PAGE**************************** Beginning of &.TRACE.EQ ***************************** *‡TRACETABLE*$*‡TRACETABLEHEADER-FIRST8BYTES* ŠOFFSET0 TRCTBL„EQU„*!TRCPTR„DS.Lƒ1’TABLEENTRYPOINTERTRCLNG„DS.Lƒ1’TABLELENGTHTRCENTRS‚DS.Lƒ1’TRACEENTRIES**ˆTRACEENTRIESDEFINITIONS*ˆ20BYTESFOREACHENTRY%*ˆONE20BYTESETFOREACHTRACECALL* ŠOFFSET0TRCCODEƒDS.Wƒ1’TRACECODETRCSR…DS.Wƒ1’STATUSREGISTERTRCPC…DS.Lƒ1’PROGRAMCOUNTERTRCA0…DS.Lƒ1’A0TRCA6…DS.Lƒ1’A6TRCD0…DS.Lƒ1’D0"TRCTIMEƒDS.Lƒ1’TIME(INMILLISECS)TRCTIM2ƒDS.Wƒ1’TIME(MICROSECS)TRCENTSZ‚EQU„************************** Ending of &.TRACE.EQ *************************éé éééc ‰PAGE************************** Beginning of &.TST.EQ ****************************„TASKSEGMENTTABLE*ˆCONTAINS‚PREAMBLE#*’MEMORYMANAGMENTLOADINFORMATION*’SEGMENTATTRIBUTEBLOCK*)SEGMENTS‚EQU„4’NUMBEROFSEGMENTSALLOWED*!ŠOFFSET0’THISISANOFFSETTABLE*TST‡DS.Lƒ1’!TSTDEBUGTOOL"TSTNSEGS‚DS.Bƒ1’NUMBEROFSEGMENTS5TSTCSEGS‚DS.Bƒ1’NUMBEROFSEGMENTSCURRENTLYEXISTING*TSTLMMUƒDS.Wƒ1’INDEXTOLASTMMULOADLINE4TSTLATTR‚DS.Wƒ1’INDEXTOLASTSEGMENTATTRIBUTELINETSTSTATƒDS.Wƒ1’MMUSTATUS+TSTMMU„DS.Wƒ4*SEGMENTS‰MMULOADINFORMATION/TSTATTRƒDS.Wƒ4*SEGMENTS‰SEGMENTATTRIBUTEBLOCK8TSTWTSKƒDS.Lƒ1’NAMEOFTASKWITHWINDOWTOADDRESSSPACE%TSTLEN„EQU„*’LENGTHOFTASKSEGTABLE**‰TSTATTRFIELDS*(TSTANAME‚EQU„TSTATTR-TSTMMU…SEGMENTNAME5TSTAATTR‚EQU„TSTATTR-TSTMMU+4ƒSEGMENTATTRIBUTEFIELD2TSTAR1„EQU„TSTATTR-TSTMMU+6ƒMEMORYTYPEDESCRIPTOR/TSTAUCNT‚EQU„TSTATTR-TSTMMU+7ƒSEGMENTUSECOUNT**‰TSTSTATFIELDS*9TSTASN„EQU„TSTSTATŒADDRESSSPACENUMBERFORTASK(1BYTE)*.*‰SEGMENTATTRIBUTEBITDEFINITIONS(TSTATTRF)*$SEGAUSED‚EQU„15‘SEGMENTENTRYINUSE#SEGAROMƒEQU„14‘SEGMENTISREADONLY/SEGASHRƒEQU„13‘SEGMENTISSHAREDWITHINSESSION!SEGAGLBL‚EQU„12‘SEGMENTISGLOBAL1SEGAMMIO‚EQU„11‘SEGMENTISMEMORYMAPPEDIOSPACE'SEGAPROM‚EQU„10‘SEGMENTISPHYSICALROM**‰TSTMMUFIELDS*TSTLB…EQU„0’LOGICALBEGINTSTLE…EQU„2’LOGICALENDTSTPO…EQU„4’PHYSICALOFFSET/TSTCTL„EQU„6’CONTROL(NULLBYTE+CONTROLBYTE)**‰MMUCONTROLREGISTERVALUES*!RAMCTL„EQU„$01READ/WRITESEGMENT ROMCTL„EQU„$03READONLY‚SEGMENT*********************** Ending of &.TST.EQ ***********************él;‰PAGE************************** Beginning of &.UDR.EQ ***************************%*ˆUSERDEFINEDDIRECTIVETABLEHEADER*!ŠOFFSET0’THISISANOFFSETTABLEUDR‡DS.Lƒ1’!UDR„DEBUGTOOL(UDRCNT„DS.Wƒ1’NUMBEROFENTRIESINTABLE"UDRENTRY‚EQU„*’OFFSETTO1STENTRY**ˆUDRENTRYDEFINITION*&ŠOFFSET0’OFFSETISFROMENTRYPOINTER1UDRSESSƒDS.Lƒ1’SESSIONOFTASKTHATCREATEDENTRYUDROPT„DS.Bƒ1’OPTIONSUDREXITƒDS.Bƒ1’EXITNUMBER&UDRADDRƒDS.Lƒ1’DIRECTIVEENTRYADDRESSUDRESIZƒEQU„*’ENTRYLENGTH**ˆUDROPTIONS-SETINUDROPT*'UDROGLBL‚EQU„4’IFSET-ENTRYISGLOBAL*********************** Ending of &.UDR.EQ *********************** éééééu‰PAGE****************************** Beginning of &.UPLOADS.MC ****************************** FHSPB„MACRO‰OPTƒNOCL,NOMEX,A<*ˆThismacrodefinesanFHSparameterblockinstorage.Some?*ˆofthemoreoftensuppliedfieldsareacceptedasparameters.*'*ˆ#1‚=PARMBLOCKPREFIX(3BYTESMAX).5*ˆ#2‚=LOGICALUNITNUMBER(5=TERMIN,6=TERMOUT,7=#PR)*ˆ#3‚=VOLUMEID*ˆ#4‚=USERID*ˆ#5‚=CATALOG*ˆ#6‚=FILENAME*ˆ#7‚=EXTENTION *ˆ#8‚=LRECL*ˆ#9‚=BLKSIZE*ˆ#A‚=OPTIONS*ˆ#B‚=SHAREDSEGMENTOPTION&*ˆ#C‚=SHAREDSEGMENTSTARTINGADDRESS‰OPT‡MEX,NOCL,A SPC 2)\1FHSPB‚DS.L†0‰"\1"-FHS-PARAMETERBLOCK\1CODEƒDCB.B…1,0‡Code\1CMD„DCB.B…1,0‡Command ‰IFC‡'\A',''\1OPT„DC.W†0‰Options‰ENDC ‰IFNC†'\A',''\1OPT„DC.W†\AˆOptions‰ENDC \1STATƒDC.B†0‰Statusuponreturn ‰IFC‡'\2',''\1LU…DC.B†0‰Logicalunit‰ENDC ‰IFNC†'\2',''\1LU…DC.B†\2ˆLogicalunit‰ENDC ‰IFC‡'\3',''\1VOL„DCB.B…4,0‡VolumeID‰ENDC ‰IFNC†'\3',''\1VOL„DC.B†'\3'†VolumeID‰ENDC ‰IFC‡'\4',''\1USERƒDCB.B…2,0‡UserID‰ENDC ‰IFNC†'\4',''\1USERƒDC.W†\4ˆUserID‰ENDC ‰IFC‡'\5',''\1CAT„DCB.B…8,'ˆ'Catalog‰ENDC ‰IFNC†'\5',''\1CAT„DC.B†'\5'†Catalog‰ENDC ‰IFC‡'\6',''\1FILEƒDCB.B…8,'ˆ'Filename‰ENDC ‰IFNC†'\6',''\1FILEƒDC.B†'\6'†Filename‰ENDC ‰IFC‡'\7',''\1EXT„DCB.B…2,'‚'„Extention‰ENDC ‰IFNC†'\7',''\1EXT„DC.B†'\7'†Extention‰ENDC‰DC.B†$0,$0…-Reserved-\1WRCDƒDC.B†$0ˆWritecode\1RECDƒDC.B†$0ˆRead‚code ‰IFC‡'\8',''\1LRECL‚DCB.B…2,0‡Recordlength‰ENDC ‰IFNC†'\8',''\1LRECL‚DC.W†\8ˆRecordlength‰ENDC ‰IFC‡'\9',''\1BLKSZ‚DCB.B…4,0‡Blocksize‰ENDC ‰IFNC†'\9',''\1BLKSZ‚DC.L†\9ˆBlocksize‰ENDC‰IFC‡'\B','SS=YES'/\1SS1ST‚DC.L†\CˆSharedsegmentSTARTINGaddress,\1SSEND‚DC.L†0‰SharedsegmentENDINGƒaddress"\1SSNAM‚DC.L†0‰SharedsegmentNAME‰ENDC‰ENDM   IOSPB„MACRO‰OPTƒNOCL,NOMEX,A<*ˆThismacrodefinesanIOSparameterblockinstorage.Some~`‡_c—?*ˆofthemoreoftensullpiedfieldsareacceptedasparameters.*'*ˆ#1‚=PARMBLOCKPREFIX(3BYTESMAX).*ˆ#2‚=LOGICALUNITNUMBER*ˆ#3‚=OPTIONS*ˆ#4‚=RECORDNUMBER*ˆ#5‚=STARTOFBUFFER*ˆ#6‚=ENDƒOFBUFFER‰OPT‡MEX,NOCL,A SPC 2)\1IO SPB‚DS.L†0‰"\1"-IOS-PARAMETERBLOCK\1IOCOD‚DCB.B…1,0‡Code\1FUNCD‚DCB.B…1,0‡Functioncode ‰IFC‡'\3',''\1IOOPT‚DCB.B…2,0‡Options‰ENDC ‰IFNC†'\3',''\1IOOPT‚DC.W†\3ˆOptions‰ENDC$\1IOSTA‚DCB.B…1,0‡Statusuponreturn ‰IFC‡'\2',''\1IOLUƒDCB.B…1,0‡Logicalunit‰ENDC ‰IFNC†'\2',''\1IOLUƒDC.B†\2ˆLogicalunit‰ENDC‰DC.W†0‰-Reserved- ‰IFC‡'\4',''\1IORNO‚DCB.B…4,0‡Recordnumber‰ENDC ‰IFNC†'\4',''\1IORNO‚DC.L†\4ˆRecordnumber‰ENDC ‰IFC‡'\5',''!\1IOSOB‚DCB.B…4,0‡Startofbuffer‰ENDC ‰IFNC†'\5',''#\1IOSOB‚DC.L†\5-PBA„Startofbuffer‰ENDC ‰IFC‡'\6',''\1IOEOB‚DCB.B…4,0‡Endofbuffer‰ENDC ‰IFNC†'\6',''!\1IOEOB‚DC.L†\6-PBA„Endofbuffer‰ENDC&\1IOSLL‚DC.L†0‰Lengthofdatatransfer ‰IFC‡'\7',''!\1IOCAD‚DC.L†0‰Completionaddress‰ENDC ‰IFNC†'\7',''&\1IOCAD‚DC.L†\7-PBA„Completionaddress‰ENDC‰ENDM    REGS…MACRO‰OPTNOCL,NOMEX,A9*********************************************************5*‚ThePREFIXfortheregisterlabelsisprovidedby„*7*‚appendingtheCHARACTERtothe"REGS"macroname...‚**·*3*‚Adescriptioncanbeprovidedasaparameter...†**·* *‚Example:­**REGS.E‚Ž**·*9*********************************************************‰OPTNOCL,MEX,A#\0AREAƒDS.L†0‰Registersavearea\1*‡-Dataregisters-\0D0…DC.L†0‰D0\0D1…DC.L†0‰D1\0D2…DC.L†0‰D2\0D3…DC.L†0‰D3\0D4…DC.L†0‰D4\0D5…DC.L†0‰D5\0D6…DC.L†0‰D6\0D7…DC.L†0‰D7*‡-Addressregisters-\0A0…DC.L†0‰A0\0A1…DC.L†0‰A1\0A2…DC.L†0‰A2\0A3…DC.L†0‰A3\0A4…DC.L†0‰A4\0A5…DC.L†0‰A5\0A6…DC.L†0‰A6\0A7…DC.L†0‰A7‰ENDM  ALLOCATE MACRO8‰LEA‡\1FHSPB(PC),A0†>..A0=addressof\1FHSparmblock1‰MOVE.W„#$0080,(A0)‰>..BuildFHSALLOCATEcommand&‰TRAP†#3’>..IssuetheALLOCATEcommand SPC 1‰ENDM   ASSIGNƒMACRO8‰LEA‡\1FHSPB(PC),A0†>..A0=addressof\1FHSparmblock/‰MOVE.W„#$0040,(A0)‰>..BuildFHSASSIGNcommand$‰TRAP†#3’>..IssuetheASSIGNcommand SPC 1‰ENDM    GET†MACRO8‰LEA‡\1IOSPB(PC),A0†>..A0=addressof\1IOSparmblock-‰MOVE.W„#$0001,(A0)‰>..BuildIOSREADcommand"‰TRAP†#2’>..IssuetheREADcommand SPC 1‰ENDM PUT†MACRO8‰LEA‡\1IOSPB(PC),A0†>..A0=addressof\1IOSparmblock.‰MOVE.W„#$0002,(A0)‰>..BuildIOSWRITEcommand#‰TRAP†#2’>..IssuetheWRITEcommand SPC 1‰ENDM  UPDATEƒMACRO8‰LEA‡\1IOSPB(PC),A0†>..A0=addressof\1IOSparmblock/‰MOVE.W„#$0008,(A0)‰>..BuildIOSUPDATEcommand$‰TRAP†#2’>..IssuetheUPDATEcommand SPC 1‰ENDM  CLOSE„MACRO8‰LEA‡\1FHSPB(PC),A0†>..A0=addressof\1FHSparmblock.‰MOVE.W„#$0004,(A0)‰>..BuildFHSWRITEcommand#‰TRAP†#3’>..IssuetheCLOSEcommand SPC 1‰ENDM   ISIT…MACRO ‰IFC‡'\0','':‰MOVE.W„\1-PBA(A4),D0‡>..D0=Datatobecompared(ARG#1)&‰CMP.W…\2-PBA(A4),D0‡>..ARG#2vsARG#1‰ENDC ‰IFNC†'\0','';‰MOVE.\0ƒ\1-PBA(A4),D0‡>..D0=Datatobecompared(ARG#1)'‰CMP.\0„\2-PBA(A4),D0‡>..ARG#2vsARG#1‰ENDC SPC 1‰ENDM   XFER…MACRO‰IFNC†'\3','D0'4‰MOVE.L„\3-1,D0>..D0=Thenumberof".\0"tomove.‰ENDC‰IFNC†'\1','(A0)'%‰LEA‡\1(PC),A0>..A0="FROM"address‰ENDC‰IFNC†'\2','(A1)'#‰LEA‡\2(PC),A1>..A1="TO"ƒaddress‰ENDC ‰IFC‡'\0',''*XFER\@ƒMOVE.W„(A0)+,(A1)+‰>..Moveone".W"‰ENDC ‰IFNC†'\0','',XFER\@ƒMOVE.\0ƒ(A0)+,(A1)+‰>..Moveone".\0"‰ENDC‰DBRA†D0,XFER\@‹>..Done? SPC 1‰ENDM    PASSLU6‚MACRO5‰LEA‡LU6\@(PC),A0ˆ>..LoadregisterA0withPBaddress%‰TRAP†#3’>.."Receive"logicalunit#6&‰BRA‡CON\@>..Brancharoundparmblock SPC 1,LU6\@„DSˆ0“>..Logicalunitmodifyparmblock)‰DC.W†$0110,$8001,$0006,$0600,'SYMB','\1' SPC 2CON\@„DSˆ0“>..Continue‰ENDM  TAB†MACRO ‰IFC‡'\0','0' * LS-Nibble=* .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F . MS-Nibble*‰ENDC7* \1 \2 \3 \4 \5 \6 \7 \8 \9 \A \B \C \D \E \F \G . .\00‰DC.L†$\1\2\3\4,$\5\6\7\8,$\9\A\B\C,$\D\E\F\Gƒ\0 ‰IFC‡'\0','F'*=* .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F  . MS-Nibble * LS-Nibble‰ENDC‰ENDM*************************** Ending of &.UPLOADS.MC ***************************éééééé‰PAGE************************** Beginning of &.USM.EQ *************************** *ˆ**EQUATES* ŠOFFSET0STTTID„DS.Lƒ1’TERMINALI.D.STTSES„DS.Lƒ1’SESSIONNO.%STTINC„EQU„*-STTTID‹LENGTHOFENTRIES ŠOFFSET0BATSTATƒDS.Wƒ1’STATUSBATUSRNO‚DS.Wƒ1’USERNO.BATSES„DS.Lƒ1’SESSIONNUMBER**‚DEFAULTVALUES*$SYSVOL„EQU„'„'SYSTEMVOLUMEDEFAULT!DFLTUNOƒEQU„0’DEFAULTUSERNUMBER DFLTCAT1‚EQU„'„'DEFAULTCATALOG DFLTCAT2‚EQU„'„'DEFAULTCATALOG*)EETPNAMƒEQU„'&EET'EETTASKANDPSCTNAME(EETDNAMƒEQU„'.EET'EETDATASEGMENTNAME)SCTPNAMƒEQU„'&SCT'SCTTASKANDPSCTNAME(SCTDNAMƒEQU„'.SCT'SCTDATASEGMENTNAME-BCTPNAMƒEQU„'&BCT'BATCHCONTROLSESSIONTASK)EETSESNO‚EQU„2’SESSIONNUMBEROFEETTASK#STKLEN„EQU„150EET/SCTSTACKLENGTH0TIBASG„EQU„25‘TERMINALASSIGNED(FHSEQUATE)BITCENTURYƒEQU„1900IYEAR…EQU„80‘INITIALYEAR*'SCTINBLƒEQU„160CDFINPUTBUFFERLENGTH4SCTLUN„EQU„0’LUNFORSCTINTERACTIVETERMINALDIALOG1MAXTSKNO‚EQU„8’MAXNO.ASQENTRIESQUEUEDFORSCT-MAXVNTLN‚EQU„26‘MAXLENGTHOFSCT'SASQENTRY+XOFF†EQU„$5EUPARROW(HALTTERMINALINPUT)'NOSUB…EQU„$7ENOSUBSTITUTIONCHARACTER)IPRISCTƒEQU„128INITIALPRIORITYSCTTASK'LPRISCTƒEQU„255LIMITPRIORITYSCTTASK(IPRIBCTƒEQU„64‘INITIALPRIORITYBCTTASK'LPRIBCTƒEQU„127LIMITPRIORITYBCTTASK**ˆSESSIONOPTIONBITS(D7)*?BTCDFILE‚EQU„311=>CMDFILE0=>CMDDEVICE(PROMPT/INPUTSCTLUN)%BTLDFILE‚EQU„30‘1=>LDFFILE0=>DEVICE*BTREAD5ƒEQU„29‘1=READLUN5,0=>READLUN0;BTSUBPOS‚EQU„28‘1=>POSITIONALARGUMENTSUBSTITUTION,0=>TAG'BTDTIMEƒEQU„27‘1=>REQUESTDATEANDTIME:BTREREAD‚EQU„26‘1=>RE-READTHECURRENTRECORD,0=>READNEXTUNSOLICITEDBREAKSINCELASTCOMMANDINPUTBTBATCHƒEQU„24‘1=>BATCHMODE3BTBATACK‚EQU„23‘1=>RESPONSETOQUEUEBATCHRECEIVED#BTBATNAK‚EQU„22‘1=>BATCHQUEUEFULL&BTCMDABT‚EQU„21‘1=>CHAINABORTCOMMAND%BTSUBSER‚EQU„20‘1=>SUBSTITUTIONERROR+BTENDSKP‚EQU„19‘1=>READUNTIL/ENDIFFOUNDŸ<¨-°B¸6 ABTFORSKP‚EQU„18‹1=>READUNTIL/ENDFORFOUND(USEDWITHBTENDSKP)&BTARGNOE‚EQU„17‘1=>TOOMANYARGUMENTS*‰EQU„16ˆNOTASSIGNED* *ˆ**SYSTEMOPTIONBITS(SYSOPT)*ASOSYSMSG‚EQU„1‹1=>INVOKEPRIV.UPSYSTEM.NWCHAINFILEONSESSION1/SOBATOLY‚EQU„0’1=>BATCHMODEONLYLISTINFORCE2********* FOLLOWING CLEARED EACH COMMAND *********ABTSLASHƒEQU„7Š1=CHAINCONDTIONAL(INHIBITSUBSITUTIONERRORMSGS)BTEOF…EQU„6’1=>EOFENCOUNTERD%BTCHNABT‚EQU„5’1=>ABORTIFCHAINMODESUBSTITUTIONPERFORMED,0=>NOSUBSTITUTION'BTMSGI„EQU„3’1=>INHIBITTRAP1MESSAGES5BTLODGOƒEQU„2’1=>LOADONLY(NOSTART)0=>LOAD&STARTBTATSIGN‚EQU„1’1=>"@"COMMAND(BTECHO„EQU„0’1=>INPUTWASECHOEDTOLDF*O******************************************************************************* *ˆSHAREOPT:OPTIONSA-OBITMASK3*ˆ.ARGSEGMENT(LOCALLY/SESSIONSHAREDSEGMENT)+$FEO*******************************************************************************2********* FOLLOWING SET BY 'OPT' COMMAND *********5BTCHNOVR‚EQU„15‘O:1=>OVERIDEBTCHNABT(IGNOREERROR)ABTNOECHO‚EQU„14‹N:1=>NOECHOOFCDF,ORRESULTSOFARG,DEF,OROPT9BTPRTSKP‚EQU„13‘M:1=>PRINTCHAINCONDITIONALSDURINGSKIP5BTPRTIFƒEQU„12‘L:1=>PRINTCHAINCONDITIONALCOMMANDSDBTNOLOHI‚EQU„11ˆK:1=>INHIBITTRANSLATINGLOWERTOUPPERCASEONREAD?BTOPTJ„EQU„10‹J:1=>INHIBITSBARGECHOINPUTLINEINCHAINMODE)BTABTDMP‚EQU„9’I:1=>ABORTDUMPREQUESTED9BTBRKSTP‚EQU„8’H:1=>STOPALLTASKSONBREAK,0=>TERMINATEBTOPTG„EQU„7’G:NOTASSIGNEDBTOPTF„EQU„6’F:NOTASSIGNEDBTOPTE„EQU„5’E:NOTASSIGNED@BTOPTD„EQU„4ŠD:1=>ONLYDEFAULTTASKTERMINATED/STOPPEDONBREAKBTOPTC„EQU„3’C:NOTASSIGNED&BTBELL„EQU„2’B:1=>RINGBELLONPROMPT,BTOPTA„EQU„1’A:1=>ABORTCHAINFILEIFRA<>0O********************************************************************************(LDRDIR„EQU„1’TRAP4-FUNCTION1:LOADER*+*‚LOADERRETURNCONDITIONSTOWAITINGTASK:#*‚Z=1,D0=0=>LOADSUCCESSFULL#*†0,D0=ERRORCODE=>LOADFAILED7*‚A0->PARAMETERBLOCK,TCBNOWASALLOCATEDBYLOADER* *‚ABORTCODES)ABTBRK„EQU„$E0000000ŠDIAGNOSTICFORBREAK1ABTNOBRK‚EQU„$FFFF0000ŠDIAGNOSTICABORTNOTBREAK(ABRTREQƒEQU„$8006ŽTERMINALABORTREQUEST0AABRTREQ‚EQU„'8006'ASCIITERMINALABORTREQUEST"ABTNOMEM‚EQU„$8008ŽNOMEMORYSPACE"BRKABRTƒEQU„$8009ŽBREAKABORTCODEEETDIAGN‚EQU„$FFFF0000 EETCODEƒEQU„$8002ŽABORTEDBYEET* *ˆ**EQUATESFORSECURITYOPTION*PWVOL…EQU„'„'PASSWORDVOLUME PWUSR…EQU„0’PASSWORDUSERNUMBER"PWCAT1„EQU„'PRIV'PASSWORDCATALOGPWCAT2„EQU„'„'CATALOG2PWFIL1„EQU„'ACCO'FILENAMEPWFIL2„EQU„'UNT'FILE2PWEXT…EQU„'PW'PASSWORDEXTENT PWPROT„EQU„$00FFŽOWNERREADONLY!PWRECL„EQU„16‘TOTALRECORDLENGTHPWKSIZ„EQU„4’KEYSIZEPWFBLK„EQU„0’FAB,BLOCK*"*ˆ**EQUATESFORACCOUNTINGOPTION* OWRECL„EQU„64OWEXT…EQU„'OW'OWKSIZ„EQU„4’KEYSIZE'OWDEPTSƒEQU„4’STARTOFDEPARTMENTFIELD$OWDEPTCƒEQU„8’DEPARTMENTFIELDCOUNT"OWNAMESƒEQU„12‘STARTOFNAMEFIELDOWNAMECƒEQU„20‘NAMEFIELDCOUNT+OWLLOFFS‚EQU„32‘STARTOFLASTLOGOFFFIELD'OWLLOFFC‚EQU„8’LASTLOGOFFFIELDCOUNT-OWCTIMSƒEQU„40‘STARTOFCUMULATIVETIMEFIELD)OWCTIMCƒEQU„8’CUMULATIVETIMEFIELDCOUNT+OWSCNTSƒEQU„48‘STARTOFSESSIONCOUNTFIELD(OWSCNTCƒEQU„4’SESSTIONCOUNTFIELDCOUNT#OWRESTSƒEQU„52‘STARTOFRESETFIELDOWRESTCƒEQU„8’RESETFIELDCOUNT***<*ˆERRORMESSGEHANDLEREQUATESFORNON-TRAPRELATEDMESSAGES**’ASOF9/1/81**'EM_STRTS‚EQU„$300STARTSESSIONMESSAGE%EM_ENDSS‚EQU„$301ENDSESSIONMESSAGEEM_BREAK‚EQU„$302BREAK"EM_DFMSG‚EQU„$303DEFAULTSMESSAGE!EM_OPTMS‚EQU„$304OPTIONSMESSAGEEM_RETRN‚EQU„$305LEFTMARGIN(EM_PLUG1‚EQU„$306DISPLAYFROMPLUGPOOLEM_LODED‚EQU„$307TASKLOADED,EM_LODEB‚EQU„$308TASKLOADEDBINARYSESSIONEM_STOPƒEQU„$309TASKSTOPPED-EM_STOPB‚EQU„$30ATASKSTOPPEDBINARYSESSIONEM_CONTƒEQU„$30BTASKCONTINUED/EM_CONTB‚EQU„$30CTASKCONTINUEDBINARYSESSION!EM_TERMD‚EQU„$30DTASKTERMINATED0EM_FINIB‚EQU„$30ETASKTERMINATEDBINARYSESSION !EM_TERMT‚EQU„$30FTASKTERMINATED-EM_TERMB‚EQU„$310TASKABORTEDBINARYSESSIONEM_REJCT‚EQU„$311LOGONREJECT$EM_ARGXƒEQU„$312"<"NOTEQUALTO">"!EM_CTION‚EQU„$313CAUTION:USER=0&EM_PRIVƒEQU„$314PRIVELEGEDUSERERROR"EM_CMDXƒEQU„$315COMMANDNOTFOUND!EM_VOLXƒEQU„$316VOLUMENOTFOUND$EM_ARGNO‚EQU„$317TOOMANYARGUMENTS EM_NTASK‚EQU„$318TASKNOTFOUND+EM_NONOƒEQU„$319TASKNAMEINVALID/PROTECTED"EM_LUNER‚EQU„$31ALUNNOTASSIGNED*EM_NCONT‚EQU„$31BTASKCANNOTBECONINUED$EM_ALSTR‚EQU„$31CSTARTINDIVIDUALLY$EM_NESTƒEQU„$31DNESTINGLEVELERROR*EM_NROOM‚EQU„$31ERETURNSTACKSPACEERROR)EM_NDEVƒEQU„$31FDEVICENOTALLOWEDERROR*EM_IFLEV‚EQU„$320IFLEVELEXECEEDEDERROR!EM_ENDIF‚EQU„$321TOOMANYENDIFS&EM_SYNTX‚EQU„$322CHAINCOMMANDSYNTAX)EM_REGXƒEQU„$323DISPLAYPSUEDOREGISTERS#EM_NOBAT‚EQU„$324BATCHNOTALLOWED"EM_NSELF‚EQU„$325SELFNOTALLOWED%EM_BASER‚EQU„$326BATCHSESSIONERROR)EM_BASES‚EQU„$327BATCHSESSIONNOTFOUND$EM_BANUM‚EQU„$328USERNO.NOTFOUND+EM_NOTBA‚EQU„$329NOTALLOWEDINBATCHMODE*EM_QBATC‚EQU„$32ABATCHJOBQUEUEDMESSAGE"EM_QRUNƒEQU„$32BBATCHJOBRUNNING EM_QDONE‚EQU„$32CBATCHJOBDONE"EM_QFULL‚EQU„$32DBATCHQUEUEFULL%EM_BABRT‚EQU„$32EBATCHJOBCANCELLED"EM_NOREC‚EQU„$32FRECORDNOTFOUND$EM_NONUM‚EQU„$330USERNO.NOTFOUND"EM_NUSER‚EQU„$331INVALIDUSERNO.#EM_NCHAN‚EQU„$332NOTINCHAINMODE"EM_VSIZE‚EQU„$333VALUESIZEERROR!EM_FILNA‚EQU„$334FILEDESCRIPTOREM_NOCHG‚EQU„$335NOCHANGE EM_DFLTV‚EQU„$336DEFAULTVOLUMEEM_OPTER‚EQU„$337OPTION%EM_BONLY‚EQU„$338NOTALLOWEDONLINEEM_INVLU‚EQU„$339INVALIDLUN%EM_FDMIS‚EQU„$33AFILE/DEVICEMISSING#EM_PRMIT‚EQU„$33BACCESSPERMISSION!EM_RVRSE‚EQU„$33CVALUESREVERSED EM_PTASK‚EQU„$33DPROTECTEDTASK EM_CMDER‚EQU„$33ECOMMANDSYNTAX%EM_FLDSZ‚EQU„$33FFIELDSIZEEXCEEDED'EM_NFILE‚EQU„$340FILEWASNOTASSIGNED,EM_NOCVT‚EQU„$341NUMERICALCONVERSIONERROR*********************** Ending of &.USM.EQ ***********************‰PAGE************************** Beginning of &.UST.EQ ****************************ˆUSERSEMAPHORETABLE* ŠOFFSET0UST‡DS.Lƒ1’!UST„DEBUGTOOL)USTNEXTƒDS.Lƒ1’LINKTONEXTTABLESEGMENT*USTNSEGƒDS.Wƒ1’NUMBEROFSEGMENTSINTABLE.USTNPAGE‚DS.Wƒ1’NUMBEROFPAGES-THISSEGMENT$USTMENTƒDS.Wƒ1’MAXNUMBEROFENTRIES(USTCENTƒDS.Wƒ1’CURRENTNUMBEROFENTRIES%USTFENTƒDS.Lƒ1’ADDRESSOFFIRSTENTRY$USTENTRY‚EQU„*’OFFSETTOFIRSTENTRY**ˆUSTENTRYDEFINITION* ŠOFFSET0&USTTNAME‚DS.Lƒ1’ORIGINATOR'STASKNAME+USTSESSN‚DS.Lƒ1’ORIGINATOR'SSESSIONNUMBERUSTSNAME‚DS.Lƒ1’SEMAPHORENAME:USTUCNTƒDS.Wƒ1’#USERSOFSEMAPHOREOR-1IFPOINTERENTRY:USTXCNTƒDS.Bƒ1’INITIALCOUNTORCOUNTOFWAITSANDSIGNALS(USTTYPEƒDS.Bƒ1’SEMAPHORETYPE(1,2OR3)USTSEM„DS.Wƒ3’SEMAPHORE ŠOFFSET*-6*USTSPTRƒDS.Lƒ1’POINTERTOACTUALSEMAPHOREŠDS.Wƒ1’UNUSEDUSTEL…EQU„*’ENTRYLENGTH*********************** Ending of &.UST.EQ ***********************éééé À"‰PAGE****************************** Beginning of &.UTILITY.MC ******************************O*******************************************************************************O**********************************************************************************É***/***UTILITY.MC--MACROSOFGENERALUTILITY’******É***5***†ENVIRONMENT:‚In68000assemblylanguagecode.•******É***@***†FUNCTION:‚Thesemacrosareofageneralnature.‚Theyare‰***A***‰intendedtobeacollectionoftoolsusefulinanyappli-‡******‰cation.¹******É******†NOTES:½******É***O*******************************************************************************O******************************************************************************* *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‰ChangesG*…--------‚-------------‚----------------------------------------------'*†1/6/83‚SteveFranckƒInitialwriting.*ŠPAGE*.*‚Macrostopushandpopusingthestack(A7).*‚e.g.,„PUSH.B#'*'ƒorƒPOP.LD0* PUSH†MACROŠMOVE.\0\1,-(A7)ŠENDM POP‡MACROŠMOVE.\0(A7)+,\1ŠENDM *A*‚Macrostosaveandrestoreregistersusingthestack,asattheG*‚beginningofasubroutine.‚Validsizesare.Land.W;defaultsto.L.'*‚SAVEpushesregistersontothestack.I*‚RENEWgetsregistersfromthestackwithoutchangingthestackpointer.'*‚RESTOREpopsregistersoffthestack.%*‚e.g.,„SAVED0-D3/A1…RESTORE.WD3-D5* SAVE†MACRO ŠIFC„'\0',''ŠMOVEM.L\1,-(A7)ŠMEXITŠENDCŠMOVEM.\0\1,-(A7)ŠENDM RENEW…MACRO ŠIFC„'\0',''ŠMOVEM.L(A7),\1ŠMEXITŠENDCŠMOVEM.\0(A7),\1ŠENDM RESTOREƒMACRO ŠIFC„'\0',''ŠMOVEM.L(A7)+,\1ŠMEXITŠENDCŠMOVEM.\0(A7)+,\1ŠENDM *A*‚Macrotoreservestorageinanoffsetblock.‚Invokeasfollows:*ŒRESERVE.<#ofbytes>‚