-59,,/;DSS1/ ; ; ; MODIFIED FOR FPP EMULATION (CONDITIONAL ON FPPEMU) ; FPPEMU DEFINED (OR NOT) IN ASSEMBLY PREFIX FILE ; BY DANIEL STEINBERG 18-JAN-79 ; ; MODIFIED TO FORBID WILD CARDS IN FILE SPECS (THEY USED TO ONLY MATCH ; THE FIRST OCCURRENCE OF A FILE (WHICH DEPENDS ONLY ON THE ORDER IN THE ; DIRECTORY FILE....NOT A GOOD THING TO COUNT ON) 18-JAN-79 ; ; MODIFIED TO STOP EXECUTION AT NEXT LINE NUMBER WHEN BRFLAG IS SET (CONTROL-C) ; (USED TO BE THAT BREAKS WOULDN'T OCCUR IF NEXT STATEMENT WAS BRANCHED TO) ; ; CONDITIONAL ON RSX11M ; THE LOAD COMMAND STARTS AT RECORD 3 OF THE .BTK TASK IMAGE ; (UNDER 11D, IT STARTS AT RECORD 2) ; ; ; CONDITIONAL ON M11EXT ---- ; MODIFIED TO EXTEND ITSELF ( 1K BYTES AT A TIME ) WHEN STORAGE RUNS OUT ; (SEE TSTU00) ; DANIEL STEINBERG 13-FEB-79 -168,,/;DSS1/ .IF DF,M11EXT ;IF EXTEND TASK .IIF NDF,RSX11M .ERROR ;MUST BE RSX11M .IIF NDF,SNGUSR .ERROR ;SNGUSR MUST BE DEFINED .MCALL EXTK$S ;EXTEND TASK DIRECTIVE .ENDC -446,,/;DSS1/ BITB #CS.WLD,CSIBLK+C.STAT ;WILDCARD IN FILESPEC? BNE CSINT4 ;YES....ERROR -1112,1112,/;DSS1/ .IF DF,M11EXT ;IF SELF-EXTENDING BHIS 20$ ;OK JSR PC,EXTEND ;NOT BIG ENOUGH, TRY TO GET MORE SPACE BHIS TSTU00 ;!!!DID IT!!!...NOW TRY THAT SUCKER AGAIN .ENDC 20$: RTS PC .IF DF,M11EXT ;IF SELF-EXTENDING EXTEND: EXTK$S #16. ;TRY TO EXTEND 16*32 WORDS (1024 BYTES) BCS 10$ ;NO GOOD MOV R0,-(SP) ;SUCCESSFUL...SHUFFLE DYNAMIC AREA MOV R1,-(SP) MOV R2,-(SP) MOV #2000,R2 ;1024. BYTES...OFFSET MOV ENDUSR,R1 ;GET THE OLD HIGH POINT MOV R1,R0 ;SUBTRACT OLD LOW POINT TO GET SUB STGOSB,R0 ;NUMBER OF BYTES TO SHUFFLE ADD R2,ENDUSR ;ADJUST ALL THE PTRS IN THE MIDDLE ADD R2,STUFDB ADD R2,STFONX ADD R2,STGOSB ADD R1,R2 ;SET DESTINATION PTR ASR R0 ;# WORDS (SHUFFLE INCLUSIVE OF STGOSB) BEQ 1$ ;DONE! 5$: MOV -(R1),-(R2) ;SHUFFLE (NOT @ENDUSR) TIL AFTER @STGOSB SOB R0,5$ 1$: MOV (SP)+,R2 ;RESTORE REGS MOV (SP)+,R1 MOV (SP)+,R0 CLC 10$: RTS PC .ENDC -1841,1843,/;DSS1/ INIT02: .IF DF,FPPEMU ;IF FPP EMULATION .IFF ;IF NOT TST FPEXFL ;ANY FLOATING POINT ERRORS? BEQ 1$ ;IF NOT, SKIP SUBROUTINE .IFTF ;EITHER WAY JSR PC,FPERMS ;IF SO, PROCESS THEM .ENDC -1873,1879,/;DSS1/ 7$: TST RUNF ;IS RUN MODE SET BEQ INIT19 ;JUMP IF NOT MOV LINEHD,R5 ;GET CURRENT LINE HEADER SUB #4,R5 ;AND POINT TO NEXT LINE HEADER INIT13: TST BRFLAG ;SEE IF BREAK SET BNE INIT26 ;IF SET, STOP CMP R5,BOLNHD ;AT END OF PROGRAM? -2120,2123,/;DSS1/ ASSM00:: MOV R3,-(SP) ;SAVE LEN OF LINE MOV R0,-(SP) ;AND LINE NUMBER 555$: JSR PC,UPUSRD ;MOVE UP LINE NUMBERS -2128,2128,/;DSS1/ BGT 2$ ;IF OK, BRANCH .IF DF,M11EXT ;IF SELF-EXTENDING JSR PC,EXTEND ;TRY TO GET MORE ROOM BCC 555$ ;!!GOT IT!!---NOW GO INSERT LINE .ENDC -2771,2773,/;DSS1/ < .IF DF,RSX11M ;IF 11-M MOV #3,R2 .IFF ;IF 11-D OR IAS MOV #2,R2 .ENDC CLR R3 ;TO POINT TO ZEROTH BYTE JSR PC,.POINT ;OF 2ND OR 3RD BLOCK (RECORD) /