File HELP.PA (PAL assembler source file)

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

/*** TSS/8 HELP *** VERSION 1 ***\
/
/USES DISK FILE DSK:HELPER.TXT[0,4]
/BY JOHN YOUNG, N-MUSD PDP-8 OPERATIONS
/5/4/76
/

*0000 CLA STL RAR KSB TAD RESTRT SRA UND JMP I .+1 INIT *0010 AUX0, 0 AUX1, 0 *0020 RESTRT, .+1 CLA TAD P15 TLS TAD N3 TYPE CMA CLOS HLT TYPE= JMS I . TYPE0 GETCHR= JMS I . GET0 PRINT= JMS I . PRINT0 MSG1, MG1-1 MSG2, MG2-1 BUFF, END BUFF2, END+100 P377, 377 N200, -200 N212, -212 N3, -3 CHAR, 0 N215, -215 NSEM, -"; NM, -"M NE, -"E N214, -214 N256, -". P17, 17 P400, 400 N400, -400 N211, -211 TABCNT, -10 N10, -10 P40, 40 P15, 15 OPNBLK, .+1 0 4 /[0,4] 5045 /HE 5460 /LP 4562 /ER RFDT, .+1 -1 0 0 0 -400 0 NOHELP, CLA TAD MSG1 PRINT TAD BUFF PRINT TAD MSG2 PRINT JMP RESTRT+1
*0200 INIT, KSF JMP DUMMY /HE DOESN'T KNOW WHAT WE CAN DO FOR HIM TAD BUFF /SET UP BUFFER POINTER DCA AUX0 LINIT, KSF JMP FCRLF /NO MORE INPUT KRB /GET THE CHAR DCA CHAR TAD CHAR /COMPARE IT AGAINST A <CR> TAD N215 SNA CLA JMP FCRLF /IF IT'S A <CR>, WE'RE DONE WITH INPUT TAD CHAR TAD NSEM /ALSO CHECK FOR ";", OR ":" SNA JMP FCRLF IAC SNA CLA JMP FCRLF TAD CHAR /SAVE THE CHAR DCA I AUX0 JMP LINIT /GET THE NEXT CHAR FCRLF, DCA I AUX0 /END THE STRING WITH A ZERO TAD BUFF /RESET BUFFER POINTER AGAIN DCA AUX0 TAD I AUX0 /GET THE FIRST CHAR TAD NM /NOW, HAS HE TYPED ".HELP ME"?? SZA CLA JMP SSEARC /NO, GO SEARCH FOR THE COMMAND TAD I AUX0 TAD NE SZA CLA JMP SSEARC /DITTO TAD I AUX0 SZA CLA JMP SSEARC /DITTO DUMMY, TAD OPNBLK /OPEN DSK:HELPER.TXT[0,4] OPEN SZA CLA JMP NOHELP /IF ERROR, WE CAN'T HELP HIM GETCHR /IF HE TYPED HELP ME OR HELP JMP NOHELP /JUST TYPE OUT THE FIRST MESSAGE IN THE FILE TYPE /TYPE IT JMP DUMMY+4
SSEARC, TAD OPNBLK OPEN SZA CLA JMP NOHELP SEARLP, GETCHR /GET A CHAR FROM THE FILE JMP NOHELP DCA CHAR TAD N214 /SEARCH FOR A FORM FEED TAD CHAR /A "." SHOULD FOLLOW THE FORM FEED SZA CLA /TELLING US WHAT HELP FILE THIS IS JMP SEARLP /NO FORM FEED, GET THE NEXT CHAR TAD BUFF /RESET BUFFER POINTER DCA AUX0 GETCHR /THIS NEXT CHAR BETTER BE A "." JMP NOHELP SNA /SKIP OVER ZEROS JMP .-3 TAD N256 /IS IT A "." SZA CLA JMP NOHELP /NOPE, THE FORMAT OF THE FILE IS BAD SLOOP, GETCHR /YES, NOW START COMPARING JMP NOHELP DCA CHAR TAD CHAR TAD N215 /IF IT'S A <CR>, THEN WE'VE DONE A GOOD COMPARE SNA CLA JMP FOUND /AND PRINT OUT THE MESSAGE TAD I AUX0 /COMPARE THIS CHAR, WITH THE CHAR INPUT CIA TAD CHAR SNA CLA JMP SLOOP /GOOD COMPARE, CONTINUE JMP SEARLP /NO GOOD, GOTO THE NEXT HELP FILE FOUND, GETCHR /AHHH, WE FOUND IT!! NOW PRINT IT OUT JMP NOHELP DCA CHAR TAD N212 /SEARCH FOR THE NEXT <LF>, THEN START PRINTING TAD CHAR SZA CLA JMP FOUND GETCHR /THIS IS THE PRINT LOOP, "TYPE" WILL EXIT US JMP NOHELP TYPE JMP .-3 MG1, "%;" ;"N;"O;" ;"I;"N;"F;"O;" ;"F;"O;"U;"N;"D;" ;"F;"O;"R;" ;"";0 MG2, "";".;0
*0400 /ROUTINE TO RETRIEVE A CHARACTER FROM A FILE, USES A SEGMENT /THAT IS CURRENTLY IN CORE. IF WE ARE AT THE END OF THE CURRENT /SEGMENT, THEN REQUEST ONE FROM THE "READ" ROUTINE /SKIP IF IT'S A GOOD READ. GET0, 0 CLA CLL JMP I .+1 GET1, GETINI ISZ GET0 JMP I GET0 GETINI, TAD N200 DCA GETCNT TAD BUFF2 DCA AUX1 JMS READ JMP I GET0 GETLOP, TAD I AUX1 DCA GETM1 TAD GETM1 RTR RTR AND P377 JMS GET1 TAD GETM1 AND P17 CLL RTL RTL DCA GETM1 TAD I AUX1 DCA GETM2 TAD GETM2 RTL RTL RAL AND P17 TAD GETM1 JMS GET1 TAD GETM2 AND P377 JMS GET1 ISZ GETCNT JMP GETLOP JMP GETINI GETM1, 0 GETM2, 0 GETCNT, 0 /ROUTINE TO READ ONE SEGMENT OF A FILE INTO CORE /SKIP IF GOOD READ. READ, 0 CLA CLL TAD N400 DCA RFDT+3 TAD BUFF2 DCA RFDT+4 TAD P400 TAD RFDT+5 SNA ISZ RFDT+1 NOP DCA RFDT+5 TAD RFDT RFILE TAD RFDT+6 SNA CLA ISZ READ JMP I READ /ROUTINE TO OUTPUT A CHAR. /CHECKS FOR TABS, AND OUTPUTS THEM CORRECTLY, IGNORES RUBOUTS /AND EXITS TO HALT IF A FORM FEED IS SEEN. TYPE0, 0 DCA CHAR TAD CHAR TAD N214 SNA CLA JMP RESTRT+2 TAD CHAR TAD N212 SZA CLA JMP .+3 JMS TABSET JMP OUT TAD CHAR TAD N211 SNA CLA JMP TAB TAD CHAR CIA TAD P377 SNA CLA JMP I TYPE0 ISZ TABCNT SKP JMS TABSET OUT, TAD CHAR TLS CLA JMP I TYPE0 TABSET, 0 TAD N10 DCA TABCNT JMP I TABSET TAB, TAD P40 TLS ISZ TABCNT JMP .-2 CLA JMS TABSET JMP I TYPE0 PRINT0, 0 DCA AUX0 TAD I AUX0 SNA JMP I PRINT0 TLS CLA JMP .-5 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