File: MULTI8.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text)
RALF V50A 8-APR-92 PAGE 1 /GENERAL MULTI8 BACKGROUND FUNCTIONS / / / VERSION 50A 29-MAY-80 WVDM / / /THE FOLLOWING IS A SET OF 8 MODE (RALF TYPE) /ROUTINES THAT ENABLE MULTI8 BACKGROUND FUNCTIONS /THESE ROUTINES ARE CALLABLE AT THE FORTRAN LEVEL / / CALL MULTI8(OPTION,VALUE1,VALUE2) / /THE FOLLOWING OPTIONS ARE SUPPORTED: / / 0 READ TIME OF DAY (HOURS,MINUTES) / 1 MACHINE (BACKGROUND, TERMINAL) / 2 DISABLE KEYBOARD ECHO (NO VALUES) / 3 ENABLE KEYBOARD ECHO (NO VALUES) / 4 NOT IMPLEMENTED / 5 NOT IMPLEMENTED / 6 SLEEP (NUMBER OF SECONDS,...) / 7 MULTI8 LOGICAL (LOGICAL,...) / 8 CPU TIME (VALUE [.1SECS],...) / 9 NOT IMPLEMENTED / 10 MULTI8 VERSION (VERSION CHAR,EDIT #) / 11 RELEASE !ALL! DEVICES (NO VALUES) / RALF V50A 8-APR-92 PAGE 2 SECT8 MULTI8 BSW=7002 MQA=7501 / BASE 0 00000 0006 STARTD 00001 1100 SETX XR0 00002 0167 00003 0610 FLDA% 0,1 /GET PTR TO FUNCTION ARG 00004 6201 FSTA 3 00005 0005 STARTF 00006 0601 FLDA% 3 /USER ARG TO FAC 00007 1050 JLT ERROR /NEGATIVE FUNCTION ? 00010 0072 00011 0020 ATX 0 /INTEGER AND PASS TO 8 CODE 00012 0030 XTA 0 /FP INTERPRETER 00013 2400 FSUB MXFUN /TOO BIG ? 00014 0067 00015 1060 JGT ERROR /YES, FATAL 00016 0072 00017 0006 STARTD 00020 0620 FLDA% 0,2 /GET FIRST EXTRA ARG 00021 6201 FSTA 3 /LEAVE 3 POINTING AT ARG FOR END 00022 0005 STARTF 00023 0601 FLDA% 3 /FIRST EXTRA ARG TO XR4 00024 0024 ATX 4 00025 0030 XTA 0 /GET BACK FUNCTION 00026 0017 ALN 7 /*2 00027 0006 STARTD 00030 1400 FADD JATAB /ADD BASE OF DISPATCH TABLE 00031 0041 00032 6400 FSTA DISPA 00033 0035 00034 0005 STARTF 00035 1030 DISPA, JA . 00036 0035 RALF V50A 8-APR-92 PAGE 3 00037 1030 M8TBL, JA TIME /0: 00040 0117 00041 1030 JATAB, JA M8TBL /1: BG&TERM SAME FORMAT AS TIME 00042 0037 00043 1030 JA NOECH /2: 00044 0074 00045 1030 JA NOECH /3: ECHOON SAME FORMAT AS NOECHO 00046 0074 00047 1030 JA ERROR /4: 00050 0072 00051 1030 JA ERROR /5: 00052 0072 00053 1030 JA TIME /6: SLEEP SAME AS TIME 00054 0117 00055 1030 JA M8TES /7: 00056 0100 00057 1030 JA MACCR /8: 00060 0104 00061 1030 JA ERROR /9: 00062 0072 00063 1030 JA TIME /10:VERSION SAME FORMAT AS TIME 00064 0117 00065 1030 JA NOECH /11:RELEASE SAME AS NOECH 00066 0074 00067 0004 MXFUN, F 11.0 00070 2600 00071 0000 RALF V50A 8-APR-92 PAGE 4 EXTERN #ARGER 00072 4000 ERROR, TRAP4 #ARGER 00073 0000 / 00074 4000 NOECH, TRAP4 GIOT 00075 0143 00076 1030 JA GOBAK /NO ARGS 00077 0131 / 00100 4000 M8TES, TRAP4 M8T8 00101 0133 00102 1030 JA CONT 00103 0121 / 00104 4000 MACCR, TRAP4 GIOT 00105 0143 /MQ IS IN LOW-ORDER XR6 00106 0030 XTA 0 00107 0025 ATX 5 /AC TO HIGH-ORDER XR5 00110 0104 LDX 27,4 /27 TO EXP XR4 00111 0027 00112 0400 FLDA XR4 /NOW GET FP NUMBER 00113 0173 00114 0004 FNORM 00115 1030 JA CONT2 /GIVE BACK VALUE 00116 0122 / 00117 4000 TIME, TRAP4 GIOT 00120 0143 / ... 00121 0034 CONT, XTA 4 /ANSWER IS IN XR4,XR5 00122 6601 CONT2, FSTA% 3 /GIVE ANS TO CALLER (3 STILL SET!) 00123 0006 STARTD 00124 0630 FLDA% 0,3 /THIRD ARGUMENT 00125 6201 FSTA 3 00126 0005 STARTF 00127 0035 XTA 5 00130 6601 FSTA% 3 /GIVE BACK THIRD ARG OR RUBBISH 00131 0210 GOBAK, FLDA 30 /RTN TO CALLER 00132 0007 JAC RALF V50A 8-APR-92 PAGE 5 00133 0000 M8T8, 0 00134 7201 CLA IAC 00135 6254 6254 /SKIP ON MULTI8 00136 7200 CLA 00137 3373 DCA XR4 /SET LEFT BYTE 00140 3374 DCA XR5 /CLEAR RIGHT BYTE 00141 6203 CIF CDF 0 00142 5733 JMP% M8T8 / 00143 0000 GIOT, 0 00144 1373 TAD XR4 /GET ARG TO GIOT 00145 3351 DCA GARG 00146 1367 TAD XR0 00147 6770 6770 00150 5352 JMP .+2 00151 7402 GARG, HLT 00152 3367 DCA XR0 /NOW XR0 = GIOT AC 00153 1367 TAD XR0 00154 0366 AND M77 00155 3374 DCA XR5 /RIGHT BYTE 00156 1367 TAD XR0 00157 7002 BSW 00160 0366 AND M77 00161 3373 DCA XR4 /LEFT BYTE 00162 7501 MQA 00163 3375 DCA XR6 /MQ CONTENTS 00164 6203 CIF CDF 0 00165 5743 JMP% GIOT 00166 0077 M77, 77 / 00167 0000 XR0, 0 /GETS FUNCTION ON INPUT, GIOT AC ON OUTPUT 00170 0001 XR1, 1 /FOR ARG1 00171 0002 XR2, 2 /FOR ARG2 00172 0003 XR3, 3 /FOR ARG3 00173 0000 XR4, 0 /GETS LEFT BYTE ALSO: FP EXP 00174 0000 XR5, 0 /GETS RIGHT BYTE FP HI 00175 0000 XR6, 0 /GETS GIOT MQ FP LO 00176 0026 XR7, 26 /FOR MULTIPLYING INTEGER RALF V50A 8-APR-92 PAGE 5-1 NO ERRORS 28 SYMBOLS, NO ABS REFS # C 00000 #ARGER X 00000 #MAIN S 00000 BSW 07002 CONT 00121 CONT2 00122 DISPA 00035 ERROR 00072 GARG 00151 GIOT 00143 GOBAK 00131 JATAB 00041 MACCR 00104 MQA 07501 MULTI8 8 00177 MXFUN 00067 M77 00166 M8TBL 00037 M8TES 00100 M8T8 00133 NOECH 00074 TIME 00117 XR0 00167 XR1 00170 XR2 00171 XR3 00172 XR4 00173 XR5 00174 XR6 00175 XR7 00176