Trailing-Edge
-
PDP-10 Archives
-
decuslib10-12
-
43,50547/pltlib/v12a/setsym.mac
There is 1 other file named setsym.mac in the archive. Click here to see a list.
SUBTTL Subroutine Descriptions -- SETSYM - Get data from SYMBOL.DAT
SEARCH PLTUNV ;Search the universal file
TTL (<SETSYM - Gets the data tables for SYMBOL>)
; This subroutine reads the SYMBOL table from either SYS:SYMBOL.DAT[1,4]
;or SYMBOL:SYMBOL.DAT[-], or returns information about the tables.
;NOTE: In order to use the negative tables, the user must define the
;logical device SYMBOL: via the ASSIGN or PATH commands to the Monitor.
;Calling sequence:
; CALL SETSYM(IFUNC,IARG,IANS) !The 3rd arg may be a REAL variable
; IFUNC = (input) Name of the function to perform. INTEGER or CHARACTER*5.
; IARG = (input) The argument of the function
; IANS = (output) Returned answer (not necessarily an integer)
; CALL SETSYM('TABLE',ITABLE,IERR)
; IFUNC = 'TABLE' - Change tables or return the value of the current one.
; ITABLE = The number of the table to be loaded into memory for SYMBOL.
; + = Positive values read from SYS:SYMBOL.DAT[1,4]
; - = Negative values read from SYMBOL:SYMBOL.DAT[-]
; 0 = Same as CALL SETSYM('NUMBER',0,IANS)
; IERR = The error flag . Returned as 0 if no errors, as -1 if errors.
; CALL SETSYM('NUMBER',0,IANS)
; IFUNC = 'NUMBE' - Read the current table number.
; IARG = Ignored.
; IANS = The table number. Positive if the table was read from
; SYS:SYMBOL.DAT[1,4], negative if from SYMBOL:SYMBOL.DAT[-].
; CALL SETSYM('NAME',IARG,CANS)
; IFUNC = 'NAME' - Return name corresponding with table number.
; IARG = Table number, zero means current table.
; CANS = The table name returned as CHARACTER*15.
; CALL SETSYM('WIDTH',LETTER,WIDTH)
; IFUNC = 'WIDTH' - Read the width for the specified letter.
; LETTER = The ASCII code or CHARACTER*1 variable. "A"=65.
; WIDTH = The width as compared to the height, a number from 0.0 to 1.0.
PAGE
;The tables defined in SYS:SYMBOL.DAT are:
;
; Description Upper Lower Number Punctu- Bracket Symbols
; case case ation [\]^_ #$%+-<=>@
; -- -------------- ----- ----- ------ ------ ------- ---------
; 1. CSM standard Yes Yes Yes Yes Yes Yes
; 2. DEC standard Yes No Yes Yes Yes Yes
; 3. Olde English Yes Yes Yes Yes Yes $ only
; 4. Old German Yes Yes No No No No
; 5. Old Itialian Yes Yes No No No No
; 6. Script Yes Yes No No No No
; 7. Double line Yes Yes Yes Yes [] +-/<=>
; 8. Italics Yes Yes Yes Yes [] +-/<=>
; 9. Triple line Yes Yes Yes Yes No #$%+-=
; 10. Triple Italics Yes Yes Yes Yes No #$%+-=
; 11. Round letters Yes Yes Yes Yes No #$%+-=
; 12. Greek letters Yes Yes No No No No
; 13. Double Greek Yes Yes No No No No
;There are 26 centered symbols in SETSYM tables +1 and +2.
; 0 Square box 8 Z
; 1 Circle 9 Y
; 2 Triangle 10 Square star
; 3 Plus sign 11 Asterisk
; 4 X 12 Hourglass
; 5 Diamond 13 Vertical bar
; 6 Up arrow 14 Five pointed star
; 7 X with a bar on top 15 Horizontal bar
; 16-25 Digits 0 through 9, centered about the point
SUBTTL SETSYM -- Dispatch, 'NUMBE' and 'WIDTH'
ND MAXSET,^D20
ND SETSIZ,^D12*200
A=P1 ;Preserved AC
B=P2 ;Byte pointer
C=P3 ;Counter
D=P4 ;Data
PURGE P1,P2,P3,P4
; CALL SETSYM(IFUNC,IARG,IANS)
ENTRY SETSYM ;Set up entry point
SIXBIT /SETSYM/
SETSYM: LDB T1,[ACPNTR 0(L)] ;Get type of argument
CAIN T1,ACTYPE(CHARACT) ;CHARACTER expression?
SKIPA T1,@0(L) ;Yes, get byte pointer
XMOVEI T1,@0(L) ;No, get addr of numeric variable
MOVE T1,@T1 ;Get one word of data
ANDCM T1,[BYTE(7)40,40,40,40,40] ;Translate lower to uppercase
;(also converts spaces to nulls)
MOVSI T2,-FUNLEN ;Set up AOBJN counter
SETSY1: CAMN T1,FUNASC(T2) ;Match?
JRST @FUNDSP(T2) ;Yes, do it
AOBJN T2,SETSY1 ;Try next
ERRSTR (<SETSYM - Unknown function>)
PUSHJ P,TRACE.## ;Trace the subroutine calls
POPJ P,
DEFINE SETFUN,<XALL
XX TABLE ;Change symbol tables
XX NUMBE ;Return current table number
XX NAME ;Return table name
XX WIDTH ;Get width of a symbol
SALL> ;End of DEFINE SETFUN
DEFINE XX(ARG),<
ASCII/ARG/>
FUNASC: SETFUN ;Function names
FUNLEN==.-FUNASC
DEFINE XX(ARG),<
IFIW D'ARG>
FUNDSP: SETFUN ;Dispatch table
;'NUMBE' - Return current table number
DNUMBE: MOVE T1,NUMB0 ;Get old number (+ or -)
MOVEM T1,@2(L) ;Return as IANS
POPJ P,
;'WIDTH' - Return width of a particular letter
DWIDTH: MOVE D,@1(L) ;Get the character
TLNE D,774000 ;Left justified ASCII?
LSH D,-^D29 ;Yes, right justify it
SUB D,MINC.N ;Subtract min
CAMG D,MAXC.N ;Within range?
SKIPN B,IPOINT(D) ;And pointer non-zero
POPJ P, ;No, return 0
AND B,[777700,,007777] ;Remove byte count
ADDI B,STROKS ;Point to the data area
ILDB T1,B ;Get the width of the character
FLOAT T1 ;To floating point
FDVR T1,HITE.N ;Ratio of width/height
MOVEM T1,@2(L) ;Return WIDTH fraction
POPJ P,
;'NAME' - Return name of table
DNAME: MOVE T1,@1(L) ;Get arg
CAME T1,OLDSET ;Skip if asking for current table name
JUMPN T1,DNAME1 ;Zero means current table name
GETBC T1,2 ;Get byte pointer and count (T2=max if INTEGER)
CAILE T2,^D15 ;More than size of name?
MOVEI T2,^D15
MOVE T3,[POINT 7,TNAME] ;Point to table name
DNAME0: ILDB T4,T3 ;Get a char
IDPB T4,T1 ;Store
SOJG T2,DNAME0 ;Copy 15 bytes
POPJ P,
DNAME1: POPJ P, ;**** NOT IMPLEMENTED **********************************
SUBTTL SETSYM -- 'TABLE' - Change symbol tables
DTABLE: MOVE T1,@1(L) ;Get the table to use
JUMPE T1,DNUMBE ;Zero to return current table
CAILE T1,MAXSET ;If out of range,
JRST ISETA3 ; return error
MOVMM T1,NUMB ;Save it for later
MOVEM T1,NUMB0 ;Positive means table was set up by ISETAB
CAMN T1,OLDSET ;Is this table already set up?
JRST ISETA5 ;Yes, use it
SKIPG T1 ;Positive?
SKIPA T3,['SYMBOL'] ;Use SIXBIT/SYMBOL/ for negative (MSETAB)
MOVSI T3,'SYS' ;Use SIXBIT/SYS/ for positive (ISETAB)
MOVEI T2,.IODMP ;Dump mode
MOVEI T4,0 ;No buffers
FT701==0 ;*HACK*
IFN FT701,<PRINTX %Need to write 701 code at ISETA1: and ISETA3:>
IFE FT701,< ;Use OPEN/LOOKUP instead of FILOP.
OPEN %0,T2 ;INIT SYS: or SYMBOL:
JRST ISETA3 ;No
MOVE T1,['SYMBOL'] ;File name
MOVSI T2,'DAT' ;Extension
SETZB T3,T4 ;Implied directory
LOOKUP %0,T1 ;Find SYMBOL.DAT
JRST ISETA2 ;Not there
; The first block is an index, each entry is <-WORD.LENGTH,,BLOCK.NUMBER>
INPUT %0,[IOWD MAXSET,SETBUF
0] ;Read in the index block
MOVE T1,NUMB ;Get requested number again
SKIPN T3,SETBUF-1(T1) ;Skip if the pointer to table is non-zero
JRST ISETA2 ;Go die
USETI %0,(T3) ;Get the right block to start with
CAML T3,[-SETSIZ,,0] ;If the IOWD is bigger than our buffer
TLNN T3,-1 ; or zero
HRLI T3,-SETSIZ ;Use the biggest we can handle
HRRI T3,BUFFER-1 ;Complete RH of IOWD
MOVEI T4,0 ;Stop word
IN %0,T3 ;Read in the data for this table
JRST ISETA4 ;Data read in OK
PFALL ISETA2 ;Error, return -1
ISETA2: RELEAS %0, ;Release the DSK
ISETA3: SETO T2, ;Set the error indicator to bad
JRST ISETA6 ;Return the value
ISETA4: RELEAS %0, ;Release the DSK
> ;End of IFE FT701
MOVE T1,NUMB0 ;Get the number of the stoke table read in
MOVEM T1,OLDSET ;Save the number for later
HLLZS SYMPTR ;Not centered and not normal yet
ISETA5: MOVEI T2,0 ;Set error indicator to good
ISETA6: MOVEM T2,@2(L) ;Store IERR as 3rd arg to SETSYM
SKIPE TNAME ;Is table name set up?
POPJ P, ;Yes
MOVE T1,[[ASCII/(unknown table)/],,TNAME]
BLT T1,TNAME+2 ;No, set name to 15 characters
POPJ P, ;End of ISETAB/MSETAB
IFN FTMKTB,< SUBTTL MKTBL & SETABL -- Entry points
MKTBL:: SETABL::
ERRSTR (<MKTBL and SETABL not implemented>)
**** MORE WORK NEEDED HERE *****************************************************
POPJ P,
> ;End of IFN FTMKTB
NUMB: BLOCK 1 ;Argument to ISETAB/MSETAB (always positive)
NUMB0: BLOCK 1 ;Positive if from ISETAB, negative if from MSETAB
SUBTTL ISETAB table #1 -- Pointers
.DIRECTIVE FLBLST ;First line binary list
SETBUF: BLOCK MAXSET ;First block of SYMBOL.DAT, index pointers
OLDSET: EXP 1 ;The last symbol table used, table #1 is set up
SYMB0L::
BUFFER: ;This data gets overwritten when ISETAB is called
PENU.N: 37 ;Pen-up code, -1 in 5 bits
HITE.N: 8.0 ;Units of height in floating point
MINC.N: 40 ;First normal character (octal code for SPACE)
MAXC.N: 140 ;Number of normal chars (96 including RUBOUT)
PENU.C: 7 ;-1 expressed in 3 bits
HITE.C: 6.0 ;Units of height in floating point
MINC.C: 0 ;First centered symbol
MAXC.C: ^D26 ;Number of centered symbols
TNAME: ASCII /CSM Standard / ;CHARACTER*15 table name
;123456789012345
EXP 0, 0,0,0,0 ;Reserved for future expansion
;The next 200 words are byte pointers, the address an offset from STROKS,
; the count of strokes is in the middle 12 bits. All zero if no such character
IPOINT: <POINT 5,000,-1>+01_^D12 ;space 40
<POINT 5,000,14>+06_^D12 ;! 41
XLIST ;Save paper
<POINT 5,002,04>+06_^D12 ;" 42
<POINT 5,003,29>+14_^D12 ;# 43
<POINT 5,006,34>+21_^D12 ;$ 44
<POINT 5,013,24>+25_^D12 ;% 45
<POINT 5,021,24>+14_^D12 ;& 46
<POINT 5,025,09>+03_^D12 ;' 47
<POINT 5,026,09>+05_^D12 ;( 50
<POINT 5,027,29>+05_^D12 ;) 51
<POINT 5,031,14>+14_^D12 ;* 52
<POINT 5,034,19>+06_^D12 ;+ 53
<POINT 5,036,09>+07_^D12 ;, 54
<POINT 5,040,14>+03_^D12 ;- 55
<POINT 5,041,14>+06_^D12 ;. 56
<POINT 5,043,09>+03_^D12 ;/ 57
<POINT 5,044,09>+15_^D12 ;0 60
<POINT 5,047,34>+04_^D12 ;1 61
<POINT 5,051,09>+12_^D12 ;2 62
<POINT 5,054,09>+14_^D12 ;3 63
<POINT 5,057,29>+05_^D12 ;4 64
<POINT 5,061,14>+13_^D12 ;5 65
<POINT 5,064,24>+13_^D12 ;6 66
<POINT 5,067,34>+04_^D12 ;7 67
<POINT 5,071,09>+21_^D12 ;8 70
<POINT 5,076,09>+13_^D12 ;9 71
<POINT 5,101,19>+14_^D12 ;: 72
<POINT 5,104,34>+15_^D12 ;; 73
<POINT 5,110,24>+04_^D12 ;< 74
<POINT 5,111,34>+06_^D12 ;= 75
<POINT 5,113,24>+04_^D12 ;> 76
<POINT 5,114,34>+13_^D12 ;? 77
LIST
<POINT 5,120,04>+24_^D12 ;@ 100
<POINT 5,125,29>+07_^D12 ;A 101
XLIST
<POINT 5,127,29>+16_^D12 ;B 102
<POINT 5,133,29>+11_^D12 ;C 103
<POINT 5,136,19>+10_^D12 ;D 104
<POINT 5,140,34>+12_^D12 ;E 105
<POINT 5,143,24>+07_^D12 ;F 106
<POINT 5,145,24>+13_^D12 ;G 107
<POINT 5,150,34>+11_^D12 ;H 110
<POINT 5,153,14>+11_^D12 ;I 111
<POINT 5,155,29>+11_^D12 ;J 112
<POINT 5,160,14>+11_^D12 ;K 113
<POINT 5,162,29>+06_^D12 ;L 114
<POINT 5,164,19>+06_^D12 ;M 115
<POINT 5,166,14>+05_^D12 ;N 116
<POINT 5,167,34>+12_^D12 ;O 117
<POINT 5,172,34>+10_^D12 ;P 120
<POINT 5,175,14>+15_^D12 ;Q 121
<POINT 5,201,04>+13_^D12 ;R 122
<POINT 5,204,09>+13_^D12 ;S 123
<POINT 5,207,19>+06_^D12 ;T 124
<POINT 5,211,09>+07_^D12 ;U 125
<POINT 5,213,14>+04_^D12 ;V 126
<POINT 5,214,24>+06_^D12 ;W 127
<POINT 5,216,19>+06_^D12 ;X 130
<POINT 5,220,09>+07_^D12 ;Y 131
<POINT 5,222,09>+05_^D12 ;Z 132
<POINT 5,223,29>+05_^D12 ;[ 133
<POINT 5,225,14>+03_^D12 ;\ 134
<POINT 5,226,14>+05_^D12 ;] 135
<POINT 5,227,34>+07_^D12 ;^ 136
<POINT 5,231,34>+07_^D12 ;_ 137
<POINT 5,233,34>+03_^D12 ;` 140
<POINT 5,234,34>+17_^D12 ;a 141
<POINT 5,241,09>+14_^D12 ;b 142
<POINT 5,244,24>+11_^D12 ;c 143
<POINT 5,247,14>+15_^D12 ;d 144
<POINT 5,253,04>+13_^D12 ;e 145
<POINT 5,256,14>+11_^D12 ;f 146
<POINT 5,260,34>+17_^D12 ;g 147
<POINT 5,265,09>+11_^D12 ;h 150
<POINT 5,267,29>+10_^D12 ;i 151
<POINT 5,272,04>+10_^D12 ;j 152
<POINT 5,274,14>+11_^D12 ;k 153
<POINT 5,276,29>+03_^D12 ;l 154
<POINT 5,277,29>+17_^D12 ;m 155
<POINT 5,303,34>+11_^D12 ;n 156
<POINT 5,306,19>+12_^D12 ;o 157
<POINT 5,311,19>+14_^D12 ;p 160
<POINT 5,314,34>+14_^D12 ;q 161
<POINT 5,320,14>+10_^D12 ;r 162
<POINT 5,322,24>+13_^D12 ;s 163
<POINT 5,325,34>+11_^D12 ;t 164
<POINT 5,330,19>+10_^D12 ;u 165
<POINT 5,332,34>+04_^D12 ;v 166
<POINT 5,334,09>+06_^D12 ;w 167
<POINT 5,336,04>+06_^D12 ;x 170
<POINT 5,337,29>+07_^D12 ;y 171
<POINT 5,341,29>+05_^D12 ;z 172
<POINT 5,343,14>+10_^D12 ;{ 173
<POINT 5,345,29>+03_^D12 ;| 174
<POINT 5,346,29>+10_^D12 ;} 175
LIST
<POINT 5,351,09>+05_^D12 ;~ 176
<POINT 5,352,29>+04_^D12 ;<DEL> 177
;Centered symbols
<POINT 3,354,04>+10_^D12 ; 0
<POINT 3,355,20>+14_^D12 ; 1
XLIST
<POINT 3,357,23>+06_^D12 ; 2
<POINT 3,360,26>+07_^D12 ; 3
<POINT 3,361,35>+07_^D12 ; 4
<POINT 3,363,08>+07_^D12 ; 5
<POINT 3,364,17>+07_^D12 ; 6
<POINT 3,365,26>+06_^D12 ; 7
<POINT 3,366,29>+07_^D12 ; 8
<POINT 3,367,35>+07_^D12 ; 9
<POINT 3,371,08>+16_^D12 ; 10
<POINT 3,373,23>+15_^D12 ; 11
<POINT 3,375,32>+07_^D12 ; 12
<POINT 3,377,05>+04_^D12 ; 13
<POINT 3,377,32>+11_^D12 ; 14
<POINT 3,401,14>+04_^D12 ; 15
<POINT 3,402,05>+14_^D12 ; 16
<POINT 3,404,05>+10_^D12 ;1 17
<POINT 3,405,17>+13_^D12 ;2 18
<POINT 3,407,11>+20_^D12 ;3 19
<POINT 3,411,35>+11_^D12 ;4 20
<POINT 3,413,14>+14_^D12 ;5 21
<POINT 3,415,14>+17_^D12 ;6 22
<POINT 3,417,32>+11_^D12 ;7 23
<POINT 3,421,14>+24_^D12 ;8 24
LIST
<POINT 3,424,26>+17_^D12 ;9 25
BLOCK 200-<.-IPOINT> ;Unused pointers
SUBTTL ISETAB table #1 -- Data
STROKS: BYTE (5) 10,0,6 (5)10,0,6,2, 6,2,7,-1,2,10,2
BYTE (5) 15 (5)10,0,6,2,14,2, 16,-1,4,16,4,14 (5)10
BYTE (5) 0,6,2,7,2,15,-1, 4,15,4,7,-1,6,11
XLIST ;More of the same
BYTE (5) 0,11,-1,0,13,6,13 (5)10,0,6,0,10,2,6
BYTE (5) 4,6,6,10,4,12,2, 12,0,14,2,16,4,16
BYTE (5) 6,14,-1,4,16,4,6, -1,2,6,2,16 (5)10,0
BYTE (5) 6,0,6,6,14,1,14, 0,13,0,12,1,11,2
BYTE (5) 11,3,12,3,13,2,14, -1,4,11,3,10,3,7
BYTE (5) 4,6,5,6,6,7,6, 10,5,11,4,11 (5)10,0
BYTE (5) 6,6,6,1,13,1,15, 2,16,3,16,4,15,0
BYTE (5) 11,0,7,1,6,3,6, 5,10 (5)10,0,6,2,14
BYTE (5) 4,16 (5)10,0,6,2,6, 0,10,0,14,2,16 (5)10
BYTE (5) 0,6,0,6,2,10,2, 14,0,16 (5)10,0,6,0
BYTE (5) 10,4,14,-1,2,14,2, 10,-1,4,10,0,14,-1
BYTE (5) 0,12,4,12 (5)10,0,6, 2,7,2,13,-1,0,11
BYTE (5) 4,11 (5)10,0,6,3,6, 3,7,2,7,2,6,3
BYTE (5) 6,2,5 (5)10,0,6,0, 11,4,11 (5)10,0,6,2
BYTE (5) 6,3,6,3,7,2,7, 2,6 (5)10,0,6,0,6
BYTE (5) 6,14 (5)10,0,6,0,7, 6,15,-1,6,14,4,16
BYTE (5) 2,16,0,14,0,10,2, 6,4,6,6,10,6,14
BYTE (5)10,0,6,1,14,3,16, 3,6 (5)10,0,6,0,14
BYTE (5) 0,15,1,16,5,16,6, 15,6,13,0,7,0,6
BYTE (5) 6,6 (5)10,0,6,0,15, 1,16,5,16,6,15,6
BYTE (5) 14,4,12,6,10,6,7, 5,6,1,6,0,7 (5)10
BYTE (5) 0,6,5,6,5,16,0, 11,6,11 (5)10,0,6,0
BYTE (5) 7,1,6,4,6,6,10, 6,11,5,12,1,12,0
BYTE (5) 11,0,16,6,16 (5)10,0, 6,0,11,1,12,5,12
BYTE (5) 6,11,6,7,5,6,1, 6,0,7,0,12,4,16
BYTE (5)10,0,6,0,16,6,16, 1,6 (5)10,0,6,1,12
BYTE (5) 0,11,0,7,1,6,5, 6,6,7,6,11,5,12
BYTE (5) 6,13,6,15,5,16,1, 16,0,15,0,13,1,12
BYTE (5) 5,12 (5)10,0,6,2,6, 6,12,6,15,5,16,1
BYTE (5) 16,0,15,0,13,1,12, 5,12,6,13 (5)10,0,6
BYTE (5) 2,6,3,6,3,7,2, 7,2,6,-1,2,12,3
BYTE (5) 12,3,13,2,13,2,12 (5)10,0,6,3,6,3,7
BYTE (5) 2,7,2,6,3,6,2, 5,-1,2,12,3,12,3
BYTE (5) 13,2,13,2,12 (5)10,0, 6,3,7,0,12,3,15
BYTE (5)10,0,6,0,10,6,10, -1,6,12,0,12 (5)10,0
BYTE (5) 6,0,7,3,12,0,15 (5)10,0,6,1,15,2,16
BYTE (5) 4,16,5,15,5,14,3, 12,3,10,-1,3,7,3
BYTE (5) 6 (5)10,0,6,1,6,0, 7,0,13,1,14,5,14
BYTE (5) 6,13,6,10,5,7,4, 10,4,13,-1,4,12,3
BYTE (5) 13,2,13,1,12,1,11, 2,10,3,10,4,11 (5)10
BYTE (5) 0,6,0,6,3,16,6, 6,-1,1,11,5,11 (5)10
BYTE (5) 0,6,0,6,0,16,5, 16,6,15,6,13,5,12
BYTE (5) 0,12,-1,5,12,6,11, 6,7,5,6,0,6 (5)10
BYTE (5) 0,6,6,15,5,16,2, 16,0,14,0,10,2,6
BYTE (5) 5,6,6,7 (5)10,0,6, 0,6,0,16,4,16,6
BYTE (5) 14,6,10,4,6,0,6 (5)10,0,6,0,6,0,16
BYTE (5) 6,16,-1,4,12,0,12, -1,0,6,6,6 (5)10,0
BYTE (5) 6,0,6,0,16,6,16, -1,4,12,0,12 (5)10,0
BYTE (5) 6,6,15,5,16,2,16, 0,14,0,10,2,6,4
BYTE (5) 6,6,10,6,12,4,12 (5)10,0,6,0,6,0,16
BYTE (5) -1,6,16,6,6,-1,0, 12,6,12 (5)10,0,6,1
BYTE (5) 6,5,6,-1,3,6,3, 16,-1,1,16,5,16 (5)10
BYTE (5) 0,6,1,7,2,6,3, 6,4,7,4,16,-1,2
BYTE (5) 16,6,16 (5)10,0,6,1, 6,1,16,-1,1,12,5
BYTE (5) 16,-1,1,12,5,6 (5)10, 0,6,0,6,0,16,-1
BYTE (5) 0,6,6,6 (5)10,0,6, 0,6,0,16,3,13,6
BYTE (5) 16,6,6 (5)10,0,6,0, 6,0,16,6,6,6,16
BYTE (5)10,0,6,0,10,0,14, 2,16,4,16,6,14,6
BYTE (5) 10,4,6,2,6,0,10 (5)10,0,6,0,6,0,16
BYTE (5) 5,16,6,15,6,13,5, 12,0,12 (5)10,0,6,0
BYTE (5) 10,0,14,2,16,4,16, 6,14,6,10,4,6,2
BYTE (5) 6,0,10,-1,4,10,6, 6 (5)10,0,6,0,6,0
BYTE (5) 16,5,16,6,15,6,13, 5,12,0,12,-1,2,12
BYTE (5) 6,6 (5)10,0,6,0,10, 2,6,4,6,6,10,4
BYTE (5) 12,2,12,0,14,2,16, 4,16,6,14 (5)10,0,6
BYTE (5) 3,6,3,16,-1,0,16, 6,16 (5)10,0,6,0,16
BYTE (5) 0,7,1,6,5,6,6, 7,6,16 (5)10,0,6,0
BYTE (5) 16,3,6,6,16 (5)10,0, 6,0,16,0,6,3,11
BYTE (5) 6,6,6,16 (5)10,0,6, 0,6,6,16,-1,0,16
BYTE (5) 6,6 (5)10,0,6,0,16, 3,13,6,16,-1,3,13
BYTE (5) 3,6 (5)10,0,6,0,16, 6,16,0,6,6,6 (5)10
BYTE (5) 0,6,3,4,0,4,0, 16,3,16 (5)10,0,6,0
BYTE (5) 14,6,6 (5)10,0,6,3, 4,6,4,6,16,3,16
BYTE (5)10,0,6,0,13,3,16, 6,13,-1,3,16,3,6
BYTE (5)10,0,6,3,7,0,12, 3,15,-1,0,12,6,12
BYTE (5)10,0,6,2,16,4,14 (5)10,0,6,0,11,1,12
BYTE (5) 3,12,4,11,4,6,-1, 4,10,3,11,1,11,0
BYTE (5) 10,0,7,1,6,3,6, 4,7 (5)10,0,6,0,6
BYTE (5) 0,15,-1,0,11,1,12, 3,12,4,11,4,7,3
BYTE (5) 6,1,6,0,7 (5)10,0, 6,4,11,3,12,1,12
BYTE (5) 0,11,0,7,1,6,3, 6,4,7 (5)10,0,6,0
BYTE (5) 7,0,11,1,12,3,12, 4,11,4,7,3,6,1
BYTE (5) 6,0,7,-1,4,6,4, 15 (5)10,0,6,4,7,3
BYTE (5) 6,1,6,0,7,0,11, 1,12,3,12,4,11,4
BYTE (5) 10,0,10 (5)10,0,6,2, 6,2,14,3,15,4,15
BYTE (5) 5,14,-1,0,13,4,13 (5)10,0,6,4,11,3,12
BYTE (5) 1,12,0,11,0,7,1, 6,3,6,4,7,-1,4
BYTE (5) 12,4,5,3,4,1,4, 0,5 (5)10,0,6,0,6
BYTE (5) 0,15,-1,0,11,1,12, 3,12,4,11,4,6 (5)10
BYTE (5) 0,6,3,14,3,13,-1, 3,12,3,7,4,6,5
BYTE (5) 6 (5)10,0,6,3,14,3, 13,-1,3,12,3,5,2
BYTE (5) 4,1,4 (5)10,0,6,0, 6,0,15,-1,0,10,2
BYTE (5) 12,-1,0,10,2,6 (5)10, 0,6,2,6,2,15 (5)10
BYTE (5) 0,6,0,6,0,12,-1, 0,11,1,12,2,12,3
BYTE (5) 11,3,6,-1,3,11,4, 12,5,12,6,11,6,6
BYTE (5)10,0,6,0,6,0,12, -1,0,11,1,12,2,12
BYTE (5) 3,11,3,6 (5)10,0,6, 0,7,0,11,1,12,3
BYTE (5) 12,4,11,4,7,3,6, 1,6,0,7 (5)10,0,6
BYTE (5) 0,4,0,12,-1,0,11, 1,12,3,12,4,11,4
BYTE (5) 7,3,6,1,6,0,7 (5)10,0,6,4,11,3,12
BYTE (5) 1,12,0,11,0,7,1, 6,3,6,4,7,-1,4
BYTE (5) 12,4,4 (5)10,0,6,0, 6,0,12,-1,0,11,1
BYTE (5) 12,3,12,4,11 (5)10,0, 6,0,7,1,6,3,6
BYTE (5) 4,7,3,10,1,10,0, 11,1,12,3,12,4,11
BYTE (5)10,0,6,2,15,2,7, 3,6,4,6,5,7,-1
BYTE (5) 1,13,3,13 (5)10,0,6, 0,12,0,7,1,6,3
BYTE (5) 6,4,7,4,12,4,6 (5)10,0,6,0,12,2,6
BYTE (5) 4,12 (5)10,0,6,0,12, 0,6,2,10,4,6,4
BYTE (5) 12 (5)10,0,6,0,6,4, 12,-1,0,12,4,6 (5)10
BYTE (5) 0,6,0,12,2,6,-1, 4,12,1,4,0,4 (5)10
BYTE (5) 0,6,0,12,4,12,0, 6,4,6 (5)10,0,6,3
BYTE (5) 16,2,15,2,13,0,11, 2,7,2,5,3,4 (5)10
BYTE (5) 0,6,2,4,2,16 (5)10, 0,6,0,16,1,15,1
LIST
BYTE (5) 13,3,11,1,7,1,5, 0,4 (5)0,0,6,2,20 ;350 & 351 = "~"
BYTE (5) 3,21,4,20,5,21 (5)0, 0,6,1,20,4,20,4 ;352 & 353
BYTE (5) 17 (3) 3,3,3,3,5,5,5,5,1,1 ;Start of centered symbols
BYTE (3) 1,1,5,3,5,3,3,3,3,3,3,5 ;355
BYTE (3) 4,5,5,4,5,2,4,1,2,1,1,2, 1,4,2,5,3,5,3,3,3,3,3,3
BYTE (3) 5,5,1,1,1,3,5,3,3,3,3,3, 3,5,3,1,3,3,1,3,5,3,3,3
XLIST
BYTE (3) 3,3,3,5,5,1,1,3,3,1,5,5, 1,3,3,3,3,3,3,5,5,3,3,1
BYTE (3) 1,3,3,5,3,3,3,3,3,3,1,3, 5,5,3,1,3,3,5,3,3,3,3,3
BYTE (3) 1,1,5,5,1,5,5,1,3,3,3,3, 3,1,5,5,5,1,1,5,1,-1,3,3
BYTE (3) 3,3,3,1,5,3,3,5,5,3,3,3, 1,3,3,3,3,3,5,5,4,4,2,4
BYTE (3) 1,5,2,4,2,2,1,1,2,2,4,2, 5,1,4,2,4,4,3,3,3,3,3,3
BYTE (3) 5,3,1,3,3,5,5,1,1,3,3,5, 3,1,3,3,3,5,1,1,5,3,3,3
BYTE (3) 3,3,3,3,5,5,1,5,5,1,1,1, 3,3,3,3,3,3,5,3,1,3,3,3
BYTE (3) 3,3,3,6,5,1,1,4,5,4,1,1, 3,6,-1,3,3,3,3,3,1,3,5,3
BYTE (3) 3,3,3,3,3,2,0,4,0,5,1,5, 5,4,6,2,6,1,5,1,1,2,0,-1
BYTE (3) 3,3,3,3,3,2,5,3,6,3,0,2, 0,4,0,-1,3,3,3,3,3,1,5,2
BYTE (3) 6,4,6,5,5,5,4,1,1,1,0,5, 0,-1,3,3,3,3,3,1,5,2,6,4
BYTE (3) 6,5,5,5,4,4,3,2,3,4,3,5, 2,5,1,4,0,2,0,1,1,-1,3,3
BYTE (3) 3,3,3,1,6,1,3,5,3,-1,4,6, 4,0,-1,3,3,3,3,3,1,1,2,0
BYTE (3) 4,0,5,1,5,2,4,3,1,3,1,6, 5,6,-1,3,3,3,3,3,5,5,4,6
BYTE (3) 2,6,1,5,1,1,2,0,4,0,5,1, 5,2,4,3,2,3,1,2,-1,3,3,3
BYTE (3) 3,3,1,5,1,6,5,6,5,5,3,1, 3,0,-1,3,3,3,3,3,1,5,2,6
BYTE (3) 4,6,5,5,5,4,4,3,2,3,4,3, 5,2,5,1,4,0,2,0,1,1,1,2
BYTE (3) 2,3,1,4,1,5,-1,3,3,3,3,3, 1,1,2,0,4,0,5,1,5,5,4,6
LIST
BYTE (3) 2,6,1,5,1,4,2,3,4,3,5,4, -1,3,3,0 ;End of centered data
BLOCK SETSIZ-<.-BUFFER> ;Reserve the rest of the space
SETEND==.-1
$HISEG
END