perm filename IOSER.DIF[S,AIL] blob
sn#090715 filedate 1974-03-12 generic text, type T, neo UTF8
1) IOSER vs. 2) IOSER[CMU,AIL] SRCCOM 03-12-74 16:03 PAGES 1,1
******** IOSER **** PAGE 22
1) CAIGE TEMP,10 ;MAKE SURE AT LEAST BINARY MODE
1) CMU <
1) CAIN TEMP,4 ;CMU HAS A WIERD MODE
1) SKIPA
1) >;CMU
1) ERR <ARRYOUT: mode must be '14,'10, or '17, not >,6
*** IOSER[CMU,AIL] *** PAGE 22
2) 01725 CMU <
2) 01730 ;;=B4= 1 OF 13 -- FOR CMU SPECIAL MODES.
2) 01740 MOVEI Z,1 ;ASSUME NOT IMP MODE
2) 01755 CAIN TEMP,3 ;IS THE MODE 3?
2) 01770 TRZA Z,-1 ; YES - CMU 32-BIT IMP MODE.
2) 01777 ; WE WILL USE Z BOTH AS SIGNAL AND AS
2) 01780 ; A GUARANTEED 0 THAT CAN BE USED FOR A DPB
2) 01790 CAIN TEMP,4 ; (THIS ONE IS CMU-IMAGE MODE)
2) 01792 JRST OUTRAY ; THEN OKAY, NOT DUMP MODE EITHER.
2) 01793 ;;=B4=
2) 01795 >;CMU
2) 01800 CAIGE TEMP,10 ;MAKE SURE AT LEAST BINARY MODE
2) 02300 ERR <ARRYOUT: mode must be '14,'10, or '17, not >,6
******** IOSER **** PAGE 22
1) IBP OBP(CDB) ;MAKE SURE PTRS TO FIRST WORD
1) MOVE C,OBP(CDB) ;"TO" ADDR
*** IOSER[CMU,AIL] *** PAGE 22
2) 03625 CMU <
2) 03630 ;;=B4= 2 OF 13
2) 03643 CAIN Z,0 ;IMP MODE?
2) 03661 LSH E,-2 ;DIVIDE BY 4 TO GET WORD COUNT
2) 03666 ;;=B4=
2) 03679 >;CMU
2) 03700 IBP OBP(CDB) ;MAKE SURE PTRS TO FIRST WORD
2) 03720 CMU <
2) 03725 ;;=B4= 3 OF 13
2) 03740 CAIN Z,0 ;IMP MODE?
2) 03760 DPB Z,[POINT 6,OBP(CDB),5]
2) 03765 ;;=B4=
2) 03780 >;CMU
2) 03800 MOVE C,OBP(CDB) ;"TO" ADDR
******** IOSER **** PAGE 22
1) MOVEM E,OCOWNT(CDB) ;
*** IOSER[CMU,AIL] *** PAGE 22
2) 05920 CMU <
2) 05925 ;;=B4= 4 OF 13
1) IOSER vs. 2) IOSER[CMU,AIL] SRCCOM 03-12-74 16:03 PAGES 22,22
2) 05940 CAIN Z,0 ;IMP MODE?
2) 05960 LSH E,2 ;MULTIPLY BY 4 FOR BYTE COUNT
2) 05965 ;;=B4=
2) 05980 >;CMU
2) 06000 MOVEM E,OCOWNT(CDB) ;
******** IOSER **** PAGE 23
1) CAIGE TEMP,10
1) CMU <
1) CAIN TEMP,4 ;CMU HAS A WIERD MODE
1) SKIPA
1) >;CMU
1) ERR <ARRYIN: mode must be '10 or '14 or '17, not >,6
*** IOSER[CMU,AIL] *** PAGE 23
2) 01425 CMU <
2) 01427 ;;=B4= 5 OF 13
2) 01430 MOVEI Z,1 ;ASSUME NOT IMP MODE
2) 01435 CAIN TEMP,3 ;IS THE MODE 3?
2) 01440 TRZA Z,-1 ; YES - CMU 32-BIT IMP MODE.
2) 01455 CAIN TEMP,4 ;IF ONE OF THE SPECIAL CMU MODES,
2) 01457 JRST INARY ; THEN OKAY, NOT DUMP MODE EITHER
2) 01470 ;;=B4=
2) 01490 >;CMU
2) 01500 CAIGE TEMP,10
2) 02000 ERR <ARRYIN: mode must be '10 or '14 or '17, not >,6
******** IOSER **** PAGE 23
1) IBP IBP(CDB) ;MAKE SURE PTS TO NEXT
*** IOSER[CMU,AIL] *** PAGE 23
2) 03125 CMU <
2) 03130 ;;=B4= 6 OF 13
2) 03150 CAIN Z,0 ;IMP MODE?
2) 03175 LSH E,-2 ;DIVIDE BY 4 TO GET WORD COUNT
2) 03180 ;;=B4=
2) 03187 >;CMU
2) 03200 IBP IBP(CDB) ;MAKE SURE PTS TO NEXT
******** IOSER **** PAGE 23
1) SUBI B,1 ;PREPARE TO CORRECT BP
*** IOSER[CMU,AIL] *** PAGE 23
2) 04825 CMU <
2) 04830 ;;=B4= 7 OF 13
2) 04850 CAIE Z,0 ;IMP MODE?
2) 04862 JRST .+3
2) 04875 LSH E,2 ;MULTIPLY BY 4 FOR BYTE COUNT
1) IOSER vs. 2) IOSER[CMU,AIL] SRCCOM 03-12-74 16:03 PAGES 23,23
2) 04881 DPB Z,[POINT 6,IBP(CDB),5]
2) 04886 ;;=B4=
2) 04887 >;CMU
2) 04900 SUBI B,1 ;PREPARE TO CORRECT BP
******** IOSER **** PAGE 23
1) CAIL TEMP,10 ;MUST BE BINARY MODE
1) CAILE TEMP,14 ;AND NOT DUMP MODE
1) ERR <INOUT (OUTPUT SIDE): ILLEGAL DATA MODE>
1) PUSH P,CDB ;SAVE -
*** IOSER[CMU,AIL] *** PAGE 23
2) 12616 CMU <
2) 12621 ;;=B4= 8 OF 13
2) 12632 MOVEI Z,1
2) 12648 CAIN TEMP,3 ;IS THE MODE 3
2) 12664 TRZA Z,-1 ; YES!!!
2) 12666 CAIN TEMP,4 ;OR CMU IMAGE MODE?
2) 12667 JRST .+4 ;UGLY, BE CAREFUL OF CODE CHANGES!
2) 12669 ;;=B4=
2) 12680 >;CMU
2) 12700 CAIL TEMP,10 ;MUST BE BINARY MODE
2) 12800 CAILE TEMP,14 ;AND NOT DUMP MODE
2) 12900 ERR <INOUT (OUTPUT SIDE): ILLEGAL DATA MODE:>,6
2) 13000 PUSH P,CDB ;SAVE -
******** IOSER **** PAGE 23
1) SETZM @ENDFL(CDB) ;CEAR ERROR INDICATOR
1) LDB TEMP,[POINT 4,DMODE(CDB),35]
1) CAIL TEMP,10
1) CAILE TEMP,14
1) ERR <INOUT (INPUT SIDE): ILLEGAL DATA MODE>
1) SKIPGE B,-3(P) ;# OF WORDS
*** IOSER[CMU,AIL] *** PAGE 23
2) 13500 SETZM @ENDFL(CDB) ;CLEAR ERROR INDICATOR
2) 13600 LDB TEMP,[POINT 4,DMODE(CDB),35]
2) 13616 CMU <
2) 13621 ;;=B4= 9 OF 13
2) 13632 MOVEI Y,1
2) 13648 CAIN TEMP,3 ;IS THE MODE 3
2) 13664 TRZA Y,-1 ;YES!!!
2) 13666 CAIN TEMP,4 ;OR CMU IMAGE MODE
2) 13668 JRST .+4 ;CAREFUL OF RELATIVE JUMPS!
2) 13669 ;;=B4=
2) 13680 >;CMU
2) 13700 CAIL TEMP,10
2) 13800 CAILE TEMP,14
1) IOSER vs. 2) IOSER[CMU,AIL] SRCCOM 03-12-74 16:03 PAGES 23,23
2) 13900 ERR <INOUT (INPUT SIDE): ILLEGAL DATA MODE:>,6
2) 14000 SKIPGE B,-3(P) ;# OF WORDS
******** IOSER **** PAGE 23
1) IBP IBP(CDB) ;MAKE SURE POINT TRIGHT
*** IOSER[CMU,AIL] *** PAGE 23
2) 14420 CMU <
2) 14425 ;;=B4= 10 OF 13
2) 14440 CAIN Y,0 ;IMP MODE?
2) 14460 LSH E,-2 ;DIVIDE BY 4 TO GET WORD COUNT
2) 14465 ;;=B4=
2) 14480 >;CMU
2) 14500 IBP IBP(CDB) ;MAKE SURE POINT TRIGHT
******** IOSER **** PAGE 23
1) CAML E,OCOWNT(CDB) ;=MIN(B,ICOWNT,OCOWNT)
1) MOVE E,OCOWNT(CDB)
1) MOVEI D,(C) ;MAKE BLT TERMINATOR
*** IOSER[CMU,AIL] *** PAGE 23
2) 15650 NOCMU <
2) 15655 ;;=B4= 11 OF 13
2) 15700 CAML E,OCOWNT(CDB) ;=MIN(B,ICOWNT,OCOWNT)
2) 15800 MOVE E,OCOWNT(CDB)
2) 15805 >;NOCMU
2) 15850 CMU <
2) 15855 CAMGE E,OCOWNT(CDB) ;=MIN(B,ICOWNT,OCOWNT)
2) 15860 JRST .+4
2) 15865 MOVE E,OCOWNT(CDB)
2) 15875 CAIN Z,0 ;IMP MODE?
2) 15887 LSH E,-2 ;DIVIDE BYTE COUNT BY 4
2) 15890 ;;=B4=
2) 15893 >;CMU
2) 15900 MOVEI D,(C) ;MAKE BLT TERMINATOR
******** IOSER **** PAGE 23
1) SUBM E,OCOWNT(CDB) ;UPDATE WORD COUNT
*** IOSER[CMU,AIL] *** PAGE 23
2) 16414 CMU <
2) 16419 ;;=B4= 12 OF 13
2) 16428 CAIE Z,0 ;IMP MODE?
2) 16442 JRST .+3
2) 16456 LSH E,2 ;MULTIPLY BY 4 FOR BYTE COUNT
2) 16470 DPB Z,[POINT 6,OBP(CDB),5]
2) 16475 ;;=B4=
2) 16484 >;CMU
1) IOSER vs. 2) IOSER[CMU,AIL] SRCCOM 03-12-74 16:03 PAGES 23,23
2) 16500 SUBM E,OCOWNT(CDB) ;UPDATE WORD COUNT
******** IOSER **** PAGE 23
1) SUBM E,ICOWNT(CDB) ;UPDATE WORD COUNT
*** IOSER[CMU,AIL] *** PAGE 23
2) 16914 CMU <
2) 16919 ;;=B4= 13 OF 13
2) 16928 CAIE Y,0 ;IMP MODE?
2) 16942 JRST .+3
2) 16956 LSH E,2 ;MULTIPLY BY 4 FOR BYTE COUNT
2) 16970 DPB Y,[POINT 6,IBP(CDB),5]
2) 16975 ;;=B4=
2) 16984 >;CMU
2) 17000 SUBM E,ICOWNT(CDB) ;UPDATE WORD COUNT
******** IOSER **** PAGE 25
1) ;;%BG%
1) LCASE: MOVSS B
*** IOSER[CMU,AIL] *** PAGE 25
2) 07525 ;;%BG% =A1=
2) 07700 LCASE: MOVSS B