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

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

\MODE, BLOCK 2
\IPO, BLOCK 2
\LIN, BLOCK 2
\LEN, BLOCK 2
[0, BLOCK 2
LAP 
\VALUE, BLOCK 3
\DGT, BLOCK 3
\MAN, BLOCK 1
]A, BLOCK 3
[A, BLOCK 1
DUMMY [0
]11, 1756
3146
3146
]6, 2014
0
0
]3, 0
0
0
CPAGE 6
EAP 
CALL 0,]OPE
/      FUNCTION VALUE(MODE,IPO,LIN,LEN)
ENTRY VALUE
VALUE, BLOCK 2
DUMMY \MODE
TAD I VALUE
DCA \MODE
INC VALUE#
TAD I VALUE
DCA \MODE#
INC VALUE#
DUMMY \IPO
TAD I VALUE
DCA \IPO
INC VALUE#
TAD I VALUE
DCA \IPO#
INC VALUE#
DUMMY \LIN
TAD I VALUE
DCA \LIN
INC VALUE#
TAD I VALUE
DCA \LIN#
INC VALUE#
DUMMY \LEN
TAD I VALUE
DCA \LEN
INC VALUE#
TAD I VALUE
DCA \LEN#
INC VALUE#
/      DIMENSION LIN(1)
/      VALUE=0.0
CALL 1,FAD
ARG ]3
CALL 1,STO
ARG \VALUE
/      DGT=1.0
CALL 1,FAD
ARG ]6
CALL 1,STO
ARG \DGT
/      MAN=10
TAD (12
DCA \MAN
/      BLANKS ENTFERNEN
/100   IF(IPO-LEN) 105,105,110
\100, TAD I \IPO
DCA [A
TAD I \LEN
CIA 
TAD [A
SNA 
JMP \105
SPC 
JMP \105
JMP \110
/105   IF(LGET(LIN,IPO)-32) 110,107,110
\105, TAD \LIN
DCA ^A
TAD \LIN#
DCA ^A#
TAD \IPO
DCA ^B
TAD \IPO#
DCA ^B#
CALL 2,LGET
^A, ARG 0
^B, ARG 0
CIA 
TAD (40
CIA 
SNA CLA 
JMP \107
JMP \110
/107   IPO=IPO+1
\107, TAD I \IPO
IAC 
DCA I \IPO
/      GOTO 100
JMP \100
/110   IF(MAN-1) 112,111,112
\110, IAC 
CIA 
TAD \MAN
SNA CLA 
JMP \111
JMP \112
/111   RETURN
\111, CALL 1,FAD
ARG \VALUE
RETRN VALUE
/      VORZEICHEN
/112   IF(LGET(LIN,IPO)-43) 113,120,113
\112, TAD \LIN
DCA ^C
TAD \LIN#
DCA ^C#
TAD \IPO
DCA ^D
TAD \IPO#
DCA ^D#
CALL 2,LGET
^C, ARG 0
^D, ARG 0
CIA 
TAD (53
CIA 
SNA CLA 
JMP \120
/113   IF(MODE) 130,114,114
\113, TAD I \MODE
SPC 
JMP \130
/114   IF(LGET(LIN,IPO)-45) 130,115,130
\114, TAD \LIN
DCA ^E
TAD \LIN#
DCA ^E#
TAD \IPO
DCA ^F
TAD \IPO#
DCA ^F#
CALL 2,LGET
^E, ARG 0
^F, ARG 0
CIA 
TAD (55
CIA 
SNA CLA 
JMP \115
JMP \130
/115   DGT=-DGT
\115, CALL 1,FAD
ARG \DGT
CALL 0,CHS
CALL 1,STO
ARG \DGT
/      ZAHL ERMITTELN
/120   IPO=IPO+1
\120, TAD I \IPO
IAC 
DCA I \IPO
/130   IF(LGET(LIN,IPO)-48) 135,131,131
\130, TAD \LIN
DCA ^G
TAD \LIN#
DCA ^G#
TAD \IPO
DCA ^H
TAD \IPO#
DCA ^H#
CALL 2,LGET
^G, ARG 0
^H, ARG 0
CIA 
TAD (60
CIA 
SPC 
JMP \135
/131   IF(LGET(LIN,IPO)-57) 140,140,135
\131, TAD \LIN
DCA ^I
TAD \LIN#
DCA ^I#
TAD \IPO
DCA ^J
TAD \IPO#
DCA ^J#
CALL 2,LGET
^I, ARG 0
^J, ARG 0
CIA 
TAD (71
CIA 
SNA 
JMP \140
SPC 
JMP \140
/135   IF(MAN-1) 136,100,136
\135, IAC 
CIA 
TAD \MAN
SNA CLA 
JMP \100
/136   MAN=1
\136, IAC 
DCA \MAN
/      IF(MODE) 100,100,137
TAD I \MODE
SNA 
JMP \100
SPC 
JMP \100
/137   IF(LGET(LIN,IPO)-46) 100,120,100
\137, TAD \LIN
DCA ^K
TAD \LIN#
DCA ^K#
TAD \IPO
DCA ^L
TAD \IPO#
DCA ^L#
CALL 2,LGET
^K, ARG 0
^L, ARG 0
CIA 
TAD (56
CIA 
SNA CLA 
JMP \120
JMP \100
/140   IF(MAN-1) 142,141,142
\140, IAC 
CIA 
TAD \MAN
SNA CLA 
JMP \141
JMP \142
/141   DGT=DGT*0.1
\141, CALL 1,FAD
ARG ]11
CALL 1,FMP
ARG \DGT
CALL 1,STO
ARG \DGT
/142   VALUE=VALUE*FLOAT(MAN)+FLOAT(LGET(LIN,IPO)-48)*DGT
\142, CALL 1,FLOAT
ARG \MAN
CALL 1,FMP
ARG \VALUE
CALL 1,STO
ARG ]A
TAD \LIN
DCA ^M
TAD \LIN#
DCA ^M#
TAD \IPO
DCA ^N
TAD \IPO#
DCA ^N#
CALL 2,LGET
^M, ARG 0
^N, ARG 0
CIA 
TAD (60
CIA 
DCA [A
CALL 1,FLOAT
ARG [A
CALL 1,FMP
ARG \DGT
CALL 1,FAD
ARG ]A
CALL 1,STO
ARG \VALUE
/      GOTO 120
JMP \120
/ 
/      END
CALL 0,EXIT
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