File MSPY2.SB (8k SABR macro assembler source file)

Directory of image this file is from
This file as a plain text file

/MSPY2.SB, PAGE 1 OF 10.	(5/19/72 - C.M.MOORE, RICE U., HOUSTON)
/
/PDP-12 PS/8 FORTRAN/SABR HELP DISPLAY ROUTINE 'IHELP(IFLAG)'
/THIS ROUTINE IS CALLED BY ROUTINE MAGSPY IN FILE MAGSPY.SB
/
	LAP
/
OPDEF TADI 1400 /MUST BE USED WITH LOC ON CURRENT PAGE
/
CNT1,	0
CNT2,	0
CNT3,	0
PNT1,	0
PNT2,	0
PNT3,	0
PNT4,	0
IFLAG,	0
/
/FUNCTION IHELP(IFLAG)
	ENTRY IHELP
IHELP,	BLOCK 2
	CLA
	TAD IHELP
	DCA CDFHLP
CDFHLP,	HLT /CHANGE TO DF OF CALLING PROG
	TADI IHELP#
	DCA CDFARG
	INC IHELP#
	TADI IHELP#
	DCA PNT2
	INC IHELP#
CDFARG,	HLT /CHANGE TO DF OF ARG
	TADI PNT2
	DCA IFLAG /CARRIAGE-RETURN FLAG
	TAD CNT1
	SPA CLA
	JMP SETUP /START NEW DISPLAY AT LAST FRAME OF PREVIOUS DISPLAY
/

