Trailing-Edge
-
PDP-10 Archives
-
bb-bt99g-bb
-
movgen.c07
There is 1 other file named movgen.c07 in the archive. Click here to see a list.
INS 19/1 ;07C1
;JEH 28-NOV-83 [1507] Make handling of figurative constants more
; consistent
;JEH 28-NOV-83 [1506] Trigger FIPS Flagger on figurative constant
; extensions
;JEH 10-OCT-83 [1500] Warning if high or low values to numeric field
;JEH 06-Jun-83 [1473] Don't produce truncation warnings on RPW line/pg
; counters
REP 21/6 ;07C2
LDB TE,DA.EDT ;IS IT
WIT
LDB TE,DA.LPC## ;[1473] Is source a RPW line/page ctr?
JUMPE TE,MOVG4B ;[1473] No
MOVE TE,ESIZEB ;[1473] Yes, don't want a truncation warning
CAIGE TE,^D10 ;[1473] but don't make it larger
MOVEM TE,ESIZEA ;[1473]
MOVG4B: LDB TE,DA.EDT ;IS IT
INS 37/10 ;07C3
REP 47/10 ;07C4
JRST (TC)
WIT
IFN ANS74,<
SKIPE FLGSW## ;[1506] IF FIPS NEEDED
JRST MXX.6B ;[1506] PERFORM FOLLOWING TESTS
>; END ANS74
MOVE TA,EFLAGA ;[1500] GET THE TYPE OF FIG CON.
CAIL TA,3 ;[1507][1500] 3 = QUOTE., 4 = HIVAL.
CAIL TA,6 ;[1507][1500] 5 = LOVAL.
JRST (TC)
MXX.6B: HRRZ TA,EBASEB ;[1506][1500] IS DESTINATION A DATAB ITEM?
LDB TB,LNKCOD ;[1500]
CAIE TB,CD.DAT ;[1500]
JRST (TC) ;[1500] NO, ERROR CAUGHT ELSEWHERE
PUSHJ PP,LNKSET ;[1500]
LDB TB,DA.CLA ;[1500] GET ITS CLASS
CAIE TB,%CL.NUM ;[1500] IT'S NOT NUMERIC, SO
JRST (TC) ;[1500] CONTINUE WITH 'MOVE' INSTRUCTION
LDB TB,DA.USG ;[1500] GET ITS USAGE
HRRZ TA,EFLAGA ;[1506] AND TYPE OF FC
CAIN TA,3 ;[1507] IS IT QUOTE.?
JRST BADFIG ;[1507] YES, NOT IN NUMERIC FIELDS
IFN ANS74,<
CAIG TB,DSMODE ;[1506] IF "B" (DEST) IS DISPLAY MODE, NUMERIC
CAIN TA,2 ;[1506] AND "A" IS NOT ZERO
JRST MXX.6C ;[1506]
SKIPN FLGSW## ;[1506] AND FIPS FLAGGING
JRST MXX.6C ;[1506]
PUSH PP,TC ;[1506] SAVE ROUTINE ADDRESS
MOVE TC,CUREOP ;[1506] GET "B" OPERAND ADDRESS
MOVE TC,(TC) ;[1506] GET FIRST WORD OF OPERAND PAIR
LDB LN,TCLN ;[1506] LOAD LINE NBR
LDB CP,TCCP ;[1506] LOAD CP
MOVEI TA,%LV.NS ;[1506] SET NON-STANDARD FLAGGING
PUSHJ PP,FLG.ES## ;[1506] CALL FLAGGER ROUTINE
POP PP,TC ;[1506] RESTORE TC
HRRZ TA,EFLAGA ;[1506] RESTORE TA
MXX.6C: CAIE TA,4 ;[1506] IF FIGURE CONSTANT IS HI-VALUES
CAIN TA,5 ;[1506] OR LOW-VALUES
SKIPA ;[1506] SKIP
JRST (TC) ;[1506]
>; END ANS74
MXX.6D: HRRZI DW,E.657 ;[1506][1500] GENERAL TYPE WARNING
CAIE TA,4 ;[1500] HIGH-VALUES?
JRST MXX.6E ;[1506][1500] NO
HRRZI DW,E.655 ;[1500] YES
CAILE TB,%US.DS ;[1500] AND NON-DISPLAY?
HRRZI DW,E.656 ;[1500] YES
MXX.6E: PUSH PP,TC ;[1506][1500] SAVE TC
PUSHJ PP,OPNWRN ;[1500] PRINT OUT WARNING
POP PP,TC ;[1500] RESTORE TC
JRST (TC) ;[1500] CONTINUE ON
REP 28/65 ;07C5
JRST @MZX.(TB) ;GO TO PROPER ROUTINE
WIT
IFN ANS74,<
HLRZ TC, OPERND ;[1506] GET "A" OPERAND ADDRESS
MOVE TC, (TC) ;[1506] GET FIRST WORD
SKIPE FLGSW ;[1506] NO FLAGGER WANTED
TLNN TC, GNALL ;[1506] IF 'ALL 0', FLAG AS EXTENSION
>;
JRST @MZX.(TB) ;GO TO PROPER ROUTINE
IFN ANS74,<
MOVEI TC, @MZX.(TB) ;[1506] STORE ROUTINE'S ADDRESS
JRST MXX.6B ;[1506] SET UP FOR FLAGGER
>;
INS 14/66 ;07C6
JUMPE TC,MZC1. ;[1507] MLAC1. DIDN'T GEN CODE IF LIT = 0
REP 9/71 ;07C7
MLAC1.: HLRZ TA,OPERND ;[621] IS "ALL" SPECIFIED?
WIT
MLAC1.: MOVEI LN,EBASEA ;[1507]
PUSHJ PP,CONVNL ;[1507] CONVERT THE LITERAL TO BINARY
TSWF FERROR ;[1507] CONTINUE IF NO ERROR
POPJ PP, ;[1507]
SKIPG ESIZEA ;[1507] ANYTHING LEFT IN LITERAL?
JRST MLAC1A ;[1507] NO
TSWF FANUM ;[1507] NO QUOTED LITERALS
JUMPE TC,CPOPJ ;[1507] IF LITERAL = 0, EXIT NOW
HLRZ TA,OPERND ;[621] IS "ALL" SPECIFIED?
REP 13/71 ;07C8
MOVEI LN,EBASEA
PUSHJ PP,CONVNL
TSWF FERROR;
POPJ PP,
WIT
DEL 21/71 ;07C9
SKIPG ESIZEA ;ANYTHING LEFT IN LITERAL?
JRST MLAC1A ;NO
JUMPE TC,CPOPJ ;YES--IS VALUE ZERO?
REP 24/72 ;07C10
JUMPE TC,MZC1. ;0 IS SAME AS ZERO
PUSHJ PP,MFP%L0 ;NOT ZERO, GENERATE LITERAL
WIT
TRNE FANUM ;[1507] "0" IS NOT ZERO
JUMPE TC,MZC1. ;0 IS SAME AS ZERO
PUSHJ PP,MFP%L0 ;NOT ZERO, GENERATE LITERAL
PUSH PP,TC ;[1507] SAVE LITERAL
HLRZ TA,OPERND ;[1507] GET THE ADDRESS OF SRC OPERAND
MOVE TD,0(TA) ;[1507] GET FIRST WORD
TLNE TD,GNALL ;[1507] WAS 'ALL' SPECIFIED?
PUSHJ PP,BADALL## ;[1507] NOT ALLOWED
POP PP,TC ;[1507] RESTORE LITERAL
REP 31/82 ;07C11
WIT
SUM 47648