1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-19 09:29:15 +00:00
PDP-10.its/bin/librm4/plotso.fbin

276 lines
12 KiB
Plaintext

'<PCODE "2PLOTSO">
<PACKAGE "PLOTSO">
<ENTRY GRAPH GRFUNC PLOT REGRAPH ERASE_S SCALE SURPRESS-GRAPH-NUMBERS GRAPH_DATA
GRAPH_TITLE GRAPH_X GRAPH_Y GRAPH_COMMENT CLEAR-GRAPHS NUMPRINT DEMO NO-DRAW
END_DEMO GRFLIST BACKSPACE>
<USE "GS">
<NEWTYPE GRFLIST LIST>
<PRINTTYPE GRFLIST <FUNCTION (X) T>>
<USE-DEFER "GSTTYC">
<COND (<NOT <GASSIGNED? G_R!-GSTTYC!-PACKAGE>> <PRINC
"YOU MAY WANT TO EVALUATE <G_R>"> <USE "GSTTYC"> <G_R!-GSTTYC!-PACKAGE <>>)>
<DROP "GSTTYC">
<SET GLOBAL_GRAPHS <CHTYPE () GRFLIST>>
<SET GLOBAL_MAKE_GRID T>
<SET GLOBAL_CONSERVE_SCALE <>>
<SET SMOOTH-TOL '0.5>
<SET OLD_INC 0.5E-1>
<SET OLD_MIN 0>
<SET OLD_MAX 1>
<SET OLD_VAR T>
<SET OLD_FORM '<SIN .T>>
<SETG GRFUNC %<RSUBR!- '[ %<PCODE!- "2PLOTSO" 0> GRFUNC #DECL ("VALUE" ANY <OR
FUNCTION SUBR FSUBR RSUBR> "OPTIONAL" <OR FLOAT FIX> <OR FLOAT FIX> <OR FLOAT
FIX>) GFMUNGER GSSCALE LINE_SEG GSTEXT POSITION GFMUNG MAPPER GSEND-UPDATES
GSEND GSREMOVE GSCHANGE GSBLANK REGRAPHER AGRITCH GSUNBLANK GSBEGIN VEC_PLOTTER
OLD_MAX OLD_MIN OLD_INC NOERASE T (ANY) MIN-IS-G=?-MAX!-ERROR GRFUNC %<TYPE-W
GRFLIST LIST> GRF "FUNCTION = " " MIN = " " MAX = " " INC = " "
" TITLE GLOBAL_GRAPHS GLOBAL_MAKE_GRID GLOBAL_CONSERVE_SCALE OLD_FORM OLD_VAR
VARLIST MARKER GRAPH "FORM = " " VAR = " "
" [LVAL GVAL VALUE] " = " " " #FALSE () RBOUND LBOUND SMOOTH-TOL
TBOUND BBOUND %<RGLOC DO_VEC_P T> X-MY OY-MY NOTHING-PLOTTED!-ERRORS THIN-PLOT
PLOT GRIT_EXPLNTN_POSN FANCY_CHAR "plot
" PROG (GIFTEMP) SET GIFTEMP READ <AND <TYPE? .GIFTEMP FIX FLOAT> .GIFTEMP> AND
NOT EMPTY? LVAL REST + #FALSE (NO-CHANGES) %<RSUBR!- '[ %<PCODE!- "2PLOTSO"
7073> ANONF1!-TMP #DECL ("VALUE" FIX "TUPLE" TUPLE)]> (<GRFLIST [REST VECTOR]>)
NEED-BLANKING HAVE-BLANKED EMPTY-GRFLIST-ARGUMENT--ERRET-ANYTHING!-ERRORS
%<RSUBR!- '[ %<PCODE!- "2PLOTSO" 7119> ANONF1!-TMP #DECL ("VALUE" VECTOR
"TUPLE" TUPLE) J (FIX) X-MY]> REGRAPH-INDEX-OUT-OF-RANGE--ERRET-ANYTHING!-ERRORS
DUPL-REGRAPH-INDEX--ERRET-ANYTHING!-ERROR PLOT-SEGMENT CONSERVE_SCALE XMIN XMAX
YMIN YMAX XMIN1 XMAX1 YMIN1 YMAX1 PLOT_SCALE <COND (.CONSERVE_SCALE <GSSCALE .
XMIN1 .XMAX1 .YMIN1 .YMAX1>) (T <GENEROUS_SCALE .XMIN .XMAX .YMIN .YMAX>)>
NO-DRAW %<TYPE-W GSEG VECTOR> GRID-IS-NULL <GRID> GTOP BOTTOM RIGHT LEFT DGTL
" " BSPACES DESIRED_INC (<OR FIX FLOAT>) XX GRFNUM <VEC_P .XX .GRFNUM>
SURPRESS-GRAPH-NUMBERS DFCS H V -H -V H2 V2 -H2 -V2 FANCY_CHARS GSTEXT
DEV-DISPATCH ("()") () COMMENT "TITLE: " OUTCHAN "X-AXIS TITLE: "
"Y-AXIS TITLE: " "DSK:MUDDLE;UGRF DEMO" "" CHRS "READ" RINCHAN "INT:" %<RGLOC
CHARGIVER T> INCHAN "BEGINNING" %<RGLOC INCHAN T> "DONE" Z '<GSSCALE !.Z>]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,GRFUNC PGLUE ![0 0 0 0 0 0 0 0 0 0!]>>
<SETG GRAPH %<RSUBR-ENTRY '[GRFUNC GRAPH #DECL ("VALUE" <GRFLIST [REST VECTOR]>
"OPTIONAL" <OR FORM FLOAT FIX FALSE> <OR ATOM FALSE> <OR FIX FLOAT> <OR FIX
FLOAT> <OR FIX FLOAT>)] 183>>
<SETG GET_VARS %<RSUBR-ENTRY '[GRFUNC GET_VARS #DECL ("VALUE" ATOM ANY)] 461>>
<SETG VEC_CALC %<RSUBR-ENTRY '[GRFUNC VEC_CALC #DECL ("VALUE" VECTOR <OR
FUNCTION FSUBR RSUBR SUBR> <OR FLOAT FIX> <OR FLOAT FIX> <OR FLOAT FIX>)] 606>>
<SETG PLOT %<RSUBR-ENTRY '[GRFUNC PLOT #DECL ("VALUE" <GRFLIST [REST VECTOR]>
ANY "OPTIONAL" ANY ANY ANY)] 1035>>
<SETG GET_ITEM_FORMER %<RSUBR-ENTRY '[GRFUNC GET_ITEM_FORMER #DECL ("VALUE" ANY
ATOM)] 1382>>
<SETG PLOT_CALC %<RSUBR-ENTRY '[GRFUNC PLOT_CALC #DECL ("VALUE" <VECTOR LIST
FLOAT FLOAT FLOAT FLOAT FIX FALSE> ANY ANY)] 1580>>
<SETG THIN-PLOT %<RSUBR-ENTRY '[GRFUNC THIN-PLOT #DECL ("VALUE" <OR FALSE LIST>
ANY)] 1722>>
<SETG AGRITCH %<RSUBR-ENTRY '[GRFUNC AGRITCH #DECL ("VALUE" <VECTOR ANY ANY ANY
ANY ANY ANY ANY> VECTOR ANY <GRFLIST [REST VECTOR]>)] 2049>>
<SET NEED-BLANKING <SET HAVE-BLANKED <>>>
<SET GRIT_EXPLNTN_POSN -1>
<SET GRID-IS-NULL <>>
<SETG REGRAPH %<RSUBR-ENTRY '[GRFUNC REGRAPH #DECL ("VALUE" GRFLIST "TUPLE" <
TUPLE [REST FIX]>)] 2114>>
<SETG REGRAPHER %<RSUBR-ENTRY '[GRFUNC REGRAPHER #DECL ("VALUE" GRFLIST <GRFLIST
[REST VECTOR]> "TUPLE" <TUPLE [REST FIX]>)] 2149>>
<APPLYTYPE GRFLIST ,REGRAPHER>
<SETG CLEAR-GRAPHS %<RSUBR-ENTRY '[GRFUNC CLEAR-GRAPHS #DECL ("VALUE" FALSE)]
2848>>
<SETG GIVE-GG %<RSUBR-ENTRY '[GRFUNC GIVE-GG #DECL ("VALUE" <GRFLIST [REST
VECTOR]>)] 2886>>
<SETG VEC_PLOTTER %<RSUBR-ENTRY '[GRFUNC VEC_PLOTTER #DECL ("VALUE" ATOM
STRUCTURED "OPTIONAL" ANY ANY)] 2975>>
<SETG GRSTORE %<RSUBR-ENTRY '[GRFUNC GRSTORE #DECL ("VALUE" <OR ATOM <VECTOR <OR
FIX FLOAT> <OR FIX FLOAT> <OR FIX FLOAT> <OR FIX FLOAT> <UVECTOR [4 FLOAT]>>>
"OPTIONAL" ANY ANY)] 3587>>
<SETG GRID %<RSUBR-ENTRY '[GRFUNC GRID #DECL ("VALUE" ATOM "OPTIONAL" <OR FIX
FLOAT> <OR FIX FLOAT> <OR FIX FLOAT>)] 3646>>
<SETG NUMPRINT %<RSUBR-ENTRY '[GRFUNC NUMPRINT #DECL ("VALUE" ANY <OR FLOAT FIX>
<OR FLOAT FIX> "OPTIONAL" ANY)] 4597>>
<SETG NUMG? %<RSUBR-ENTRY '[GRFUNC NUMG? #DECL ("VALUE" <OR ATOM FALSE> <OR FIX
FLOAT> <OR FIX FLOAT>)] 4801>>
<SETG NUML? %<RSUBR-ENTRY '[GRFUNC NUML? #DECL ("VALUE" <OR ATOM FALSE> <OR FIX
FLOAT> <OR FIX FLOAT>)] 4831>>
<SETG NUMEQ? %<RSUBR-ENTRY '[GRFUNC NUMEQ? #DECL ("VALUE" <OR ATOM FALSE> <OR
FIX FLOAT> <OR FIX FLOAT>)] 4861>>
<SETG BSPACE %<RSUBR-ENTRY '[GRFUNC BSPACE #DECL ("VALUE" ANY FIX)] 4907>>
<SET BSPACES <ISTRING 100 <ASCII 8>>>
<SET DGTL 0.15000000E-1>
<SET DESIRED_INC 6>
<SETG GENEROUS_SCALE %<RSUBR-ENTRY '[GRFUNC GENEROUS_SCALE #DECL ("VALUE" <
UVECTOR FLOAT FLOAT FLOAT FLOAT> <OR FLOAT FIX> <OR FLOAT FIX> <OR FLOAT FIX> <
OR FLOAT FIX>)] 4925>>
<SETG GENEROUS_BOUNDS %<RSUBR-ENTRY '[GRFUNC GENEROUS_BOUNDS #DECL ("VALUE" <
VECTOR FLOAT FLOAT [REST FLOAT]> <OR FIX FLOAT> <OR FIX FLOAT>)] 4945>>
<SETG NICE_BOUNDS %<RSUBR-ENTRY '[GRFUNC NICE_BOUNDS #DECL ("VALUE" <VECTOR <OR
FIX FLOAT> <OR FIX FLOAT>> <OR FLOAT FIX> <OR FLOAT FIX> <OR FLOAT FIX>)] 5034>>
<SETG NICE_INC %<RSUBR-ENTRY '[GRFUNC NICE_INC #DECL ("VALUE" FLOAT <OR FLOAT
FIX>)] 5128>>
<SETG TEN_ROUND %<RSUBR-ENTRY '[GRFUNC TEN_ROUND #DECL ("VALUE" FLOAT <OR FLOAT
FIX>)] 5205>>
<SETG DO_VEC_P %<RSUBR-ENTRY '[GRFUNC DO_VEC_P #DECL ("VALUE" <OR FALSE <VECTOR
<OR FIX FLOAT> <OR FIX FLOAT> <OR FIX FLOAT> <OR FIX FLOAT> <UVECTOR [4 FLOAT]>>
> ANY "OPTIONAL" ANY ANY)] 5261>>
<SETG VEC_P %<RSUBR-ENTRY '[GRFUNC VEC_P #DECL ("VALUE" ANY STRUCTURED FIX)]
5393>>
<SET DFCS 1.0E-2>
<SET FANCY_CHARS '[<FORM GFMUNG 0 1 .H 0 .-H .-V .-H .V .H .V .H .-V> <FORM
GFMUNG 0 1 .H .-V .-H2 0 0 .V2 .H2 0 0 .-V2> <FORM GFMUNG 0 1 .H .V .-H2 .-V2 .H
.V .-H .V .H2 .-V2> <FORM GFMUNG 0 1 0 .V 0 .-V2 0 .V .-H 0 .H2 0> <FORM GFMUNG
0 1 .H .V .-H2 0 .H2 .-V2 .-H2 0 .H2 .V2> <FORM GFMUNG 0 1 .H .V 0 .-V2 .-H2 .V2
0 .-V2 .H2 .V2>]>
<SETG FANCY_CHAR %<RSUBR-ENTRY '[GRFUNC FANCY_CHAR #DECL ("VALUE" ANY "OPTIONAL"
FIX ANY)] 5674>>
<SETG CONT-L-SEARCH %<RSUBR-ENTRY '[GRFUNC CONT-L-SEARCH #DECL ("VALUE" FALSE
CHARACTER ANY)] 5892>>
<SETG ERASE_S %<RSUBR-ENTRY '[GRFUNC ERASE_S #DECL ("VALUE" FALSE)] 5912>>
<SETG GRAPH_TITLE %<RSUBR-ENTRY '[GRFUNC GRAPH_TITLE #DECL ("VALUE" ANY ANY
"OPTIONAL" GRFLIST)] 6019>>
<SETG GRAPH_X %<RSUBR-ENTRY '[GRFUNC GRAPH_X #DECL ("VALUE" <OR FALSE FORM <LIST
[REST <OR STRING CHARACTER>]>> <OR FALSE STRING CHARACTER <LIST [REST <OR STRING
CHARACTER>]> FORM> "OPTIONAL" GRFLIST)] 6214>>
<SETG GRAPH_Y %<RSUBR-ENTRY '[GRFUNC GRAPH_Y #DECL ("VALUE" <OR FALSE FORM <LIST
[REST <OR STRING CHARACTER>]>> <OR FALSE STRING CHARACTER <LIST [REST <OR STRING
CHARACTER>]> FORM> "OPTIONAL" GRFLIST)] 6315>>
<SETG GRAPH_COMMENT %<RSUBR-ENTRY '[GRFUNC GRAPH_COMMENT #DECL ("VALUE" ANY ANY
"OPTIONAL" ANY)] 6416>>
<SETG GRAPH_DATA %<RSUBR-ENTRY '[GRFUNC GRAPH_DATA #DECL ("VALUE" ATOM
"OPTIONAL" GRFLIST)] 6484>>
<SETG DEMO %<RSUBR-ENTRY '[GRFUNC DEMO #DECL ("VALUE" <OR FALSE STRING>
"OPTIONAL" STRING)] 6742>>
<SETG CHARGIVER %<RSUBR-ENTRY '[GRFUNC CHARGIVER #DECL ("VALUE" CHARACTER)] 6794
>>
<SETG END_DEMO %<RSUBR-ENTRY '[GRFUNC END_DEMO #DECL ("VALUE" STRING)] 6864>>
<SETG SCALE %<RSUBR-ENTRY '[GRFUNC SCALE #DECL ("VALUE" ATOM "TUPLE" ANY)] 6888>
>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,GRFUNC GLUE ![1346716096 21559771137
1882202108 17180392460 3234611200 535822336 4042322160 16131 251658288
12935413760 21086288 30085813511 336871424 1103151231 -4227742777 4310761473
-267272185 12888059952 12888835856 0 34296577084 16169041924 4294968304
12900630531 808463552 256 85003536 22817275952 17826816 12947834627 -17178886096
1911570432 4294971671 17179869184 1074020352 4563452096 256 1040 279556
17179869268 17448370176 4563402752 263248 127061 17230201603 0 1052676
1073745936 0 1077936132 67371072 17180918016 4362354960 1115200 268435487
1421869064 2214592512 1284 5704716060 16173698844 16320300815 7579946180
1894892492 -13748931632 1346499584 4315943236 130355265 4299673600 1006706544
-17179853824 3359621120 1245184 -34221310205 251658244 4363190272 3423341579
5100273668 5369888767 -4279238641 1090847760 17515417668 4366303231 -67108864
17120886784 63175680 245761 252649216 262144 17246979140 18325181760 71304256
7941 0 0 1 5368709185 22548578304 12885099264 0 50332419 15361 4369 4563686656
17179938816 1073741828 17179873280 4546887957 67109136 4194304 4563403780
1073870800 132071424 1136661760 18321784833 1360068628 17232248836 4296036368
66817 12583944 805422017 260043249 7590887708 -4279221184 33357119568 1280
4693443588 22565639664 4299239537 8527036416 4329948273 8538559488 272908453
33291239428 4580327697 628169799 8523088896 71581828 -13936570428 1073745668
18186530819 78597 34108145664 1006838096 -1006370815 4580328640 33558870
26138692720 12953063740 1342177284 17192522052 17331921980 4579131840 3221225532
807473412 -17179738010 92 -4228698064 750780416 68509692 4235209713 4195089
-15972952752 4295231564 -16015966016 -3234653184 21100368 34300096967
-15268198457 8351368991 7646286097 4580180052 1024 69892 18320720901 85263680
16384 1118276 18253627472 1409286144 17179869201 4366548992 17263776768 262144
17892420 17180132608 -17179869180 805306368 4307550208 67305472 1052945
19326071061 -17095524031 -17095524031 30110843137 4295753792 18373969244
30356031475 738980464 0 4276485 18594726144 3219399 -469757872 17536734220
3221242115 805310656 -17179602896 12935233804 3221242627 808452097 262144 0 0 0
66560 17180917760 1040 268451840 211968 4563403840 66077696 36 21832466432
16777216 268435456 252007428 17179869184 9730802245 23572058113 524288 140509504
21824 32768 5591365 22615687168 17180131328 1141899264 4294967296 4032118852 2
2438329348 17184063520 8576 1342177281 22817013762 341 -2042363887 22833790976
4294967297 0 15381 21475098624 145 17372247 17179869184 20545 17247813712
-4008688640 17179938816 262180 1472200704 0 1024 66560 17825792 1147146240
-30064771071 81943 -8791257088 335642100 17104896 1090524160 4362076416
-17177509868 16908289 2080440560 1048836 67108868 4296015872 1073741824
17515480064 266496 266240 1065984 1048576 17179897856 16845824 4194572 16448
17125380 17179869184 1 328725 5733860359 4026795791 1866764 19289690128
4815351873 1090584329 16 69905 4296278033 18270654721 4294967424 1380096
18325160208 134249799 808452112 1048576 1882193920 201396240 49344 32 4564043537
589824 17105941 5721227520 807153712 247564 3221225713 -17116495631 -16105879792
253509635 -15284039933 29360128 19260440576 17448304704 16385 -2885413565
7590757488 205603324 34157560572 1430274048 9753587968 20545 17298296860
16308301824 17515496567 -1056960256 1094778944 1331524 4294968384 121388992
49604 12926910464 1314896 4345510912 4378854464 121619392 49604 12926910464
21543257100 3472884756 17825820 -16777216 812715018 1073746960 21764292612
18270668032 1144782912 17105940 22884909519 4456735 983052 1175552 4026580992
4815061232 201584896 4563468288 805367812 30069424368 1203830784 17179872256
18724509504 4176 17519987727 -13149929728 -13085960892 13002342848 16842945
-17167283008 17184075788 808698117 268898051 -465632272 8589950975 262609
1049192 263259 525377 787499 1049625 263530 525874 263870 2850 2888 3614 265749
527889 3720 265830 527955 790093 528901 791041 529095 529125 529155 267055
529239 791474 267276 267353 267445 529575 791706 529687 5702 267838 529976
530186 5914 268186 530319 268374 530514 268475 530615 268574 530716 6503 268641
6757 268899 6796 6866!]>>
<HANDLER <GET .INCHAN INTERRUPT> ,CONT-L-SEARCH>
<SET BACKSPACE <INSERT <REMOVE ,NULL> <ROOT>>>
<PROG () <SET PLOT-SEGMENT <GSBEGIN ,GRSTORE>> <GSEND>>
<MAPPER PLOT_SCALE <PROG ((TEM <* 0.5E-1 <- .TBOUND .BBOUND>>)) <SET LBOUND <+ <
* 0.89999999 .LBOUND> <* 0.99999990E-1 .RBOUND>>> <SET TBOUND <- .TBOUND .TEM>>
<SET BBOUND <+ .BBOUND .TEM>> <GSSCALE>>>
<ENDPACKAGE>