/MSPY2.SB, PAGE 2 / HELPER, TAD I HMAXP /CHANGE TO CURRENT DF DCA CNT1 /# OF FRAMES TAD H1P DCA PNT1 SETUP, TAD PNT1 /SET UP FOR NEXT FRAME IAC DCA PNT2 TAD I PNT2 /CHANGE TO CURRENT DF CIA TADI PNT1 DCA CNT2 /# OF LINES IN FRAME TADI PNT1 DCA PNT2 FRAME, TAD PNT2 /RESET FRAME POINTERS DCA PNT3 TAD CNT2 DCA CNT3 FLOOP, TADI PNT3 /LOOP TO DISPLAY LINES IN FRAME DCA ARG1# TAD ARG1# IAC DCA ARG2# TAD ARG2# IAC DCA ARG3# CALL 3,DISP9 /DISPLAY NEXT LINE ARG1, ARG HELP1 /X-COORD (NEGATIVE FOR FULL-SIZED CHAR DISPLAY) ARG2, ARG HELP1 /Y-COORD ARG3, ARG HELP1 /START OF TEXT INC PNT3 ISZ CNT3 JMP FLOOP CALL 1,KEYBD /CHECK IF ANYTHING TYPED ON TELETYPE ARG HELP1 SNA JMP FRAME /NOTHING TYPED YET DCA CDFARG TAD CMAX DCA CNT3 /NUMBER OF TERMINATING CHARACTERS TAD C1P DCA PNT3 DCA PNT4 /CHARACTER INDEX NUMBER CHLUP, TADI PNT3 /GET CHAR TAD CDFARG SNA CLA JMP CFOUND /CHAR FOUND INC PNT3 INC PNT4 ISZ CNT3 JMP CHLUP JMP FRAME /IGNORE ANY OTHER CHARACTERS /
/MSPY2.SB, PAGE 3 / /CHARACTER FOUND. CHECK FOR M OR CARRIAGE-RETURN CFOUND, CLA CMA /AC=-1 TAD PNT4 SNA JMP CR /CARRIAGE-RETURN TYPED SPA JMP MORE /M TYPED NDEX, IAC RETRN IHELP /RETURN WITH CHAR INDEX IN AC. / /M TYPED. ADVANCE HELP DISPLAY FRAME. MORE, CLA INC PNT1 ISZ CNT1 JMP SETUP JMP HELPER /CARRIAGE-RETURN TYPED. CHECK C-R FLAG. CR, TAD IFLAG SNA CLA JMP FRAME /IGNORE C-R. JMP NDEX /RETURN WITH 1 IN AC. / /TABLE OF HELP DISPLAY TERMINATION CHARACTERS. /EACH ENTRY IS THE NEGATIVE OF THE OCTAL CHARACTER VALUE. /THE FIRST CHARACTER MUST BE M. /THE SECOND CHARACTER MUST BE CARRIAGE-RETURN. /ANY REMAINING CHARACTERS ARE USER-DEFINED. / CMAX, -5 /NEGATIVE OF NUMBER OF CHARACTERS C1P, C1 /POINTS TO TABLE /CHARACTER TABLE C1, -315 /M (INDEX=0 : CAUSES FRAME ADVANCE) -215 /C-R (INDEX=1 : IGNORED IF IFLAG=0) -314 /L -304 /D -302 /B /END OF CHARACTER TABLE / /HELP FRAME POINTER TABLE. /EACH ENTRY POINTS TO THE ADDRESS OF THE FIRST TEXT LINE IN THE FRAME. /TABLE MUST TERMINATE WITH "HMAXP, HMAX". H1P, H1 /POINTS TO TABLE /START OF TABLE H1, F1 F2 F3 F4 F5 F6 F7 F8 F9 HMAXP, HMAX /END OF TABLE /
/MSPY2.SB, PAGE 4 / /TEXT POINTER TABLE. /CONTAINS TEXT ADDRESSES FOR LINES IN EACH HELP FRAME. /FRAME 1 F1, HELP1 HELP2 HELP3 HELP3A HELP4 HELP5 HELP5A HELP6 HELP7 /FRAME 2 F2, HELP8 HELP9 HELP10 HELP11 HELP12 HELP13 HELP14 HELP15 HLP15A /FRAME 3 F3, HELP16 HLP16A HLP16B HLP16C HELP17 HLP17A HLP17B HLP15A /FRAME 4 F4, HLP17D HELP18 HELP19 HELP20 HELP21 HELP22 HLP15A /FRAME 5 F5, HELP23 HELP24 HELP25 HELP26 HELP27 HELP28 HLP28A HLP15A /FRAME 6 F6, HELP29 HLP29A HELP30 HELP31 HLP15A /
/MSPY2.SB, PAGE 5 / /FRAME 7 F7, HELP32 HELP33 HLP33A HLP33B HLP33C HELP34 HLP34A HLP34B HLP34C HLP15A /FRAME 8 F8, HELP35 HELP36 HLP36A HELP37 HELP38 HELP39 HELP40 HLP15A /FRAME 9 F9, HELP41 HELP42 HELP43 HELP44 HELP45 HELP46 HELP47 HLP47A HELP48 HELP49 HMAX, -11 /NEGATIVE OF NUMBER OF HELP FRAMES. MUST TERMINATE TABLE. /END OF TEXT POINTER TABLE / / /HELP TEXT DISPLAY STRINGS /EACH STRING MUST START WITH THE X-Y COORDINATES OF ITS LOWER LEFT-HAND /CORNER, AND MUST END WITH THE @ CHARACTER. /IF THE X-COORD IS <0, THE ABSOLUTE VALUE IS USED, AND THE LINE IS /DISPLAYED WITH FULL-SIZED CHARACTERS. /IF THE X-COORD IS POSITIVE, HALF-SIZED CHARACTERS ARE USED. /A CPAGE PSUEDO-OP SHOULD BE USED WITH EACH STRING TO ENSURE THAT A /PAGE BOUNDARY DOES NOT SEPARATE THE X-Y COORDS FROM THEIR STRING. /
/MSPY2.SB, PAGE 6 / CPAGE 10 HELP1, -235;320 /1ST 2 NUMBERS OF EACH STRING ARE X-Y COORDS. TEXT /P D P - 1 2@/ CPAGE 6 HELP2, -301;220 TEXT 'P S / 8@' CPAGE 10 HELP3, -235;120 TEXT /M A G S P Y@/ CPAGE 14 HELP4, -125;-100 TEXT /PROGRAM EXPLANATION@/ CPAGE 27 HELP6, 30;-260 TEXT /TYPE M FOR MORE HELP DURING EXPLANATION@/ CPAGE 33 HELP5, 30;-200 TEXT /TYPE H FOR HELP AT ANY TIME DURING BLOCK DISPLAY@/ CPAGE 27 HELP5A, 30;-220 TEXT /(THIS EXPLANATION DISPLAY WILL REAPPEAR)@/ CPAGE 10 HELP7, 310;-360 TEXT /TYPE M NOW!@/ CPAGE 13 HELP3A, 253;40 TEXT '(5/19/72 VERSION)@' CPAGE 34 HELP8, 0;300 TEXT 'MAGSPY CAN DISPLAY ANY BLOCK ON ANY PS/8 I/O DEVICE@' CPAGE 31 HELP9, 0;140 TEXT /THE BLOCK IS SPECIFIED IN ONE OF THREE WAYS:@/ CPAGE 31 HELP10, 24;100 TEXT /1) DEVICE:FILE (DISPLAYS 1ST BLOCK OF FILE)@/ CPAGE 20 HELP11, 24;60 TEXT /2) DEVICE: AND BLOCK NUMBER@/ CPAGE 27 HELP12, 24;40 TEXT /3) LINCTAPE UNIT NUMBER AND BLOCK NUMBER@/ CPAGE 32 HELP13, 0;-100 TEXT 'METHODS 1 & 2 USE 256-WORD PS/8 BLOCKS, EACH OF@' CPAGE 34 HELP14, 0;-120 TEXT /WHICH CONSISTS OF 2 128-WORD PHYSICAL DEVICE BLOCKS@/ CPAGE 34 HELP15, 0;-200 TEXT /METHOD 3 USES BLOCKS OF ANY SIZE (UP TO 1000 OCTAL)@/ CPAGE 13 HLP15A, 0;-320 TEXT /(TYPE M FOR MORE)@/ /
/MSPY2.SB, PAGE 7 / CPAGE 33 HELP16, 0;300 TEXT 'TO DISPLAY A PS/8 BLOCK, TYPE D AND WAIT FOR THE@' CPAGE 24 HLP16A, 0;260 TEXT /COMMAND DECODER TO ECHO A STAR (*)@/ CPAGE 34 HLP16B, 0;160 TEXT /AFTER * APPEARS, SPECIFY THE DEVICE: OR DEVICE:FILE@/ CPAGE 21 HLP16C, 0;140 TEXT /FOLLOWED BY A CARRIAGE RETURN@/ CPAGE 22 HELP17, 50;40 TEXT /DSK: IS THE ASSUMED DEVICE NAME@/ CPAGE 25 HLP17A, 50;-40 TEXT /IF NO FILE IS SPECIFIED, MAGSPY WILL@/ CPAGE 30 HLP17B, 50;-60 TEXT /ASK FOR AN OCTAL BLOCK NUMBER BY TYPING B*@/ CPAGE 33 HLP17D, 0;300 TEXT /TO DISPLAY A LINCTAPE BLOCK, TYPE THE FOLLOWING:@/ CPAGE 26 HELP18, 0;140 TEXT /TYPE L TO SPECIFY LINCTAPE BLOCK LENGTH@/ CPAGE 26 HELP19, 0;100 TEXT /TYPE U TO SPECIFY LINCTAPE UNIT NUMBER@/ CPAGE 22 HELP20, 0;40 TEXT /TYPE B TO SPECIFY BLOCK NUMBER@/ CPAGE 34 HELP21, 0;-100 TEXT /AFTER * APPEARS, TYPE THE APPROPRIATE OCTAL NUMBER,@/ CPAGE 21 HELP22, 0;-120 TEXT /FOLLOWED BY A CARRIAGE RETURN@/ /
/MSPY2.SB, PAGE 8 / CPAGE 31 HELP23, 0;300 TEXT /TYPE THE FOLLOWING CHARACTERS TO INCREMENT OR@/ CPAGE 32 HELP24, 0;260 TEXT /DECREMENT THE BLOCK CURRENTLY BEING DISPLAYED:@/ CPAGE 13 HELP25, 50;200 TEXT /1 INCREMENTS BY 1@/ CPAGE 13 HELP26, 50;140 TEXT /2 INCREMENTS BY 8@/ CPAGE 13 HELP27, 50;100 TEXT /Q DECREMENTS BY 1@/ CPAGE 13 HELP28, 50;40 TEXT /W DECREMENTS BY 8@/ CPAGE 31 HLP28A, 0;-100 TEXT /OR TYPE B TO SPECIFY A NEW OCTAL BLOCK NUMBER@/ CPAGE 22 HELP29, 0;300 TEXT /KNOBS 3 & 7 DETERMINE HOW MUCH@/ CPAGE 22 HLP29A, 0;240 TEXT /OF THE BLOCK WILL BE DISPLAYED@/ CPAGE 25 HELP30, 0;100 TEXT /KNOB 3 IS THE 1ST LOCATION DISPLAYED@/ CPAGE 26 HELP31, 0;40 TEXT /KNOB 7 IS NUMBER OF LOCATIONS DISPLAYED@/ /
/MSPY2.SB, PAGE 9 / CPAGE 33 HELP32, 0;300 TEXT /SENSE SWITCHES 0 - 5 DETERMINE THE DISPLAY MODE:@/ CPAGE 27 HELP33, 0;140 TEXT /SW0: OFF FOR POINTS, ON FOR OCTAL NUMBERS@/ CPAGE 27 HLP33A, 62;100 TEXT /(POINTS ARE SCALED TO AVOID WRAP-AROUND)@/ CPAGE 31 HLP33B, 62;40 TEXT /(SWITCH TO SCOPE CHANNEL 1 TO DELETE HEADING@/ CPAGE 23 HLP33C, 62;20 TEXT /CHARACTERS DURING POINT DISPLAY)@/ CPAGE 25 HELP34, 0;-60 TEXT /SW1: OFF FOR UNSIGNED, ON FOR SIGNED@/ CPAGE 13 HLP34A, 62;-100 TEXT /NUMBERS & POINTS@/ CPAGE 33 HLP34B, 0;-200 TEXT /SW2: ON TO ADJUST POINT SCALING WITH KNOBS 2 & 6@/ CPAGE 21 HLP34C, 62;-240 TEXT /KNOB 2 IS MIN, KNOB 6 IS MAX@/ CPAGE 31 HELP39, 0;-60 TEXT /SW5: ON FOR 8-BIT ASCII (3 CHARS PER 2 WORDS)@/ CPAGE 26 HELP40, 62;-120 TEXT '(USE THIS TO LOOK AT PS/8 SOURCE FILES)@' CPAGE 23 HELP35, 0;300 TEXT /SW2: ON FOR FULL-SIZED CHARACTERS@/ CPAGE 17 HELP36, 0;200 TEXT /SW3: ON TO CONNECT POINTS@/ CPAGE 25 HLP36A, 62;140 TEXT /**NOTE** SW3 IS EFFECTIVE ONLY IF YOU@/ CPAGE 21 HELP37, 214;120 TEXT /HAVE THE EAE HARDWARE OPTION!@/ CPAGE 30 HELP38, 0;20 TEXT /SW4: ON FOR 6-BIT ASCII (2 CHARS PER WORD)@/ /
/MSPY2.SB, PAGE 10 / CPAGE 6 HELP41, -220;300 TEXT /SUMMARY@/ CPAGE 31 HELP42, 0;200 TEXT /THE FOLLOWING TELETYPE INPUTS ARE ACCEPTED BY@/ CPAGE 22 HELP43, 0;160 TEXT /MAGSPY DURING A BLOCK DISPLAY:@/ CPAGE 13 HELP44, 0;120 TEXT /H D L U B 1 2 Q W@/ CPAGE 31 HELP45, 0;0 TEXT /THE FOLLOWING INPUTS ARE ACCEPTED DURING THIS@/ CPAGE 15 HELP46, 0;-20 TEXT /EXPLANATION DISPLAY:@/ CPAGE 33 HELP47, 0;-60 TEXT /TYPE D OR L TO SPECIFY A DEVICE:FILE OR LINCTAPE@/ CPAGE 21 HLP47A, 0;-120 TEXT /TYPE B TO SPECIFY A NEW BLOCK@/ CPAGE 33 HELP48, 0;-160 TEXT /TYPE CARRIAGE-RETURN TO RETURN TO THE SAME BLOCK@/ CPAGE 21 HELP49, 0;-320 TEXT /TYPE M TO REPEAT EXPLANATION@/ AAAEND, NOP /LAST LOC END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search