.TITLE P2GO CHAIN FROM NBS PASCAL PASS 1 TO PASS 2 .IDENT /810504/ .MCALL .PRINT .GLOBL CEXIT .CSECT P2GO JSW=44 ;JOB STATUS WORD CHNFLG=400 ;BIT 8 OF JSW IS CHAIN FLAG ; THIS ROUTINE IS CALLED BY PASS 1 OF NBS PASCAL FOR RT11. ; IT ASSUMES THAT PASS1 WAS CHAINED TO BY 'PASCAL' WITH THE ; COMMAND LINE IN LOCATIONS 510 TO 633. ; THERE ARE ALSO TWO FLAGS TO CHECK FOR STACK OVERFLOW: ; LOCATION 634 SHOULD BE 0 AND 636 SHOULD BE -1. ; AUTHOR: PAUL LUSTGRAAF IOWA STATE UNIVERSITY ; P2GO:: BIT #CHNFLG,@#JSW ;WERE WE CHAINED TO? BEQ QUIT ;IF NOT, WE CAN'T CHAIN TO PASS 2 CMP @#636,#-1 ;HAS CHAIN AREA BEEN CORRUPTED? BNE ERROR ;IF SO, BRANCH TST @#634 ;ANOTHER TEST FOR CORRUPTION BNE ERROR MOV PASS2,@#500 ;MOVE 'SY:P2FP.SAV' TO 500 MOV PASS2+2,@#502 ;FOR CHAIN MOV PASS2+4,@#504 MOV PASS2+6,@#506 JSR PC,CEXIT ;CALL PASCAL ROUTINE TO CHAIN ON EXIT QUIT: RTS PC ;RETURN ERROR: .PRINT #BADCHN ;PRINT ERROR MSG RTS PC ;RETURN TO PASS 1 FOR NORMAL RETURN PASS2: .RAD50 /SY NBSPS2SAV/ .NLIST BEX BADCHN: .ASCIZ /STACK OVERFLOW IN PASS 1/ .EVEN .END