File: DPF0.PA of Tape: OS8/OS8-Latest/new-1
(Source file text)
/DPF0 V40 PAGE 0 & 1 FOR USER / / / / / / / / /COPYRIGHT (C) 1979 BY DATAPLAN GMBH, LAUDA, BRD / / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DATAPLAN GMBH. /DATAPLAN GMBH ASSUMES NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR /IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DATAPLAN'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DATAPLAN. / /DATAPLAN GMBH ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY /OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DATAPLAN. / / / / / / / / / / /W.V.D.MARK, DP, ZUERICH, JAN-79 /THIS IS TO BE ASSEMBLED WITH YOUR ROUTINES IN THE /FIELD OF YOUR CHOICE. (U= XX). IT OCCUPIES /PAGE 0 AND 1 OF THAT FIELD, BUT LEAVES A LOT OF /LOCATIONS FREE FOR YOUR APPLICATION. / / .R PAL8 / *USER<DPF0,USER / /THE RESULTING BINARY SHOULD BE INCORPORATED IN DPF /AS FOLLOWS: / .R ABSLDR / *SYS:DPF.SV/I / *USER.BN/P$ /P NOT ALLOWED IF 16K MACHINE AND / .SAVE SYS:DPFU.SV /USER CODE LOADING HIGHER THAN 4777 /DEFINITIONS FOR DPF VERSION 2.01 /DPF= D A T A P L A N F O C A L L= 00 /LIBRARY FIELD P= 10 /INTERPRETER, FPP FIELD T= 20 /TEXT AND PDL FIELD U= 30 /USER FIELD ####MODIFY FOR YOUR CONVENIENCE##### IFZERO U-30 < FLDCUR= CLA CLL CML IAC RAL> IFZERO U-40 < FLDCUR= CLA IAC RTL> IFZERO U-50 < FLDCUR= CLA CLL CMA RTL> IFZERO U-60 < FLDCUR= CLA CLL CMA RAL> IFZERO U-70 < FLDCUR= CLA CMA> ZPUSHA= 25 ZPOPA= 21 ZPUSHJ= 127 ZPOPJ= 150 ZPUSHF= 71 ZPOPF= 112 XIDLE= 2600 ERROL= 2735 SORTB= 1130 XSQRT= 5600 FIELD P%10 NOPUNCH *XSQRT+100 FNTABL=. 2533 /ABS 2650 /SGN 2632 /OS8 2636 /ITR 2630 /RAN 2572 /ATN 2624 /EXP 2625 /LOG 2654 /SIN /LIST OF CODED FUNCTION NAMES 2575 /COS 2702 /SQT 1140 /IN 2672 /OUT 2604 /(F)IND ENPUNCH /** EXAMPLE ** *. 2631 /NEW 0324 /T NOPUNCH 0325 /U 0326 /V 0327 /W 0330 /X 0331 /Y 0332 /Z -1 /ENDS TABLE / FUNCTIONS T,U,V,W,Y,Z NOT ASSIGNED (FREE FOR USER) / FOR CODING NAME, USE OCTAL CHARS WITH 200 BIT SET / AND CALCULATE THE FOLLOWING EXPRESSION: / / X=CHAR1 / IF CHAR2 THEN: X=X*2+CHAR2 / IF CHAR3 THEN: X=X*2+CHAR3 / THEN REPLACE A FREE SLOT BY THIS VALUE *XSQRT+126 FNTABF=. CDF L NOP/ XABS /ABS -ABSOLUTE VALUE CDF L NOP/ XSGN /SGN -REAL SIGN FUNCTION CDF L NOP/ XOS8 /OS8 -OS8=1,MULTI8=0 FUNCTION CDF P NOP/ XINT /ITR -INTEGER PART CDF P NOP/ FRAN /RAN -RANDOM NUMBER CDF P NOP/ ARTN /ATN - CDF P NOP/ FEXP /EXP -EXPO FUNCTIONS CDF P NOP/ FLOG /LOG - CDF P NOP/ FSIN /SIN -TRIG FUNCTIONS CDF P NOP/ FCOS /COS - CDF P NOP/ XSQRT /SQT -SQUARE ROOT CDF P NOP/ FIN /INP -CHAR INPUT CDF P NOP/ FOUT /OUT -CHAR OUTPUT CDF P NOP/ FIND /IND -FIND A CHAR ENPUNCH /** EXAMPLE ** *. CDF U /CDF P XNEW /ERCALL /T NOPUNCH CDF P NOP/ ERCALL /U CDF P NOP/ ERCALL /V CDF P NOP/ ERCALL /W CDF L NOP/ XCOM /(F)X:ARRAY CDF P NOP/ ERCALL /Y CDF P NOP/ ERCALL /Z / THIS TABLE IS 2 TIMES LONGER THAN 'FNTABL' / INSERT THE FIELD AND ADRESS OF YOUR FUNCTION / IN THE APPROPRIATE FREE SLOT (CORRESPONDING / TO THE ONE SELECTED IN 'FNTABL'). BE SURE TO / LOAD A 'DPF0' SECTION IN THE FIELD YOU ARE / USING. SEE 'DPF0' FOR MORE INFO. / DEFINITION OF ADDRESSES IN DPF AND THEIR USE: / ============================================= / CDF P / UPUSHJ /CONVERT FLAC TO INTEGER IN AC XINTEG=7360 / MQA / CDF P / UPUSHJ /RETURN FIRST LETTER OF COMMAND TERMER=566 /AND GO TO END OF COMMAND / MQA / CDF P / UPUSHJ /MOVE PAST CHARACTER AND EVALUATE EVALC=1605 /EXPRESSION ENDING IN R-PAR OR CR / /AND LEAVE RESULT IN FLAC AND FLARG / CDF P / UPUSHJ /NEGATE FLAC MMINSK=3405 / CDF P / UPUSHJ /MOVE PAST CHARACTER MGETC=2205 / CDF L / UPUSHJ /EVALUATE NEXT FUNCTION ARGUMENT ARG=2246 / RETURN 1 /NO MORE ARGUMENTS / RETURN 2 /NEXT ARGUMENT EVALUATED / CDF P / UPUSHF /PUT ZERO BLOCK ON PDL FLTZER=7167 / CDF P / UPUSHF /PUT F 1.0 ON PDL FLTONE=2376 / CDF P / UPOPF /PUT BLOCK FROM PDL IN FLAC FLAC=44 /------------------------------------------------ / CDF U /MAKE SURE THIS FIELD / CIF P / USORTJ /JUMP VIA LISTS ON CHAR / CLIST-1 /CLIST IS CHARACTER LIST / GLIST-CLIST /GLIST IS JUMP TO LIST / /CLIST AND GLIST IN FIELD U%10 / UWAIT /CHECK KEYBOARD FOR /^C,^O,^P,^S,^Q / UERROR /GIVE ERROR MESSAGE AND RESET DPF / MESS /2 LETTER MESSAGE CODED BY TECO MACRO: /^O^T-1&37*20UY^T-1&17+QY==^D [PRINTS MESS] /PDL INSTRUCTIONS AND EXAMPLES /=============================== / PDL= PUSH DOWN LIST = STACK = LAST IN - FIRST OUT LIST / /LOCAL FIELD SATELLITES FOR ALL POPS EXCEPT /POPJ MUST BE AS FOLLOWS: /XPOPU, 0 / MQL / FLDCUR / CIF T (WHERE T IS FIELD OF POP SUBS.) / JMS I .+1 / ZPOPU /!!!!! /POPJ IS THE ONLY POPU THAT NEEDS ANOTHER SATELLITE! /XPOPJ, CIF CDF T / JMP I .+1 /JMP!! / ZPOPJ / /BY THE WAY: THE DATA FIELD IS ALWAYS RESET TO CURRENT /THIS CAN BE USEFUL /CALLS IN A PROGRAM WILL LOOK LIKE THIS: /............................................. / VAL / UPUSHA /PUT VAL IN PDL / / AC=>PDL / AC=>MQ /............................................. / UPOPA /GET VAL FROM PDL / / AC=>MQ / PDL=>AC /............................................. / CDF X / UPUSHJ /RECURSIVE JUMP TO X.ADDR (15 BIT) / ADDR /LOCA, / U.LOCA=>PDL / X.ADDR=>PC /PC=PROGRAM COUNTER / AC=>AC / AC=>MQ /............................................. / VAL / UPOPJ /RECURSIVE RETURN VIA PDL / / PDL=>U.LOCA / U.LOCA+VAL=>PC / 0=>AC / MQ=>MQ /............................................. / CDF X / UPUSHF /STORE BLOCK(4) ON PDL / ADDR / / 4 WORDS AT X.ADDR=>PDL / AC=>AC / AC=>MQ /............................................. / CDF X / UPOPF /RETRIEVE BLOCK(4) FROM PDL / ADDR / / 4 WORDS FROM PDL=>X.ADDR / AC=>AC / AC=>MQ /............................................. / #### USER PAGE ZERO #### / FREE FOR USER USE: / 0-17 / 40-177 ENPUNCH FIELD U%10 *20 UPOPA= JMS I . /FOR FIELD T POPS XPOPA UPUSHA= JMS I . XPUSHA UPUSHJ= JMS I . XPUSHJ UPOPJ= JMP I . XPOPJ UPUSHF= JMS I . XPUSHF UPOPF= JMS I . XPOPF UWAIT= JMS I . XWAIT UERROR= JMS I . XERROR USORTJ= JMS I . SORTB NOP /RESERVED FOR FUTURE EXPANSION NOP NOP NOP NOP NOP NOP PAGE /PAGE 1 USED FOR LOCAL FIELD SATELLITES ETC XPUSHA, 0 MQL FLDCUR CIF T JMS I .+1 ZPUSHA XPOPA, 0 MQL FLDCUR CIF T JMS I .+1 ZPOPA XPUSHF, 0 MQL FLDCUR CIF T JMS I .+1 ZPUSHF XPOPF, 0 MQL FLDCUR CIF T JMS I .+1 ZPOPF XPUSHJ, 0 MQL FLDCUR CIF T JMS I .+1 ZPUSHJ XPOPJ, CIF CDF T JMP I .+1 ZPOPJ XWAIT, 0 CDF U /MAKE SURE CIF L JMS I (XIDLE JMP I XWAIT XERROR, 0 CDF U CLA CMA CLL TAD I XERROR CIF CDF L JMP I (ERROL+3 /YOU MAY FILL THIS PAGE WITH ODD STUFF. PAGE