Trailing-Edge
-
PDP-10 Archives
-
FORTRAN-10_Alpha_31-jul-86
-
forpl2.mac
There are 11 other files named forpl2.mac in the archive. Click here to see a list.
SEARCH MTHPRM,FORPRM
TV FORPL2 PLOTTER ROUTINES ,10(4023)
SUBTTL FORPLT part 2 -- MACRO routines
COMMENT \
***** Begin Revision History *****
1100 CKS 6-Jul-80
Fix to work with version 6
1351 EDS 16-Mar-81 Q10-04786
Fix TWOSEG and RELOC problems.
***** Begin Version 7 *****
3121 AHM 24-Mar-82
Make PLOT.A search MTHPRM,FORPRM so that the special TWOSEG macro is
visible when FTXLIB is set.
3125 JLC 1-Jun-82
Mathlib integration: change TWOSEG/RELOC to SEGMENTs.
3210 PLB 9-Nov-82
Make SYMBOL take CHARACTER arguments.
Some conversion for Extended Addressing.
***** End V7 Development *****
3314 TGS 12-May-83 SPR:10-33781
Save AC 0 around DECP2's call to SYMBOL. Was getting trashed,
then checked in DECP3 to see if a "0" needs to be output
after the decimal point in calls to NUMBER.
BEGIN V10
4003 PLB 17-Feb-83 ; Logical edit 4000
More Extended Addressing changes, comments.
4023 JLC 29-Jun-83
Search MTHPRM also.
***** End V10 Development *****
***** End Revision History *****
\
PRGEND
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1980, 1986
;ALL RIGHTS RESERVED.
;
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
;ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
;INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
;COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
;OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
;TRANSFERRED.
;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
;AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
;CORPORATION.
;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
;SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
TITLE PLOTF (FEANORIAN CHARACTER SET)
SUBTTL BILL WEIHER: STANFORD A-I; 21 OCT 67
SEARCH MTHPRM,FORPRM
SEGMENT CODE
ENTRY PLOTF
PLOTF: REPEAT 40,<XWD 0,0>
XWD 1,SP
XWD 5,LCR
XWD 3,UDOT
XWD 7,SCR
XWD 21,OFTHE
XWD 14,FQA
REPEAT 4,<XWD 0,0>
XWD 17,OF
XWD 11,FHW
XWD 11,F12
XWD 3,OVBR
XWD 11,F11
XWD 17,THE
XWD 12,F0
XWD 11,FTH
XWD 11,FSH
XWD 12,FKH
XWD 17,FDH
XWD 17,FZH
XWD 17,FGH
XWD 17,F7
XWD 17,F8
XWD 11,F9
XWD 5,FOLY
XWD 16,MODR
XWD 13,ALTS
XWD 0,0
XWD 25,ALTZ
XWD 0,0
XWD 0,0
XWD 7,FA
XWD 16,FB
XWD 11,FC
XWD 16,FD
XWD 3,FE
XWD 12,FF
XWD 16,FG
XWD 6,FH
XWD 3,FI
XWD 17,FJ
XWD 11,FK
XWD 10,FL
XWD 17,FM
XWD 17,FN
XWD 12,FO
XWD 11,FP
XWD 14,FQ
XWD 14,FR
XWD 13,FS
XWD 10,FT
XWD 12,FU
XWD 17,FV
XWD 12,FW
XWD 11,FX
XWD 7,FY
XWD 25,FZ
REPEAT 46,<XWD 0,0>
RADIX 10
FSH: BYTE (5) 0,2,15,1,0,13,1,0,8,1,2,6,1,4,6,1,6,8,0,6,21
BYTE (5) 1,6,6,0,11,6
FKH: BYTE (5) 0,0,13,1,0,8,1,2,6,1,4,6,1,6,8,0,0,13,1,6,13
BYTE (5) 0,6,21,1,6,6,0,11,6
FDH: BYTE (5) 0,0,21,1,0,6,0,0,11,1,2,13,1,4,13,1,6,11,1,6,6
BYTE (5) 1,4,4,0,6,11,1,8,13,1,10,13,1,12,11,1,12,6,1,10,4
BYTE (5) 0,17,6
FV: BYTE (5) 0,0,21,1,0,6,0,0,11,1,2,13,1,4,13,1,6,11,1,6,6
BYTE (5) 0,6,11,1,8,13,1,10,13,1,12,11,1,12,6,0,0,6,1,13,6
BYTE (5) 0,17,6
FZH: BYTE (5) 0,2,15,1,0,13,1,0,8,1,2,6,1,4,6,1,6,8,1,6,13
BYTE (5) 1,8,15,0,6,8,1,8,6,1,10,6,1,12,8,0,12,21,1,12,6
BYTE (5) 0,17,6
FGH: BYTE (5) 0,0,13,1,0,8,1,2,6,1,4,6,1,6,8,1,6,13,0,6,8
BYTE (5) 1,8,6,1,10,6,1,12,8,0,0,13,1,12,13,0,12,21,1,12,6
BYTE (5) 0,17,6
F9: BYTE (5) 0,0,13,1,0,6,0,0,11,1,2,13,1,4,13,1,6,11,1,6,6
BYTE (5) 1,4,4,0,11,6
F0: BYTE (5) 0,0,13,1,0,6,0,0,11,1,2,13,1,4,13,1,6,11,1,6,6
BYTE (5) 0,0,6,1,7,6,0,11,6
FT: BYTE (5) 0,0,0,1,0,11,1,2,13,1,4,13,1,6,11,1,6,6,1,4,4
BYTE (5) 0,11,6
FP: BYTE (5) 0,0,0,1,0,11,1,2,13,1,4,13,1,6,11,1,6,6,0,0,6
BYTE (5) 1,7,6,0,11,6
FC: BYTE (5) 0,2,15,1,0,13,1,0,8,1,2,6,1,4,6,1,6,8,0,6,15
BYTE (5) 1,6,0,0,11,6
FK: BYTE (5) 0,0,13,1,0,8,1,2,6,1,4,6,1,6,8,0,0,13,1,6,13
BYTE (5) 1,6,0,0,11,6
FD: BYTE (5) 0,0,0,1,0,11,1,2,13,1,4,13,1,6,11,1,6,6,1,4,4
BYTE (5) 0,6,11,1,8,13,1,10,13,1,12,11,1,12,6,1,10,4,0,17,6
FB: BYTE (5) 0,0,0,1,0,11,1,2,13,1,4,13,1,6,11,1,6,6,0,6,11
BYTE (5) 1,8,13,1,10,13,1,12,11,1,12,6,0,0,6,1,13,6,0,17,6
FJ: BYTE (5) 0,2,15,1,0,13,1,0,8,1,2,6,1,4,6,1,6,8,1,6,13
BYTE (5) 1,8,15,0,6,8,1,8,6,1,10,6,1,12,8,0,12,15,1,12,0
BYTE (5) 0,17,6
FG: BYTE (5) 0,0,13,1,0,8,1,2,6,1,4,6,1,6,8,1,6,13,0,6,8
BYTE (5) 1,8,6,1,10,6,1,12,8,0,0,13,1,12,13,1,12,0,0,17,6
FTH: BYTE (5) 0,0,21,1,0,6,0,0,11,1,2,13,1,4,13,1,6,11,1,6,6
BYTE (5) 1,4,4,0,11,6
FF: BYTE (5) 0,0,21,1,0,6,0,0,11,1,2,13,1,4,13,1,6,11,1,6,6
BYTE (5) 0,0,6,1,7,6,0,11,6
ALTS: BYTE (5) 0,4,15,1,0,11,1,0,8,1,2,6,1,4,6,1,6,8,1,6,10
BYTE (5) 1,4,12,1,3,12,1,2,11,0,11,6
FS: BYTE (5) 0,4,7,1,3,6,1,2,6,1,0,8,1,0,10,1,2,12,1,4,12
BYTE (5) 1,6,10,1,6,7,1,2,3,0,11,6
ALTZ: BYTE (5) 0,4,16,1,0,12,1,0,9,1,2,7,1,4,7,1,6,9,1,6,11
BYTE (5) 1,4,13,1,3,13,1,2,12,0,2,7,1,0,5,1,0,2,1,2,0
BYTE (5) 1,4,0,1,6,2,1,6,4,1,4,6,1,3,6,1,2,5,0,11,6
FZ: BYTE (5) 0,2,0,1,6,4,1,6,7,1,4,9,1,2,9,1,0,7,1,0,5
BYTE (5) 1,2,3,1,3,3,1,4,4,0,4,9,1,6,11,1,6,14,1,4,16
BYTE (5) 1,2,16,1,0,14,1,0,12,1,2,10,1,3,10,1,4,11,0,11,6
FU: BYTE (5) 0,0,16,1,3,19,1,4,19,1,5,18,1,5,17,1,4,16,1,3,16
BYTE (5) 1,2,17,1,2,18,0,0,6
FO: BYTE (5) 0,3,18,1,3,17,1,2,16,1,1,16,1,0,17,1,0,18,1,1,19
BYTE (5) 1,2,19,1,5,16,0,0,6
FI: BYTE (5) 0,3,16,1,3,18,0,0,6
FE: BYTE (5) 0,2,16,1,5,19,0,0,6
FA: BYTE (5) 0,1,16,1,1,18,0,3,18,1,3,20,0,5,16,1,5,18,0,0,6
FOLY: BYTE (5) 0,2,16,1,2,18,0,4,16,1,4,18,0,0,6
OVBR: BYTE (5) 0,1,16,1,5,16,0,0,6
OF: BYTE (5) 0,0,21,1,0,0,0,0,11,1,2,13,1,4,13,1,6,11,1,6,6
BYTE (5) 0,6,11,1,8,13,1,10,13,1,12,11,1,12,6,0,0,6,1,13,6
BYTE (5) 0,17,6
OFTHE: BYTE (5) 0,0,21,1,0,0,0,0,11,1,2,13,1,4,13,1,6,11,1,6,6
BYTE (5) 0,6,11,1,8,13,1,10,13,1,12,11,1,12,6,0,0,6,1,13,6
BYTE (5) 0,0,3,1,6,3,0,17,6
THE: BYTE (5) 0,0,21,1,0,0,0,0,11,1,2,13,1,4,13,1,6,11,1,6,6
BYTE (5) 1,4,4,0,6,11,1,8,13,1,10,13,1,12,11,1,12,6,1,10,4
BYTE (5) 0,17,6
SCR: BYTE (5) 0,7,12,1,2,12,1,0,10,1,0,6,1,2,4,1,7,4,0,12,6
UDOT: BYTE (5) 0,5,2,1,5,0,0,0,6
LCR: BYTE (5) 0,5,12,1,5,4,1,2,1,1,0,1,0,11,6
FW: BYTE (5) 0,0,8,1,2,6,1,4,6,1,6,8,1,6,10,1,4,12,1,2,12
BYTE (5) 1,0,10,1,0,8,0,11,6
FR: BYTE (5) 0,0,11,1,5,6,0,4,13,1,6,15,1,8,15,1,10,13,1,10,11
BYTE (5) 1,2,3,1,2,1,1,3,0,1,5,0,0,15,6
MODR: BYTE (5) 0,0,11,1,5,6,0,4,13,1,6,15,1,8,15,1,10,13,1,10,11
BYTE (5) 1,2,3,1,2,1,1,3,0,1,5,0,0,4,8,1,1,5,0,15,6
FH: BYTE (5) 0,0,15,1,9,6,1,11,6,0,5,10,1,1,6,0,17,6
FY: BYTE (5) 0,1,12,1,3,12,1,9,6,1,11,6,0,5,10,1,1,6,0,17,6
FL: BYTE (5) 0,0,11,1,12,11,0,6,11,1,3,8,1,3,4,1,6,1,1,9,1
BYTE (5) 0,17,6
FX: BYTE (5) 0,0,11,1,9,11,0,5,11,1,3,9,1,3,7,1,5,5,1,5,3
BYTE (5) 1,3,1,0,14,6
F11: BYTE (5) 0,2,15,1,0,13,1,0,8,1,2,6,1,4,6,1,6,8,0,6,15
BYTE (5) 1,6,6,0,11,6
F12: BYTE (5) 0,0,13,1,0,8,1,2,6,1,4,6,1,6,8,0,0,13,1,6,13
BYTE (5) 1,6,6,0,11,6
FN: BYTE (5) 0,0,13,1,0,6,0,0,11,1,2,13,1,4,13,1,6,11,1,6,6
BYTE (5) 1,4,4,0,6,11,1,8,13,1,10,13,1,12,11,1,12,6,1,10,4
BYTE (5) 0,17,6
FM: BYTE (5) 0,0,13,1,0,6,0,0,11,1,2,13,1,4,13,1,6,11,1,6,6
BYTE (5) 0,6,11,1,8,13,1,10,13,1,12,11,1,12,6,0,0,6,1,13,6
BYTE (5) 0,17,6
F7: BYTE (5) 0,2,15,1,0,13,1,0,8,1,2,6,1,4,6,1,6,8,1,6,13
BYTE (5) 1,8,15,0,6,8,1,8,6,1,10,6,1,12,8,0,12,15,1,12,6
BYTE (5) 0,17,6
F8: BYTE (5) 0,0,13,1,0,8,1,2,6,1,4,6,1,6,8,1,6,13,0,6,8
BYTE (5) 1,8,6,1,10,6,1,12,8,0,0,13,1,12,13,1,12,6,0,17,6
SP: BYTE (5) 0,17,6
FHW: BYTE (5) 0,6,18,1,6,6,0,6,12,1,2,12,1,0,10,1,0,8,1,2,6
BYTE (5) 1,9,6,0,14,6
FQ: BYTE (5) 0,0,16,1,2,18,0,2,16,1,2,20,1,3,21,1,4,21,1,5,20
BYTE (5) 1,5,19,1,4,18,1,3,18,1,2,19,0,0,6
FQA: BYTE (5) 0,1,16,1,3,18,0,3,16,1,3,20,1,2,21,1,1,21,1,0,20
BYTE (5) 1,0,19,1,1,18,1,2,18,1,3,19,0,0,6
PRGEND
TITLE PLOTC (RUSSIAN CHARACTER SET)
SUBTTL BILL WEIHER: STANFORD A-I; 21 OCT 67
SEARCH MTHPRM,FORPRM
SEGMENT CODE
ENTRY PLOTC
PLOTC: XWD 0,0
XWD 10,T21
XWD 11,T22
XWD 14,T23
XWD 4,T24
XWD 10,T25
XWD 7,T26
XWD 13,T27
XWD 12,T210
XWD 16,T211
XWD 7,T212
XWD 0,0
XWD 7,T214
XWD 6,T215
XWD 5,T216
XWD 6,T217
XWD 12,T220
XWD 4,T221
XWD 7,T222
XWD 11,T223
XWD 5,T224
XWD 6,T225
XWD 14,T226
XWD 4,T227
XWD 7,T230
XWD 7,T231
XWD 10,T232
XWD 12,T233
EXP 0,0,0
XWD 13,T237
XWD 15,T240
XWD 12,T241
REPEAT 37,<XWD 0,0>
XWD 16,T2101
XWD 15,T2102
XWD 12,T2103
XWD 4,T2104
XWD 10,T2105
XWD 13,T2106
XWD 17,T2107
XWD 12,T2110
XWD 14,T2111
XWD 5,T2112
XWD 10,T2113
XWD 5,T2114
XWD 6,T2115
XWD 5,T2116
XWD 6,T2117
XWD 12,T2120
XWD 4,T2121
XWD 12,T2122
XWD 11,T2123
XWD 5,T2124
XWD 6,T2125
XWD 14,T2126
XWD 4,T2127
XWD 7,T2130
XWD 7,T2131
XWD 10,T2132
XWD 12,T2133
XWD 12,T2134
XWD 12,T2135
XWD 10,T2136
XWD 13,T2137
XWD 13,T2140
XWD 11,T2141
XWD 1,T2142
REPEAT 36,<XWD 0,0>
RADIX 10
T21: BYTE (5) 1,0,12,1,2,14,1,4,14,1,6,12,1,6,6,0,6,9,1,0,9
BYTE (5) 0,8,6
T22: BYTE (5) 1,0,14,1,4,14,0,0,10,1,3,10,1,4,9,1,4,7,1,3,6
BYTE (5) 1,0,6,0,8,6
T23: BYTE (5) 1,0,14,1,5,14,1,6,13,1,6,11,1,5,10,1,0,10,0,5,10
BYTE (5) 1,6,9,1,6,7,1,5,6,1,0,6,0,8,6
T24: BYTE (5) 1,0,14,1,5,14,1,5,12,0,8,6
T25: BYTE (5) 1,0,7,1,2,9,1,2,14,1,6,14,1,6,6,1,6,7,1,0,7
BYTE (5) 0,8,6
T26: BYTE (5) 1,0,14,1,6,14,0,4,10,1,0,10,0,0,6,1,6,6,0,8,6
T27: BYTE (5) 1,0,14,1,6,14,0,4,10,1,0,10,0,0,6,1,6,6,0,2,15
BYTE (5) 1,2,16,0,4,16,1,4,15,0,8,6
T210: BYTE (5) 1,4,10,1,0,14,0,4,10,1,7,10,1,11,14,0,5,14,1,5,6
BYTE (5) 0,11,6,1,7,10,0,13,6
T211: BYTE (5) 0,0,7,1,1,6,1,3,6,1,4,7,1,4,9,1,3,10,1,2,10
BYTE (5) 1,3,10,1,4,11,1,4,13,1,3,14,1,1,14,1,0,13,0,8,6
T212: BYTE (5) 0,0,14,1,0,6,1,0,7,1,6,13,1,6,14,1,6,6,0,8,6
T214: BYTE (5) 0,1,6,1,1,14,0,1,10,1,5,14,0,1,10,1,5,6,0,8,6
T215: BYTE (5) 1,1,6,1,2,7,1,2,14,1,6,14,1,6,6,0,8,6
T216: BYTE (5) 1,0,14,1,3,11,1,6,14,1,6,6,0,8,6
T217: BYTE (5) 1,0,14,0,0,10,1,6,10,0,6,14,1,6,6,0,8,6
T220: BYTE (5) 0,0,8,1,0,12,1,2,14,1,4,14,1,6,12,1,6,8,1,4,6
BYTE (5) 1,2,6,1,0,8,0,8,6
T221: BYTE (5) 1,0,14,1,6,14,1,6,6,0,8,6
T222: BYTE (5) 1,0,14,1,5,14,1,6,13,1,6,11,1,5,10,1,0,10,0,8,6
T223: BYTE (5) 0,6,13,1,5,14,1,2,14,1,0,12,1,0,8,1,2,6,1,5,6
BYTE (5) 1,6,7,0,8,6
T224: BYTE (5) 0,3,6,1,3,14,0,0,14,1,6,14,0,8,6
T225: BYTE (5) 0,0,14,1,3,11,1,6,14,0,3,11,1,3,6,0,8,6
T226: BYTE (5) 0,0,9,1,0,11,1,2,13,1,4,13,1,6,11,1,6,9,1,4,7
BYTE (5) 1,2,7,1,0,9,0,3,14,1,3,6,0,8,6
T227: BYTE (5) 1,6,12,0,0,12,1,6,6,0,8,6
T230: BYTE (5) 0,0,14,1,0,6,1,3,6,1,3,14,0,3,6,1,4,5,0,8,6
T231: BYTE (5) 0,0,14,1,0,12,1,1,11,1,4,11,0,4,14,1,4,6,0,8,6
T232: BYTE (5) 0,0,14,1,0,6,1,3,6,1,3,14,0,3,6,1,6,6,1,6,14
BYTE (5) 0,8,6
T233: BYTE (5) 0,0,14,1,0,6,1,3,6,1,3,14,0,3,6,1,6,6,1,6,14
BYTE (5) 0,6,6,1,7,5,0,9,6
T237: BYTE (5) 0,0,13,1,1,14,1,4,14,1,6,12,1,6,8,1,4,6,1,1,6
BYTE (5) 1,0,7,0,6,10,1,3,10,0,8,6
T240: BYTE (5) 1,0,14,0,0,10,1,2,10,1,2,13,1,3,14,1,5,14,1,6,13
BYTE (5) 1,6,7,1,5,6,1,3,6,1,2,7,1,2,10,0,8,6
T241: BYTE (5) 0,6,6,1,6,14,1,1,14,1,0,13,1,0,11,1,1,10,1,6,10
BYTE (5) 0,4,10,1,0,6,0,8,6
T2101: BYTE (5) 0,0,9,1,1,10,1,3,10,1,4,9,1,4,6,0,4,8,1,3,9
BYTE (5) 1,1,9,1,0,8,1,0,7,1,1,6,1,3,6,1,4,7,0,8,6
T2102: BYTE (5) 0,0,8,1,1,9,1,3,9,1,4,8,1,4,7,1,3,6,1,1,6
BYTE (5) 1,0,7,1,0,10,1,2,12,1,3,12,1,4,11,0,8,6
T2103: BYTE (5) 1,0,10,1,3,10,1,4,9,1,3,8,1,0,8,0,3,8,1,4,7
BYTE (5) 1,3,6,1,0,6,0,8,6
T2104: BYTE (5) 1,0,10,1,3,10,1,3,9,0,8,6
T2105: BYTE (5) 1,0,7,1,1,8,1,1,10,1,4,10,1,4,6,1,4,7,1,0,7
BYTE (5) 0,8,6
T2106: BYTE (5) 0,0,8,1,4,8,1,4,9,1,3,10,1,1,10,1,0,9,1,0,7
BYTE (5) 1,1,6,1,3,6,1,4,7,0,8,6
T2107: BYTE (5) 0,0,8,1,4,8,1,4,9,1,3,10,1,1,10,1,0,9,1,0,7
BYTE (5) 1,1,6,1,3,6,1,4,7,0,1,11,1,1,12,0,3,12,1,3,11
BYTE (5) 0,8,6
T2110: BYTE (5) 1,2,8,1,0,10,0,3,10,1,3,6,0,6,6,1,4,8,1,6,10
BYTE (5) 0,2,8,1,4,8,0,8,6
T2111: BYTE (5) 0,0,9,1,1,10,1,3,10,1,4,9,1,3,8,1,2,8,0,3,8
BYTE (5) 1,4,7,1,3,6,1,1,6,1,0,7,0,8,6
T2112: BYTE (5) 0,0,10,1,0,6,1,4,10,1,4,6,0,8,6
T2113: BYTE (5) 0,0,10,1,0,6,1,4,10,1,4,6,0,1,12,1,2,11,1,3,12
BYTE (5) 0,8,6
T2114: BYTE (5) 1,0,10,0,2,10,1,0,8,1,2,6,0,8,6
T2115: BYTE (5) 1,1,6,1,2,7,1,2,10,1,4,10,1,4,6,0,8,6
T2116: BYTE (5) 1,0,10,1,2,8,1,4,10,1,4,6,0,8,6
T2117: BYTE (5) 1,0,10,0,4,10,1,4,6,0,4,8,1,0,8,0,8,6
T2120: BYTE (5) 0,0,7,1,0,9,1,1,10,1,3,10,1,4,9,1,4,7,1,3,6
BYTE (5) 1,1,6,1,0,7,0,8,6
T2121: BYTE (5) 1,0,10,1,4,10,1,4,6,0,8,6
T2122: BYTE (5) 1,0,9,1,1,10,1,3,10,1,4,9,1,4,7,1,3,6,1,1,6
BYTE (5) 1,0,7,1,0,4,0,8,6
T2123: BYTE (5) 0,4,9,1,3,10,1,1,10,1,0,9,1,0,7,1,1,6,1,3,6
BYTE (5) 1,4,7,0,8,6
T2124: BYTE (5) 0,0,10,1,4,10,0,2,10,1,2,6,0,8,6
T2125: BYTE (5) 0,0,9,1,3,6,0,6,9,1,1,4,1,0,4,0,8,6
T2126: BYTE (5) 0,0,7,1,0,9,1,1,10,1,3,10,1,4,9,1,4,7,1,3,6
BYTE (5) 1,1,6,1,0,7,0,2,11,1,2,5,0,8,6
T2127: BYTE (5) 1,4,10,0,0,10,1,4,6,0,8,6
T2130: BYTE (5) 0,0,10,1,0,6,1,2,6,1,2,10,0,2,6,1,3,5,0,8,6
T2131: BYTE (5) 0,0,10,1,0,9,1,1,8,1,3,8,0,3,10,1,3,6,0,8,6
T2132: BYTE (5) 0,0,10,1,0,6,1,2,6,1,2,10,0,2,6,1,4,6,1,4,10
BYTE (5) 0,8,6
T2133: BYTE (5) 0,0,10,1,0,6,1,2,6,1,2,10,0,2,6,1,4,6,1,4,10
BYTE (5) 0,4,6,1,5,5,0,8,6
T2134: BYTE (5) 0,0,10,1,0,11,1,2,11,1,2,6,1,3,6,1,4,7,1,4,8
BYTE (5) 1,3,9,1,2,9,0,8,6
T2135: BYTE (5) 0,0,11,1,0,6,1,1,6,1,2,7,1,2,8,1,1,9,1,0,9
BYTE (5) 0,3,6,1,3,11,0,8,6
T2136: BYTE (5) 0,0,11,1,0,6,1,1,6,1,2,7,1,2,8,1,1,9,1,0,9
BYTE (5) 0,8,6
T2137: BYTE (5) 0,0,7,1,1,6,1,3,6,1,4,7,1,4,9,1,3,10,1,1,10
BYTE (5) 1,0,9,0,4,8,1,2,8,0,8,6
T2140: BYTE (5) 1,0,10,0,0,8,1,2,8,1,2,9,1,3,10,1,4,9,1,4,7
BYTE (5) 1,3,6,1,2,7,1,2,8,0,8,6
T2141: BYTE (5) 0,4,6,1,4,10,1,1,10,1,0,9,1,1,8,1,4,8,0,2,8
BYTE (5) 1,0,6,0,8,6
T2142: BYTE (5) 0,8,6
PRGEND
TITLE PLOT SUBROUTINES
SUBTTL R C CLEMENTS/DMN/CKS/EDS/PLB
SEARCH MTHPRM,FORPRM
FSRCH ;[3210]
SEGMENT CODE
;FROM LIB40 V010 - 05 AUG 68
;THIS PACKAGE CONTAINS THE PLOT ROUTINES FOR THE XY10 PLOTTER.
;THE CALLING SEQUENCE IS THAT USED BY FORTRAN 10
;THE CALLS ARE:
; CALL PLOTS (I)
; CALL PLOT (X,Y,PEN)
; CALL SYMBOL (X,Y,SIZE,BCD,THETA,NBCD)
; CALL SYMBOL (X,Y,SIZE,CHARARCTEREXP,THETA) ![3210]
; CALL SETABL (TABLE,ANSWER)
; CALL MKTBL (TABLENUMBER,ADDRESS)
; CALL WHERE (X,Y)
; CALL NUMBER (X,Y,SIZE,FPNUM,THETA,FRACTDIGITS)
;
; X,Y ARE INCHES FROM ORIGIN, FLT PT
; SIZE IS CHARACTER HEIGHT, FLT PT, SHOULD BE
; A MULTIPLE OF .08" IF SMALL
;
; THETA IS IN DEGREES, FLT PT.
; PEN IS
; 3 PEN UP
; 2 PEN DOWN
; 1 PEN UNCHANGED
; -N = N AND THEN CLEAR X,Y AND OUTPUT
;PLOTTER COMMANDS (USING CALCOMP'S AXIS CONVENTIONS)
PENUP=40
PENDWN=20
MVLFT=10 ;-X DRUM UP
MVRT=4 ;+X DRUM DOWN
MVDWN=1 ;-Y CARRIAGE RIGHT
MVUP=2 ;+Y CARRIAGE LEFT
IF10,<DFSTEP==100.0> ;DEFAULT STEPS PER INCH
IF20,<DFSTEP==254.0>
;ACCUMULATOR DEFINITIONS
; 0 ;TEMP USED BY F4LIB
SC=1 ;SCALER IN BRM IN PLOT.
TX=2 ;TEMP FOR X IN PLOT.
TY=3 ;TEMP FOR Y IN PLOT.
; 4 ;CLOBBERED IN PLOT. BY IDIV
CHAR=5 ;CHARACTER IN SYMBOL
STROKE=6 ;STROKE BYTE POINTER
SCT=7 ;STROKE COUNT
XO=10 ;ORIGIN OF CHAR IN SYMBOL
YO=11 ;ORIGIN OF CHAR IN SYMBOL
TP=12 ;BYTE POINTER TO TEXT
TDX=13 ;TEMP FOR DAT FOR X IN PLOT.
TDY=14 ;TEMP FOR DAT FOR Y IN PLOT.
DAT=15 ;ARGUMENT FOR PLT1,TEMP IN SYMBOL
Q=16 ;JSA AC
EXTERN OPEN.,WTB.,IOLST.
EXTERN SIND.,COSD.,EXP2.,PLOT.A
HELLO (PLOTS)
SETZM @0(Q) ;MARK SUCCESS
HLRE T1,-1(Q) ;GET ARG COUNT
CAMG T1,[-2] ;MORE THAN 1?
SKIPN T1,@1(Q) ;YES, GET STEP SIZE
MOVSI T1,(DFSTEP) ;NONE, USE DEFAULT
MOVEM T1,STPSIZ ;SET STEP SIZE
XMOVEI L,OPNARG ;[4003] POINT TO OPEN BLOCK
PUSHJ P,OPEN. ;SET UP PLOT IO ON CHANNEL -7
PUSHJ P,PLTINI ;SET UP BUFFER
SETOM PEN ;MARK PEN DOWN TO FORCE RAISE
FUNCT (PLOT,<X,Y,[-3]>) ;[4003] MOVE TO HERE, RAISE PEN
MOVE T1,[IFIW PLOT.A(CHAR)] ;[4003] PTR TO CHAR SET TABLE FOR SYMBOL
MOVEM T1,T1M
POPJ P,
;PLOT ROUTINE
HELLO (PLOT)
MOVE 1,[IOWD 4,ARGS] ;[4003] LOCAL STACK
PUSH 1,@0(Q) ;SVX
PUSH 1,@1(Q) ;SVY
PUSH 1,@2(Q) ;SVPEN
PUSHJ P,PLOT. ;DO WORK
POPJ P,
PLT1: SOSG POB+2
PUSHJ P,PLTOUT
IDPB DAT,POB+1
POPJ P,0
PLTOUT: PUSH P,T1 ;SAVE TEMP ACS
HRRZ T1,POB+1 ;POINT TO BYTE LAST STORED
SUBI T1,PLTBUF-1 ;GET COUNT OF WORDS IN BUFFER
JUMPE T1,PLTSKP ;NONE, SKIP OUTPUT
MOVEM T1,PLTN ;STORE WORD COUNT
XMOVEI L,WTBARG ;[4003] WRITE BUFFER
PUSHJ P,WTB.
XMOVEI L,IOLARG ;[4003]
PUSHJ P,IOLST.
JRST PLTSKP
PLTINI: PUSH P,T1
PLTSKP: MOVE T1,[POINT 6,PLTBUF-1,35] ;RESET POINTER
MOVEM T1,POB+1
MOVEI T1,6*PLTL ;RESET BYTE COUNT
MOVEM T1,POB+2
SETZM PLTBUF ;CLEAR BUFFER
MOVE T1,[PLTBUF,,PLTBUF+1]
BLT T1,PLTBUF+PLTL-1
POP P,T1
POPJ P,
; IFIW KEYWORD DATA TYPE DATA
XWD -5,0
OPNARG: BYTE (2)^B10 (7)OK.UNIT (4)TP%INT (5)0 (18)[-7] ;[4003]
BYTE (2)^B10 (7)OK.ACC (4)TP%LIT (5)0 (18)[ASCIZ /SEQOUT/] ;[4003]
BYTE (2)^B10 (7)OK.MOD (4)TP%LIT (5)0 (18)[ASCIZ /IMAGE/] ;[4003]
BYTE (2)^B10 (7)OK.DEV (4)TP%LIT (5)0 (18)[ASCIZ /PLT/] ;[4003]
BYTE (2)^B10 (7)OK.FIL (4)TP%LIT (5)0 (18)[ASCIZ /DATA.PLT/] ;[4003]
XWD -1,0
WTBARG: BYTE (2)^B10 (7)IK.UNIT (4)TP%INT (5)0 (18)[-7] ;[4003]
XWD -4,0
IOLARG: BYTE (2)^B10 (7)2 (4)TP%INT (5)0 (18)PLTN ;[4003] SLIST: PLTN WORDS
BYTE (2)^B10 (7)0 (4)TP%INT (5)0 (18)[1] ;[4003] BY 1
BYTE (2)^B10 (7)0 (4)TP%INT (5)0 (18)PLTBUF ;[4003] STARTING @ PLTBUF
BYTE (2)^B10 (7)4 (27)0 ;[4003] FIN
PLOT.:
PENCK: MOVM TX,SVPEN ;SAVE ABS(TX) FOR PEN
CAIG TX,1 ;LEAVE PEN AS IS?
JRST PENOK ;YES
SUBI TX,3
CAMN TX,PEN
JRST PENOK
MOVEI DAT,PENUP
SKIPGE TX
MOVEI DAT,PENDWN
PUSHJ P,PLT1
MOVEM TX,PEN
PENOK: MOVE TX,SVX
FMPR TX,STPSIZ
FADRI TX,(0.5)
SKIPGE SVX
FSBRI TX,(1.0)
FIX 0,TX
MOVEM 0,ISX
MOVE TX,0
MOVE TY,SVY
FMPR TY,STPSIZ
FADRI TY,(0.5)
SKIPGE SVY
FSBRI TY,(1.0)
FIX 0,TY
MOVEM 0,ISY
MOVE TY,0
SUB TX,IX
MOVEI TDX,MVLFT
SKIPL TX
MOVEI TDX,MVRT
SUB TY,IY
MOVEI TDY,MVDWN
SKIPL TY
MOVEI TDY,MVUP
MOVMS TX
MOVMS TY
CAMG TY,TX
JRST NOSWAP
EXCH TX,TY
EXCH TDX,TDY
NOSWAP: JUMPE TX,ENDOU1 ;NO MOTION
JUMPE TY,NORM
MOVEI SC,0
NY: TLNE TY,200000
JRST NX
LSH TY,1
TRO TY,1
AOJA SC,NY
NX: SUBI SC,^D34
MKSC: IDIV TY,TX
MOVN SC,SC
LSH TY,0(SC)
NORM: MOVEM TY,STEP
MOVEI TY,0
IOR TDY,TDX
INLOOP: ADD TY,STEP
MOVE DAT,TDX
TLZE TY,200000
MOVE DAT,TDY
PUSHJ P,PLT1
SOJG TX,INLOOP
MOVE TY,ISX
MOVEM TY,IX
MOVE TY,SVX
MOVEM TY,X
MOVE TY,ISY
MOVEM TY,IY
MOVE TY,SVY
MOVEM TY,Y
ENDOU1: SKIPL SVPEN
JRST ENDOUT
PUSHJ P,PLTOUT
SETZM X
SETZM Y
SETZM IX
SETZM IY
ENDOUT: SETZM SVPEN
POPJ P,0
;ROUTINE TO PLOT CHARACTERS
HELLO (SYMBOL)
MOVE 1,[IOWD 3,ARGS] ;[3210] LOCAL STACK
PUSH 1,@0(Q) ;SVX
PUSH 1,@1(Q) ;SVY
MOVE 0,@2(Q) ;[3210]
MOVEM 0,SVSZ ;[3210] SIZE
MOVE 0,@4(Q) ;[3210]
MOVEM 0,SVOR ;[3210] THETA
XMOVEI 1,@3(Q) ;[3210] TEXT ADDR OR DESCRIPTOR ADDR
LDB 0,[POINTR(3(Q),ARGTYP)] ;[3210] LOAD OUT TYPE
CAIE 0,TP%CHR ;[3210] CHARACTER?
JRST [ $BLDBP 1 ;[3210] MAKE THE RIGHT KIND OF BP
MOVE 0,@5(Q) ;[3210] LOAD TEXT LENGTH
JRST SYM1] ;[3210] JOIN COMMON CODE FOR CHAR
MOVE 0,1(1) ;[3210] FETCH LENGTH FROM DESCRIPTOR
MOVE 1,0(1) ;[3210] STEAL BYTE POINTER TOO
SYM1: MOVEM 0,SVNTXT ;[3210] STORE LENGTH
MOVEM 1,SVTXT ;[3210] STORE TEXT BP
FUNCT (COSD.,<<TP%SPR,SVOR>>)
MOVEM 0,COSOR ;COS(THETA)
FUNCT (SIND.,<<TP%SPR,SVOR>>)
MOVEM 0,SINOR ;SIN(THETA)
MOVEI TX,3
MOVEM TX,SVPEN ;PEN UP
PUSHJ P,PLOT. ;MOVE TO X,Y SUPPLIED
SKIPG SVSZ
JRST ENDTXT ;SIZE MUST BE >0
MOVE TP,SVTXT ;[3210] BP TO TEXT
LP1: SOSGE SVNTXT
JRST ENDTXT
ILDB CHAR,TP ;GET TEXT CHAR
;[4003] The Stroke table has one word entries of the form:
;[4003] CNT,,[STROKES]. The correct stroke table entry is found
;[4003] by an EA calc through the EFIW indexed by CHAR contained
;[4003] in T1M. Since the address of [STROKES] is only 18 bits,
;[4003] the section number from the table entry is used.
MOVSI 0,<(POINT 5,(STROKE))> ;[4003] STROKES HAVE 5 BIT BYTES
MOVEM 0,STRKBP ;[4003] SAVE STROKE BP
XMOVEI STROKE,@T1M ;[4003] GET ADDRESS OF CNT,,[STROKES]
HRR STROKE,(STROKE) ;[4003] MAKE SECTION,,[STROKES]
;[4003] THIS WILL CAUSE GLOBAL INDEXING IN STRKBP
HLRZ SCT,@T1M ;NUMBER OF STROKES
JUMPE SCT,LP1 ;UNDEFINED CHAR
MOVE XO,X
MOVE YO,Y ;ORIGIN OF THE CHARACTER
OUT1: ILDB TX,STRKBP ;1 FOR MARK, 0 FOR BLANK
MOVN TX,TX
ADDI TX,3
MOVEM TX,SVPEN ;2 FOR MARK, 3 FOR BLANK
ILDB TX,STRKBP ;LOAD X STROKE
ILDB TY,STRKBP ;LOAD Y STROKE
SUBI TY,6 ;OFFSET FOR VERTICAL
FSC TX,230 ;FLOAT AND DIVIDE BY 8
FSC TY,230
FMPR TX,SVSZ ;SCALE UP BY CHARACTER SIZE
FMPR TY,SVSZ
MOVE DAT,TX
FMPR DAT,COSOR ;X*COS(THETA)
MOVN 0,TY
FMPR 0,SINOR ;-Y*SIN(THETA)
FADR 0,DAT ;ADD TOGETHER
FADR 0,XO ;ADD IN ORIGIN
MOVEM 0,SVX ;STORE AS X TO PLOT TO
MOVE DAT,TY
FMPR DAT,COSOR ;Y*COS(THETA)
MOVE 0,TX
FMPR 0,SINOR
FADR 0,DAT ;+X*SIN(THETA)
FADR 0,YO ;ADD ON Y ORIGIN
MOVEM 0,SVY ;Y TO PLOT TO
PUSHJ P,PLOT.
SOJG SCT,OUT1 ;LOOP FOR ALL STROKES
JRST LP1 ;LOOP FOR ALL CHARACTERS
ENDTXT: POPJ P,
;ROUTINE TO ALLOW USE OF DIFFERENT CHARACTER TABLE
;[4003] REFORMATTED
HELLO (SETABL)
MOVE T1, @(Q) ;GET CODE
SETZM @1(Q) ;INDICATE SUCCESS
JUMPLE T1, NOGO ;<= ZERO IS ILLEGAL
CAILE T1,^D10 ;MUST BE <= 10.
JRST NOGO
SKIPN T1, CTBL-1(T1) ;GET INDICATED TABLE
JRST NOGO ;[4003] NO SUCH TABLE (EMPTY)
MOVEM T1, T1M ;RESET PARAMETERS IN SYMBOL
SKIPA
NOGO: SETOM @1(Q) ;GIVE ERROR INDICATION
POPJ P,
;ROUTINE TO ALLOW NEW TABLE TO BE CREATED
;GIVEN NUMBER AND POINTER TO NEW TABLE
;[4003] REFORMATTED
HELLO (MKTBL)
MOVE T1, @(Q) ;FETCH SETNUMBER
CAIG T1, ^D10 ;TOO BIG?
SKIPG T1 ;TOO SMALL?
JRST FOOT ;YES, GIVE IT THE BOOT
MOVEM T1, SVTB ;OK, SAVE SETNUMBER
XMOVEI T0, @1(Q) ;[4003] GET ADDR OF CHARACTER TABLE
TLNE T0, -1 ;[4003] NON-ZERO SECTION?
TLOA T0, (<CHAR>B5) ;[4003] YES, USE EFIW
HRLI T0, (IFIW (CHAR)) ;[4003] NO, USE IFIW
MOVEM T0, CTBL-1(T1) ;PUT IN POINTER
SKIPA ;RETURN OK
FOOT: SETZM @0(Q) ;RETURN FAILURE
POPJ P,
;ROUTINE TO GIVE BACK CURRENT X,Y POSITION
HELLO (WHERE)
MOVE T1,X ;RETURN X, Y
MOVEM T1,@0(L)
MOVE T1,Y
MOVEM T1,@1(L)
POPJ P,
;ROUTINE TO PLOT NUMBERS
HELLO (NUMBER)
MOVE 1,[IOWD 7,NARGS] ;[4003] LOCAL STACK POINTER TO COPY ARGS
PUSH 1,@0(Q) ;SVXN X (LOWER LEFT CORNER OF FIRST DIGIT)
PUSH 1,@1(Q) ;SVYN Y (LOWER LEFT CORNER OF FIRST DIGIT)
PUSH 1,@2(Q) ;SVSZN SIZE IN INCHES
PUSH 1,@3(Q) ;SVFN FNUM - THE FLOATING POINT NUMBER
PUSH 1,@4(Q) ;SVORN THETA - DIRECTION (IN DEGREES)
PUSH 1,@5(Q) ;SVNN NDIGIT - NUMBER OF DIGITS TO THE RIGHT OF '.'
; IF SVNN < 0 PRINT ROUNDED INTEGER
FUNCT (PLOT,<SVXN,SVYN,[3]>) ;[4003] MOVE TO X,Y WITH PEN UP
MOVSI 1,(ASCII '-') ;[4003]
SKIPGE SVFN ;NEGATIVE?
PUSHJ P,DECP2 ;YES, TYPE A MINUS
MOVMS SVFN ;MAKE NUMBER POSTIVE NOW
SKIPGE 1,SVNN ;FLOATING?
MOVEI 1,0 ;NO, WILL BE NO DIGITS PAST THE DOT
MOVNM 1,T2T
FUNCT (EXP2.,<<TP%SPR,[10.0]>,<TP%SPR,T2T>>) ;[4003]
MOVEM 0,T2T ;SAVE
FSC 0,-1 ;GET ROUNDING FACTOR (DIVIDE BY 2)
FADRB 0,SVFN ;ROUND IN FIRST INSIGNIFICANT DIGIT
FDVR 0,T2T ;SCALE TO AN INTEGER
FIX 0,0
MOVEM 0,UNITS
PUSHJ P,DECPLT ;PLOT IT
MOVSI 1,(ASCII '.') ;[4003]
SKIPN SVNN ;TYPING ZERO DIGITS PAST '.'?
PUSHJ P,DECP2 ;YES, TYPE DECIMAL POINT NOW
ENDNUM: POPJ P,
; PLOT MAGITUDE DECIMAL INTEGER FROM UNITS
DECPLT: MOVM T1,UNITS ;TAKE MAGNITUDE
SETZM DIGITS ;NO DIGITS YET
DECP3: IDIVI T1,^D10 ;DIVIDE OFF A DIGIT
PUSH P,T2 ;[4003] SAVE REMAINDER
AOS DIGITS ;KEEP COUNT
SKIPE T1 ;ANY DIGITS LEFT?
PUSHJ P,DECP3 ;YES, RECURSE
; UNWINDING NOW
MOVE 0,DIGITS ;GET DIGITS TYPES
CAMLE 0,SVNN
JRST DECP4
MOVSI T1,(ASCII '.') ;[4003]
PUSHJ P,DECP2 ;PLOT A "."
CAML 0,SVNN
JRST DECP4A
DECP5: MOVSI T1,(ASCII '0') ;[4003]
PUSHJ P,DECP2 ;TYPE IT
AOS T1,DIGITS ;ANOTHER DIGIT TYPED
CAMGE T1,SVNN
JRST DECP5
DECP4A: SETOM SVNN ;FAKE OUT TEST NEXT TIME AROUND
DECP4: SOS DIGITS
POP P,T1 ;GET NEXT DIGIT OFF STACK
TRO T1,60 ;MAKE ASCII
ROT T1,-7 ;MAKE LEFT JUSTIFIED
DECP2: MOVEM T1,TEMP ;SAVE FOR CALL TO SYMBOL
PUSH P,0 ;[3314] SAVE AC 0
FUNCT (SYMBOL,<<TP%SPR,X>,<TP%SPR,Y>,<TP%SPR,SVSZN>,<TP%SPR,TEMP>,
<TP%SPR,SVORN>,<TP%INT,[1]>>) ;TYPE AS A SYMBOL
POP P,0 ;[3314] RESTORE AC 0
POPJ P,0
SEGMENT DATA
;ALL SORTS TEMPS AND STUFF
STRKBP: BLOCK 1 ;[4003] BYTE POINTER FOR STROKES
POB: BLOCK 3
PLTL==200 ;LENGTH OF PLOT BUFFER
PLTBUF: BLOCK PLTL
PLTN==POB ;COUNT OF WORDS FILLED IN BUFFER
ARGS: ;ARGUMENT STORAGE - DO NOT REARRANGE
SVX: 0
SVY: 0
SVPEN: 0
SVSZ: 0
SVTXT: 0
SVOR: 0
SVNTXT: 0
NARGS:
SVXN: 0
SVYN: 0
SVSZN: 0
SVFN: 0
SVORN: 0
SVNN: 0
X: 0
Y: 0
PEN: 0
STEP: 0
UNITS: 0
DIGITS: 0
TEMP: 0
T2T: 0
SVTB: 0
COSOR: 0
SINOR: 0
ISX: 0
ISY: 0
IX: 0
IY: 0
STPSIZ: 0
T1M: 0
EXTERNAL PLOTC,PLOTF
CTBL: IFIW PLOT.A(CHAR) ;[4003] LINE PRINTER CHARACTER SET
IFIW PLOTC(CHAR) ;[4003] RUSSIAN OR 0 IF NOT LOADED
IFIW PLOTF(CHAR) ;[4003] FAENORIAN OR 0 IF NOT LOADED
EXP 0,0,0,0,0,0,0 ;FILL OUT TO 10.
PRGEND
TITLE PLOT.A ASCII CHARACTER DEFS
SUBTTL DAVE NEFF/DZN 25-Jul-79
; CHARS is a module defining a character set for plotting. It
;conforms to the specifications of FORTRAN's plotting subroutines,
;and therefore has the following format:
;
; XWD STROKS,ADDR
;
;where STROKS is the number of pen strokes in the character, and
;ADDR is the address of the following:
;
;ADDR: BYTE (5)PEN1,X1,Y1,PEN2,X2,Y2,...,PENn,Xn,Yn
;
;PENi is 1 for a visible stroke, and 0 for an invisible one. The
;Xi and Yi have a rather obscure format. The values of Xi and Yi
;can take on the values from 0 to 15, but a character is considered to
;start at (0,6). The character can wander about anywhere in the field of
;dots, but normal characters should end up at (8,6). In fact, all characters
;(except for things like underbars, and lower case characters that go
;below the line) will usually remain in the rectangle (0,6), (0,14), (6,14),
;and (6,6).
;
; The macros below allow the table to be defined in a manner that
;allows each stroke to be picked out easily. Unfortunately, this has
;required rather complex and obscure macros. Too bad.
; [4003] Note for extended addressing; Since the character table
; [4003] entries are of the form COUNT,,ADDR the ADDR is assumed to
; [4003] come from the same section as the count, address pair. God
; [4003] help you if you make a table that crosses section boundries.
SEARCH MTHPRM,FORPRM ;[3121] Use common library macros
SALL ;You delete this at your on risk
ENTRY PLOT.A
SEGMENT CODE
RADIX 10
DEFINE CLEAR<DEFINE CONCAT(FTXT)<DEFINE CONCAT(TEXT)<CON1 <TEXT>,<FTXT>>
DEFINE EXPAND<FTXT>>
DEFINE EXPAND<>>
DEFINE CON1(NTXT,OTXT)<DEFINE CONCAT(TEXT)<CON1<TEXT>,<OTXT','NTXT>>
DEFINE EXPAND<OTXT','NTXT>>
DEFINE C(LIST)<
$$Z==0
CLEAR
IRP LIST,<
$$Z==$$Z+1
CONCAT LIST>
$$Z,,[BYTE (5)EXPAND]
>
SUBTTL The ASCII Character Set for Plotters
;NUL ^@
PLOT.A: 0
; ^A
0
; ^B
0
; ^C
0
; ^D
0
; ^E
0
; ^F
0
;BEL ^G
0
;BS ^H
0
;TAB ^I
0
;LF ^J
0
;VT ^K
0
;FF ^L
0
;CR ^M
0
; ^N
0
; ^O
0
; ^P
0
; ^Q
0
; ^R
0
; ^S
0
; ^T
0
; ^U
0
; ^V
0
; ^W
0
; ^X
0
; ^Y
0
; ^Z
0
; ^[
0
; ^\
0
; ^]
0
; ^^
0
; ^_
0
; <space>
C <<0,8,6>>
; !
C <<0,3,6>,<1,2,7>,<1,3,8>,<1,4,7>,<1,3,6>,<0,3,9>,<1,2,14>,
<1,4,14>,<1,3,9>,<0,8,6>>
; "
C <<0,2,12>,<1,3,13>,<1,3,14>,<1,2,14>,<1,2,13>,<1,3,13>,<0,4,12>,
<1,5,13>,<1,5,14>,<1,4,14>,<1,4,13>,<1,5,13>,<0,8,6>>
; #
C <<0,2,7>,<1,2,13>,<0,4,13>,<1,4,7>,<0,6,9>,<1,0,9>,<0,0,11>,<1,6,11>,
<0,8,6>>
; $
C <<0,1,8>,<1,2,7>,<1,4,7>,<1,5,8>,<1,5,9>,<1,4,10>,<1,2,10>,<1,1,11>,<1,1,12>,
<1,2,13>,<1,4,13>,<1,5,12>,<0,3,14>,<1,3,6>,<0,8,6>>
; %
C <<1,6,14>,<0,2,14>,<1,0,14>,<1,0,12>,<1,2,12>,<1,2,14>,<0,4,6>,
<1,4,8>,<1,6,8>,<1,6,6>,<1,4,6>,<0,8,6>>
; &
C <<0,6,6>,<1,0,12>,<1,0,13>,<1,1,14>,<1,2,14>,<1,3,13>,<1,3,12>,<1,0,8>,
<1,0,7>,<1,1,6>,<1,3,6>,<1,6,9>,<0,8,6>>
; '
C <<0,2,12>,<1,4,14>,<0,8,6>>
; (
C <<0,4,6>,<1,3,7>,<1,2,9>,<1,2,11>,<1,3,13>,<1,4,14>,<0,8,6>>
; )
C <<0,2,6>,<1,3,7>,<1,4,9>,<1,4,11>,<1,3,13>,<1,2,14>,<0,8,6>>
; *
C <<0,0,10>,<1,6,10>,<0,5,12>,<1,1,8>,<0,3,7>,<1,3,13>,<0,1,12>,<1,5,8>,
<0,8,6>>
; +
C <<0,0,10>,<1,6,10>,<0,3,13>,<1,3,7>,<0,8,6>>
; ,
C <<0,2,5>,<1,3,6>,<1,3,7>,<1,2,7>,<1,2,6>,<1,3,6>,<0,8,6>>
; -
C <<0,0,10>,<1,6,10>,<0,8,6>>
; .
C <<0,3,6>,<1,2,6>,<1,2,7>,<1,3,7>,<1,3,6>,<0,8,6>>
; /
C <<1,6,14>,<0,8,6>>
; 0
C <<1,6,14>,<0,6,12>,<1,4,14>,<1,2,14>,<1,0,12>,<1,0,8>,<1,2,6>,<1,4,6>,
<1,6,8>,<1,6,12>,<0,8,6>>
; 1
C <<0,1,12>,<1,3,14>,<1,3,6>,<0,1,6>,<1,5,6>,<0,8,6>>
; 2
C <<0,0,13>,<1,1,14>,<1,5,14>,<1,6,13>,<1,6,11>,<1,5,10>,<1,1,8>,
<1,0,7>,<1,0,6>,<1,6,6>,<0,8,6>>
; 3
C <<0,0,13>,<1,1,14>,<1,5,14>,<1,6,13>,<1,6,11>,<1,5,10>,<1,3,10>,
<0,5,10>,<1,6,9>,<1,6,7>,<1,5,6>,<1,1,6>,<1,0,7>,<0,8,6>>
; 4
C <<0,5,6>,<1,5,14>,<1,0,9>,<1,6,9>,<0,8,6>>
; 5
C <<0,0,7>,<1,1,6>,<1,5,6>,<1,6,7>,<1,6,10>,<1,5,11>,<1,1,11>,<1,0,10>,
<1,1,14>,<1,6,14>,<0,8,6>>
; 6
C <<0,0,9>,<1,1,10>,<1,5,10>,<1,6,9>,<1,6,7>,<1,5,6>,<1,1,6>,<1,0,7>,
<1,0,10>,<1,1,12>,<1,2,13>,<1,4,14>,<1,5,14>,<0,8,6>>
; 7
C <<1,6,14>,<1,0,14>,<0,8,6>>
; 8
C <<0,1,10>,<1,0,11>,<1,0,13>,<1,1,14>,<1,5,14>,<1,6,13>,<1,6,11>,
<1,5,10>,<1,1,10>,<1,0,9>,<1,0,7>,<1,1,6>,<1,5,6>,<1,6,7>,<1,6,9>,
<1,5,10>,<0,8,6>>
; 9
C <<0,1,6>,<1,2,6>,<1,4,7>,<1,5,8>,<1,6,10>,<1,6,13>,<1,5,14>,
<1,1,14>,<1,0,13>,<1,0,11>,<1,1,10>,<1,5,10>,<1,6,11>,<0,8,6>>
; :
C <<0,3,6>,<1,3,7>,<1,2,7>,<1,2,6>,<1,3,6>,<0,3,9>,<1,3,10>,<1,2,10>,
<1,2,9>,<1,3,9>,<0,8,6>>
; ;
C <<0,2,5>,<1,3,6>,<1,3,7>,<1,2,7>,<1,2,6>,<1,3,6>,<0,3,9>,<1,3,10>,<1,2,10>,
<1,2,9>,<1,3,9>,<0,8,6>>
; <
C <<0,6,7>,<1,0,10>,<1,6,13>,<0,8,6>>
; =
C <<0,0,9>,<1,6,9>,<0,6,11>,<1,0,11>,<0,8,6>>
; >
C <<0,0,7>,<1,6,10>,<1,0,13>,<0,8,6>>
; ?
C <<0,3,6>,<1,2,7>,<1,3,8>,<1,4,7>,<1,3,6>,<0,0,13>,<1,1,14>,<1,5,14>,
<1,6,13>,<1,6,11>,<1,5,10>,<1,4,10>,<1,3,9>,<0,8,6>>
; @
C <<0,4,8>,<1,5,9>,<1,5,11>,<1,4,12>,<1,2,12>,<1,1,11>,<1,1,9>,
<1,2,8>,<1,5,8>,<1,6,9>,<1,6,12>,<1,4,14>,<1,2,14>,<1,0,12>,<1,0,8>,
<1,2,6>,<1,4,6>,<1,5,7>,<0,8,6>>
; A
C <<1,3,14>,<1,6,6>,<0,1,9>,<1,5,9>,<0,8,6>>
; B
C <<1,0,14>,<1,5,14>,<1,6,13>,<1,6,11>,<1,5,10>,<1,0,10>,<0,5,10>,<1,6,9>,
<1,6,7>,<1,5,6>,<1,0,6>,<0,8,6>>
; C
C <<0,6,13>,<1,5,14>,<1,1,14>,<1,0,13>,<1,0,7>,<1,1,6>,<1,5,6>,<1,6,7>,
<0,8,6>>
; D
C <<1,0,14>,<1,3,14>,<1,5,13>,<1,6,11>,<1,6,9>,<1,5,7>,<1,3,6>,<1,0,6>,
<0,8,6>>
; E
C <<1,0,14>,<1,6,14>,<0,4,10>,<1,0,10>,<0,0,6>,<1,6,6>,<0,8,6>>
; F
C <<1,0,14>,<1,6,14>,<0,4,10>,<1,0,10>,<0,8,6>>
; G
C <<0,3,10>,<1,6,10>,<1,6,7>,<1,5,6>,<1,1,6>,<1,0,7>,<1,0,13>,<1,1,14>,
<1,5,14>,<1,6,13>,<0,8,6>>
; H
C <<1,0,14>,<0,0,10>,<1,6,10>,<0,6,14>,<1,6,6>,<0,8,6>>
; I
C <<0,1,14>,<1,5,14>,<0,3,14>,<1,3,6>,<0,1,6>,<1,5,6>,<0,8,6>>
; J
C <<0,0,8>,<1,0,7>,<1,1,6>,<1,3,6>,<1,4,7>,<1,4,14>,<0,2,14>,<1,6,14>,
<0,8,6>>
; K
C <<1,0,14>,<0,0,10>,<1,6,14>,<0,0,10>,<1,6,6>,<0,8,6>>
; L
C <<0,0,14>,<1,0,6>,<1,6,6>,<0,8,6>>
; M
C <<1,0,14>,<1,3,10>,<1,6,14>,<1,6,6>,<0,8,6>>
; N
C <<1,0,14>,<1,6,6>,<1,6,14>,<0,8,6>>
; O
C <<0,0,7>,<1,0,13>,<1,1,14>,<1,5,14>,<1,6,13>,<1,6,7>,<1,5,6>,<1,1,6>,
<1,0,7>,<0,8,6>>
; P
C <<1,0,14>,<1,5,14>,<1,6,13>,<1,6,11>,<1,5,10>,<1,0,10>,<0,8,6>>
; Q
C <<0,1,6>,<1,0,7>,<1,0,13>,<1,1,14>,<1,5,14>,<1,6,13>,<1,6,7>,
<1,5,6>,<1,1,6>,<0,3,8>,<1,4,8>,<1,6,6>,<1,7,6>,<0,8,6>>
; R
C <<1,0,14>,<1,5,14>,<1,6,13>,<1,6,11>,<1,5,10>,<1,0,10>,<0,2,10>,
<1,6,6>,<0,8,6>>
; S
C <<0,0,7>,<1,1,6>,<1,5,6>,<1,6,7>,<1,6,9>,<1,5,10>,<1,1,10>,<1,0,11>,
<1,0,13>,<1,1,14>,<1,5,14>,<1,6,13>,<0,8,6>>
; T
C <<0,3,6>,<1,3,14>,<0,0,14>,<1,6,14>,<0,8,6>>
; U
C <<0,0,14>,<1,0,7>,<1,1,6>,<1,5,6>,<1,6,7>,<1,6,14>,<0,8,6>>
; V
C <<0,0,14>,<1,3,6>,<1,6,14>,<0,8,6>>
; W
C <<0,0,14>,<1,0,6>,<1,3,10>,<1,6,6>,<1,6,14>,<0,8,6>>
; X
C <<1,6,14>,<0,0,14>,<1,6,6>,<0,8,6>>
; Y
C <<0,3,6>,<1,3,10>,<1,0,14>,<0,6,14>,<1,3,10>,<0,8,6>>
; Z
C <<1,6,14>,<1,0,14>,<0,2,10>,<1,4,10>,<0,0,6>,<1,6,6>,<0,8,6>>
; [
C <<0,5,14>,<1,3,14>,<1,3,6>,<1,5,6>,<0,8,6>>
; \
C <<0,0,14>,<1,6,6>,<0,8,6>>
; ]
C <<0,1,14>,<1,3,14>,<1,3,6>,<1,1,6>,<0,8,6>>
; ^
C <<0,0,12>,<1,3,14>,<1,6,12>,<0,8,6>>
; _
C <<0,0,4>,<1,6,4>,<0,8,6>>
; `
C <<0,2,14>,<1,4,12>,<0,8,6>>
; a
C <<0,5,7>,<1,4,6>,<1,1,6>,<1,0,7>,<1,0,10>,<1,1,11>,<1,4,11>,
<1,5,10>,<0,5,11>,<1,5,6>,<0,8,6>>
; b
C <<1,0,14>,<0,0,10>,<1,1,11>,<1,4,11>,<1,5,10>,<1,5,7>,<1,4,6>,
<1,1,6>,<1,0,7>,<0,8,6>>
; c
C <<0,5,10>,<1,4,11>,<1,1,11>,<1,0,10>,<1,0,7>,<1,1,6>,<1,4,6>,
<1,5,7>,<0,8,6>>
; d
C <<0,5,14>,<1,5,6>,<0,5,7>,<1,4,6>,<1,1,6>,<1,0,7>,<1,0,10>,<1,1,11>,
<1,4,11>,<1,5,10>,<0,8,6>>
; e
C <<0,0,8>,<1,5,9>,<1,5,10>,<1,4,11>,<1,1,11>,<1,0,10>,<1,0,7>,
<1,1,6>,<1,4,6>,<1,5,7>,<0,8,6>>
; f
C <<0,0,10>,<1,2,10>,<0,1,6>,<1,1,13>,<1,2,14>,<1,4,14>,<1,5,13>,
<0,8,6>>
; g
C <<0,0,3>,<1,1,2>,<1,4,2>,<1,5,3>,<1,5,11>,<0,5,10>,<1,4,11>,
<1,1,11>,<1,0,10>,<1,0,7>,<1,1,6>,<1,4,6>,<1,5,7>,<0,8,6>>
; h
C <<1,0,14>,<0,0,10>,<1,1,11>,<1,4,11>,<1,5,10>,<1,5,6>,<0,8,6>>
; i
C <<0,2,6>,<1,4,6>,<0,3,6>,<1,3,11>,<1,2,11>,<0,3,12>,<1,3,13>,
<1,2,13>,<1,2,12>,<1,3,12>,<0,8,6>>
; j
C <<0,0,3>,<1,1,2>,<1,4,2>,<1,5,3>,<1,5,11>,<1,4,11>,<0,4,12>,
<1,4,13>,<1,5,13>,<1,5,12>,<1,4,12>,<0,8,6>>
; k
C <<1,0,14>,<0,0,9>,<1,4,11>,<1,5,11>,<0,2,10>,<1,5,6>,<0,8,6>>
; l
C <<0,2,6>,<1,4,6>,<0,3,6>,<1,3,14>,<1,2,14>,<0,8,6>>
; m
C <<1,0,11>,<0,0,10>,<1,1,11>,<1,2,11>,<1,3,10>,<1,3,6>,<0,3,10>,
<1,4,11>,<1,5,11>,<1,6,10>,<1,6,6>,<0,8,6>>
; n
C <<1,0,11>,<0,0,10>,<1,1,11>,<1,4,11>,<1,5,10>,<1,5,6>,<0,8,6>>
; o
C <<0,1,6>,<1,0,7>,<1,0,10>,<1,1,11>,<1,4,11>,<1,5,10>,<1,5,7>,
<1,4,6>,<1,1,6>,<0,8,6>>
; p
C <<0,0,7>,<1,1,6>,<1,4,6>,<1,5,7>,<1,5,10>,<1,4,11>,<1,1,11>,<1,0,10>,
<0,0,11>,<1,0,2>,<0,8,6>>
; q
C <<0,5,7>,<1,4,6>,<1,1,6>,<1,0,7>,<1,0,10>,<1,1,11>,<1,4,11>,<1,5,10>,
<0,5,11>,<1,5,2>,<0,8,6>>
; r
C <<0,1,6>,<1,1,10>,<1,0,11>,<0,1,10>,<1,2,11>,<1,4,11>,<1,5,10>,<0,8,6>>
; s
C <<0,0,7>,<1,1,6>,<1,4,6>,<1,5,7>,<1,4,8>,<1,1,9>,<1,0,10>,<1,1,11>,
<1,4,11>,<1,5,10>,<0,8,6>>
; t
C <<0,0,11>,<1,4,11>,<0,2,13>,<1,2,7>,<1,3,6>,<1,4,6>,<1,5,7>,<0,8,6>>
; u
C <<0,0,11>,<1,0,7>,<1,1,6>,<1,4,6>,<1,5,7>,<0,5,11>,<1,5,6>,<0,8,6>>
; v
C <<0,0,11>,<1,3,6>,<1,6,11>,<0,8,6>>
; w
C <<0,0,11>,<1,1,6>,<1,3,10>,<1,5,6>,<1,6,11>,<0,8,6>>
; x
C <<0,0,11>,<1,5,6>,<0,0,6>,<1,5,11>,<0,8,6>>
; y
C <<0,0,2>,<1,3,6>,<1,0,11>,<0,3,6>,<1,6,11>,<0,8,6>>
; z
C <<0,0,11>,<1,5,11>,<1,0,6>,<1,5,6>,<0,8,6>>
; {
C <<0,4,14>,<1,3,13>,<1,3,11>,<1,2,10>,<1,3,9>,<1,3,7>,<1,4,6>,<0,8,6>>
; |
C <<0,3,14>,<1,3,6>,<0,8,6>>
; }
C <<0,2,14>,<1,3,13>,<1,3,11>,<1,4,10>,<1,3,9>,<1,3,7>,<1,2,6>,<0,8,6>>
; ~
C <<0,0,13>,<1,2,14>,<1,4,12>,<1,6,13>,<0,8,6>>
;DEL
C <<1,0,10>,<1,1,9>,<1,1,7>,<1,0,6>,<0,3,10>,<1,2,10>,<1,2,6>,<1,3,6>,
<0,2,8>,<1,3,8>,<0,4,10>,<1,4,6>,<1,5,6>,<0,8,6>>
SUBTTL The End
LIT
PRGEND
TITLE PLOTCD (DUMMY PLOTC)
ENTRY PLOTC
NOSYM
PLOTC==0
PRGEND
TITLE PLOTFD (DUMMY PLOTF)
ENTRY PLOTF
NOSYM
PLOTF==0
END