X-Git-Url: http://git.sky-visions.com/cgi-bin/gitweb.cgi/retro-software/dec/tops10/v4.5.git/blobdiff_plain/cda2ba6d27526e5ef6f27f7b3391cfb55055bf2e..8975ed2f727e4bb0190f22b1401821e5981cf7c2:/src/ptpser.mac diff --git a/src/ptpser.mac b/src/ptpser.mac index 9eca6b3..c26abd9 100644 --- a/src/ptpser.mac +++ b/src/ptpser.mac @@ -5,21 +5,22 @@ XP VPTPSR,401 EXTERNAL PTPCHN, PTPSAV, ADVBFE, ITMCT1, SETIOD, SETBYT, IOSET, CKS12 EXTERNAL ILLINP, OUT, WAIT1,PTPCHL,PIOMOD -EXTERNAL SETACTSTOIOS -INTERNAL PTPINI,PTPDSP +EXTERNAL SETACT,STOIOS +INTERNAL PTPINT,PTPDSP ;PTP DEVICE DATA BLOCK LINKAGE ENTRY PTPSER - PTPSER: - , PARAMETER ASSIGMENTS + +, PARAMETER ASSIGMENTS + , PTP CONTROL REGISTER PTPDON=10 , FORMAT CONTROL - PDPFDN=200 + PTPFDN=200 , SPECIAL IO STATUS WORD ASSIGNMENTS IODISC=400000 @@ -33,7 +34,8 @@ PTPSER: RUBOUT=377 HORTAB=11 VERTAB=213 - FORMED=14 + FORMFD=14 + IFN FTCHECK+FTMONP,< EXTERNAL PTPDDB,PTPIOS,PTPPTR,PTPADR,PTPCTR,PTPCNT,PTPCHA,PTPSIO,PTPCON @@ -58,7 +60,8 @@ PTPCHA: 0 PTPSIO: 0 PTPCON: 0 > - ,PTP SERVICE DISPATCH TABLE + +,PTP SERVICE DISPATCH TABLE JRST PTPINI ;INITILIZE JRST PTPREL ;HUNG DEVICE TIME-OUT ERROR, PTPDSP: JRST PTPREL ;RELEASE @@ -71,6 +74,8 @@ PTPREL: CONO PTP,0 POPJ PDP, ;RETURN + + PTPCLS: PUSHJ PDP,OUT ;OUTPUT REMAINING BUFFERS PUSHJ PDP,WAIT1 ;WAIT FOR IOACT=0. MOVE IOS,PTPIOS ;C(IOS):=C(PTPIOS) @@ -78,14 +83,15 @@ PTPCLS: PUSHJ PDP,OUT ;OUTPUT REMAINING BUFFERS PUSHJ PDP,SETACT ;SET ACTIVE FLAG,STORE IOS,AND ;RESET HUNG DEVICE TIMEOUT COUNT MOVEI TAC,200 - MOVEM TAC,PTRCNT ;PTPCNT:=200 + MOVEM TAC,PTPCNT ;PTPCNT:=200 MOVEI TAC,PTPDON ;SET CONSO FLAG HRRM TAC,PTPCON MOVEI TAC,PTPCHN ;TAC:=PTPCHN,PI CHANNEL ASSIGNMENT CONO PTP,PTPDON(TAC) ;DONE FLAG:=1, ASSIGN PI CHANNEL JRST WAIT1 ;WAIT FOR IOACT=0, ALL BUFFERS FINISHED - PTPOUT: TLZE IOS,IOBEG ;VIRGIN DEVICE?> (IOBEG:=0) - JRST PTPIN0 ;YES + +PTPOUT: TLZE IOS,IOBEG ;VIRGIN DEVICE?> (IOBEG:=0) + JRST PTPIN2 ;YES PTPIN1: TLZ IOS,IODISC ;CLEAR DISCONNECT BIT @@ -98,7 +104,6 @@ PTPIN1: POPJ PDP, ;RETURN PTPIN2: LDB TAC,PIOMOD - TLO IOS, IOFST+PTPFED+IO ;IOFST:=PTPFED:=IO:=1 TLZ IOS,PTPBIN+PTPIB ;CLEAR BINARY AND IMAGE BINARY BITS CAIN TAC,IB ;IMAGE BINARY @@ -111,7 +116,9 @@ PTPIN2: LDB TAC,PIOMOD HLLM TAC,PTPPTR ;PTPPTR0-5:=PTPPTR12-13:=0,PTPPTR6-11:=BYTE ;SIZE; PTPPTR14-17:=PROG JRST PTPIN1 - ,PUNCH INTERRUPT SERVICE + +,PUNCH INTERRUPT SERVICE + PTPINT: CONSO PTP,@PTPCON JRST PTPINT @@ -152,9 +159,10 @@ PTPB1: MOVEI TAC,5 ;PTPCNT:=5 MOVEM TAC,PTPCNT MOVE DAT,@PTPPTR ;PTPCHA:=OUTPUT DATA WORD AOS PTPPTR ;PTRPTR:=C(PTRPTR)+1. ADVANCE ITEM POINTER. - MOVEM DAT,PTRCHA + MOVEM DAT,PTPCHA JRST PTPXIT - PTP3: DATA PTP,PTPCHA ;PUNCH CHARACTER + + PTP3: DATAO PTP,PTPCHA ;PUNCH CHARACTER TRNE IOS,14 ;IS MODE AN ALPHA MODE JRST PTP1 ;NO MOVE DAT,PTPCHA @@ -201,10 +209,10 @@ PTP5: TLO IOS,IODISC ;IODISC:=1 PTPBN: HRRZ TAC1,PTPADR ;TAC1:=BUFFER ADDRESS PUSHJ PDP,CKS12 ;TAC:=CALCULATE CHECKSUM ADD TAC1, PTPADR - HLLM TAC,@TAC1 ;STORE CHECKSUM IN LEFT HALF OF FIRST BUFFER WORD, - + HLLM TAC,@TAC1 ;STORE CHECKSUM IN LEFT HALF OF FIRST BUFFER DATA WORD, JRST PTPB1 - PTPADV: PUSHJ PDP,ADVBFE ;ADVANCE BUFFER + +PTPADV: PUSHJ PDP,ADVBFE ;ADVANCE BUFFER JRST PTPDSC ;EXIT1. NEXT BUFFER EMPTY TLZE IOS,IOW ;IN A WAIT? IOW:=0 PUSHJ PDP,SETIOD ;YES. IOWS:=1 @@ -222,13 +230,12 @@ PTP9: TLZ IOS,IOFST ;IOFST:=0 TLNN IOS,PTPIB ;IMAGE BINARY? JRST PTP1 AOS PTPPTR ;YES - SOS PTPCTR JRST PTPB1 -PTP91: POINT 6,PTRPTR,11 +PTP91: POINT 6,PTPPTR,11 -PTRP1: MOVEI DAT,RUBOUT ;PTPCHA:=RUBOUT +PTPP1: MOVEI DAT,RUBOUT ;PTPCHA:=RUBOUT MOVEM DAT,PTPCHA TLO IOS,PTPEOL ;PTPEOL:=1 JRST PTPXIT