File JIMS3.PA (PAL assembler source file)

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

*1000
PACK,     0                   /PACK SUBROUTINE
          DCA STORE           /CLEAR STORAGE LOCATION
          TAD M4              /SET COUNTER FOR 
          DCA COUNT           /4 DIGITS
          TAD K350           /SET POINTER TO
          DCA TEMP            /ASCII INPUT CHARACTERS
PAKDIG,   TAD STORE           /LOAD PARTIAL NUMBER
          CLL RAL             /ROTATE LEFT
          RTL                 /THREE TIMES
          TAD I TEMP          /ADD NEXT STORED DIGIT
          TAD M260            /STRIP OFF THE 260
          DCA STORE           /STORE PARTIAL NUMBER
          ISZ TEMP            /INCREMENT POINTER
          ISZ COUNT           /PACKED 4 DIGITS YET?
          JMP PAKDIG          /NO: PACK NEXT DIGIT
          TAD STORE           /YES: TAKE PACKED NUMBER
          JMP I PACK          /BACK TO MAINLINE
CRLF,     0
TAD K215                      /GET ASCII CARRIAGE RETURN
          JMS TYPE            /PRINT IT
          TAD K212            /GET ASCII LINE FEED
          JMS TYPE            /PRINT IT
          JMP I CRLF          /AND RETURN
LISN,     0                   /LISN SUBROUTINE
          KSF                 /KEYBOARD FLAG RAISED YET
          JMP .-1             /NO: CHECK AGAIN
          KRB                 /YES: READ A CHARACTER
          TLS                 /ECHO ON PRINTER
          JMP I LISN          /AND RETURN
TYPE,     0                   /TYPE SUBROUTINE
          TSF                 /PRINTER FLAG RAISED YET
          JMP .-1             /NO: CHECK AGAIN
          TLS                 /YES: PRINT A CHARACTER
          CLA                 /CLEAR ACCUMULATOR
          JMP I TYPE          /AND RETURN
SETDF,    0
          TAD DF       /PUT DF IN AC
          SZA          /IS DF = 0?
          JMP .+3      /NO: JMP TO DF 1
          CDF 20       /YES: SET DF =2
          JMP I SETDF  /RETURN
          CDF 10       /SET DF = 1
          JMP I SETDF  /& RETURN
DIVIDE,   0            /SUBR TO DIVIDE BY 2 T0 N
          CLA CLL       /RESULT RETURNED IN SUMH & SUML
          TAD N
          CIA          /STORE -N IN
          DCA DIV      /DIV
LOOP,     TAD SUMH      /CHECK TO SEE IF
          SPA          /NO. IS NEG.
          CLL CML      /YES : SET LINK
          RAR          /DIVIDE HI WORD BY 2
          DCA SUMH     /AND STORE
          TAD SUML     /DIVIDE LO WORD 
          RAR          /BY 2
          DCA SUML     /AND STORE
          CLL
          ISZ DIV      /DONE YET?
          JMP LOOP     /NO: GO AROUND AGAIN
          JMP I DIVIDE /YES: RETURN
HEAD,     0
          TAD M15      /INITIALIZE CTR TO
          DCA STARCT    /COUNT 15 STARS
          TAD STAR     /GET ASCII FOR STAR
          JMS TYPE     /AND TYPE
          ISZ STARCT   /TYPED 15 STARS?
          JMP .-3    /NO: GET ANOTHER
          JMS CRLF     /YES: 
          TAD I OUTPTR /GET NEXT CHARACTER
          ISZ OUTPTR
          SNA          /IS CHARACTER A NULL
          JMP .+3      /YES
          JMS TYPE     /NO: TYPE IT
          JMP .-5      /GO BACK TO GET NEXT CHARACTER
          CLA CLL
          JMP I HEAD
STARCT,   0
AUTO,     0
          CLA CLL
          TAD K260      /ADD IN ASCII ZERO
          DCA KCNT     /INITIALIZE KCNT COUNTER
          JMS CRLF
          JMS CRLF
          TAD I OUTPTR  /GET NEXT CHARACTER
          ISZ OUTPTR     /INCREMENT PTR
          SNA          /IS CHARACTER A NULL
         JMP .+3       /YES:
          JMS TYPE     /NO: TYPE IT
          JMP .-5      /JMP BACK TO GET NEXT CHAR.
          JMS CRLF
NEXTR,    TAD R        /GET ASCII FOR R
          JMS TYPE      /TYPE R
          TAD KCNT     /GET ASCII FOR SUBSCRIPT
          JMS TYPE     /TYPE SUBSCRIPT
          TAD EQUAL    /GET ASCII FOR =
          JMS TYPE   /TYPE IT
          JMS I 7      /ENTER INTERPRETER
          FGET I 17    /GET ANSWER
          FOUT         /PRINT IT
          FEXT
          TAD KCNT      /(AC)=KCNT
          CIA           /(AC)=-KCNT
          TAD M         /(AC)=M-KCNT
          SZA           /IS KCNT=M?
          JMP .+3       /YES
          ISZ KCNT      /INCREMENT SUBSCRIPT
          JMP NEXTR     /GET NEXT R
          JMP I AUTO    /RETURN



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