MDOSGRAPHICS.LB6/3 < LMt  ;"" @@@RLM`@@fCFgCg Î9AN郜D GB  Da KZ@ Da XbE  DZ HKY DO! XE"  DY'GXDE%0 DX'G Db'G@>X{)> a  G DE D(FN D L D$$mM@ D$[  @cDeD?8 _ LM  ;"" @@@2LM@@fCFgCg Î9AN郜D GB  Da KZ@ Da XbE  DZ HKY DO! XE"  DY'GXDE%0 DX'G Db'G@>X)> Z  %G DE D(FN D L D$$mM@ D$[  @cDeD?8 _6"RMt  ;"j$" @@@LRM`@@fCFgCg Î9AN郜D G^  =Z DS@ Dua XbE  =S HDR DO! XE'"  =R'GXD0 =Q'GX)7 R  @ D> D(?G DE D$$mF@ D$T  @\DeD88 _U"SMT  ;"" @@@kSM@!@@fCFgCg Î9AN郜D G^  =Z DS@ Da XbE  =S H}DR DO! XE'"  =R'GXD0 =Q'GX)7 Q  @ D> D(?G DE D$$mF@ D$TQ  @\DeD88 _jsM>  ;"" @@@3M>@@#qÎ9N 6郜 D dG$  P  ' Da D$$ @ PՍK@D$X++$2 G H(W DG) X$X"c * @ 'G  c D@5 `Y 6 U D;9 @ſ:X): T  C DA @D(BJ DH D$$mI@ @K D$$pW  De@fDeD;8 _ONb  ;"" @@@.Nb@@25Î9N郜͓ D G8J<  ' Di XY(]  G  HaG DY Y$( 'X"'#   ' D`E18 D:9 DDr:CPC~#C D*C DbEEqD   E$ŘR'/O D$%`vc`'+@n|XDE'n 'C #GE$|?  'C H D D2G#/ D D$E)1@ PCE8- #C D D'(g+7ΒK #/D$E걸@ K #D$$/@3K($i '+@ DE( K  'D$ o$=/@#  EŔ$G 'GD$K PC4#C DY D$bEt/!2 H$$y##/2HXDe"16= PG H'(x? #G  'GXG8f|M    H'([    'GXD$"i 'C E"'w{ ' D+(l?  HŒ$t '/GXDE! #G 'G@PY2 $ P D `Y  D YS CYϢ    D oD(Ž   D D$@ @ D D( D| D$$k@2K D$$o  @ DpdDa8 _x7N8  ;"" @@@97N8@@25Î9N郜 Dֳ G8V< ' Dl D'@ Dc D$$MK@ ԋ+H("'I%!D R i'G' [D(,6X9$2 d' [CY`I? 3c  b D.G `YH Z D)K @LYL @Y  U DS D$$&pTK8 D$b  @kDeDM8 _1B7No  ;"" @@@G7No@@25Î9N郜 ̖D G9$  ' @ @ D] D$$MK@ ԋ+HȬ$!' 7 E$,   'G' Du: D1= Y$b%u> K+^ H((L     DY D9Z'/G'  D d Y$+Me K+ bEDEs  J   D D9$N'/G' @qX9$d ' Y`    D `Y+  D @WY/ 7  Di @D(Ə D D$ˑ@ @ D D$$oK# D$  @(DeD8 /_x=N8  ;"" @@@9=N8@@25Î9N郜 D G8V< ' Dl D'@ Dc D$$MK@ ԋ+H("'E%!D R k'G' ]D(,6X9$2 \' ]C 'Y`O? 3[  d  D.G `YH Z D)K @LYL @Y  U DS D$$pTKB D$$|qb  @mD,eDM8 _+B=No  ;"" @@@A=No@@25Î9N郜 ӂD G9$k ' i@ @ D] D$$MK@ ԋ+H((!I ^ w W 'D$(\,G' i;X9$؟7 h' if=HY`-D 8g  p D)L `YM f D$P @QYQ Ee  Z DX @D(tYa D_ D$$p`K- D$$pqn  @yDeDR8 _Nt  ;"" @@@ϱN`@@TfCFgCg Î9AN郜D GŃ  6 S = L@ Da XbE    6 L H= K DO! XEVk~/"    6 IPG@Ͽ0X)0 S  9 D7 D(Ƒ8@ D> D$$n?@ D$M  @UDeD18. _ N  ;"" @@@ͱN@@fCFgCg Î9AN郜D GŃ  6 S = L@ Da XbE    6 L H= K DO! XE~/"    6 IPG@Ͽ0X)0 L  9 D7 D(Ƒ8@ D> D$$n?@ D$M  @UDeD18 _ Nt  ;"" @@@N`@@fCFgCg Î9AN郜D Gd  = Z D S@ Da$ XbE    = S HD R DO! XE/"    = R'GXD50 = PPGX)7 R  @ D> D(?G DE D$$mF@ D$T  @\DeD88 _ NT  ;"" @@@N@@@fCFgCg Î9AN郜D Gd  = Z D S@ Da XbE    = S HD0 R DO! XE/"    = R'GXD50 = PPGX)7 Q  @ D> D(?G DE D$$mF@ D$T pU  @\DeD88 _K!Nԏ  ;"" @@@aN@@Î9N ,ZD G9$ ' 4@ H$$;K@ Ԋ+E8D!%' DK# X $ P DN' `Y<( 3 DI+ @ӿ,Xؒ$c, 2  K D$ u:  @DDfD-8 _r&O>  ;"" @?=@@2&O>@@25Î9N郜*  D G  Di X Dd D$wdEo @ h GZiC DU Y$' $PC' DF& D"'$փ'@  K@D$ȝq5ԋ+A G' H%CLU  D"M G$eNG DP Dx QP DT X98zU v  +C } Dc D d DXe'G   D k `Yl  Do @pX(p   y Dw @D(6x D~ D$$m@ @K D$$Qq  @gDeDq8 _8(O  ;"" @@@(O@@25Î9N郜Z D G8V< ' Df D$$@ PՋK@D$X++ < H HD%$a ' S26G?2' D<4 ,[A5  R D;9  dE':? ZCP D4A @BX)B Q  K DI D$$mJ@ @K D$$qX  @cDeDC8 _yoO'  ;"" @@@oO@@25Î9N郜D GE  'C  'G@X'*    D? D$$p  D$ܕ%  @ӿ,DfD8 _oyO  ;"" '@@@yO@@fCFgCg Î9AN郜D G\   ;Z BS@ Da mXbEo  ;S HBR DO! XdE{" ;RKX dž0 X)5 N  > D< D(=E DC D$$tOM,D@A D$ uR  @\DeD68 _vO9  ;"" @@@6O9@+@fCFgCg Î9AN郜D G   S p Zi@ Da XbE   S i HtZh u"DO! XbE"   S h Ha0Zi D=3 XbE4   S g HPBZh D+E X0NF  X[)M c  V DT D(U] D[ D$$m\@ D$|j  @rDeDN8 _iOԭ  ;"" 3@@@¿O@@#qÎ9N郜> cD dG"'b%|4  !  %  H#. #D^ "G$`Eq' -  DN G(>!C #1 DI' Y9l( ,/  +ΒK -SPD6x6CX$)7  'ZCE'CXE D (F Y,%( G 4OY #/ DT DvU'C #. D^ X@X_ $3 D d D$;e'/Zn #8@s Ds xDK(DŽt'z #8 D Db%Ex'C 4K #= D "Gb%Eq' 0C #. D X@UX $. D D(zʠ'PGX$$vlЦ  !D$\"#+CX8@` # #8 D DK(̓' #8 D X@X $0 D D>'G D Y"% 4P D X@X #2 D @XHP #--XF  #1 Ds @X( =#- #  Df ,[~   3 Dh  `YZ * Dc @X' )   D? D$$k@ @D$$(K   *ْD$6  @>$I X?MrO!zAPzza \H7AC8D8 _"6O4z  ;"" @@@8O z@@TÎ9LN郜lácD dG$G   t   / '"G"ǒVxK / K + #CPD$Ck#C+ mYVDEŖ+'G m~'G m}DEŭZ9'G mPG mX$8G 'G + 'D$(U@ e m HocxGXd+e    p Dn D$$o` D$$p}  @vDeDf8 _@?Mr  ;"" @@@?Mr@,@#qÎ9N郜 D dG$ȇ     ' D(X? 'C@ DT Y$(T +   ##DH( DC)'C DB, Y$p - @  @Ŀ; D5; D,<'/C  + D+E D$F#/@K  @T D T D$$n+U#/@ 3Ecg   Dl "G ,zm' "CX$Dpr  PC#C @ D DD$P '+@ DD$œK '+@D9#K ' D+'#  D$('/G|   D X@TX   D D'/G a  D X@DX   D D$b%<'/@  H;  D X@,X   D| DX'G  ) Dz `Y}  Du @XD'    D @D( DJ D$$Jl@ @KD$$p   DE+@Ҿ-HOfYsD8 _VuO:  ;"" @@@l5O:@@25Î9N郜>_ cD G"'k    ' D(-' DT D$$@ PՑK@D$"G>(+2' D9$rq6@  K@D$"G>D+N' D9$ZR@ K@ D$"GR>`+j' D9$Zn@ K@ D$X)|+ HDb%u '  H9d'I ' C#/  DE8TO   'G H$IӴ  'G  'G H'(}x  'G  'G@/X,):     D dE  D `Y  D dE  D Y  CP D @ Xy'   D^  D$$ym@ @K  D$$1p   @@H@ yaD8 _f@P4I  ;"" @@G@&@P I@@fCFgCg Î9AN郜D G   S p Zi@ Da XbE   S i HtZh DO! XbE"   S h Ha0Zi D=3 XbE4   S g HPBZh D+E X0NF  "XQ)M m  V DT D(U] D[ D$$m\@ D$|j  @rDeDN8 _!APԍ  4 ;"" @@@AP@@#qÎ9N郜?D dG$G    /C EϕK%'GX* $   D; D$$o D$$&q)  @ʿ5DfD8 _fP  ;"j$" @@@fP@@fCFgCg Î9AN郜D Gŀ  6 S = L@ Da XbE     6 L H= K DO! XE="    6 K'G@Ͽ0X)0 H  9 D7 D(Ƒ8@ D> D$$n?@ D$M  @UDeD18 _| yt  ;"" @@@ y`@@Î9N郜D G'3  .B'G .E';'G .:'G .E$9'G .C'GX)( B  1 D&/ ,D$$p0  D$M>  @DDfD)8 _\ y  ;"" @@@r y@@Î9N郜D G'3  .B'G .E';'G .:'G .E$9'G .C'GX)( ;  1 D&/ D$$p0  D$M>  @DDfD)8 _vyt  ;"" @@@y`@@Î9N郜D G'4  ';'G 'E'4'G '3'G 'EzK2'GX)! 3  * D-( D$$p)o  D$T7  @¿=D fD"8 _yT  ;"" @@@y@@@Î9N郜D G'4  ';'G 'E'4'G '3'G 'EzK2'GX)! 2  * D-( D$$p)  D$T7  @¿=D fD"8 _y  ;"" @@@y@@#qÎN郜 D dG$J  7  ' ;D(  .= DY DDb%C 'G' ;, H¶&.> DG) D@*'G  1 D)/ D$$}m0@ @ D$$p>  @L@L u8 _qzt  ;"" @#@@-qz`@@Î9N郜D G'$4   4'G  E$Q -'G  *PGX) 4  # D4! !D$$p"  D$[0  @ɿ6DfD8 _qz  ;"" @@@ qz@ @Î9N郜D G'$4   4'G  E$Q -'G  *PGX* -  # D4! D$$p"  D$[0  @ɿ6DfD8 _zzt  ;"" @@@$zz`@@Î9N郜D G' 4  ' ;'G 'E' 4'G ' 3'G 'E 1PGX)! 3  * D-( D$$p)  D$T7 g @¿=D fD"8 _-{zT  ;"" @@@C{z@@@Î9N郜D G' 4  ' ;'G 'E' 4'G ' 3'G 'E 1PGX)! 2  * D-( D$$p)  D$T7  @.¿=D fD"8 _~z  ;"" @@@z@@#qÎ9N郜 D dG$(@  ~   u Db D$0'/@K u@ DS X@%Z u DM# D$$$$'/'8@ 3D((28:^ u D1? D$@'/@K u@N D"N "G$$WO' #^K(]g u D c DX3d'G   D j `Yk  Dn @oX(o   x Dv D$$lw@ @K$D$$p   Dݺ@4jDeDp8 _&|  ;"" @@@ح&|@@Î9N郜D G'!4   4'G  E$ -'G  ,'GX* )  # D4! D$$p"  D$[0  @ɿ6DfD8 _%D  ;"" @@@&D@@TÎ9LN郜 D !!dG$(=       "G$dE:o' ~ D"'8~C:#C  D'$+# C  'GK"+SP9   G "G$$]G' @ \ Eb=EU G ' H$+ɇc@ } bEED#q ' G HȒ$3' @ bEbEE׍  ' H(nG ' @Db%bEQW͆   HȢ(Ph' G 'Y$b%q @  H(Ȳ ' G E9$Y' @ D((  'Y9Sv G ' D$(7 @ "  E9' G "G$$\'' @ C E95 ' GX"G$C ' @ D_Q6c  DŶN_'PG  "G8Dm' G 'GX`%y    D `Yj  D @yY z   Dny D(2   D D$@ @ D D$$CzK4D$$b@  D$$p  @:DdDA8 _hڀ  ;"" @@@~@@25Î9N郜Z D G    # G HD   G' DV D$$@ PՌK@D$XB*&+0  HD%4# ' BXXDSB     # 'G EȒD=P   G' E ^b   # D h DD7niGPC#C Dr DE(gs  #   # D$ř'/@ K  vx#G($   #'/@D++'#   # Eb%E< # 'Gn   #' @F D D+(4   PGXآX     #  H'( cD dG"'94&    Y+([  ,' K7 ' K DL& Db)E'Zw. ,H'DXGt5P: , E$ %%C-'/#[PwX$${P  !"#$%&'D$8kQ^()*+  D i Y$‹j vX`Hr   Dbz `Yy{ D~ @YΧ s  D D$H&D@ @D$$   %KD$$p   @OHT݌I:QD8 _\|I: ;"" ID^@ T@ f@ BI:lHCzNbñ$QG$$  w1#B#B#B#B'B'D0$5x)u)sMp90d)#B_1D$EHa "!T$I$I"I*$*&,/.'(\E1$EI$I)8E 19;T35N=C$IIHZFE\?@AP.1/ GKf$IHHTOfRnTVhXh[l,Y$Kc b   ?  ! )D$$Ilp 1 !)1 TfB H%"Ir-~!)D$$_|%JM%JM)%M%MDH$߆ [!V)@]T$I"I$IIZ`V$I$IE\b;P9!@I$B2 5!@ (0BFB&HP(I(Q ( T ( ,D2$   ( Q D$I$ )  D2 (0 !)@H D$$Z  BJBJBJ B J B JB3AJ !D$$BJB JBJAqAqIqQqYL D$$%#&; l)$1G 6 g) 1B 1 `1$I$I$Iw43579;=?J$$=B8P1# NB JY$I$I$IPOQTSVYXI$$6^^85Y5Q/) ,) ')D$$lf1 &4Y0#B+J#BD$nz#B#B#B%$Y0#B#BD$$n׈#B# B # B # BD$$pD$$9IY1K"9D$$墲1J9Y1K91JPShDH1 (@H (@HD$$Y9PPD$$J9CK8[!C 9;D 9l D\   D DB&2<Y08Q08QD$$99F19)9!9YA/'OD$$7KK97KD$$Vw9!'O*(Q$JDs,06$JB$:<D$$pHD$$pVD$$odD$r$I$IHgPf 4g ]h Je _fAAfAF[EUQPZgAgAU_\! _OD  ;""C @@@eD@@ Y#qÎ9N D dG$U   ' @D%M Nd,  v|$I$I$IH$(p+' 8'Y$({9 D' D%9SRGP' DED U\' D"G$xxch' H@jqtXXv  XX|  XX{  XX  XX  XX  XX  XX찢  XX氨  XXm  XXذ  XXҰ  XX̰  XXư  X(@\  PCXN   D Y$%} @ YX(   D ,[~   D Gz' D| lE$$<  dLK5D$$o432  D$ "@$I wA a  $I-   }$I !Aa(D 8 _  ;"" /@@@y@@Qu#qÎN郜cc% [룞CD dG$i    Da Y$      K DU G+(G    DI' X@kY(  DC- D.'/G   @ÿ< D4< X@VY?L=  D.B DC'/G D H H($)`I]V  RDD$AW2(,X*'**E RRD$$TeROD TECEET'D1/X0',IPTCRU:E,'D$$zs5I1/X0',CL:P ,'5I1/X0',CID$Ao$:P ,'5I1/X0',EIWR:1 ,'5ID$$c1/X0',EIWR:2 ,'5I1/X0',MIDOD8x:E ,'5I) D D$$P NIE RRROR D'wGUOITEN1 1. D Y$dǮ    @7 D D(  D D$$l@ @ D$$Tp  @@ u8 _0ԗ  @@@F@@pAÎ9LND dG$D:    UJKNB.F@XH$K # " #M  X$ $ @ڿ%DY9_x8 _&\ԏ  ;"" @@@&\@@`#qÎ9N? D dG$j     Di Y,  (CXؒ$      D$$2q  @ֿ)D*#wZ8 _ ox  ;"" @@@ ox@@25Î9N郜Z D G$") 'Z\&'X D\ Db)bE(Z   Hb%`E'> 'G1   DG, Ys- GXbIE|1   XIP=  D0D XE D.F DXAGL D&M YŀN C   GXIDZ  # C Hh YbE7dEsk [    G"+ŌyG   G  Ydb G   D `YD  D @lX(   D~ @D(md D D( D  D$$'K@ D$$p  D+@9"I6\loa2>D8 _ oqTx  ;"" @@@ o@x@@25Î9N郜 D G9$w ' ED';' @ DQ D$$=K@ ԍ+H((ל*-   /  'D(Di8GC   / G' D$$F@PՍK@ #D$T+] XI(]    'XH4j   Dq Xr Ds DX|ty Dz Y{ 0C D Y9$( $S'  @p D Yŀ (͋K  / GXbIEǜ  '/   /' H%D; # &C Hb /YbEEJ  //   /' H$1 # &CYbEdE  / /   / G"+G  / G  'Ya G   D{ `Ym . Dx @XL'    D @D( DI  D(  D:  D$$K@ D$$p"  D0@ξ1"I\oA_^kD8 _@ oP  ;"" @@@ oP@@#qÎ9N郜  D dG$v  O  X  \ Dg X De DXYE S k [G @ DU Y9d lC S. j# aG@ҿ-XbIdE-  jTk S k \G"+`r;G S j \G  i D-H @IX(I Z  V DT  D$$mUK D$  quc  @mIv\. DJ8 _@ oTP  ;"" @@@ o@P@@je#qÎ9N郜0 D dG$ek    ' PD$X6KԎ+  "K$$ͦ G'P,K+Op+?  DA2 Y3 G D;8 Y++9 ōCM  D.E G'eFG D+H YI CXbIdEM    G"+[G  GXd  D h Xi D j Y$`k u  Dx @yX(Iy    D  D$$=K )D$ Au  @bIou\NeDz8 _n  ;"" @@@иn@@Pf fCFfC`iCnÎ׼9N郜D G     X@Y X%u   DY Xۛ DW/ DX@#  DH( DK+v)'/s   E7 D79 XbE:      HH D%K XE;L  r   'GXY(Z  G  HdE;shG  G  bE+9v      G(r   'G D @nXE  DU D$ @ @ D D( D D$$Tm@K D$$q  @>HSD8 _(nT  ;"" @@@n@@@Pf fCFfC`iCnÎ9N郜 ZKD G$DC 'P Kԍ+D[+    bEEg X$$   DI+ X˛, DG- DX@;.3 ] D88 "G$+99' D bEEfG   D"N XbEO     Ho] D` XEa    'GXY($Oo  G  HdE;'s}G  G  bE+C9      G(   'G D @YXD(   D D$ݑ@  @ D D(Ȑ D D$$>m@K D$$q  @(H_S%D8 _ns  ? qn @@@ns@@BYUH#Ue fCPf fCF"fCgCgCgCg gCUh `iCnÎ9dLN郜 D dG$    @ nD$$o0123456789.-*@ @ n@D Y9$  GPK S  X$bE3 D#5[(x%  ' DM/n YDDw0 K 'C @ D(dų*>GPCfޜ[8yL  X%$Ztc#/ D$$hƙC @ xbEEg,v ' DmMn Y"[$p? K   C/PΙK E8cK' n"DXMn YD$o K PC#C+D$bE+  H' D6Mn YYX; K  ClG8;A    [$$U #PC dE"'$G K# H$DI#PC ' @ DLn YXGc K  ' DL n YXGc  K  ' DLn YbE$ӟ K  #P7D$D(&@0GPCDD'"'a4#C+  GE9B4'G 'PG3 D+"'vPVo  GX y^ Xc   DLgn Hb%$-h#GPC  D v' DqL{n D$ 'oI|G C3PS3  DpLnD$$Š   ** D$$ѪcAA@  d$I)5@UDJZ{Sd8 _mMD  ;"" @@@-MD@@TÎ9LN郜 D dG$D:   {   C(#D'$3C  t# D$+C  'G mdE8"G1+ G t' D$9J,@ J mY(KG G t' @Db%bEU k m HȢ(\icm' G t'Y$b%rq @  H(„m m' G E9$Zt紑' @ D(( m m'Y9Sܩ G t' D$()@  m E9@m' G t"G$$\' @  E9 m Qm' GX"G$ t' @ Da m m"G8"G ' G t' D$@ 1 mX"G8"' m' G tH$$d5' @ QXXDL(C m m'PGXX"G Q t m' Ds_GXd'y`  t'G  p@n Dn D(po  w Du D$$zv@D$$c   D$P  @eDdDa8 _l  ;"" @@&@'l@@ÎND G8\< ' Dc [$$B   D6 @ u8 !_ؓN ;""@SN@TNbñG$$n K9I1BE!E1BD1D$$УD! BD1BC1C!BC1F!B8#=1BD$$/;)B2!B41"4)2!BD$$W*B B1)J0)J J$9K&!BB-D$$8%)BB#! B"! B!! B !B!D'CFB!B!BB D N DO DP  D(Q D)R DT  DU DV DW  "DX D$$WmY  t h@ _*U$I@GqG h8,TM*[Zq"Z@TNbñG$88 6!1)'3A =" Y()+!D$$#*! ="9Y!) D#'$="9 !) ="X$$* )'! ="(%D8 $+AO _!TCH \@C@AIÏNbñG$$ 3G )"  D'$ 1!C.!CC)!GD$$'G 8'/ ! D$$&*') G)'  )ODb'$N8 )''GAHvFD _Y@Y`ϛGqGNbñe'G$$ " 8/7'эS7D$$*K+!B#BD8:87#B  _G8 ;""$I I#Db b o ;nBo@_oaoL@TNbHñG$$ /& ""* "3"G'D$$  B'B"+)`A`" *D$$Ӎ ")`A`!GD$$=*8S% ))R12 D$e8Sc@`` D2? D$8@ '1lj/E3E /D$$=N ")`I` "3D$$W\BB" )`I` "D8$qj!G /  ")G "D$'v^xG" )PG!GH$'0 GĒ$sl / u)'B'B'DȒ$LB' B) / "G"D'$9+G"G!GcCKS)PD$$(KM)L1 1"1*D($q 3 3 D$$ 3JJ3D$$ 333 C K1D$$1 33CK3+D$$)K3;@$I$Ij!aA!+AO  _n @/9 D$$8b D$)Lm3&"$@ۿ$D%$YQ9Wa@ b) _D$@9@D$$R7 D$)Lm"$@ۿ$D$$ $YQ 97a7kwuCKSPPPPE:2@Db2 _2D@8`D$$9R D$)Lm"$@ۿ$D$$@ $YQ 9akWuCKSPPPPE:2@Db2 _5V(@8D$$9R D$)Lm"$@ۿ$D$$l$YQ9u) aWkCKSPPD$92PPWaHCDb5 b8 _1V(@8D$$R7 D$)Lm"$@ۿ$D$$Xl$YQ97u) 7awkCKSPPD$2PPwaHCD*Jb5 b8 _ҁ@8D$$R7 D$)/m "=I<("0@׿(@Ͽ0D$$X0&%!#)YQ 9WaW`D$$>AYQ97u) 7awkCKSPD$%YLPPPwa:Ihx+AO<DbP bS _D$@o8D$$R7  D$)Lm"$@ۿ$D$$$YQ 97a7kwuCKSPP@Db0 _D$@O8D$$R7 D$)Lm"$@ۿ$D$%$YQ 97a7kwuCKS@Db. _Z $@/8 D$$b7 D$)Lm"$@ۿ$D%$YQ9wa@ b) _ ;"" I?H@ z@O@TNbñHE$cSG$${m #CC!CK)K@1*D$$  8S"C;1*3"C!D$$B*aU"*K"/)+[D$$H\8*1*Z1") )D$FKK 8T D L  DP1 Dq HAIF _NR ;""HN$  $bñG$$z ?1">) J"S "S "D$$VR4! * J"R "()D$$< J"R "!) J"SD$$3* ") J") J"[)D$e8PP *^ J !C D k@ DA D(JRB@ I R _I ;""HN$bñG$$> :1"51"8) J6! JD$$2!*( J"" "%) JD$$B(!C1")PPPP B")D$$d* * J"" ! J !Dr8C Dk: D;  D/< D(!=@CE R _)D O""HN$bñG$$N 1") J! J") JD$$""! J!C D2k D; D 3;  R #_0( O""HN(($bñG$$r 1") J! J" ) JDQ!C D;k DD D E+ R _ܦNT O""$I@*   ` @ @ $bñG$$  (1(! B "1#! B  D8$Z1! B 1! B" B!CG$$ 1! * J !C D#k) D,* a D(A+13 R _N O""H"  $bñG$$S ,1",)PP B"') "D$$ ) B B*D$$ " B*! " B" !DQ* !C Dk- D(. DE/46 R _:4 ;""H  @TNbñG$$ e)KNd!CC^!C[1"D$$ W1*T 8"*W!N1J*J D$$8SH1"3BL)BBN!@1BBD$$*BBBF!BB59#59+;!D$$.8B-9# B8!B B8.!C !1D$$F"9(!C"C* 8S")D$$$ T1B!C e 19BGb Df  Dg   D h H%$ijlp HgzAOeAId _:T O""H@@@TNbñG$$9y %!C1"C"! BD$$! B"* J!C !C !CCDH  D6  D-!  DD"%(@AI _:t O"".H``@TNbñG$$0# !C1* 8")C!D$$CCC !C  D=  D4  DD!HzAOAI _f: ;""HN؀@TNbñG$$v  .!C"1* 8S"#)CD$$9c1")B) B") B!CD$$ !C !CC  D/'  D&(  DD),/HzAO%AI& _'\ԏ$IPF%RY*ưI!AI\@TNbñD8${RK  C7'3D$$ #7/"C8#X8$9# #GK X$$0* C7"C/S'S"!D$$87B'G#G7/D$$FK+K'Bӑ7'B#G$]T# _ GRAPHICS.LB3 < LMt  ;"" @@@RLM`@@fCFgCg Î9AN郜D GB  Da KZ@ Da XbE  DZ HKY DO! XE"  DY'GXDE%0 DX'G Db'G@>X{)> a  G DE D(FN D L D$$mM@ D$[  @cDeD?8 _ LM  ;"" @@@2LM@@fCFgCg Î9AN郜D GB  Da KZ@ Da XbE  DZ HKY DO! XE"  DY'GXDE%0 DX'G Db'G@>X)> Z  %G DE D(FN D L D$$mM@ D$[  @cDeD?8 _6"RMt  ;"j$" @@@LRM`@@fCFgCg Î9AN郜D G^  =Z DS@ Dua XbE  =S HDR DO! XE'"  =R'GXD0 =Q'GX)7 R  @ D> D(?G DE D$$mF@ D$T  @\DeD88 _U"SMT  ;"" @@@kSM@!@@fCFgCg Î9AN郜D G^  =Z DS@ Da XbE  =S H}DR DO! XE'"  =R'GXD0 =Q'GX)7 Q  @ D> D(?G DE D$$mF@ D$TQ  @\DeD88 _jsM>  ;"" @@@3M>@@#qÎ9N 6郜 D dG$  P  ' Da D$$ @ PՍK@D$X++$2 G H(W DG) X$X"c * @ 'G  c D@5 `Y 6 U D;9 @ſ:X): T  C DA @D(BJ DH D$$mI@ @K D$$pW  De@fDeD;8 _ONb  ;"" @@@.Nb@@25Î9N郜͓ D G8J<  ' Di XY(]  G  HaG DY Y$( 'X"'#   ' D`E18 D:9 DDr:CPC~#C D*C DbEEqD   E$ŘR'/O D$%`vc`'+@n|XDE'n 'C #GE$|?  'C H D D2G#/ D D$E)1@ PCE8- #C D D'(g+7ΒK #/D$E걸@ K #D$$/@3K($i '+@ DE( K  'D$ o$=/@#  EŔ$G 'GD$K PC4#C DY D$bEt/!2 H$$y##/2HXDe"16= PG H'(x? #G  'GXG8f|M    H'([    'GXD$"i 'C E"'w{ ' D+(l?  HŒ$t '/GXDE! #G 'G@PY2 $ P D `Y  D YS CYϢ    D oD(Ž   D D$@ @ D D( D| D$$k@2K D$$o   @ DpdDa8 _x7N8  ;"" @@@97N8@@25Î9N郜 Dֳ G8V< ' Dl D'@ Dc D$$MK@ ԋ+H("'I%!D R i'G' [D(,6X9$2 d' [CY`I? 3c  b D.G `YH Z D)K @LYL @Y  U DS D$$&pTK8 D$b  @kDeDM8 _1B7No  ;"" @@@G7No@@25Î9N郜 ̖D G9$  ' @ @ D] D$$MK@ ԋ+HȬ$!' 7 E$,   'G' Du: D1= Y$b%u> K+^ H((L     DY D9Z'/G'  D d Y$+Me K+ bEDEs  J   D D9$N'/G' @qX9$d ' Y`    D `Y+  D @WY/ 7  Di @D(Ə D D$ˑ@ @ D D$$oK# D$  @(DeD8 /_x=N8  ;"" @@@9=N8@@25Î9N郜 D G8V< ' Dl D'@ Dc D$$MK@ ԋ+H("'E%!D R k'G' ]D(,6X9$2 \' ]C 'Y`O? 3[  d D.G `YH Z D)K @LYL @Y  U DS D$$pTKB D$$|qb  @mD,eDM8 _+B=No  ;"" @@@A=No@@25Î9N郜 ӂD G9$k ' i@ @ D] D$$MK@ ԋ+H((!I ^ w W 'D$(\,G' i;X9$؟7 h' if=HY`-D 8g  p D)L `YM f D$P @QYQ Ee  Z DX @D(tYa D_ D$$p`K- D$$pqn  @yDeDR8 _Nt  ;"" @@@ϱN`@@TfCFgCg Î9AN郜D GŃ  6 S = L@ Da XbE    6 L H= K DO! XEVk~/"    6 IPG@Ͽ0X)0 S  9 D7 D(Ƒ8@ D> D$$n?@ D$M  @UDeD18. _ N  ;"" @@@ͱN@@fCFgCg Î9AN郜D GŃ  6 S = L@ Da XbE    6 L H= K DO! XE~/"    6 IPG@Ͽ0X)0 L  9 D7 D(Ƒ8@ D> D$$n?@ D$M  @UDeD18 _ Nt  ;"" @@@N`@@fCFgCg Î9AN郜D Gd  = Z D S@ Da$ XbE    = S HD R DO! XE/"    = R'GXD50 = PPGX)7 R  @ D> D(?G DE D$$mF@ D$T  @\DeD88 _ NT  ;"" @@@N@@@fCFgCg Î9AN郜D Gd  = Z D S@ Da XbE    = S HD0 R DO! XE/"    = R'GXD50 = PPGX)7 Q  @ D> D(?G DE D$$mF@ D$T pU  @\DeD88 _K!Nԏ  ;"" @@@aN@@Î9N ,ZD G9$ ' 4@ H$$;K@ Ԋ+E8D!%' DK# X $ P DN' `Y<( 3 DI+ @ӿ,Xؒ$c, 2  K D$ u:  @DDfD-8 _r&O>  ;"" @?=@@2&O>@@25Î9N郜*  D G  Di X Dd D$wdEo @ h GZiC DU Y$' $PC' DF& D"'$փ'@  K@D$ȝq5ԋ+A G' H%CLU  D"M G$eNG DP Dx QP DT X98zU v  +C } Dc D d DXe'G   D k `Yl  Do @pX(p   y Dw @D(6x D~ D$$m@ @K D$$Qq  @gDeDq8 _8(O  ;"" @@@(O@@25Î9N郜Z D G8V< ' Df D$$@ PՋK@D$X++ < H HD%$a ' S26G?2' D<4 ,[A5  R D;9  dE':? ZCP D4A @BX)B Q  K DI D$$mJ@ @K D$$qX  @cDeDC8 _yoO'  ;"" @@@oO@@25Î9N郜D GE  'C  'G@X'*    D? D$$p  D$ܕ%  @ӿ,DfD8 _oyO  ;"" '@@@yO@@fCFgCg Î9AN郜D G\   ;Z BS@ Da mXbEo  ;S HBR DO! XdE{" ;RKX dž0 X)5 N  > D< D(=E DC D$$tOM,D@A D$ uR  @\DeD68 _vO9  ;"" @@@6O9@+@fCFgCg Î9AN郜D G   S p Zi@ Da XbE   S i HtZh u"DO! XbE"   S h Ha0Zi D=3 XbE4   S g HPBZh D+E X0NF  X[)M c  V DT D(U] D[ D$$m\@ D$|j  @rDeDN8 _iOԭ  ;"" 3@@@¿O@@#qÎ9N郜> cD dG"'b%|4  !  %  H#. #D^ "G$`Eq' -  DN G(>!C #1 DI' Y9l( ,/  +ΒK -SPD6x6CX$)7  'ZCE'CXE D (F Y,%( G 4OY #/ DT DvU'C #. D^ X@X_ $3 D d D$;e'/Zn #8@s Ds xDK(DŽt'z #8 D Db%Ex'C 4K #= D "Gb%Eq' 0C #. D X@UX $. D D(zʠ'PGX$$vlЦ  !D$\"#+CX8@` # #8 D DK(̓' #8 D X@X $0 D D>'G D Y"% 4P D X@X #2 D @XHP #--XF  #1 Ds @X( =#- #  Df ,[~   3 Dh  `YZ * Dc @X' )   D? D$$k@ @D$$(K   *ْD$6  @>$I X?MrO!zAPzza \H7AC8D8 _"6O4z  ;"" @@@8O z@@TÎ9LN郜lácD dG$G   t   / '"G"ǒVxK / K + #CPD$Ck#C+ mYVDEŖ+'G m~'G m}DEŭZ9'G mPG mX$8G 'G + 'D$(U@ e m HocxGXd+e    p Dn D$$o` D$$p}  @vDeDf8 _@?Mr  ;"" @@@?Mr@,@#qÎ9N郜 D dG$ȇ     ' D(X? 'C@ DT Y$(T +   ##DH( DC)'C DB, Y$p - @  @Ŀ; D5; D,<'/C  + D+E D$F#/@K  @T D T D$$n+U#/@ 3Ecg   Dl "G ,zm' "CX$Dpr  PC#C @ D DD$P '+@ DD$œK '+@D9#K ' D+'#  D$('/G|   D X@TX   D D'/G a  D X@DX   D D$b%<'/@  H;  D X@,X   D| DX'G  ) Dz `Y}  Du @XD'    D @D( DJ D$$Jl@ @KD$$p   DE+@Ҿ-HOfYsD8 _VuO:   ;"" @@@l5O:@@25Î9N郜>_ cD G"'k    ' D(-' DT D$$@ PՑK@D$"G>(+2' D9$rq6@  K@D$"G>D+N' D9$ZR@ K@ D$"GR>`+j' D9$Zn@ K@ D$X)|+ HDb%u '  H9d'I ' C#/  DE8TO   'G H$IӴ  'G  'G H'(}x  'G  'G@/X,):     D dE  D `Y  D dE  D Y  CP D @ Xy'   D^  D$$ym@ @K  D$$1p   @@H@ yaD8 _f@P4I  ;"" @@G@&@P I@@fCFgCg Î9AN郜D G   S p Zi@ Da XbE   S i HtZh DO! XbE"   S h Ha0Zi D=3 XbE4   S g HPBZh D+E X0NF  "XQ)M m  V DT D(U] D[ D$$m\@ D$|j  @rDeDN8 _!APԍ  4 ;"" @@@AP@@#qÎ9N郜?D dG$G    /C EϕK%'GX* $   D; D$$o D$$&q)  @ʿ5DfD8 _fP  ;"j$" @@@fP@@fCFgCg Î9AN郜D Gŀ  6 S = L@ Da XbE     6 L H= K DO! XE="    6 K'G@Ͽ0X)0 H  9 D7 D(Ƒ8@ D> D$$n?@ D$M  @UDeD18 _| yt  ;"" @@@ y`@@Î9N郜D G'3  .B'G .E';'G .:'G .E$9'G .C'GX)( B  1 D&/ ,D$$p0  D$M>  @DDfD)8 _\ y  ;"" @@@r y@@Î9N郜D G'3  .B'G .E';'G .:'G .E$9'G .C'GX)( ;  1 D&/ D$$p0  D$M>  @DDfD)8 _vyt  ;"" @@@y`@@Î9N郜D G'4  ';'G 'E'4'G '3'G 'EzK2'GX)! 3  * D-( D$$p)o  D$T7  @¿=D fD"8 _yT  ;"" @@@y@@@Î9N郜D G'4  ';'G 'E'4'G '3'G 'EzK2'GX)! 2  * D-( D$$p)  D$T7  @¿=D fD"8 _y  ;"" @@@y@@#qÎN郜 D dG$J  7  ' ;D(  .= DY DDb%C 'G' ;, H¶&.> DG) D@*'G  1 D)/ D$$}m0@ @ D$$p>  @L@L u8 _qzt  ;"" @#@@-qz`@@Î9N郜D G'$4   4'G  E$Q -'G  *PGX) 4  # D4! !D$$p"  D$[0  @ɿ6DfD8 _qz  ;"" @@@ qz@ @Î9N郜D G'$4   4'G  E$Q -'G  *PGX* -  # D4! D$$p"  D$[0  @ɿ6DfD8 _zzt  ;"" @@@$zz`@@Î9N郜D G' 4  ' ;'G 'E' 4'G ' 3'G 'E 1PGX)! 3  * D-( D$$p)  D$T7 g @¿=D fD"8 _-{zT  ;"" @@@C{z@@@Î9N郜D G' 4  ' ;'G 'E' 4'G ' 3'G 'E 1PGX)! 2  * D-( D$$p)  D$T7  @.¿=D fD"8 _~z  ;"" @@@z@@#qÎ9N郜 D dG$(@  ~   u Db D$0'/@K u@ DS X@%Z u DM# D$$$$'/'8@ 3D((28:^ u D1? D$@'/@K u@N D"N "G$$WO' #^K(]g u D c DX3d'G   D j `Yk  Dn @oX(o   x Dv D$$lw@ @K$D$$p   Dݺ@4jDeDp8 _&|  ;"" @@@ح&|@@Î9N郜D G'!4   4'G  E$ -'G  ,'GX* )  # D4! D$$p"  D$[0  @ɿ6DfD8 _%D  ;"" @@@&D@@TÎ9LN郜 D !!dG$(=       "G$dE:o' ~ D"'8~C:#C  D'$+# C  'GK"+SP9   G "G$$]G' @ \ Eb=EU G ' H$+ɇc@ } bEED#q ' G HȒ$3' @ bEbEE׍  ' H(nG ' @Db%bEQW͆   HȢ(Ph' G 'Y$b%q @  H(Ȳ ' G E9$Y' @ D((  'Y9Sv G ' D$(7 @ "  E9' G "G$$\'' @ C E95 ' GX"G$C ' @ D_Q6c  DŶN_'PG  "G8Dm' G 'GX`%y    D `Yj  D @yY z   Dny D(2   D D$@ @ D D$$CzK4D$$b@  D$$p  @:DdDA8 _hڀ  ;"" @@@~@@25Î9N郜Z D G    # G HD   G' DV D$$@ PՌK@D$XB*&+0  HD%4# ' BXXDSB     # 'G EȒD=P   G' E ^b   # D h DD7niGPC#C Dr DE(gs  #   # D$ř'/@ K  vx#G($   #'/@D++'#   # Eb%E< # 'Gn   #' @F D D+(4   PGXآX     #  H'( cD dG"'94&    Y+([  ,' K7 ' K DL& Db)E'Zw. ,H'DXGt5P: , E$ %%C-'/#[PwX$${P  !"#$%&'D$8kQ^()*+  D i Y$‹j vX`Hr   Dbz `Yy{ D~ @YΧ s  D D$H&D@ @D$$   %KD$$p   @OHT݌I:QD8 _\|I: ;"" ID^@ T@ f@ BI:lHCzNbñ$QG$$  w1#B#B#B#B'B'D0$5x)u)sMp90d)#B_1D$EHa "!T$I$I"I*$*&,/.'(\E1$EI$I)8E 19;T35N=C$IIHZFE\?@AP.1/ GKf$IHHTOfRnTVhXh[l,Y$Kc b   ?  ! )D$$Ilp 1 !)1 TfB H%"Ir-~!)D$$_|%JM%JM)%M%MDH$߆ [!V)@]T$I"I$IIZ`V$I$IE\b;P9!@I$B2 5!@ (0BFB&HP(I(Q ( T ( ,D2$   ( Q D$I$ )  D2 (0 !)@H D$$Z  BJBJBJ B J B JB3AJ !D$$BJB JBJAqAqIqQqYL D$$%#&; l)$1G 6 g) 1B 1 `1$I$I$Iw43579;=?J$$=B8P1# NB JY$I$I$IPOQTSVYXI$$6^^85Y5Q/) ,) ')D$$lf1 &4Y0#B+J#BD$nz#B#B#B%$Y0#B#BD$$n׈#B# B # B # BD$$pD$$9IY1K"9D$$墲1J9Y1K91JPShDH1 (@H (@HD$$Y9PPD$$J9CK8[!C 9;D 9l D\   D DB&2<Y08Q08QD$$99F19)9!9YA/'OD$$7KK97KD$$Vw9!'O*(Q$JDs,06$JB$:<D$$pHD$$pVD$$odD$r$I$IHgPf 4g ]h Je _fAAfAF[EUQPZgAgAU_\! _OD  ;""C @@@eD@@ Y#qÎ9N D dG$U   ' @D%M Nd,  v|$I$I$IH$(p+' 8'Y$({9 D' D%9SRGP' DED U\' D"G$xxch' H@jqtXXv  XX|  XX{  XX  XX  XX  XX  XX찢  XX氨  XXm  XXذ  XXҰ  XX̰  XXư  X(@\  PCXN   D Y$%} @ YX(   D ,[~   D Gz' D| lE$$<  dLK5D$$o432  D$ "@$I wA a  $I-   }$I !Aa(D 8 _  ;"" /@@@y@@Qu#qÎN郜cc% [룞CD dG$i    Da Y$      K DU G+(G    DI' X@kY(  DC- D.'/G   @ÿ< D4< X@VY?L=  D.B DC'/G D H H($)`I]V  RDD$AW2(,X*'**E RRD$$TeROD TECEET'D1/X0',IPTCRU:E,'D$$zs5I1/X0',CL:P ,'5I1/X0',CID$Ao$:P ,'5I1/X0',EIWR:1 ,'5ID$$c1/X0',EIWR:2 ,'5I1/X0',MIDOD8x:E ,'5I) D D$$P NIE RRROR D'wGUOITEN1 1. D Y$dǮ    @7 D D(  D D$$l@ @ D$$Tp   @@ u8 _0ԗ  @@@F@@pAÎ9LND dG$D:    UJKNB.F@XH$K # " #M  X$ $ @ڿ%DY9_x8 _&\ԏ   ;"" @@@&\@@`#qÎ9N? D dG$j     Di Y,  (CXؒ$      D$$2q  @ֿ)D*#wZ8 _ ox  ;"" @@@ ox@@25Î9N郜Z D G$") 'Z\&'X D\ Db)bE(Z   Hb%`E'> 'G1   DG, Yz- GXbIE|1   XIP=  D0D XE D.F DXAGL D&M YŀN C   GXIDZ  # C Hh YbE7dEsk [    G"+ŌyG   G  Ydb G   D `YD  D @lX(   D~ @D(md D D( D  D$$'K@ D$$p  D+@9"I6\loa2>D8 _ oqTx  ;"" @@@ o@x@@25Î9N郜 D G9$w ' ED';' @ DQ D$$=K@ ԍ+H((ל*-   /  'D(Di8GC   / G' D$$F@PՍK@ #D$T+] XI(]    'XH4j   Dq Xr Ds DX|ty Dz Y{ 0C D Y9$( $S'  @p D Yŀ (͋K  / GXbIEǜ  '/   /' H%D; # &C Hb /YbEEJ  //   /' H$1 # &CYbEdE  / /   / G"+G  / G  'Ya G   D{ `Ym . Dx @XL'    D @D( DI  D(  D:  D$$K@ D$$p"  D0@ξ1"I\oA_^kD8 _@ oP  ;"" @@@ oP@@#qÎ9N郜  D dG$v  O  X  \ Dg X De DXYE S k [G @ DU Y9d lC S. j# aG@ҿ-XbIdE-  jTk S k \G"+`r;G S j \G  i D-H @IX(I Z  V DT  D$$mUK D$  quc  @mIv\. DJ8 _@ oTP  ;"" @@@ o@P@@je#qÎ9N郜0 D dG$ek    ' PD$X6KԎ+  "K$$ͦ G'P,K+Op+?  DA2 Y3   @bIou\NeDz8 _n  ;"" @@@иn@@Pf fCFfC`iCnÎ׼9N郜D G     X@Y X%u   DY Xۛ DW/ DX@#  DH( DK+v)'/s   E7 D79 XbE:      HH D%K XE;L  r   'GXY(Z  G  HdE;shG  G  bE+9v      G(r   'G D @nXE  DU D$ @ @ D D( D D$$Tm@K D$$q  @>HSD8 _(nT  ;"" @@@n@@@Pf fCFfC`iCnÎ9N郜 ZKD G$DC 'P Kԍ+D[+    bEEg X$$   DI+ X˛, DG- DX@;.3 ] D88 "G$+99' D bEEfG   D"N XbEO     Ho] D` XEa    'GXY($Oo  G  HdE;'s}G  G  bE+C9      G(   'G D @YXD(   D D$ݑ@  @ D D(Ȑ D D$$>m@K D$$q  @(H_S%D8 _ns  ? qn @@@ns@@BYUH#Ue fCPf fCF"fCgCgCgCg gCUh `iCnÎ9dLN郜 D dG$    @ nD$$o0123456789.-*@ @ n@D Y9$  GPK S  X$bE3 D#5[(x%  ' DM/n YDDw0 K 'C @ D(dų*>GPCfޜ[8yL  X%$Ztc#/ D$$hƙC @ xbEEg,v ' DmMn Y"[$p? K   C/PΙK E8cK' n"DXMn YD$o K PC#C+D$bE+  H' D6Mn YYX; K  ClG8;A    [$$U #PC dE"'$G K# H$DI#PC ' @ DLn YXGc K  ' DL n YXGc  K  ' DLn YbE$ӟ K  #P7D$D(&@0GPCDD'"'a4#C+  GE9B4'G 'PG3 D+"'vPVo  GX y^ Xc   DLgn Hb%$-h#GPC  D v' DqL{n D$ 'oI|G C3PS3  DpLnD$$Š   ** D$$ѪcAA@  d$I)5@UDJZ{Sd8 _mMD  ;"" @@@-MD@@TÎ9LN郜 D dG$D:   {   C(#D'$3C  t# D$+C  'G mdE8"G1+ G t' D$9J,@ J mY(KG G t' @Db%bEU k m HȢ(\icm' G t'Y$b%rq @  H(„m m' G E9$Zt紑' @ D(( m m'Y9Sܩ G t' D$()@  m E9@m' G t"G$$\' @  E9 m Qm' GX"G$ t' @ Da m m"G8"G ' G t' D$@ 1 mX"G8"' m' G tH$$d5' @ QXXDL(C m m'PGXX"G Q t m' Ds_GXd'y`  t'G  p@n Dn D(po  w Du D$$zv@D$$c   D$P  @eDdDa8 _l  ;"" @@&@'l@@ÎND G8\< ' Dc [$$B   D6 @ u8 _ؓN ;""@SNUbNbñG$$ r!p) "j)  K9D$$VI1BE!E1BD1D! BD1D$$9BC1C!BC1F!B8#=1B/;)D$$b*B2!B41"4)2!BxB B1)D$$c8J0)J J$9K&!BB%)D$$FBB#! B"! B!! B !B!B!BD T!BB DY DZ D[  D\ D] D _  D` Da Db  Dc D$$Lmd  t h@E8Vr%ux@ _*U$IH;Ub"GqG h,TM[ZqZ@TNbñG$$C `!d'AVb!`!D$4d!Vb` ` 'AG$${d%`!d!Vb@k+AO' _!TCH \@C@AIÏNbñG$$ 3G )"  D'$ 1!C.!CC)!GD$$'G 8'/ ! D$$&*') G)'  )ODb'$N8 )''GAHvFD _Y@Y`*GqGNbñG$$ " 8/7'эS7D$$*K+!B#BD8:87#B  _G8 ;""$I I#Db b o ;nBo@_oaoLn@TNbñG$$ /& ""* "3"G'D$$  B'B"+)`A`" *D$$Ӎ ")`A`!GD$$=*8S% ))R12 D$e8Sc@`` D2? D$8@ '1lj/E /D$$=N ")`I` "3D$$W\BB" )`I` "D8$qj!G /  ")G "D$'v^xG" )PG!GH$'0 GĒ$slxf / u)'B'B'DȒ$LB' B) / "G"D'$9+G"G!GcCKS)PD$$(KM)L1 1"1*D($q 3 3 D$$ 3JJ3D$$ 333 C K1D$$1 33CK3+D$$)K3;@$I$Ij!aA!+AO  _n @/9 D$$8b  3D$)Lm"$@ۿ$D%$YQ9Wa@ b) _D$@9@D$$R7 D$)Lm"$@[ۿ$D$$ $YQ 97a7kwuCKSPPPPE:2@Db2 _2D@8`D$$9R D$)Lm"$@ۿ$D$$@ $YQ 9akWu%]CKSPPPPE:2@Db2 _5V(@8D$$9R D$)Lm"$@ۿ$D$$l$YQ9u) aWkCKSPPD$92PPWaHCDb5 b8 _1V(@8D$$R7 D$)Lm"$@ۿ$D$$Xl$YQ97u) 7awkCKSPPD$2PPwaHCDb5 b8 _ҁ@8D$$R7 D$)/m "=I<("0@׿(@Ͽ0D$$X0&%!#)YQ 9WaW`D$$>AYQ97u) 7awkCKSPD$%YLPPPwa:Ihx+AO<DbP bS _D$@o8D$$R7 D$)Lm"$@ ۿ$D$$$YQ 97a7kwuCKSPP@Db0 _D$@O8D$$R7 D$)Lm"$@ۿ$D$%$YQ 97a7kwuCKS@Db. _Z $@/8 D$$b7 D$)Lm"$@ۿ$D%$YQ9wa@ b) _ ;""a I?H@ z@O@TNbñHE$cSG$${m #CC!CK)K@1*D$$  8S"C;1*3"C!D$$B*aU"*K"/)+[D$$H\8*1*Z1") )D$FKK 8T D L  DP1 Dq HAIF]< _N ;""HN$  $bñG$$z ?1">) J"S "S "D$$VR4! * J"R "()D$$< J"R "!) J"SD$$3* ") J") J"[)ٰD$e8PP * J !C D k@ DA D(JRB@ I R _I ;""HN$bñG$$> :1"51"8) J6!- JD$$2!* J"" "%) JD$$B(!C1")PPPP B")D$$d* * J"" ! J !Dr8C Dk: D;  D/< D(!=@CE $R _D O""HN$bñG$$N 1") J! J") JD$$""! J!C D2k D; D 3;  (R _0( O""HN(($bñG$$r 1") J! J" ) JDQ!C D;k DD D E+ R8 _NT O""$I@*   ` @ @ $bñG$$  (1(! B "1#! B  D8$Z1! B 1! B" B!CG$$ 1! * J !C D#k)* D,* D(A+13 R _N O""H"  $bñG$$S ,1",)PP B"') "D$$ ) B B*&D$$ " B*! " B" !DQ* !C Dk- D(. DE/46 R _:4 ;""H  @TNbñ$G$$ e)Kd!CC^!C[1"D$$ W1*T 8"*W!N1J*J D$$8SH1"3BL)BBN!@1BBD$$*BBBF!BB59#59+;!D$$.8B-9# B8!B B8.!C !1D$$F"9(!C"C* 8S")D]Ԓ$$$ T1B!C 19BGb Df  Dg   D h H%$ijlp HgzAOeAId _:T O""H@@@TNbñG$$9y %!C1"C"! BD$$! B"* J!C !C !CCDH  D6  D-!  DD"%(@AI _:t O""H``@TNbñG$$0# !C1* 8")C!D$$CCC !C  D=  D4  DD!HzAOAI $_f: ;""HN؀@TNbñG$$v  .!C"1* 8S"#)CD$$9c1")B) B") B!CD$$ !C !CC  D/'  D&(  mDD),/HzAO%AI& _'\ԏ$IPF%RY*ưI!AI\@TNbñD8${RK  C7'3D$$ #7/"C8#X8$9# #GK X$$0* C7"C/S'S"!D$$87B'G#G7/D$$FK+K'Bӑ7'B#G$]T# _ BDELV.FR oC ********************************************************* C * * C * NAME: BDELV.FR 300-0003 * C * DESCR: DELETES VECTORS AT POINTER ICP * C * OR LCP OR AT OTHER SPECIFIED LOCATION * C * (ICP IF MODE IS 1 OR 2; LCP IF MODE IS * C * 0). ]5THE NUMBER OF WORDS SPECIFIED * C * (IWCNT) ARE REMOVED PRIOR TO THE LCP * C * OR PAST & INCLUDING THE ICP. * C * * C * IF ADDRESS SPECIFIED IS NOT EQUAL TO * C * ZERO, VECTORS ARE DELETED AT THIS * C * ADDRESS * C * * C * RE@VISION HISTORY: * C * * C * 06/28/77 REV 1.0 PUBLIC RELEASE * C * 08/04/77 REV 1.01 CORRECTED ERROR CODES * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BDELV (IWCNT,IADR) DIMENSION IDBUF (16), ISAVE(2) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML),  2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1z,1)), (IMISC(1),NPICT), 4(IMISC(2), NLAB), (IMISC(3), IECW), (IMISC(4), ISFW1), 5(IMISC(5), ISFW2) EQUIVALENCE (IDBUF(1), INSBF(9)) C C *** CALCULATE STARTING ADDRESS C IF(IADR .EQ. 0) GOTO 50 ISA = IADR GOTO 60 50 IFyF(IMODE .NE. 0) ISA = IPC(8,ICPCT) IF(IMODE .EQ. 0) ISA = IPC(7,ICPCT) - IWCNT 60 IF(ISA .LT. IPC(1,ICPCT) .OR. ISA .GT. IPC(7,ICPCT)) GOTO 9999 IEA = IPC(7,ICPCT) + 3 CALL DELV(ISA,IWCNT,IEA) C C *** UPDATE LABEL ADDRESS VECTOR C -c DO 100 I=1,INLBL IF(LAV(I) .GT. ISA .AND. LAV(I) .LE. IEA .AND. LAV(I) .NE. 0) 1LAV(I) = LAV(I) - IWCNT 100 CONTINUE C C *** UPDATE LCP & ICP C IPC(7,ICPCT) = IPC(7,ICPCT) - IWCNT IF(IPC(8,ICPCT) .GT. IPC(7,ICPCT)) IPC(8,ICPCT) = !UIPC(7,ICPCT) RETURN C C *** ERROR C * ATTEMPT TO DELETE WORDS OUT OF CURRENT PICTURE! C 9999 IERW1 = 5 IERW2 = 26 CALL PROCS(75) RETURN END BDRWA.FR EC ********************************************************* C * * C * NAME: BDRWA.FR 300-0005 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * ABSOLUTE VECTOR INSTRUCTION * C * * C * REVISION HISTORY: * C * * C * 06+/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BDRWA (X,Y,IIZ,IB,ID) C  DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = X * RPC(2,ICPCT) INSBF (2) = Y * RPC(3,ICPCT) INSBF (3) = IIZ INSBF (4) = IB INSBF (5) = ID C C *** ABSOLUTE DRAW IS CODE 1 C CALL PROCS (1) RETURN END BDRWR.FR 1C ********************************************************* C * * C * NAME: BDRWR.FR 300-0007 * C * DATE: 05/21/77 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * RELATIVE VECTOR INSTRUCTION * C * * C * REVISION HISTORY:   * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BDRWŰR (X,Y,IIZ,IB,ID) C DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP),  1(k;IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = X * RPC(2,ICPCT) INSBF =(2) = Y * RPC(3,ICPCT) INSBF (3) = IIZ INSBF (4) = IB INSBF (5) = ID C C *** RELATIVE DRAW IS CODE 2 C CALL PROCS (2) RETURN END BDXRY.FR C ********************************************************* C * * C * NAME: BDXRY.FR 300-0009 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * INCREMENTAL VECTOR INSTRUCTION * C * * C * REVISION HISTORY: * C * * C *  06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BDXRY (X,Y,IIZ,IB,ID)  DIMENSION RPC (5,32), INSBF (24)  DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IE\RW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = X * RPC(2,ICPCT) INSBF (2) = Y * RPC(3,ICPCT) INSBF (3) = IIZ INSBF (4) = IB C C *** ABSOLUTE INCREMENTAL DRAW (RELATIVE Y) IS CODE 3. C CALL PROCS (3) RETURN END BDYRX.FR ,C ********************************************************* C * * C * NAME: BDYRX.FR 300-0011 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * INCREMENTAL VECTOR INSTRUCTION * C * (ABSOLUTE Y, RELATIVE X) * C * * C * REVISIOz2N HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C *  * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBSROUTINE BDYRX (X,Y,IIZ,IB,ID) C DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),II/CP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = X * RPC(2,ICPCT) INSBF (2) = Y * RPC(3,ICPCT) INSBF (3) = IIZ INSBF (4) = IB C C *** ABSOLUTE INCREMENTAL DRAW (RELATIVE X) IS CODE 4. C CALL PROCS (4) RETURN END BFNCT.FR &nC ********************************************************* C * * C * NAME: BFNCT.FR 300-0013 * C * DESCR: WRITES SPECIAL DISPLAY FUNCTION WORD * C * IN DISPLAY PROCESSOR. * C * * C * ISFA IS 16 WORD ARRAY IN CALLING PROGRAM * C * CONTAINING THE CONTROL FOR OUTPUT WORD * C * (SEE 5000/7000 SOFTWARE DOCUMENTATION) * C * * C * IFW IS THE RESULTING SPECIAL FUNCTION * C * WORD RETURNED TO CALLING PROGRAM * C * * C * REVISION HISTORY: * C * * C * 06/20/77a REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * 10/31/77 REV 03 IFW NOT RETURNED * C * CORRECTLY, CORRECTED IN THIS REV * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C *****************************w**************************** C SUBROUTINE BFNCT (ISFA,IFW) DIMENSION ISFA (16) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF g EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), b 4(IMISC(2),NLAB), (IMISC(3),IECW), (IMISC(4),ISFW1) C C *** SPECIAL FUNCTION WORD IS CODE 6 C DO 10 I = 9,24 10 INSBF (I) = ISFA (I-8) C C *** NOVA CODE! C IUUSD(1) = 0 IF(INSBF(9) .GT. 0) IUUSD(1) = 4000K IF(INSBF(10) .GT. 0) IUUSD(1) = IUUSD(1) + 2000K IF(INSBF(11) .GT. 0) IUUSD(1) = IUUSD(1) + 400K IF(INSBF(12) .GT. 0) IUUSD(1) = IUUSD(1) + 200K IF(INSBF(13) .GT. 0) IUUSD(1) = IUUSD(1) + 100K IF(INSBF(14) .GT. 0) IUUSD(1) = IUUSD(1) + 10K IF(IpNSBF(15) .GT. 0) IUUSD(1) = IUUSD(1) + 4K IF(INSBF(16) .GT. 0) IUUSD(1) = IUUSD(1) + 2K IF(INSBF(17) .GT. 0) IUUSD(1) = IUUSD(1) + 1K INSBF(9) = IUUSD(1) + 170000K CALL PROCS(17) C IFW = INSBF(9) RETURN END BGLBL.FR )}C ********************************************************* C * * C * NAME: BGLBL.FR 300-0015 * C * DESCR: SUBROUTINE TO GET LABEL ADDRESS * C * INFORMATION FROM THE LABEL ADDRESS * C * VECTOR AND MOVE IT TO THE CURRENT * C * PICTURE ICP. * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C **************************************L******************* C SUBROUTINE BGLBL (LABEL) DIMENSION IDBUF (16), ISAVE(2) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF  EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT),  4(IMISC(2), NLAB), (IMISC(3), IECW), (IMISC(4), ISFW1), 5(IMISC(5), ISFW2) EQUIVALENCE (IDBUF(1), INSBF(9)) C IF (LABEL .GT. NLAB .OR. LABEL .LT. 1) GOTO 9999 IPC(8,ICPCT) = LAV (LABEL) RETURN C C *** ERROR DETECTED (INVALIYd[D LABEL) C 9999 IERW1 = 2 IERW2 = 25 CALL PROCS (75) RETURN END BIN5.SR) ;********************************************************************** ; ; NAME: BIN5.SR 300-0017 ; ; DESCRIPTION: ; FULL INITIALIZATION FOR 5000 GRAPHICS ; THIS ROUTINE SETS ALL POINTERS ; AND CLEARS THE S7000 COMMON BLOCK. ; ; THIS MODULE MAY BE CONDITIONALLY ASSEMBELED ; DIFFERENT WAYS: DOS, RDOS, MAPPED RDOS, AND MEGADOS. ; TO ASSEMBLE, SET MDOS (=1 FOR MDOS, =0 FOR OTHERS) ; SET MAPS=1 FOR MAPPED RDOS. ; ; REVISION HISTORY: ; REV DATE DESCRIPTION ; 1.00 6/20/77 PUBLIC RELEASE ; 1.0q1 08/06/77 REVISED FOR MAPPED SYS AND MEGADOS ; 02 08/10/77 ; 03 10/07/77 SECOND JOYSTICK ADDED ; 04 12/03/77 27/67 JOY/TAB MODS ; ; COPYRIGHT (C) 1977 MEGATEK CORPORATION, ALL RIGHTS RESERVED. ; ;************************************************************************ .TITL BIN5 .NOCON 1 .ENT BIN5 .EXTD .CPYL,.FRET .IFE MDOS .EXTD CRTIS CRT=26 .ENDC .IFG MDOS .RB MBIN5.RB .ENDC .NREL ;SET UP LOOP TO CLEAR S7000 COMMON BLOCK ; 2 BIN5: JSR @.CPYL ;FORTRAN BOOK KEEPING ;INITIALIZE THE GRAPHICS PROCESSOR .IFE MDOS LDA 0,.CRT LDA 1,.DCT .IFG MAPS SUB 2,2 ;CLEAR AC2 MOVOR 2,2 ;SET BIT 0 COM 2,2 LDA 1,@-167,3 ;GET #1K BLOCKS FOR DATA CHANNEL COM 1,1 AND 2,1 COM 1,1 LDA 2,@-167,3 ;GET #1K BLOCKS FOR DATA CHANNEL INC 2,2 .ENDC .SYSTM .IDEF JMP .+2 ;ERROR? JMP STUP ;NO LDA 1,E45 ;THE ALREADY BEEN HERE ERROR SUB# 1,2,SNR JMP STUP ;ERROR OK, IGNORE IT .SYSTM .ERTN ;ERROR IS NOT OK, SO QUIT! STUP: .ENDC LDA 3,D539 NEG 3,3 ;AC3 IS COUNTER SUB 0,z0 LDA 2,.IPC CLOOP: STA 0,1,2 INC 2,2 INC 3,3,SZR JMP CLOOP ;NUMBER OF LABELS (NLAB) = 160 LDA 0,D160 LDA 2,.NLAB STA 0,1,2 ;IEB(10) = 1  LDA 2,.IEB LDA 0,C1 STA 0,10.,2 ;IECW = 1 (ERROR REPORTING WITH PAUSE) LDA 2,.IECW STA 0,1,2 ;NPICT = 32 (# PICTURES, MAX) LDA 2,.NPIT LDA 0,D32 STA 0,1,2 ;ITTY = 10 (FOR WRITE IN ERROR ROUTINE) LDA 2,.ITTY LDA 0,D10 STA 0,1,2 ;ITTY = 10 ;READ ADDRESS OF DISPLAY BUFFER LDA 3,16 ;GET STACK POINTER LDA 0,-167,3 LDA 2,.ISVL STA 0,1,2 ;ISVML = START ADDRESS LDA 1,@-166,3 ;# WORDS RESERVED ADD 1,0 LDA 1,CM1 ADD 1,0 STA 0,2,2 ;IEVML = ISVML + NWDS -1 LDA 0,C5 STA 0,3,2 ;ICONF = 5 DEFAULT FOR JOY/TAB OPS ;INITIALIZE THE DISPLAY BUFFER LDA 2,.ISVL LDA 0,1,2 LDA 1,CM1 ADD{& 1,0 MOV 0,2 ;AC2 IS INDEX TO BUFFER LDA 0,C130M STA 0,1,2 ;IBUF(1) = 130000 STA 0,5,2 ;IBUF(5) = 130000 STA 0,9.,2 ;IBUF(9) = 130000 LDA 1,D5 ADD 2,1 STA 1,2,2 ;IBUF(2) = ISVML + 4 ;PREVIOUS TWO WORDS CAUSE ;JUMP TO SECOND JOYSTICK \ LDA 1,D17 ADD 2,1 STA 1,6,2 ;IBUF(6) = ISVML + 16 ;PREVIOUS TWO WORDS CAUSE ;JUMP TO NEXT PICTURE STA 1,10.,2 ;IBUF(10) LDA 3,.ISVL STA 1,1,3 ;ISVML=ISVML+16 ;INSTALL CALL CROSSHAIR SUBROUTINE ;SECOND WORD CAN BE MODIFIED TO CALL ;A U'bSER ROUTINE LDA 0,C134M STA 0,3,2 ;IBUF(3)=134000 STA 0,7,2 ;IBUF(7)=134000 MOV 2,0 LDA 1,D11 ADD 1,0 STA 0,8.,2 ;IBUF(8)=ISVML+10 STA 0,4,2 ;IBUF(4)=ISVML+10 ;CROSSHAIR SUBROUTINE SEQUENCE LDA 0,C176M STA 0,11.,2 ;IDBUF(11)=176000 LDA 0,C3000 STA 0,12.,2 ;IDBUF(12)=003000 LDA 0,C72T STA 0,13.,2 ;IDBUF(13)=072000 LDA 0,C3014 STA 0,14.,2 ;IDBUF(14)=003014 LDA 0,C4015 STA 0,15.,2 ;IDBUF(15)=040150 LDA 0,CRET STA 0,16.,2 ;IDBUF(16)=170001 ;THIS IS THE START OF THE FIRST Pm#ICTURE LDA 0,CSTOP STA 0,17.,2 ;IBUF(17)=170010 STA 0,18.,2 ;IBUF(18)=170010 ;INITIALIZATION COMPLETE JMP @.FRET ;CONSTANTS .COMM S7000,539. D539: 539. .IPC: .GADD S7000,-1 D160: 160. .NLAB: .GADD S7000,491. .IEB: .GADD S7000,480.-1 C1: 1 C5: 5 .IECW: .GADD S7000,491.+1 .NPIT: .GADD S7000,491.-1 D32: 32. .ISVL: .GADD S7000,480.+4 .ITTY: .GADD S7000,491.+4 CM1: -1 C130M: 130000 C134M: 134000 D10: 10. D5: 5. D11: 11. D17: 17. C176M: 176000 C3000: 003000 C72T: 072000 C3014: 003014 C4015: 040150tA CRET: 170001 CSTOP: 170010 .IFE MDOS E45: 45 .DCT: DCT .CRT: CRT DCT: DSAVE 1B6 CRTIS DSAVE: .BLK 10 .END BINIT.FR +$C ********************************************************* C * * C * NAME: BINIT.FR 300-0020 * C * DESCR: SUBROUTINE TO SET PICTURE ATTRIBUTES * C * AND ALLOCATE MEMORY SPACE IN 7000 * C * DISPLAY PROCESSOR. * C * * C * * CU8 * PARAMATERS: * C * IP - PICTURE NUMBER FOR INITIALIZATION * C * IWDS - NUMBER OF WORDS RESERVED * C * ITP - TEXT/PICT. (0 IS PICTURE; 1 TEXT * C * XRAT - RATIO OF USER/SCREEN UNITS - X * C * YRAT - RATIO OF USER/SCREEN UNITS - Y * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C  SUBROUTINE BINIT (IP,IWDS,ITP,XRAT,YRAT) C C DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2)>H, ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) ICPCT = IP INSBF (2) = 0 INSBF (5) = 0 IF (IEVML .EQ. 0) CALL PROCS(75) C C *** DETERMINE WHERE PICTURE WILL BE PLACED C IF (IPC (1,IP) .NE. 0) GOTO 75 IAVM = ISVML C DO 50 I=1,NPICT IUUSD(1) = IPC(1,I) + IPC(2,I) IF(IiUUSD(1) .LT. IAVM) GOTO 50 IAVM = IUUSD(1) INSBF (2) = I 50 CONTINUE GOTO 100 C C *** PICTURE PREVIOUSLY DEFINED SO IT STARTS HERE C 75 IAVM = IPC (1,IP) C C *** CHECK FOR PICTURE OVERLAP TO INVALID MEMORY & NEXT PICTURE C 100 INSBF (4) = IEVML IF (IAVM + IWDS .GT. IEVML) GO TO 9999 DO 175 I = 1,NPICT IF (IAVM + IWDS .GT. IPC (1,I) .AND. IAVM .LT. IPC (1,I)) 1GOTO 9999 IF (IPC (1,I) .GT. IAVM .AND. IPC (1,I) .LT. INSBF (4)) 1INSBF (4) = IPC (F1,I) 175 CONTINUE C C *** CHECK FOR OVERLAY. DO 185 I = 1,NPICT IF(I .EQ. IP) GOTO 185 IF(IAVM .EQ. IPC(1,I)) GOTO 190 185 CONTINUE GOTO 195 C C *** CORRECT IAVM (OVERLAY DETECTED) 190 INSBF(5) = 1 C *** NO OVERLAP ERRORS, 1SO INITIALIZE C 195 IPC (1,IP) = IAVM IPC (2,IP) = IWDS RPC (2,IP) = XRAT RPC (3,IP) = YRAT IPC (9,IP ) = ITP II = INSBF (2) IF (II .EQ. 0) GOTO 200 IF(IPC (2,II) .EQ. 0) IPC(2,II) = IPC(7,II) - IPC(1,II) C C **8* WRITE CLEAR HEADER & LINKS TO PREVIOUS & NEXT PICTURES IN 7000 C *THE INSTRUCTION BUFFER WILL TRANSMIT PARAMATERS TO C * PROCS AS FOLLOWS: C * INSBF (2) IS A CONTROL FLAG CONTAINING THE NUMBER OF THE PREV. PICTURE C * INSBF (1) IS START ADDRESS YOF NEW HEADER C * INSBF (3) IS PICTURE NUMBER OF NEW PICTURE C * INSBF (4) IS START ADDRRESS OF NEXT PICTURE C * INSBF (5) IS FLAG FOR ADDRESS CORRECTION DUE TO OVERLAY C 200 INSBF (1) = IAVM C INSBF (3) = IP CALL PROCS (50) RETURxN C C *** ERRORS DETECTED C 9999 IERW1 = 1 IERW2 = 0 IECW = 2 CALL PROCS(75) RETURN END BJMAD.FR ,C ********************************************************* C * * C * NAME: BJMAD.FR 300-0022 * C * DESCR: ADDS INSTRUCTION WORD FOR A JUMP * C * MODE = 0 IS ABSOLUTE JUMP * C * (NORMAL FORMAT FOR 5000) * C * MODE = 1 IS RELATIVE JUMP Վ * C * (EXTENDED FORMAT FOR 5000) * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C *  * C *****ܧ**************************************************** C SUBROUTINE BJMAD (IVALU,MODE) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF g EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), r 4(IMISC(2),NLAB) C C *** CHECK FOR ERRORS C IF (IVALU .LT. ISVML .OR. IVALU .GT. IEVML) GOTO 9999 C C *** NO ERROR C INSBF(1) = IVALU IF (MODE .EQ. 0) CALL PROCS (11) IF (MODE .NE. 0) CALL PROCS (12) RETURN 9999 IERW1 = @^2 IERW2 = 56 CALL PROCS (75) RETURN END BJMLB.FR -C ********************************************************* C * * C * NAME: BJMLB.FR 300-0024 * C * DESCR: ADDS INSTRUCTION WORD FOR A JUMP * C * MODE = 0 IS ABSOLUTE JUMP * C * (NORMAL FORMAT FOR 5000) * C * MODE = 1 IS RELATIVE JUMP Վ * C * (EXTENDED FORMAT FOR 5000) * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BJMLB (LABEL,MODE) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF g EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 5 4(IMISC(2),NLAB) C C *** CHECK FOR ERRORS C IF (LABEL .LE. 0 .OR. LABEL .GT. NLAB) GOTO 9999 C C *** NO ERROR C IF (MODE .EQ. 0) INSBF(1) = LAV (LABEL) IF (MODE .NE. 0 .AND. IMODE .EQ. 0) INSBF(1) = LAV (LABEL) 1-IPC (7,ICPCT) 55 IF (MODE .NE. 0 .AND. IMODE .NE. 0) INSBF(1) = LAV(LABEL) 1-IPC(8,ICPCT) IF (MODE .EQ. 0) CALL PROCS (11) IF (MODE .NE. 0) CALL PROCS (12) RETURN 9999 IERW1 = 2 IERW2 = 35 CALL PROCS (75) RETURN END BJSAD.FR -C ********************************************************* C * * C * NAME: BJSAD.FR 300-0026 * C * DESCR: ADDS INSTRUCTION WORD FOR A JUMP SUBR. * C * MODE = 0 IS ABSOLUTE JUMP * C * (NORMAL FORMAT FOR 5000) * C * MODE = 1 IS RELATIVE JUMP * C * (EXTENDED FORMAT FOR 5000) * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BJSAD (IVALU,MODE) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBFf EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT&), 4(IMISC(2),NLAB) C C *** CHECK FOR ERRORS C IF (IVALU .LT. ISVML .OR. IVALU .GT. IEVML) GOTO 9999 C C *** NO ERROR C INSBF(1) = IVALU IF (MODE .EQ. 0) CALL PROCS (13) IF (MODE .NE. 0) CALL PROCS (14) RETURN 9999 IERWDG1 = 2 IERW2 = 66 CALL PROCS (75) RETURN END BJSLB.FR .!C ********************************************************* C * * C * NAME: BJSLB.FR 300-0028 * C * DESCR: ADDS INSTRUCTION WORD FOR A JUMP SUBR. * C * MODE = 0 IS ABSOLUTE JUMP * C * (NORM. FMT. FOR 5000) * C * MODE = 1 IS RELATIVE JqTUMP * C * (EXTD. FMT. FOR 5000) * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C *****ĭ**************************************************** C SUBROUTINE BJSLB (LABEL,MODE) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12)  COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF g EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), / 4(IMISC(2),NLAB) C C *** CHECK FOR ERRORS C IF (LABEL .LE. 0 .OR. LABEL .GT. NLAB) GOTO 9999 C C *** NO ERROR C INSBF(1)=LAV(LABEL) IF (MODE .EQ. 0) CALL PROCS (13)  IF (MODE .NE. 0) CALL PROCS (14) RETURN 9999 IERW1 = 2 =B IERW2 = 45 CALL PROCS (75) RETURN END BMOVA.FR /uC ********************************************************* C * * C * NAME: BMOVA.FR 300-0030 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * ABSOLUTE VECTOR INSTRUCTION WITH * C * ZERO INTENSITY * C * * C * REVISION HISTO`RY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C *  * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BMOVA (X,Y) C DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4;), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = X * RPC(2,ICPCT) INSBF (2) =u: Y * RPC(3,ICPCT) INSBF (6) = 1 C C *** ABSOLUTE DRAW IS CODE 1 C CALL PROCS (1) RETURN END BMOVR.FR /LC ********************************************************* C * * C * NAME: BMOVR.FR 300-0032 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * RELATIVE VECTOR INSTRUCTION  * C * WITH ZERO INTENSITY (BLANKED) * C * * C * REVISnVION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SdUBROUTINE BMOVR (X,Y) C DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), #! 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = X * RPC(2,ICPCT) IN}vSBF (2) = Y * RPC(3,ICPCT) INSBF (6) = 1 C C *** RELATIVE DRAW IS CODE 2 C CALL PROCS (2) RETURN END BMXRY.FR 1C ********************************************************* C * * C * NAME: BMXRY.FR 300-0034 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * INCREMENTAL VECTOR INSTRUCTION * C * * C * REVISION HISTORY: * C * * C *  3 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BMXRY (X,Y,IIZ) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), l(IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = X * RPC(2,ICPCT) INSBF (2) = Y * RPC(3,ICPCT) INSBN-F (3) = IIZ INSBF (6) = 1 C C *** ABSOLUTE INCREMENTAL DRAW (RELATIVE Y) IS CODE 3. C CALL PROCS (3) RETURN END BMYRX.FR 3.C ********************************************************* C * * C * NAME: BMYRX.FR 300-0036 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * INCREMENTAL VECTOR INSTRUCTION * C * (ABSOLUTE Y, RELATIVE X) * C * * C * REVISIOzIN HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBEoROUTINE BMYRX (X,Y,IIZ) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1^O(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML),  2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = X * RPC(2,ICPCT) INSBFt (2) = Y * RPC(3,ICPCT) INSBF (3) = IIZ INSBF (6) = 1 C C *** ABSOLUTE INCREMENTAL DRAW (RELATIVE Y) IS CODE 4. C CALL PROCS (4) RETURN END BNSRT.FR 5C ********************************************************* C * * C * NAME: BNSRT.FR 300-0038 * C * DESCR: SETS PICTURE COMPONENT MODE * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BNSRT (IAM) C DIMENSION RPC (5,32), INSBF (24) DIMENSIO%]N IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF  EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(l_8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) C C *** CHECK FOR ERROR IF (IAM .LT. 0 .OR. IAM .GT. 2) GOTO 9999 C *** NO ERROR IMODE = IAM RETURN 9999I IERW1 = 1 IERW2 = 31 CALL PROCS (75) RETURN END BPLBL.FR (uqC ********************************************************* C * * C * NAME: BPLBL.FR 300-0040 * C * DESCR: PUTS ADDRESS IN THE LABEL ADDRESS VECTOR* C * FOR THE REFERENCED LABEL * C * * C * REVISION HISTORY: * C * * C * 06:/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * 10/31/77 REV 03 DELETED UNUSED ARGUMENT * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C C SUBROUTINE BPLBL (IL) C DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(G]3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) C C *** CHECK FOR ERRORS C "[ IF (INLBL .GT. NLAB) GOTO 9999 C C *** NO ERRORS C C *** CHECK MODE TO SELECT ADDRESS FROM LCP OR ICP C I = 0 IF (IMODE .NE. 0) I = 1 IF (IL .GT. NLAB .OR. IL .LT. 0) IL = 0 IF (IL .NE. 0) GOTO 50 IL = INLBL INLBL = IW6NLBL + 1 50 LAV(IL) = IPC(7+I,ICPCT) RETURN C C *** LABEL ADDRESS VECTOR FULL C 9999 IERW1 = 2 IERW2 = 14 CALL PROCS (75) RETURN END BPNT.FR 69C ********************************************************* C * * C * NAME: BPNT.FR 300-0042 * C * DESCR: POINTER SETUP FOR CURRENT PICTURE * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C C SUBROUTINE BPNT (IP) C DIMENSION RPC (5,32), INSBF (24) DIME1NSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(ۺIEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) C C *** VERIFY LEGAL PICTURE C IF (IP .GT. NPICT .OR. IP .LT. 1) GOTO 9998 IF (IPC(1,IP) .EQ. 0) GOTO 9997_ C C *** NO ERRORS C ICPCT = IP RETURN C C *** ERRORS C * PICTURE NOT INITIALIZED C 9997 IERW2 = 20 GOTO 9999 C C * PICTURE NO. OUT OF RANGE C 9998 IERW21 = 2 9999 IERW1 = 1 CALL PROCS (75) RETURN END BRETN.FR 7}C ********************************************************* C * * C * NAME: BRETN.FR 300-0044 * C * DESCR: ADDS INSTRUCTION WORD TO CAUSE RETURN * C * FROM SUBROUTINE JUMP. * C * * C * IFW IS SPECIAL FUNCTION WORD WHICH WILL * C * iBE USED FOR BUILDING THE RETURN FROM SUBROUTINE * C * INSTRUCTION. THE FINAL RESULT WILL BE IFW * C * .OR. 000010. * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * ( * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BRETN (IFW) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11/), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEBV(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) C C *** RETURN FROM SUBROUTINE JUMP IS CODE 15 C IJUNK = 10 INSBF (9) = IFW CALL PROCS (15) RETURN END BROT.FR 8VC ********************************************************* C * * C * NAME: BROT.FR 300-0046 * C * DESCR: ADDS INSTRUCTION WORDS FOR ROTATION * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * #_ 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BROT (IX,IY,ANGL) C DIMENSION RPC (5,32), INSBF (24) DILMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML),  22(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) C C *** CONVERT TO SCREEN UNITS C INSBF(1) = X * RPC(2,ICPCT) INSBF(2) = Y * RPC(3,ICPCT) INSBF(3) <= 11.375 * ANGL CALL PROCS (8) RETURN END BSCAL.FR 8\C ********************************************************* C * * C * NAME: BSCAL.FR 300-0048 * C * DESCR: ADDS INSTRUCTION WORDS FOR SCALING * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * p08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BSCAL (X,Y,SCLX,SCLY) DIMENSION RPC (5,32), INSBF (24) D0IMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), M 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) C C *** CONVERT TO SCREEN UNITS C INSBF(1) = X * RPC(2,ICPCT) INSBF(2) = Y * RPC(3,ICPCT) INSBF(3)he = SCLX * RPC(2,ICPCT) INSBF(4) = SCLY * RPC(3,ICPCT) CALL PROCS (9) RETURN END BSTNG.FR :FC ********************************************************* C * * C * NAME: BSTNG.FR 300-0050 * C * DESCR: WRITES STRING OF CHARACTERS IN CURRENT * C * PICTURE. * C * * C * REVISION HISTORY: * C *  * C * 06/20/77 REV 1.0 EPUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BSTNG (IIZ,ISZ,IRT,ISTNG,NMCHR) DIMENSION ISTNG (NMCHR) DIMENSION IDBUF (16) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), g(IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) EQUIVALENCE (IDBUF(1), INSBF(9)) ISTOP = NMCHR/2 + NMCHR - (NMCHR/2)*2 DO 100 I = 1,ISTOP INSBF (2) = IIZ INSBF (3) = ISZ INSBF (4) = IRT INSBF (5) = 1 INSBF(1) = ISTNG (I) IF(I*2 .GT. NMCHR) INSBF(5) = 0 100 CALL PROCS (16) H RETURN END BTEXT.FR GHC ********************************************************* C * * C * NAME: BTEXT.FR 300-0052 * C * DESCR: INSERTS TEXT IN * C * PICTURES WITH TEXT ATTRIBUTE. * C * * C * REVISION HISTORY: * C *Q * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 07/30/77 REV 1.01 REVISED * C * 08/10/77 REV 02 * C * 09/09/77 REV 03 RE-WRITE MODE CORR. DEH * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * aC ********************************************************* SUBROUTINE BTEXT(ICH,ITEXT) DIMENSION ITEX(1) DIMENSION IDBUF (16) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3h(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB), (IMISC(3),IECW), (IMISC(4),ISFW1), (IMISC(5),ISFW2) IF(IPC(9,ICPCT).EQ.0) GOTO 9999 MSAV=IMODE LF = (IPC(6,ICPCT)*256 .OR. 100012K) IAD=0 IFLAG=1 CALL NUMCH(ITEXT,INCH) IF (ICH) 10,10,5 5 INCH = ICH 10 IF (IMODE-2) 50,20,50 C *** RE-WRITE MODE 20 ISA = IPC(8,ICPCT) GOTO 1000 C *** INSERT OR APPEND MODE C * CHECK TO SEE IF LINES ALL BUSY 50 IF (IPC(9,ICPCT) - IPC(3,ICPCT)) 100,100,53 C *** NEED TO DELETE A LI:NE 53 IF(IPC(10,ICPCT)) 55,60,55 C C *** NEED TO DELETE LAST LINE C 55 ISA = IPC(10,ICPCT) IAD=2 GOTO 1000 C C *** NEED TO DELETE FIRST LINE C 60 ISA = IPC(1,ICPCT) + 7 GOTO 1000 100 IPC (9,ICPCT) = IPC (9,ICPCT) + 1 GOTO 2000 C *** "SUBROUTINE" TO dDELETE A LINE 1000 CALL LFCHK(IJ0,IJ1,IJ2,IJ3,IJ4,IJ5,IJ6, 1 IJ7,IJ8,IJ9,IRSLT,LF,IFLAG,IWCNT,ISA) CALL BDELV (IRSLT+IAD,ISA) 2000 IF(IPC(10,ICPCT))2020,2040,2020 2020 IPC(10,ICPCT)=IPC(7,ICPCT) 2040 IF(IMODE-2)2050,2045,2050 2045 IMODE=1 2050 CALL ?IMXRY(IPC(4,ICPCT),0,0) CALL BWORD (LF) CALL BSTNG (1,IPC(6,ICPCT),0,ITEXT,INCH) IMODE=MSAV RETURN 9999 IERW1 = 3 IERW2 = 17 CALL PROCS(75) RETURN END BTXAT.FR ;VyC ********************************************************* C * * C * NAME: BTXAT.FR 300-0054 * C * DESCR: COMPLETES INITIALIZATION FOR * C * PICTURES WITH TEXT ATTRIBUTE. * C * * C * REVISION HISTOR Y: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 07/20/77 REV 1.01 RE-WRITE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C **************************** K***************************** C C****************************************************** C PICTURE DESCRIPTION FOR TEXT PICTURES IS AS FOLLOWS: C C IPC(1,I) = STARTING ADDRESS OF PICTURE C IPC(2,I) = LENGTH OF PICTURE C IPC(3,I) = MAX LINES C IPC(4,I) = AwBSOLUTE X COORD OF PICTURE (IN ABS X,RELY FORMAT) C IPC(5,I) = MAX CHARACTERS/LINE C IPC(6,I) = DISPLAY LIST MASK FOR CHARACTERS C IPC(7,I) = LAST COMPONENT POINTER (LINE #) C IPC(8,I) = INSERT COMPONENT POINTER (LINE #) C IPC(9,I) = 1 (FIRST LINE # TO BE )BWRITTEN) C IPC(10,I) 0 = SCROLL; >0 = NO SCROLL C C***************************************************************** SUBROUTINE BTXAT (IP,ICS,IXL,IYU,INC,INL,ISCRL) C DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), [IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT=), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) C C *** VERIFY INITIALIZATION C IF ( IPC (9,IP) .EQ. 0) GOTO 9998 C C *** VERIFY REASONABLE TEXT PARAMATERS C IF (IP .GT. NPICT .OR. IP .\LT. 1) GOTO 9997 IF (ICS .GT. 7 .OR. ICS .LT. 0) GOTO 9996 IF (IXL .LT. -2048 .OR. IXL .GT. 2047) GOTO 9995 IF (IYU .LT. -2048 .OR. IYU .GT. 2047) GOTO 9995 C C *** COMPLETE INITIALIZATION C C *** CHECK FOR ASSIGNED MEMORY C IF (IPC(2,IPuS) .EQ. 0) IPC (2,IP)=INL*(INC+3)+11 IPC(3,IP) = INL IPC(4,IP) = IXL IPC(5,IP) = INC IPC(6,IP) = ICS IPC(10,IP) = ISCRL CALL IDRWA (IXL,IYU,-15,0,0) RETURN C C *** ERRORS DETECTED C * SCREEN COORDINATES OUT OF RANGE C 9995 IERW2 = 13 G+OTO 9999 C C * INVALID CHARACTER SIZE C 9996 IERW2 = 12 C C * PICTURE NO. OUT OF RANGE C 9997 IERW2 = 11 GOTO 9999 C C * PICTURE NOT INITIALIZED FOR TEXT C 9998 IERW2 = 10 IECW = 2 9999 IERW1 = 1 CALL PROCS (75) RETURN END BWNDO.FR VC ********************************************************* C * * C * NAME: BWNDO.FR 300-0056 * C * DESCR: ADDS INSTRUCTION WORDS FOR A "WINDOW" * C * (TWO CLIPPING INSTRUCTIONS) * C * * C * REVISION HISTORY: * C * * C * b06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE BWNDO (XL,YL,XR,YU) DWIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2m), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) C C *** CONVERT TO SCREEN UNITS C INSBF(1) = XL * RPC(2,ICPCT) IN&SBF(2) = YL * RPC(3,ICPCT)  INSBF(3) = XR * RPC(2,ICPCT) INSBF(4) = YU * RPC(3,ICPCT) CALL PROCS (10) RETURN END BWORD.FR  C ********************************************************* C * * C * NAME: BWORD.FR 300-0058 * C * DESCR: BUILDS OCTAL WORD IN DISPLAY PROCESSOR * C * MEMORY WITHOUT ANY CHECK FOR VALID * C * FORMAT. * C * * C * IWORD = ANY VALID OCTAL CONSTANT OR * C * VARIABLE. * C * * C * ISFA IS 16 WORD ARRAY IN CALLING PROGRAM * C * CONTAINING THE CONTROL FOR OUTPUT WORD * C * (SEE 5000/7000 SOFTWARE DOCUMENTATION) * C * * C * IFW IS THE RESULTING SPECIAL FUNCTION ;* C * WORD RETURNED TO CALLING PROGRAM * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ************** ******************************************* C SUBROUTINE BWORD (IWORD) DIMENSION ISFA (16)  DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSHD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB), (IMISC(3),IECW), (IMISC(4),ISFW1) C C *** BUILD OCTAL WORD IS CODE 7 C IJUNK=10 INSBF(9) = IWORD CALL PROCS (17) RETURN END BXLT.FR  C ********************************************************* C * * C * NAME: BXLT.FR 300-0060 * C * DESCR: ADDS INSTRUCTION WORDS FOR TRANSLATION * C * X : X VALUE OF TRANSLATION * C * Y : Y VALUE OF TRANSLATION * C * IA : 0 -ABSOLUTE TRfANSLATE; 1 - RELATIVE* C * TRANSLATE. * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C, ********************************************************* C SUBROUTINE BXLT (X,Y,IA) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF g EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), , 4(IMISC(2),NLAB) C C *** CONVERT TO SCREEN UNITS C INSBF(1) = X * RPC(2,ICPCT) INSBF(2) = Y * RPC(3,ICPCT) INSBF(3) = IA CALL PROCS (7) RETURN END CRT.SR,k8;***************************************************************** ; ; NAME: CRT.SR 300-0062 ; ; DESCRIPTION: ; PROCESSOR INTERFACE FOR THE MEGRAPHICS 5000 SYSTEM ; FOR A NOVA MINI-COMPUTER. THIS ROUTINE HAS ENTRIES ; WHICH START THE GRAPHICS PROCESqmSOR, STOP THE GRAPHICS ; PROCESSOR, AND CHANGE THE REFRESH RATE ; ; THIS MODULE MAY BE CONDITIONALLY ASSEMBELED ; DIFFERENT WAYS: DOS, RDOS, MAPPED RDOS, AND MEGADOS. ; TO ASSEMBLE, SET MDOS (=1 FOR MDOS, =0 FOR OTHERS) ; SET MAP=1 FOR MAPPED RDOS. ; ; ReEVISION HISTORY: ; REV DATE DESCRIPTION ; 1.00 06/20/77 PUBLIC RELEASE ; 1.01 08/02/77 ADDED REF AS ENTRY ; 1.02 08/06/77 ADDED MEGADOS REVISIONS ; 02 08/10/77 ; 03 12/06/77 ADDED CONDITIONAL .RB "MCRT.RB" ; ; COPYRIGHT(C) MEGATEK CORPORATION, 1977 ; AL L RIGHTS RESERVED ;***************************************************************** .TITLE CRT .NOCON 1 CRT = 26 .ENT DISON,DHALT,CHREF,REF,AISON,AHALT .IFE MDOS .ENT CRTIS .ENDC .IFG MDOS .RB MCRT.RB .ENDC .EXTD .CPYL,.FRET .EXTN .UIEVX .NREL ;****************************************** ; DISON -- DISPLAY ON ; ; CALL DISON(IADDR) ; WHERE IADDR = MEMORY LOCATION (ADDRESS) OF BEGINNING OF LIST ; ;****************************************** .IFE MDOS 2 DISON: JSR @.CPYL NIOC CRT ;INtITIALIZE INTERFACE LDA 0,REF ;GET REFRESH CONSTANT DOB 0,CRT ;SEND TO GRAPHICS LDA 0,@-167,3 ;GET ARGUMENT FROM FORTRAN STA 0,STADD ;STORE IT FOR INTERRUPT SERVICING DOAS 0,CRT ;START GRAPHICS PROCESSOR JMP @.FRET ;ALL DONE!! ;******************t******** ; AISON -- DISPLAY ON FROM ASM (MUST HAVE BEEN PREVIOUSLY STARTED BY ; DISON) ; ;*************************** AISON: LDA 0,STADD MOV 0,0,SNR ;CHECK FOR VALID ADDRESS JMP 0,3 ;SORRY, NO GOOD! NIOC CRT LDA 0,REF DOB 0,CRT LDA 0,STADD DOAS 90,CRT ;START IT JMP 0,3 ;BACK TO CALLER .ENDC .IFG MDOS ;MEGADOS CODE 2 DISON: JSR @.CPYL LDA 0,REF LDA 1,CDISN ADD 0,1 LDA 0,@-167,3 ;GET STARTING ADDRESS STA 0,STADD .SYSTM 42B7+75 JMP .+1 ;IGNORE ANY ERROR JMP @.FRET AISON: STA 3.,AIRTN ;SAVE RETURN ADDRESS LDA 1,CDISN LDA 0,REF ADD 0,1 LDA 0,STADD MOV 0,0,SNR JMP 0,3 ;BAD STARTING ADDRESS .SYSTM 42B7+75 JMP .+1 ;IGNORE ERROR LDA 3,AIRTN ;GET RETURN ADDRESS JMP 0,3 AIRTN: 0 ;RETURN ADDRESS GOES HERE .ENDC .IFE M DOS ;************************** ; AHALT -- DISPLAY OFF CALLED FROM ASM ; ;************************** AHALT: NIOC CRT JMP 0,3 ;****************************************** ; DHALT -- DISPLAY OFF ; ; CALL DHALT ; ;****************************************** 10 DHALT: JSR @.CPYL NIOC CRT JMP @.FRET .ENDC .IFG MDOS ;MEGADOS CODE AHALT: STA 3,AHRTN ;SAVE RETURN ADDRESS LDA 0,CM1 LDA 1,CDISO .SYSTM 42B7+75 JMP .+1 ;IGNORE ERROR LDA 3,AHRTN ;GET RETURN ADDRRESS JMP 0,3 AHRTN: 0 ;RETURN APDDRESS GOES HERE 2 DHALT: JSR @.CPYL LDA 0,CM1 LDA 1,CDISO .SYSTM 42B7+75 JMP .+1 JMP @.FRET .ENDC .IFE MDOS ;********************************************************************* ; ; CHREF - ENTRY TO CHANGE REFRESH MODE ; CALL CHREF(IREF) ;` ; IREF=0 FOR CONTINUOUS REFRESH ; IREF=2 FOR 60 HZ ; IREF=4 FOR 45 HZ ; IREF=6 FOR 90 HZ ; ;************************************************************************ 2 CHREF: JSR @.CPYL ;FORTRAN BOOKKEEPING LDA 0,@-167,3 ;GET THE REFRESH WORD STA 0,REjF DOB 0,CRT JMP @.FRET .ENDC .IFG MDOS ;MEGADOS CODE 2 CHREF: JSR @.CPYL LDA 1,CCREF LDA 0,@-167,3 ADD 0,1 LDA 0,CM1 .SYSTM 42B7+75 JMP .+1 JMP @.FRET .ENDC .IFG MDOS CM1: -1 CDISN: 1B2+1B4+1B12 CDISO: 1B3 CCREF: 1B12 .ENDC E45: 45 REF: 6 STADD: 0 .CRT: CRT ;*************************************************************** ; INTERRUPT SERVICING (RDOS & DOS) ;************************************************************** .IFE MDOS CRTIS: NIOC CRT ;CLEAR GRAPHICS PROCESSOR LæDA 0,REF ;GET REFRESH MODE DOB 0,CRT LDA 0,STADD ;GET STARTING ADDRESS OF DISPLAY LIST DOAS 0,CRT ;START GRAPHICS PROCESSOR .UIEX ;EXIT INTERRUPT SERVICING .ENDC .END DELV.SR B;***************************************************************** ; ; NAME: DELV.SR 300-0065 ; ; DESCRIPTION: ; SUBROUTINE TO DELETE WORDS FROM DISPLAY LIST IN ; NOVA BASED 5000 GRAPHICS SYSTEM. ; ; REVISION HISTORY: ; REV DATE DESCRIPTION ; 1.00 U06/20/77 PUBLIC RELEASE ; 1.01 08/02/77 ADDED CHECK FOR 552 STATUS ; ; 02 08/10/77 ; ; COPYRIGHT(C) MEGATEK CORPORATION, 1977 ; ALL RIGHTS RESERVED ;***************************************************************** .TITLE DELV .ENT DELV .EXTD .CPvYL,.FRET,AISON,AHALT .NREL ;************************************************************** ; ; CALL DELV (ISA,IWCNT,IEA) ; ; WHERE: ISA IS STARTING ADDRESS FOR DELETE ; IWNCT IS WORD COUNT FOR DELETE ; IEA IS ENDING ADDRESS FOR DELETE ; ;************************************************************** ISA=-167 IWCNT=ISA+1 IEA=IWCNT+1 TEMP=IEA+1 TEMP2=TEMP+1 10 DELV: JSR @.CPYL ;FORTRAN BOOKKEEPING ; JSR @.DOF ;552 OFF! ; LDA 3,16 ;RESTORE AC3 LDA 1,@ISA,3 ;SET UP COUNTER IN TE}MP2 LDA 2,@IEA,3 LDA 0,@IWCNT,3 ; SUB 1,2 SUB 0,2 INC 2,2 NEG 2,2 STA 2,TEMP2,3 ;COUNTER VALUE LDA 2,@ISA,3 ;GET STARTING ADDRESS AGAIN ADD 0,2 LDA 1,0,2 ;GET FIRST WORD PAST DELETED WORDS STA 1,TEMP,3 ;AND SAVE IT LDA 1,TEMP2,3 MOV 2,3 ;S,ET UP SOURCE POINTER IN AC3 SUB 0,2 ;SET UP DESTINATION POINTER IN AC2 LDA 0,DSTOP ;GET STOP INSTRUCTION STA 0,0,2 ;PUT IT AT DELETE LOCATION JMP .+3 MLOOP: LDA 0,0,3 ;TRANSFER DATA STA 0,0,2 INC 2,2 INC 3,3 INC 1,1,SZR ;MORE? JMP MLOOP ;YEP LDA 3,16 ;RESTORE AC3 LDA 2,@ISA,3 ;NOW FIX FIRST WORD IN DELETE LDA 0,TEMP,3 ;AREA STA 0,0,2 ;ALL FINISHED JSR @.DON ;TURN ON 552 JMP @.FRET ;BACK TO FORTRAN DSTOP: 170010 ;STOP INSTRUCTION FOR 552 .DON: AISON ;DISON (ASM ENTRY) .DOF: #AHALT ;DHALT (ASM ENTRY) .END DRWRT.SR ٣ ;**************************************************************** ; ; NAME: DRWRT.SR 300-0067 ; ; DESCRIPTION: ; READ/WRITE ROUTINES TO DISPLAY PROCESSOR ; MEMORY AREA IN THE NOVA. ; THERE ARE TWO ENTRIES FOR THIS PURPOSE: ; ; DRWRT - DIRECT READ/W+RITE ; ARWRT - SIMILAR TO DRWRT, CALLED FROM ASM. CODE ; DAPPD - APPEND TO DISPLAY LIST WITH SPECIAL HANDLING ; TO PREVENT PROBLEMS AS LIST IS BEING DISPLAYED. ; AAPPD - SIMILAR TO DAPPD, CALLED FROM ASM. CODE ; ; THERE IS ONE ADDITIONAL ENTRY POINT: t#; ; RADDR - READ ADDRESS OF FORTRAN ARRAY ; ; REVISION HISTORY: ; REV DATE DESCRIPTION ; 1.00 06/20/77 PUBLIC RELEASE ; 02 08/10/77 ; ; COPYRIGHT (C), MEGATEK CORPORATION, 1977 ; ;******************************************************************** .TITLE DRWRT .ENT DRWRT,ARWRT, RADDR,DAPPD,AAPPD .EXTD .CPYL, .FRET .NREL ISA = -167 IWCNT = ISA+1 IARAY = IWCNT+1 IRW = IARAY+1 WCONT = IRW+1 ;************************************************************** ; ; CALL DRWRT(IADR,IWCNT,IARRAY,IRW) e; ; WHERE IADR = CORE ADDRESS (IN DISPLAY LIST) ; IWCNT = NUMBER OF WORDS TO BE TRANSFERRED ; IARRAY = ARRAY CONTAINING (TO CONTAIN) DATA ; IRW = READ/WRITE CONTROL: ; =0 => FROM DISPLAY LIST TO ARRAY ; =1 => FROM ARRAY TO DISPLAY LIST ;***********+8*************************************************** ARWRT: MOV 3,1 MOV 0,3 ;SET UP STACK FROM CALLING PGM STA 1,TRET,3 JMP .+5 12 DRWRT: JSR @.CPYL SUB 0,0 STA 0,WCONT,3 ;WCONT=0 MEANS ENTRY FROM ASM LDA 2,@IRW,3 MOV 2,2,SNR JMP .+4 LDA 0,@IS:RA,3 LDA 2,IARAY,3 JMP .+3 LDA 0,IARAY,3 LDA 2,@ISA,3 LDA 1,@IWCNT,3 NEG 1,1 MOV 0,3 DRLOP: LDA 0,0,2 STA 0,0,3 INC 2,2 INC 3,3 INC 1,1,SZR JMP DRLOP LDA 3,16 LDA 0,WCONT,3 MOV 0,0,SNR JMP @.FRET LDA 0,TRET,3 MOV 0,3 JMP 0,3 ;ASSEMBLY LA cNG RETURN IAR = -167 IADDR = IAR+1 2 RADDR: JSR @.CPYL LDA 0,IAR,3 STA 0,@IADDR,3 JMP @.FRET ;*********************************************************************** ; ; CALL DAPPD(IADR,IWCNT,IARAY,NTW) ; ; WHERE: IADR = STARTING ADDRESS ; IWCzRNT = WORD COUNT ; IARAY = ARRAY CONTAINING DATA TO BE TRANSFERRED ; NTW = # WORDS IN TRAILER - 1 ; ; THE DISPLAY LIST TRAILER (11 WORDS), WHICH CURRENTLY IS ; LOCATED AT IADR, IS PUSHED DOWN BY "IWCNT" WORDS. THE DATA ; CONTAINED IN IARRAY IS THEN STUFFFED INTO THE VACATED SPACE. ; A "STOP" WORD IS INSERTED, THEN REMOVED AS THE APPEND PROCEDES ; TO PREVENT THE DISPLAY PROCESSOR FROM DISPLAYING UNWANTED ; VECTORS OR HALTING DUE TO ERROR RETURNS. ; ;********************************************************** ************* NTW = IRW ACONT=WCONT SLSR = ACONT+1 SLDES = SLSR+1 TEMP = SLDES+1 TEMP2 = TEMP+1 TRET=TEMP2+1 AAPPD: MOV 3,1 MOV 0,3 ;SET UP STACK FROM CALLING PGM STA 1,TRET,3 JMP .+5 12 DAPPD: JSR @.CPYL SUB 0,0 ;ACONT=0 MEANS ENTRY FROM FORTRAN STA 0,ACONT,3 LDA 2,@ISA,3 ;GET STARTING ADDRESS LDA 0,0,2 STA 0,TEMP,3 LDA 1,@NTW,3 ;GET NUMBER OF WORDS IN TRLR (ONE LESS) ADD 1,2 STA 2,SLSR,3 ;STORE AS SOURCE OF TRAILER LDA 0,@IWCNT,3 ;GET WORD COUNT OF TRANSFER ADD 0,2 STA 2,SLDES,3  ;STORE AS DESTINATION OF TRAILER COM 1,1 ;MAKE A COUNTER (# OF WORDS IN TRAILER) LDA 0,DSTOP ;NOW GET STOP CODE LDA 2,@ISA,3 STA 0,0,2 ;STOP BIT AT FIRST LOCATION ;WHERE DATA WILL GO DLOOP: LDA 0,@SLSR,3 ;GET A WORD STA 0,@SLDES,3 ;STORE A WBORD DSZ SLSR,3 ;NEXT SOURCE DSZ SLDES,3 ;NEXT DESTINATION INC 1,1,SZR ;ANY MORE TO DO JMP DLOOP ;YUP ;FIX THE TRAILER ISZ SLDES,3 LDA 0,TEMP,3 STA 0,@SLDES,3 LDA 2,@ISA,3 ;GET DESTINATION FOR DATA LDA 1,@IWCNT,3 ;GET WORD COUNT NEG 1,1 ;`MAKE IT A COUNTER STA 1,TEMP2,3 ;PUT IT IN TEMP2 LDA 1,IARAY,3 ;GET ADDRESS OF DATA STA 1,TEMP,3 JMP .+3 DLOP: LDA 0,@TEMP,3 ;TRANSFER DATA STA 0,0,2 ISZ TEMP,3 ;GET READY INC 2,2 ;FOR NEXT TRANSFER ISZ TEMP2,3 ;ANY MORE? JMP DLOP ;YES ;N8O, NOW FIX FIRST WORD LDA 2,@ISA,3 ;GET DESTINATION LDA 0,@IARAY,3 ; STA 0,0,2 ;DATA NOW TRANSFERRED! LDA 0,ACONT,3 MOV 0,0,SNR JMP @.FRET ;BACK TO FORTRAN LDA 0,TRET,3 MOV 0,3 JMP 0,3 ;ASSEMBLY LANG. RETURN DSTOP: 170010 .END DSTRT.FR FTC ********************************************************* C * * C * NAME: DSTRT.FR 300-0069 * C * * C * DESCR: STARTS DISPLAY PROCESSOR * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C Q * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE DSTRT DIMENSION IDBUF (16), ISAVE(2) DIMENSION RPC ( 5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISV7ML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2), NLAB), (IMISC(3), IECW), (IMISC(4), ISFW1), 5(IMISC(5), ISFW2) EQUIVALENCE (IDBUF(1)>, INSBF(9)) CALL DISON(ISVML-16) RETURN END GFMT.FR C ********************************************************* C  * * C * NAME: GFMT.FR 300-0071 * C * DESCR: AFFECTS 5000 INSTRUCTION FORMAT * C * MODE0 IS TWO WORD (NORMAL) * C * MODE1 IS ONE WORD (EXTENDED) * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE GFMT(IFMT) DIMENSION RPC (5,32), INSBF (24)  DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1n), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB), (IMISC(3), IECW), (IMISC(4), ISFW1), 5(IMISC(5), ISFW2.L) C ISFW1 = IFMT RETURN  END GNUM.FR aC ********************************************************* C * * C * NAME: GNUM.FR 300-0073 * C * * C * DESCR: CONVERTS FLOATING POINT NUMBER TO * C * STRING OF ASCII CHARACTERS. THIS * C * VERSION FOR USE ON NOVA MINICOMPUTERS * C * * C * ARGUMENTS: * C * * C * FNUM - INPUT FLOATING POINT NUMBER * C * * C * IFMT - MAXIMUM NUMBER OF CHARACTERS * C * OUTPUT. * C * * C * NDP - NUMBER OF CHARACTERS FOLLOWING * C * DECIMAL POINT. * C ])* * C * ICRAY - ARRAY TO RECEIVE CHARACTERS * C * * C * NWDS - BEFORE CALL THIS ARGUMENT * C * MUST CONTAIN THE DIMENSION OF ICRAY. * C * * C * NCHAR - ACTUAL NUMBER OF CHARACTERS * C * OUTPUT TO ICRAY. * C * * C *  REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* SUBRROUTINE GNUM (FNUM,IFMT,NDP,NWDS,ICRAY,NCHAR) INTEGER CHARS(13) DIMENSION ICRAY(NWDS) COMMON /GN/ CHARS,ITEMP DATA CHARS /60K,61K,62K,63K,64K,65K,66K,67K,70K,71K,56K,55K,52K/ DATA ITEMP /0/ NCHAR=0 C ICP = 1 LR = 0 FPA = FNUM IF(FPA .GE. 0) GOTO 2n2 FPA = -FPA ITEMP = CHARS(12) C *** CALL WRITE TO WORD IN ICRAY ("-") C ASSIGN 2 TO INDX GOTO 100 C 2 IRR = -NDP IF(IRR .GT. 0) IRR = IRR -1 FPA = FPA + .5*10.**IRR LOG = ALOG10(FPA) IF(FPA .LT. 1.) GOTO 15 N = LOG + NDP + 2 IF(N .GT. 0) GOTO 20 C C *** CALL WRITE TO WORD IN CRAY ("0") C ITEMP = CHARS(1) ASSIGN 5 TO INDX GOTO 100 5 RETURN 15 LOG = 99 N = NDP+1 ITEMP = CHARS(1) C C *** CALL WRITE TO WORD IN ARRAY ("0") C ASSIGN 20 TO INDX GOTO 100 20 DO 30 I=1,N IF(LOG .NE. 99) GOTO 25 IT}EMP = CHARS(11) C C *** CALL WRITE TO WORD (".") ASSIGN 22 TO INDX GOTO 100 22 LOG = -1 GOTO 30 25 IDEC = FPA/10.**LOG FPA=FPA - IDEC*10.**LOG LOG=LOG - 1 IF(LOG .EQ. -1) LOG = 99 IF(IDEC .EQ. 10) GOTO 27 ITEMP = CHARS(IDEC+1) C C *** CALL TO WRIT!E CHAR IN ICRAY C ASSIGN 30 TO INDX GOTO 100 27 ITEMP = CHARS(2) C C *** ANOTHER CALL TO WRITE CHAR IN ICRAY C ASSIGN 28 TO INDX GOTO 100 28 ITEMP = CHARS(1) C C *** STILL ANOTHER CALL TO WRITE CHAR IN ICRAY C ASSIGN 30 TO INDX GOTO 100 30 CONTINUE RETURN C C *** "SUBROUTINE" TO PUT CHARACTERS IN CRAY C 100 IF(ICP + 1 .LE. IFMT) GOTO 110 DO 105 I=1,INWDS 105 ICRAY(I) = 025052K NCHAR = IFMT RETURN 110 NCHAR = NCHAR + 1 IF(LR .NE. 0) GOTO 120 ICRAY(ICP) = 0 ICRAY(ICP) = ISHFT(ITEMP,8) LR = 1 GOh3TO 130 120 ICRAY(ICP) = ICRAY(ICP) + ITEMP LR = 0 ICP = ICP + 1 130 GOTO INDX, (2,5,20,22,30,28) END GRDTJ.FR!8kC ********************************************************* C * * C * NAME: GRDTJ.FR 300-0075 * C * DESCR: GETS THE TABLET/PEN INFORMATION * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * ȹ * C * 08/10/77 REV 1.1 * C * 08/31/77 REV 02 * C * 11/14/77 REV 03 CHANGES FOR NEW JOY/TAB * C * CONFINGURATION (DEVICE CODE 27/67) * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C * * C ********************************************************* C SUBROUTINE GRDTJ (X,Y,IPEN) DIMENSION IDBUF (16) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LA֨V,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC.(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB), (IMISC(3), IECW) EQUIVALENCE (IDBUF(1), INSBF(9)) CALL JGTRD(INSBF(1),INSBF(2),INSBF(3),0,IERW2) IF(IERW2) 9999,100,9999 100 IF(IPC(9,ICPCT)) 1000,200,1000 200 X = INSBF(1) / RPC(2,ICPCT) Y = INSBF(2) / RPC(3,ICPCT) IPEN = INSBF (3) INSBF(1) = 0 INSBF(2) = 0 INSBF(3) = 0 RETURN 1000 X = INSBF(1) Y=INSBF(2) IPEN=INSBF(3) RETURN 9999 IERW1 = 5 CALL PROCS(75) END GTOF.FR( 'jC ********************************************************* C * * C * NAME: GTOF.FR 300-0079 * C * DESCR: STOPS THE JOYSTICK/DATA TABLET * C * HARDWARE AND DIGITIZING OPERATION * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * * C * 08/10/77 REV 1.1 * C * 08/31/77 REV 02 * C * 11/14/77 REV 03 REVISION FOR NEW JOY/TAB* C * (27/67) CONFIGURATION * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C 9 ********************************************************* C SUBROUTINE GTOF DIMENSION IDBUF (16), ISAVE(2) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LºAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RP|C(1,1)), (IMISC(1),NPICT), 4(IMISC(2), NLAB), (IMISC(3), IECW), (IMISC(4), ISFW1), 5(IMISC(5), ISFW2) EQUIVALENCE (IDBUF(1), INSBF(9)) CALL JGTOF(0,IERW2) IF(IERW2) 9999,200,9999 200 IDBUF(1) = 130000K  ISA = ISVML - 16 IDBUF(2)=ISA+4 CALL DRWRT(ISA,2,IDBUF,1) IDBUF(1) = 0 IDBUF(2) = 0 RETURN 9999 IERW1 = 5 CALL PROCS(75) RETURN END GTON.FRf $C ********************************************************* C * * C * NAME: GTON.FR 300-0081 * C * DESCR: STARTS THE JOYSTICK/DATA TABLET * C * HARDWARE. * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * * C * 08/10/77 REV 1.1  * C * 08/31/77 REV 02 * C * 11/14/77 REV 03 REVISED FOR NEW (27/67) * C * JOY/TAB CONFIGURATION * C * 02/02/78 REV 04 REVISED HEADER * C * * C * COPYRIGHT (C) 1977 MEGATEK CORrP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE GTON (LABEL) C DIMENSION IDBUF (16) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), 7.INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB), (IMISC(3), IECW), (IMISC(4), ISFW1), 5(IMISC(5), ISFW2) EQUIVALENCE (IDBUF(1), INSBF(9)) IF(LABEL) 9999,100,50 50 IF(LABEL-NLAB) 75,75,9999 75 INSpBF (1) = LAV(LABEL)  GOTO 150 100 INSBF (1) = ISVML - 6 150 CALL GTLIM(-1984,-1984,1983,1983) CALL JGTON(IDBUF(2),010000K,170000K,0,IERW2) IF(IERW2) 9998,200,9998 200 ISA = ISVML - 16 IDBUF(1) = 134000K CALL DRWRT(ISA,2,IDBUF,l1) CALL DRWRT(ISA+3,1,INSBF(1),1) INSBF(1) = 0 IDBUF(1) = 0 IDBUF(2) = 0 RETURN C *** ERROR DETECTED (INVALID LABEL) C 9999 IERW2 = 15 9998 IERW1 = 5 CALL PROCS (75) RETURN END IDRWA.FR ,u}C ********************************************************* C * * C * NAME: IDRWA.FR 300-0083 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * SIMILAR IN FUNCTION TO THE EQUIVELENT "B" * C * SUBROUTINE, BUT FASTER AND WITHOUT THE USER *w C * COORDINATE SCALING. * C * ABSOLUTE VECTOR INSTRUCTION * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * * C * 08/10/77 REV 1.1 * C * 08/31/77 REV 02 * C * * C * COPYRIGHpT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE IDRWA (IX,IY,IIZ,IB,ID) C DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11/), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB"(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = IX INSBF (2) = IY INSBF (3) = IIZ INSBF (4) = IB INSBF (5) = ID C C *** ABSOLUTE DRAW IS CODE 1 C CALL PROCS (1) RETURN END IDRWR.FR /r)C ********************************************************* C * * C * NAME: IDRWR.FR 300-0085 * C * DATE: 05/21/77 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * RELATIVE VECTOR INSTRUCTION * C * SIMILAR IN FUNCTION TO THE EQUIVΘELENT "B" * C * SUBROUTINE, BUT FASTER AND WITHOUT THE USER * C * COORDINATE SCALING. * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * * C * 08/10/77 REV 1.1 * C * 08/31/77 REV 02 * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE IDRWR (IX,IY,IIZ,IB,ID) C  DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (B[160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = IX INSBF (2) = IY INSBF (3) = IIZ INSBF (4) = IB INSBF (5) = ID C C *** RELATIVE DRAW IS CODE 2 C *4+ CALL PROCS (2) RETURN END IDXRY.FR nC ********************************************************* C * * C * NAME: IDXRY.FR 300-0087 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * INCREMENTAL VECTOR INSTRUCTION * C * SIMILAR IN FUNCTION TO THE EQUIVELENT "B" * C * SUBROhUTINE, BUT FASTER AND WITHOUT THE USER * C * COORDINATE SCALING. * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 1.1 * C * 08/31/77 REV 02 * C * COPYRIGHT (C) 1977 MEGATEK CORP@., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE IDXRY (IX,IY,IIZ,IB,ID) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12)  COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11) i, IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = IX INSBF (2) = IY INSBF (3) = IIZ INSBF (4) = IB C C *** ABSOLUTE INCREMENTAL DRAW (RELATIVE Y) IS CODE 3. C CALL PROCS (3) RETURN { END IDYRX.FR N-C ********************************************************* C * * C * NAME: IDYRX.FR 300-0089 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * INCREMENTAL VECTOR INSTRUCTION * C * (ABSOLUTE Y, RELATIVE X) * C * SIMILAR IN FUNCTION \TO THE EQUIVELENT "B" * C * SUBROUTINE, BUT FASTER AND WITHOUT THE USER * C * COORDINATE SCALING. * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 1.1 * C * 08/31/77 REV 02 * C " * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE IDYRX (IX,IY,IIZ,IB,ID) C DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (161n0), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = IX INSBF (2) = IY INSBF (3) = IIZ INSBF (4) = IB C C *** ABSOLUTE INCREMENTAL DRAW (RELATIVE X) IS CODE 4. C -:} CALL PROCS (4) RETURN END IGPTR.FR 5WC ********************************************************* C * * C * NAME: IGPTR.FR 300-0091 * C * DESCR: GETS THE VALUE OF ICP OR LCP * C * * C * REVISION HISTORY: * C *  * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * * C * 08/10/77 REV 1.1 * C * 08/31/77 REV 02 * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C FUNCTION IGPTR(MODE) DIMENSION IDBUF (16), ISAVE(2) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2), NLAB), (IMISC(3), IECW), (IMISC(4), ISFW1), 5(IMISC(5), ISFW2) b EQUIVALENCE (IDBUF(1), INSBF(9)) IF (MODE .NE. 0) IGPTR = IPC(8,ICPCT) IF (MODE .EQ. 0) IGPTR = IPC(7,ICPCT) RETURN END IMOVA.FR 6vC ********************************************************* C * * C * NAME: IMOVA.FR 300-095 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * ABSOLUTE VECTOR INSTRUCTION WITH * C * ZERO INTENSITY * C * SIMILAR IN FUNCTION TO THE EQUIVELENT "B" * C * SUBROUTINE, BUT FASTER AND WITHOUT THE USER * C * COORDINATE SCALING. * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * * C * 08/10/77 REV 1.1 * C * 08/31/77 REV 02 >5 * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE IMOVA (IX,IY) C DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160),? IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPC.T), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = IX INSBF (2) = IY INSBF (6) = 1 C C *** ABSOLUTE DRAW IS CODE 1 C CALL PROCS (1) RETURN END IMOVR.FR C ********************************************************* C * * C * NAME: IMOVR.FR 300-0095 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * RELATIVE VECTOR INSTRUCTION * C * WITH ZERO INTENSITY (BLANKED) * C * SIMILAR IN FUNCTIOsN TO THE EQUIVELENT "B" * C * SUBROUTINE, BUT FASTER AND WITHOUT THE USER * C * COORDINATE SCALING. * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 1.1 * C * 08/31/77 REV 02 * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE IMOVR (IX,IY) C DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (+IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = IX INSBF (2) = IY INSBF (6) = 1 C C *** RELATIVE DRAW IS CODE 2 C CALL PROCS (2) RETURN END IMXRY.FR 9oC ********************************************************* C * * C * NAME: IMXRY.FR 300-0097 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * INCREMENTAL VECTOR INSTRUCTION * C * SIMILAR IN FUNCTION TO THE EQUIVELENT "B" * C * SUBROUTINE, BUT FASTER AND WITHOUT THE USER * C * COORDINATE SCALING. * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * * C * 08/10/77 REV 1.1 * C * 08/31/77 REV 02 * C * COPYRIGHT (C) 197T7 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE IMXRY (IX,IY,IIZ) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3<(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF (1) = IX INSBF (2) = IY INSBF (3) = IIZ INSBF (6) = 1 C C *** ABSOLUTE INCREMENTAL DRAW (RELATIVE Y) IS CODE 3. C CALL PROCS (3) RETUR 7N END IMYRX.FR W.C ********************************************************* C * * C * NAME: IMYRX.FR 300-0099 * C * DESCR: ADDS INSTRUCTION WORD(S) FOR A DRAW * C * INCREMENTAL VECTOR INSTRUCTION * C * (ABSOLUTE Y, RELATIVE X) * C * SIMILAR IN FUNCTION 1TO THE EQUIVELENT "B" * C * SUBROUTINE, BUT FASTER AND WITHOUT THE USER * C * COORDINATE SCALING. * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * * C * 08/10/77 REV 1.1 * C * 08/31/77 $!REV 02 * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE IMYRX (IX,IY,IIZ) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV t&(160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT),  4(IMISC(2),NLAB) INSBF (1) = IX INSBF (2) = IY INSBF (3) = IIZ INSBF (6) = 1 C C *** ABSOLUTE INCREMENTAL DRAW (RELATIVE Y) IS CODE 4. /}C CALL PROCS (4) RETURN END IPPTR.FR C ********************************************************* C * * C * NAME: IPPTR.FR 300-0101 * C * DESCR: PUTS VALUE IN ICP OF CURRENT PICTURE * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * * C * 08/10/77 REV 1.1 * C * 08/28/77 REV 1.11 ADDED RETURN * C * 08/31/77 REV 02 * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE{ IPPTR (IADR) DIMENSION IDBUF (16), ISAVE(2) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2), NLAB), (IMISC(3), IECW),>/ (IMISC(4), ISFW1), 5(IMISC(5), ISFW2) EQUIVALENCE (IDBUF(1), INSBF(9)) IF(IADR .LT. IPC(1,ICPCT) .OR. IADR .GT. IPC(1,ICPCT) + 1 IPC(2,ICPCT)) GOTO 500 GOTO 1000 500 IF(IADR .LT. IPC(1,ICPCT) .OR. IPC(2,ICPCT) .NE. 0) GOTO 92999 1000 IPC (8,ICPCT) = IADR RETURN C C *** ERROR DETECTED - POINTER NOT IN CURRENT PICTURE. C 9999 IERW1 = 5 IERW2 = 36 CALL PROCS (75) RETURN END MEGADOSGRA.CL6-/ / NAME: MEGADOSGRA.CL 300-0103 / REVISION HISTORY: / REV DATE DESCRIPTION / 02 08/31/77 / 03 10/10/77 ADDED GTON1,GTOF1,GRDT1 / 04 12/02/77 NEW JOYSTICK/TABLET ROUTINES / AND CHANGED CRT TO MCRT IN LFE MAC MEGADOS/S CRT MAC MEGADOS/S BIN5 LFE N MDOSGRAPHI.LB/O BDRWA BDRWR ^ BDXRY BDYRX BGLBL ^ BINIT BJMAD BJMLB BJSAD BJSLB BMOVA BMOVR ^ BMXRY BMYRX BNSRT BPLBL BPNT ^ BRETN BROT BSCAL BTEXT BSTNG BDELV ^ BTXAT BWNDO BWORD BXLT ^ IDRWA IDRWR IDXRY IDYRX IGPTR ^ IMOVA IMOVR IMXRY IMYRX IPPTR ^ IXLT PFNCT PONOF PXLT DTRANS ATRANS ^ PROCS S7ERS PRNTD DSTRT GTON GTON1 ^ GTOF GTOF1 GRDTJ GRDT1 GNUM BFNCT GFMT MBIN5 MCRT NUMCH DELV JGTAB ^ JOY27 TAB67 TAB27 JT27 JT67 JTXX TAB672 TAB673 JOY67 ^ PROX PRX1 PRX2 PRX3 PRX7 PRX11 PRX16 PRX50 PRX51 PRX52 PRX 53 DRWRT ^ NUMCH.SR ;**************************************************************** ; ; NAME: NUMCH.SR 300-0104 ; ; DESCRIPTION: ; SUBROUTINE TO DETERMINE NUMBER OF CHARACTERS ; IN A FORTRAN ARRAY. ; ; REVISON HISTORY: ; REV DATE DESCRIPTION ; 1.1 08/10/77 PUBLIC REL~6EASE ; ; 02 08/31/77 ; COPYRIGHT (C), 1977 MEGATEK CORPORATION, ALL RIGHTS RESERVED ; ;******************************************************************** ;SUBROUTINE TO DETERMINE # CHARACTERS ;IN FORTRAN ARRAY, END MARKED BY NULL ;CALL NUMCH (IT) EXT,INCH) ITEXT=-167 INCH=ITEXT+1 .TITLE NUMCH .ENT NUMCH,LFCHK .EXTD .CPYL,.FRET,ARWRT .NREL 2 NUMCH: JSR @.CPYL LDA 2,ITEXT,3 ;ADDRESS OF ARRAY SUB 0,0 STA 0,@INCH,3 ;CLEAR INCH LDA 1,C177 NMLOP: LDA 0,0,2 ;GET A WORD & TEST LEFT BYTE  MOVS 0,0 AND# 0,1,SNR JMP NMDN ISZ @INCH,3 MOVS 0,0 AND# 0,1,SNR JMP NMDN ISZ @INCH,3 INC 2,2 JMP NMLOP NMDN: JMP @.FRET ;BACK TO FORTRAN C177: 177 ;ROUTINE TO RETURN WORD COUNT TO LINE FEED IN BTEXT IISA=-167 ..C1=IISA+1 TEMP=..C1+1 .1.C0=TEMP+1 WCONT=..C0+1 ;THIS ONE IS USED BY ARWRT XXX1=WCONT+1 XXX2=XXX1+1 XXX3=XXX2+1 XXX4=XXX3+1 TRET=XXX4+1 ;THIS ONE IS USED BY ARWRT RESLT=TRET+1 LF=RESLT+1 IFLAG=LF+1 IWCNT=IFLAG+1 ISA=IWCNT+1 20 LFCHK: JSR @.CPYL LDA 0,.C0 ;SET UP SPARAMATER FOR CALL DRWRT STA 0,..C0,3 LDA 0,.C1 ;SET UP PARAMETER FOR CALL DRWRT STA 0,..C1,3 STA 0,WCONT,3 ;CALLING FROM ASM ROUTINE LDA 0,CM2 STA 0,@IWCNT,3 LDA 0,@ISA,3 STA 0,@IISA,3 ;CALL DRWRT (IISA,1,TEMP,0) L1010: MOV 3,0 ;STACK READY JSjR @.ARWT LDA 3,16 LDA 0,@LF,3 LDA 1,@TEMP,3 SUB# 1,0,SNR JMP L1020 LDA 0,C1700 SUB# 1,0,SNR JMP L1020 L1015: ISZ @IWCNT,3 JMP .+1 ISZ @IISA,3 JMP L1010 L1020: LDA 0,@IFLAG,3 LDA 1,C2 SUB# 1,0,SZR ;IFLAG = 2 JMP .+3 SUB 0,0 STA 0,@IFLAG,3 k LDA 1,C1 LDA 0,@IFLAG,3 SUB# 1,0,SZR JMP .+3 LDA 1,C2 STA 1,@IFLAG,3 LDA 1,C2 LDA 0,@IFLAG,3 SUB 1,0,SNR JMP L1015 LDA 0,@IWCNT,3 ;RETURN THE RESULT TO FORTRAN CALLER STA 0,@RESLT,3 JMP @.FRET ;CONSTANTS .ARWT: ARWRT C1700: 170000 C1: 1 C*~2: 2 CM2: -2 C0: 0 .C1: C1 .C0: C0 .END PFNCT.FR C ********************************************************* C * * C * NAME: PFNCT.FR 300-0106 * C * DESCR: WRITES SPECIAL DISPLAY FUNCTION WORD * C * IN PICTURE HEADER. * C * * C * ISFA IS 16 WORD ARRAY IN CALLING PROGRAM * C * CONT AINING THE CONTROL FOR OUTPUT WORD * C * (SEE 5000/7000 SOFTWARE DOCUMENTATION) * C * * C * REVISION HISTORY:  * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/03/77 REV 1.01 REVISED ADDED RETURN * C * * C * 08/10/77 RtEV 1.1 * C * 08/31/77 REV 02 * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE PFNCT (IP,ISFA) DIMENSION ISFA (16) DIMENSION RPC ( 5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVoML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB), (IMISC(3),IECW), (IMISC(4),ISFW1) C C *** CHECK FOR ERRORS C IF(IPC(1,IP) .EQ. 0) GOsTO 9999 DO 10 I = 9,24 10 INSBF (I) = ISFA (I-8) C C *** NOVA CODE! C IUUSD(1) = 0 IF(INSBF(9) .GT. 0) IUUSD(1) = 4000K IF(INSBF(10) .GT. 0) IUUSD(1) = IUUSD(1) + 2000K IF(INSBF(11) .GT. 0) IUUSD(1) = IUUSD(1) + 400K  IF(INSBF(12) .GT. 0) IUUSD(1) = IUUSD(1) + 200K IF(INSBF(13) .GT. 0) IUUSD(1) = IUUSD(1) + 100K IF(INSBF(14) .GT. 0) IUUSD(1) = IUUSD(1) + 10K IF(INSBF(15) .GT. 0) IUUSD(1) = IUUSD(1) + 4K IF(INSBF(16) .GT. 0) IUUSD(1) = IUUSD(1) 2+ 2K IF(INSBF(17) .GT. 0) IUUSD(1) = IUUSD(1) + 1K INSBF(9) = IUUSD(1) + 170000K INSBF(1) = IP CALL PROCS(52) RETURN 9999 IERW1 = 6 IERW2 = 20 CALL PROCS(75) RETURN END PONOF.FR  UC ********************************************************* C * * C * NAME: PONOF.FR 300-0108 * C * DESCR: TURNS PICTURE ON OR OFF * C * PARAMATERS TRANSMITTED TO PROCS * C * ARE: * C * * C * INSBF(1) - JUMP TO ADDRESS * C N* INSBF(2) - 0 STOP; 1 JMP * C * INSBF(3) - START ADDRESS OF INSTRUCTION * C * INSBF(4) - 0 PICTURE OFF; 1 PICTURE ON * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * * C * 08/10/77 REV 1.1T * C * 08/31/77 REV 02 * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE PONOF (IP,ION) DIMENSION IDBUF (16) DIMENSION RPC (5,32),% INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) EQUIVALENCE (IDBUF(1), INSBF(9)) INSBF (1) = 0 INSBF (2) = 0 IF (IP .GT. #NPICT .OR. IP .LT. 1) GOTO 9999 IF(IPC(1,IP) .EQ. 0) GOTO 9998 INSBF (3) = IPC (1,IP) INSBF (4) = 0 IF (ION .NE. 0) GOTO 200 C C *** TURN PICTURE OFF C * GET JUMP ADDRESS INSBF (1) = IEVML DO 100 I = 1,NPICT IF ('IPC (1,I) .GT. IPC(1,IP) .AND. IPC (1,I) .LT. INSBF (1)) 1INSBF (1) = IPC (1,I) 100 CONTINUE IF (INSBF (1) .NE. IEVML) INSBF (2) = 1 CALL PROCS (51) RETURN C C *** TURN PICTURE ON C 200 INSBF (1) = IPC (1,IP) + 1 INSBF (4) H= 1 INSBF (2) = 1 CALL PROCS (51) RETURN C *** ERROR C C *** PICTURE NOT INITIALIZED. C 9998 IERW2 = 10 GOTO 2000 C C *** INVALID PICTURE NUMBER. C 9999 IERW2 = 11 2000 IERW1 = 6 CALL PROCS (75) RETURN END PRNTD.FR C ********************************************************* C * * C * NAME: PRNTD.FR 300-0110 * C * DESCR: SAVES DISPLAY LISTS IN A JUNK FILE * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * M * C * 08/10/77 REV 1.1 * C * 08/31/77 REV 02 * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* SUBROUTINE PRNTD (IBUFER,ILEN) DIMENSION IBUFER(ILEN) C CeALL CFILW ("JUNK.BF",1,IEROR) CALL OPEN (8,"JUNK.BF",3,IEROR) WRITE BINARY (8) IBUFER RETURN END PROCS.FR گC ********************************************************* C * * C * NAME: PROCS.FR 300-0112 * C * DESCR: FINAL INTERFACE BETWEEN S7000 ROUTINES * C * AND ASSEMBLY LANGUAGE DRIVERS * C * THIS VERSION IS FOR THE SYSTEM 5000 * C * NOVA 3.  * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * * C * 08/10/77 REV 1.1 * C * * C * 08/31/77 REV 02 * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C) ********************************************************* C SUBROUTINE PROCS (ICODE) DIMENSION IDBUF (16), ISAVE(2) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2), NLAB), (IMISC(3), IECW), (IMISC(4), ISFW1), 5(IMISC(5), ISFW2), (IMISC(6),ITTY) EQUIVALENCE (IDBUF(1), INSBF(9)) IF (ICODE .GT. 17) GOTO 4000 GOTO (1,2,3,4,5,6,7,8,9,10,11,12,13=,14,15,16,17), ICODE 4000 IF (ICODE .EQ. 50) GOTO 50 IF (ICODE .EQ. 51) GOTO 51 IF (ICODE .EQ. 52) GOTO 52 IF (ICODE .EQ. 53) GOTO 53 IF (ICODE .EQ. 75) GOTO 75 IF (ICODE .EQ. 76) GOTO 76 GOTO 9999 C 1 CALL PRX1 GOTO 5004 RETURN C *** ABSOLUTE VECTOR (CODE 1) C * 2 - WORD INSTRUCTION C C 1 INSBF(9) = INSBF (1) .AND. 7777K C IF (INSBF(4) .GE. 0 .OR. INSBF(5) .GE. 0) GOTO 1010 C IF (INSBF (3) .LT. 0) GOTO 1010 C C *** USE PRESET B,D FORMAT C C INSB)?0000K C IDBUF (2) = 170000K C IDBUF (3) = 170000K C IDBUF (4) = 160000K C IDBUF (5) = 0 C IDBUF(6) = 170000K C IDBUF(7) = 170000K C IF (INSBF (4) .EQ. IEVML) GOTO 1501 C IDBUF (8) = 130000K C IDBUF (9) = INSBF (V4) C GOTO 1502 C 1501 IDBUF (8) = 170010K C IDBUF (9) = 170010K C 1502 CALL DRWRT (INSBF(1),9,IDBUF,1) C C *** NOW LINK TO PREVIOUS PICTURE C C IF (INSBF(2) .EQ. 0) RETURN C IDBUF(1) = 130000K C IDBUF(2) = INSBF(1) C INSBF (1)} = IPC (7,INSBF(2)) + 2 C CALL DRWRT(INSBF(1),2,IDBUF,1) C DO 1503 I=1,24 C 1503 INSBF(I) = 0 C RETURN C C C C 50 CALL PRX50 GOTO 5004 RETURN C C *** TURN PICTURE ON/OFF IS CODE 51 C C 51 ISA = INSBF(3) C IF (INSBF (2) .EQ. 0) GOTO 1512 C IDBUF (1) = 130000K C GOTO 1516 C 1512 IDBUF(1) = 170010K C 1516 IDBUF(2) = INSBF (1) + INSBF(4) C CALL DRWRT(ISA,2,IDBUF,1) C C 51 CALL PRX51 GOTO 5004 RETURN C C *** CODE 52 IS PICTURE SPECIAL FUNCTION C C 52 ISA+ = IPC(1,INSBF(1)) + 2 C CALL DRWRT(ISA,1,IDBUF,1) C 52 CALL PRX52 GOTO 5004 RETURN C *** CODE 53 IS PICTURE TRANSLATION C C 53 ISA = IPC(1,INSBF(3)) + 3 C INSBF(1) = INSBF (1) .AND. 7777K C IDBUF(1) = 160000K .OR. INSBF(1) C IDBUF(2) = INSBF(2) .AND. 7777K C CALL DRWRT(ISA,2,IDBUF,1) 53 CALL PRX53 GOTO 5004 RETURN C 75 CALL S7ERS RETURN C C *** CONFIGURATION CALL WILL GO HERE. 76 GOTO 9999 C C *** TRANSFER ONE WORD TO PROCESSOR C 5000 IWCNT = 1  GOTO 5003 C C *** TRANSFER TWO WORDS TO PROCESSOR C C 5002 IWCNT = 2 C C C *** DETERMINE WHERE WORD(S) TO BE PLACED C C *** 5003 C C ISA = IPC(8,ICPCT) C IF(IMODE .EQ. 0) ISA = IPC(7,ICPCT) C IF(IMODE .EQ. 2) GOTO 5200 C  IF(IMODE .GT. 2) GOTO 9998 C IF(IPC(1,ICPCT)+IPC(2,ICPCT) .GE. ISA+IWCNT+4) C 1GOTO 5012 C IF(IPC(2,ICPCT) .EQ. 0 .AND. ISA+IWCNT+4 .GT. IEVML) C 1GOTO 9998 C 5012 IF(IMODE .EQ. 1) GOTO 5100 C CALL DAPPD(ISA,IWCNT,IDBUF,3) C GOTO 5090 C *** INSERT MODE C 5100 IUUSD(1) = IPC(7,ICPCT) + 3 - ISA C CALL DAPPD(ISA,IWCNT,IDBUF,IUUSD(1)) C C *** UPDATE LABEL ADDRESS VECTOR C C DO 5102 I=1,NLAB C IF(LAV(I) .GT. ISA .AND. LAV(I) .LE. IPC(7,ICPCT)) C 1 LAV(I)=LAV(I)+IWCNT C 51eG02 CONTINUE C GOTO 5090 C C *** RE-WRITE MODE C C 5200 IF(IPC(1,ICPCT) + IPC(2,ICPCT) .GE. ISA+IWCNT) C 1GOTO 5212 C IF(IPC(2,ICPCT) .EQ. 0 .AND. ISA+IWCNT .GT. IEVML) C 1GOTO 9998 C C *** VERIFY NO WRITE OVER TRAILER C C 5212 IF (ISA + IdWCNT .GT. IPC(7,ICPCT)) GOTO 9996 C CALL DRWRT(ISA,IWCNT,IDBUF,1) C 5090 IF(IMODE .LT. 2) IPC(7,ICPCT) = IPC(7,ICPCT) + IWCNT C IF(IMODE .EQ. 2) IPC(8,ICPCT) = IPC(8,ICPCT) + IWCNT C IF(IPC(7,ICPCT).LT.IPC(8,ICPCT)) C 1 IPC(7,ICPCT) = IPeC(8,ICPCT) C DO 5095 I = 1,12 C 5095 INSBF(I) = 0 C RETURN C 9996 IERW1 = 5000 C IERW2 = 101 C RETURN C 9998 IERW1 = 5000 C IERW2 = 100 C RETURN 5003 CALL PPRX(IWCNT) 5004 IF(IERW2 .GE. 100) CALL S7ERS IERW2 = 0 SRETURN 9999 IERW1 = 5000 IERW2 = ICODE GOTO 75 RETURN END PROX.SR0p" ;********************************************************************** ; ; NAME: PROX.SR 300-0114 ; ; DESCRIPTION: CENTRAL ROUTINE FOR BUILDING DISPLAY ; LISTS IN 5000 GRAPHICS SYSTEMS (NOVA BASED) ; THIS ROUTINE REPLACES PROCS ORIGINALLY ; W@YRITTEN IN FORTRAN. ; REVISION HISTORY: ; REV DATE DESCRIPTION ; 1.00 06/20/77 PUBLIC RELEASE ; ; 1.1 08/10/77 ; 1.11 08/16/77 ADDED ENTRY FROM ASSEMBLY LANG. ; 02 PRODUCTION SOFTWARE VERSION ; 03 12/06/77 CORRECTION FOR LABEL HANDLING ; ; COPYRIGHyT (C) 1977 MEGATEK CORPORATION, ALL RIGHTS RESERVED. ; ;************************************************************************ .TITL PROX .ENT PPRX,INDEX,XPRX,APPRX .EXTD .CPYL,.FRET .EXTN AAPPD,ARWRT .NREL XPRX: .INDX: INDEX K1: 1 K2: 2 K3: 73 .K3: K3 K4: 4 .L998: L9998 .APND: AAPPD KSA: .ISA KTW: .NTW ISA=-167 IWCNT=ISA+1 IARAY=IWCNT+1 IRW=IARAY+1 WCONT=IRW+1 I=WCONT+1 T1=I+1 T2=T1+1 T3=T2+1 T4=T3+1 POINT=T4+1 .ISA=POINT+1 .NTW=.ISA+1 XENT=.NTW+1 NTW=IRW AENT=NTW+1 ;CALL2? JMP @.L998 ;YUP ;IF(IPC(1,ICPCT)+IPC(2,ICPCT) .GE. IPC(7,ICPCT)+IWCNT+4) GOTO L5012 LDA 0,1,2 ;IPC(1,ICPCT)& LDA 1,2,2 ;IPC(2,ICPCT) ADD 0,1 STA 1,T3,3 LDA 0,7,2 ;IPC(7,ICPCT) LDA 1,@IWCNT,3 ADD 1,0 LDA 1,K4 ADD 1,0 LDA 1,T3,3 SUBZL# 0,1,SNC ;RESULT >= 0? JMP L5012 ;YES LDA 1,2,2 ;IPC(2,ICPCT) MOV 1,1,SZR ;=0? JMP @.L998 ;NO LDA 2,.IEVL y;IEVML LDA 1,1,2 SUBZL# 0,1,SZC ;AC0 = IPC(7,ICPCT)+IWCNT+4 JMP @.L998 L5012: LDA 2,.IMOE ;IMODE LDA 0,1,2 LDA 1,K1 SUB 1,0,SNR ;IMODE=1? JMP L5100 ;YES ;CALL DAPPD(ISA,IWCNT,IDBUF,3) LDA 1,.K3 STA 1,NTW,3 STA 1,WCONT,3 MOV 3,0 JSR @.APND LDA 3,16 ;RESTORE FORT STACK JMP L5090 ;************************************************************************ ; ; FORTRAN COMMON BLOCK VARIABLES (S7000) ; ;*********************************************************************** .NREL .COMM S7000,539. .IPC: .GADD S7000,-1 .LAV: .GADD S7000,320-1 .IEB: .GADD S7000,480.-1 .IMIC: .GADD S7000,491.-1 ;IMISC .IUUD: .GADD S7000,503.-1 ;IUUSD .INSF: .GADD S7000,515.-1 ;INSBF .IPNO: .GADD S7000,480.-1 .ILCP: .GADD S7000,480. .IICP: .GADD S7000,480.+1 #.IER1: .GADD S7000,480.+2 ;IERW1 .IER2: .GADD S7000,480.+3 ;IERW2 .ISVL: .GADD S7000,480.+4 ;ISVML .IEVL: .GADD S7000,480.+5 ;IEVML .ICOF: .GADD S7000,480.+6 ;ICONF .ICPT: .GADD S7000,480.+7. ;ICPCT .INLL: .GADD S7000,480.+8. ;INLBL .IMOE: .GADD S7000,480.8+9. ;IMODE .NPIT: .GADD S7000,491.-1 ;NPICT .NLAB: .GADD S7000,491. .IECW: .GADD S7000,491.+1 .ISF1: .GADD S7000,491.+2 ;ISFW1 .ISF2: .GADD S7000,491.+3 ;ISFW2 .IDBF: .GADD S7000,515.-1+8. ;IDBUF .ITTY: .GADD S7000,491.+4 ;ITTY (WRITE FOR ERRORS) ;INSERT MODE L5100: LDA 2,POINT,3 ;T1=IPC(7,ICPCT)+3-ISA LDA 0,7,2 ;IPC(7,ICPCT) LDA 1,C3 ADD 0,1 LDA 0,.ISA,3 SUB 0,1 ;NTW STA 1,.NTW,3 LDA 0,KTW ADD 3,0 STA 0,NTW,3 STA 1,WCONT,3 MOV 3,0 JSR @.APD ;CALL DAPPD(ISA,IWCNT,IDBUF,NTW) ;UPDATE LABvkEL ADDRESS VECTOR ;DO 5102 I=1,NLAB LDA 3,16 LDA 2,.NLAB ;NLAB LDA 0,1,2 NEG 0,0 STA 0,I,3 ;I IS COUNTER LDA 1,.LAV INC 1,1 STA 1,T1,3 ;T1 IS POINTER TO LAV(#) LOOP1: LDA 2,T1,3 LDA 0,0,2 LDA 1,.ISA,3 SUBZL# 1,0,SZC ;CORRECTED 12/06/77 DEdH ;IF(LAV(I) .GE. ISA .AND. ; LAV(I) .LT. IPC(7,ICPCT) LAV(I) ; = LAV(I)+IWCNT JMP L5102 LDA 2,POINT,3 ; LDA 1,7,2 ;IPC(7,ICPCT) SUBZL# 0,1,SZC JMP L5102 LDA 2,T1,3 LDA 0,0,2 ;LAV(#) LDA 1,@IWCNT,3 ADD 1,0 STA 0,0,2 ;LAV(#)=LAV(#)+IWCNT L5102: ISZ T1,3 ;NEXT LAV ISZ I,3 ;MORE TO DO? JMP LOOP1 ;YES JMP L5090 ;RE-WRITE MODE L5200: LDA 0,@IWCNT,3 LDA 1,.ISA,3 ADD 1,0 LDA 2,.ISVL LDA 1,1,2 ;ISVML SUBZL# 1,0,SZC ;WRITE ADDRESS LESS THAN START ;OF VALID MEMORY? JMP L9995 ;YEP! LDA 1,2,2 ;IEVML SUBZL# 0,1,SZC ;WRITE ADDRESS PAST END ;OF VALID MEMORY? JMP L9995 ;YEP! ;VERIFY NO WRITE OVER TRAILER ;IF(ISA+IWCNT > IPC(7)) GOTO L9996 LDA 2,POINT,3 LDA 2,7,2 ;IPC(7,ICPCT) SUBZL# 0,2,SZC ;ISA+IWCNT .GqT. IPC(7)? JMP L9996 ;YUP ;CALL DRWRT(ISA,IWCNT,IDBUF,1) LDA 1,.C1 STA 1,WCONT,3 STA 1,IRW,3 MOV 3,0 JSR @.ARW LDA 3,16 ;RESTORE FORT STACK L5090: LDA 2,.IMOE ;IMODE LDA 1,1,2 LDA 0,C2 SUB 1,0,SNR ;IMODE = 2? JMP L5094 ;YES L5092: LDA ='2,POINT,3 ;IPC(7)=IPC(7)+IWCNT LDA 0,7,2 ;IPC(7) LDA 1,@IWCNT,3 ADD 1,0 STA 0,7,2 ;IPC(7)=IPC(7)+IWCNT JMP .+6 L5094: LDA 2,POINT,3 LDA 0,8.,2 ;IPC(8) LDA 1,@IWCNT,3 ;WCNT ADD 1,0 STA 0,8.,2 ;IPC(8)= IPC(8)+IWCNT ;CLEAR INSBF LDA 0,D12 NE G 0,0 LDA 2,.INSF ;INSBF INC 2,2 MOV 0,3 SUB 0,0 CLOOP: STA 0,0,2 INC 2,2 INC 3,3,SZR JMP CLOOP LDA 3,16 LDA 3,XENT,3 ;CHECK WHERE TO RETURN MOV 3,3,SNR JMP @.FRET JMP 0,3 ;RETURN TO ASM ROUTINE L9995: LDA 2,.IER2 LDA 0,D102 STA 0,1,2 JdMP LEND L9996: LDA 2,.IER2 LDA 0,D101 ;IERW2=101 STA 0,1,2 JMP LEND L9998: LDA 2,.IER2 ;IERW2=100 LDA 0,D100 STA 0,1,2 JMP LEND LEND: LDA 2,.IER1 ;IERW1 LDA 0,D5000 STA 0,1,2 ;IERW1=5000 JMP @.FRET ;**********************************8****************************** ;CONSTANTS C1: 1 C2: 2 C3: 3 C4: 4 CM1: -1 D100: 100. ;INSUFFICIENT MEMORY D101: 101. ;ATTEMPT TO WRITE OVER TRAILER D102: 102. ;INVALID ADDRESS IN RE-WRITE MODE D12: 12. D5000: 5000. .APD: AAPPD .ARW: ARWRT .C3: C3 .C1: C1 ;************************************************************* ;SUBROUTINE TO CALCULATE INDEX IN IPC ;WHEN CALLED, AC1=MAJOR INDEX(1-32) ;SUBROUTINE RETURNS WITH ROUGH ADDRESS ;IN AC2 ;CALLER MUST ADD MINOR DISPLACEMENT FOR FINAL ADDRESS (1-10ή) ;*************************************************************** INDEX: LDA 0,CM1 ADD 0,1,SNR JMP S1 MOV 1,0 ;MULT AC1 BY 10. MOVZL 1,1 MOVZL 1,1 MOVZL 1,1 ADD 0,1 ADD 0,1 ;X10! S1: LDA 2,.IIPC ADD 1,2 JMP 0,3 ;ROUGH ADDRESS NOW IN AC2 .IIPC: .GADD S7000,-1 .END ;*********************************************************** ;CONSTANTS ;*********************************************************** CM1: -1 C1: 1 C2: 2 C3: 3 C4: 4 D12: 12. D100: 100. D101: 101. D5000: 5000. PRX1.SR 5;**************************************************************** ; ; NAME: PRX1.SR 300-0116 ; ; DESCRIPTION: ; INTERFACE BETWEEN ABSOLUTE VECTOR ; SUBROUTINES BDRWA,IDRWA, AND PROX ; ; REVISON HISTORY: ; REV DATE DESCRIPTION ; 1.00 06/20/77 PUBLIC# RELEASE ; ; 1.1 08/10/77 ; 02 08/31/77 ; COPYRIGHT (C), 1977 MEGATEK CORPORATION ALL RIGHTS RESERVED ; ;******************************************************************** .TITLE PRX1 .ENT PRX1,XPX1 .EXTD .CPYL, .NREL .EXTN PPRX ISA = -167 IWCNT = ISA+1 IARAY = IWCNT+1 IRW = IARAY+1 WCONT = IRW+1 I=WCONT+1 ;TEMP T1=I+1 ;TEMP T2=T1+1 ;TEMP T3=T2+1 ;TEMP T4=T3+1 ;TEMP POINT=T4+1 .ISA=POINT+1 ;CALL PRX1 XPX1: 16 PRX1: JSR @.CPYL ;INSBF(9) = INSBF(1) .AND. 7777K LDA 2,.INSF LDA 0,1,2 LDA 1,MSK12 AND 0,1 STA 1,9.,2 ;IF(INSBF(4) .GE. 0 .OR. INSBF(5) .GE. 0) GOTO L1010 LDA 0,4,2 MOVZL 0,0,SNC JMP L1010 LDA 0,5,2 MOVZL 0,0,SNC JMP L1010 ;IF(INSBF(3) .LT. 0) GOTO L1010 LDA 0,3,2 MOVZL 0,0,SZC JMP L1010 ;USE PRPESET B,D FORMAT LDA 0,MSKAV LDA 1,9.,2 ADD 0,1 STA 1,9.,2 ;INSBF(9)=INSBF(9)+140000K JMP L1012 ;IF(INSBF(4) .GT. 0) INSBF(9)=INSBF(9)+040000K L1010: LDA 0,4,2 MOV 0,0,SNR JMP .+7 MOVZL 0,0,SZC JMP .+5 LDA 0,9.,2 LDA 1,MSKL4 ADD 0,1 ;INSX BF(9)=INSBF(9)+040000K STA 1,9.,2 ;IF(INSBF(5) .GT. 0) INSBF(9)=INSBF(9)+020000K LDA 0,5,2 MOV 0,0,SNR JMP .+7 MOVZL 0,0,SZC JMP .+5 LDA 0,9.,2 LDA 1,MSKL2 ADD 0,1 STA 1,9.,2 ;INSBF(9)=INSBF(9)+020000K ;IF(INSBF(3) .LT. 9) INSBF(9)=INSBF(9)z+010000K LDA 0,3,2 MOVZL 0,0,SNC JMP .+5 LDA 0,9.,2 LDA 1,MSKL1 ADD 0,1 STA 1,9.,2 ;INSBF(9)=INSBF(9)+010000K ;INSBF(10)=INSBF(2) .AND. 7777 L1012: LDA 0,2,2 ;INSBF(2) LDA 1,MSK12 AND 0,1 STA 1,10.,2 ;GET ABSOLUTE VALUE OF Z LDA 0,3,2 #;INSBF(3) MOVZL# 0,0,SNC JMP .+2 NEG 0,0 ;MAKE IT + ;NOW SHIFT IT LDA 1,C17 ANDS 1,0 ADDZL 0,0 ADDZL 0,0 ;INSBF(10)=INSBF(10) + Z LDA 1,10.,2 ADD 0,1 STA 1,10.,2 LDA 0,.C2 STA 0,-167,3 JMP @.PROX .COMM S7000,539. .PROX: .GADD PPRX,a1 .INSF: .GADD S7000,515.-1 ;INSBF ;CONSTANTS MSK12: 7777 MSKL4: 040000 MSKAV: 140000 MSKL2: 020000 MSKL1: 010000 .C2: C2 C17: 17 C2: 2 .END PRX2.SR  n;**************************************************************** ; ; NAME: PRX2.SR 300-0118 ; ; DESCRIPTION: ; INTERFACE BETWEEN RELATIVE VECTOR ; SUBROUTINES BDRWR,IDRWR, AND PROX ; ; REVISON HISTORY: ; REV DATE DESCRIPTION ; 1.00 06/20/77 PUBLIC'7 RELEASE ; ; 1.1 08/10/77 ; 02 08/31/77 ; COPYRIGHT (C), 1977 MEGATEK CORPORATION, ALL RIGHTS RESERVED ;******************************************************************** .TITLE PRX2 .ENT PRX2,XPX2 .EXTN PPRX .EXTD .CPYL .NREL ISA = -167 IWCtNT = ISA+1 IARAY = IWCNT+1 IRW = IARAY+1 WCONT = IRW+1 I=WCONT+1 ;TEMP T1=I+1 ;TEMP T2=T1+1 ;TEMP T3=T2+1 ;TEMP T4=T3+1 ;TEMP POINT=T4+1 .ISA=POINT+1 ;CALL PRX2 XPX2: 16 PRX2: JSR @.CPYL LDA 2,.ISF1 LDA 0,1,2 ;ISFW1 ;IF(ISFW1 .NE.gi 0) GOTO L1020 MOV 0,0,SZR JMP L1020 ;LONG FORM LDA 2,.INSF LDA 0,1,2 LDA 1,MSK12 AND 0,1 STA 1,9.,2 ;INSBF(9)=INSBF(1) .AND. 7777 LDA 0,MSKRV ADD 0,1 STA 1,9.,2 ;INSBF(9)=INSBF(9)+120000 LDA 0,MSK12 LDA 1,2,2 AND 0,1 STA 1,10.,2 ;I< NSBF(10) .AND. 7777 ;IF(INSBF(3) .NE. 0 .AND. INSBF(6) .EQ. 0) ;1INSBF(10)=INSBF(10)+100000K LDA 0,3,2 MOV 0,0,SNR JMP .+8. LDA 0,6,2 MOV 0,0,SZR JMP .+5 LDA 0,10.,2 LDA 1,MSK10 ADD 0,1 STA 1,10.,2 ;INSBF(10)=INSBF(10)+100000K LDA 0,.C2 S TA 0,-167,3 JMP @.PROX ;SHORT VERSION (1WORD) L1020: LDA 2,.INSF LDA 0,1,2 LDA 1,MSK7B AND 1,0 MOVZL 0,0 ADDZL 0,0 ADDZL 0,0 ADDZL 0,0 STA 0,9.,2 ;INSBF(9) LDA 0,2,2 ;INSBF(2) LDA 1,MSK7B AND 1,0 LDA 1,9.,2 ADD 0,1 STA 1,9.,2 ;INSBF?(9) ;IF(INSBF(3) .NE. 0 .AND. INSBF(6) .EQ. 0) ;1INSBF(9) = INSBF(9) + 40000K LDA 0,3,2 MOV 0,0,SNR JMP .+7 LDA 0,6,2 ;INSBF(6) MOV 0,0,SZR JMP .+4 LDA 0,MSK04 ADD 0,1 STA 1,9.,2 ;INSBF(9) LDA 0,.C1 STA 0,-167,3 JMP @.PROX .COMM S70003,539. .PROX: .GADD PPRX,1 .INSF: .GADD S7000,515.-1 ;INSBF .ISF1: .GADD S7000,491.+2 ;ISFW1 MSK04: 040000 MSK10: 100000 MSK7B: 177 MSK12: 7777 MSKRV: 120000 .C1: C1 C1: 1 .C2: C2 C2: 2 .END PRX3.SR !f;**************************************************************** ; ; NAME: PRX3.SR 300-0120 ; ; DESCRIPTION: ; INTERFACE BETWEEN INCREMENTAL VECTOR ; SUBROUTINES BDXRY AND IDXRY ; ; REVISON HISTORY: ; REV DATE DESCRIPTION ; 1.00 06/20/77 PUBLIC RETLEASE ; ; 1.1 08/10/77 ; 02 08/31/77 ; COPYRIGHT (C), 1977 MEGATEK CORPORATION, ALL RIGHTS RESERVED ;******************************************************************** .TITLE PRX3 .ENT PRX3,XPX3 .EXTN PPRX .EXTD .CPYL .NREL ISA = -167 IWCNT i= ISA+1 IARAY = IWCNT+1 IRW = IARAY+1 WCONT = IRW+1 I=WCONT+1 ;TEMP T1=I+1 ;TEMP T2=T1+1 ;TEMP T3=T2+1 ;TEMP T4=T3+1 ;TEMP POINT=T4+1 .ISA=POINT+1 ;CALL PRX3 XPX3: 16 PRX3: JSR @.CPYL LDA 2,.INSF  LDA 0,1,2 ;INSBF(1) LDA 1,MSK12 ANDr 0,1 STA 1,9.,2 ;INSBF(9)=INSBF(1) .AND. 7777K LDA 0,MSKIV ADD 0,1 STA 1,9.,2 ;INSBF(9) = INSBF(9) + 150000K LDA 0,2,2 ;INSBF(2) LDA 1,MSK12 AND 0,1 STA 1,10.,2 ;INSBF(10) = INSBF(2) .AND. 7777 ;IF(INSBF(6) .EQ. 0 .AND. INSBF(3) .NE. 0) INSB!)F(10)=INSBF(10) + 100000K LDA 0,6,2 MOV 0,0,SZR JMP GO LDA 0,3,2 MOV 0,0,SNR JMP GO LDA 0,MSK10 ADD 0,1 STA 1,10.,2 ;INSBF(10) = INSBF(10)+100000K GO: LDA 0,.C2 STA 0,-167,3 JMP @.PROX .COMM S7000,519. .PROX: .GADD PPRX,1 .INSF: .GADD S7000Lx,515.-1;INSBF MSK10: 100000 MSK12: 7777 MSKIV: 150000 .C2: C2 C2: 2 .END PRX7.SR ;**************************************************************** ; ; NAME: PRX7.SR 300-0122 ; ; DESCRIPTION: ; INTERFACE BETWEEN TRANSLATE ROUTINE ; BXLT AND PROX ; ; REVISON HISTORY: ; REV DATE DESCRIPTION ; 1.00 06/20/77 PUBLIC RELEASE ; 02 08/T10/77 ; ; COPYRIGHT (C), 1977 MEGATEK CORPORATION, ALL RIGHTS RESERVED ; ;******************************************************************** .TITLE PRX7 .ENT PRX7,XPX7 .EXTN PPRX .EXTD .CPYL .NREL ISA = -167 IWCNT = ISA+1 IARAY = IWCNT+1 IRW = IARAY+1 WCONT = IRW+1 I=WCONT+1 ;TEMP T1=I+1 ;TEMP T2=T1+1 ;TEMP T3=T2+1 ;TEMP T4=T3+1 ;TEMP POINT=T4+1 .ISA=POINT+1 ;CALL PRX7 XPX7: 16 PRX7: JSR @.CPYL LDA 2,.INSF LDA 0,1,2 ;INSBF(1) LDA 1,MSK12 AND 0,1 STA 1,9.,2 ;INSBF(9)=INS;BF(1) .AND. 7777K LDA 0,MSKXL ADD 0,1 STA 1,9.,2 ;INSBF(9) = INSBF(9) + INSBF(1) LDA 0,2,2 ;INSBF(2) LDA 1,MSK12 AND 0,1 STA 1,10.,2 ;INSBF(10) = INSBF(2) .AND. 7777 LDA 0,.C2 STA 0,-167,3 JMP @.PROX .COMM S7000,519. .PROX: .GADD PPRX,1 .]sINSF: .GADD S7000,515.-1;INSBF MSK10: 100000 MSK12: 7777 MSKXL: 160000 .C2: C2 C2: 2 .END PRX11.SR ;*************************************************************** ; NAME: PRX11.SR 300-0124 ; ; DESCRIPTION: ; INTERFACE BETWEEN JUMP SUBROUTINES ; BJMLB,BJMAD,BJSLB,BJSAD, AND PROX, AS WELL AS BRETN ; AND PROX ; ; REVISON HISTORY: ; REV DATE DESCR _IPTION ; 1.00 06/20/77 PUBLIC RELEASE ; 02 08/10/77 ; ; COPYRIGHT (C), 1977 MEGATEK CORPORATION, ALL RIGHTS RESERVED ;******************************************************************** .TITLE PRX11 .ENT PRX11,XPX11,PRX12,PRX13,PRX14,PRX15 .EXTD .CP/YL .EXTN PPRX .NREL ISA = -167 IWCNT = ISA+1 IARAY = IWCNT+1 IRW = IARAY+1 WCONT = IRW+1 I=WCONT+1 ;TEMP T1=I+1 ;TEMP T2=T1+1 ;TEMP T3=T2+1 ;TEMP T4=T3+1 ;TEMP POINT=T4+1 .ISA=POINT+1 ;CALL PRX11 XPX11: 16 PRX11: JSR @.CPYL LDA 2,.INSF LDA 0,MSKJ0 STA 0,9.,2 ;INSBF(9)=130000 JMP GO 16 PRX12: JSR @.CPYL LDA 2,.INSF ;JMP TO 1-WORD MODE LDA 0,MSKJ2 STA 0,9.,2 ;INSBF(9)=120000K JMP GO 16 PRX13: JSR @.CPYL LDA 2,.INSF ;JSR TO 2-WORD MODE LDA 0,MSKJ4 STA 0,9.,2 JMP GO  16 PRX14: JSR @.CPYL LDA 2,.INSF ;JSR TO 1-WORD MODE LDA 0,MSKJ6 STA 0,9.,2 ;INSBF(9)=136000K GO: LDA 0,1,2 ;INSBF(1) HAS ADDRESS STA 0,10.,2 ;PUT IN SECOND DATA WORD LDA 0,.C2 STA 0,-167,3 JMP @.PROX 16 PRX15: JSR @.CPYL ;RETURN FROM S;UBROUTINE CODE 170001 LDA 2,.INSF LDA 0,MSKRT LDA 1,9.,2 COM 0,0 COM 1,1 AND 0,1 COM 1,1 STA 1,9.,2 LDA 0,.C1 STA 0,-167,3 JMP @.PROX .COMM S7000,519. .PROX: .GADD PPRX,1 .INSF: .GADD S7000,515.-1;INSBF MSKJ0: 130000 MSKJ2: 132000 MSKJ4: 134DA000 MSKJ6: 136000 MSKRT: 170001 .C1: C1 C1: 1 .C2: C2 C2: 2 .END PRX16.SR W;**************************************************************** ; ; NAME: PRX16.SR  300-0126 ; ; DESCRIPTION: ; INTERFACE BETWEEN BSTNG AND PROX ; ; REVISON HISTORY: ; REV DATE DESCRIPTION ; 1.00 06/20/77 PUBLIC RELEASE ; 02 08/10/77 ; COPYRIGHT [(C), 1977 MEGATEK CORPORATION, ALL RIGHTS RESERVED ;******************************************************************** .TITLE PRX16 .ENT PRX16,XPX16 .EXTN PPRX .EXTD .CPYL .NREL ISA = -167 IWCNT = ISA+1 IARAY = IWCNT+1 IRW = IARAY+1 WCONT = IRW+1 I=WCONT+1 ;TEMP T1=I+1 ;TEMP T2=T1+1 ;TEMP T3=T2+1 ;TEMP T4=T3+1 ;TEMP POINT=T4+1 .ISA=POINT+1 ;CALL PRX16 XPX16: 16 PRX16: JSR @.CPYL LDA 2,.INSF LDA 0,4,2 LDA 1,MSK2B AND 1,0 ;ROTATION IN BITS 14 AND 15 ADDZL 0,0 MOVZL 0,0 &STA 0,9.,2 LDA 0,3,2 ;SIZE LDA 1,MSK3B AND 0,1 LDA 0,9.,2 ADD 1,0 MOVS 0,0 ;SWAP TO LEFT BYTE LDA 1,MSKHC ADD 1,0 STA 0,9.,2 ;AC0 NOW READY FOR ASCII CHAR STA 0,10.,2 ;SO ARE INSBF(9), AND INSBF(10) LDA 1,1,2 ;INSBF(1) MOVZR 1,1 MOVZR 1,1 MOVZR 1,1 MOVZR 1,1 MOVZR 1,1 MOVZR 1,1 MOVZR 1,1 MOVZR 1,1 LDA 0,9.,2 ADD 1,0 STA 0,9.,2 ;INSBF(9) NOW HAS CHAR LDA 1,1,2 ;INSBF(1) LDA 0,MSK8B AND 0,1 LDA 0,10.,2 ;INSBF(10) ADD 1,0 ;INSBF(10) NOW HAS CHAR STA 0,10.,2 LDA 0,5,2 ,4;INSBF(5) MOV 0,0,SZR JMP TWO LDA 0,.C1 JMP .+2 TWO: LDA 0,.C2 STA 0,-167,3 JMP @.PROX .COMM S7000,519. .PROX: .GADD PPRX,1 .INSF: .GADD S7000,515.-1;INSBF MSKHC: 100000 MSK2B: 3 MSK3B: 7 MSK8B: 377 .C1: C1 C1: 1 .C2: C2 C2: 2 .END PRX50.SR X;**************************************************************** ; ; NAME: PRX50.SR 300-0128 ; ; DESCRIPTION: ; INTERFACE BETWEEN SUBROUTINE BINIT AND PROX ; ; REVISON HISTORY: ; REV DATE DESCRIPTION ; 1.00 06/20/77 PUBLIC RELEASE ; 1.01 08/01/77 oREVISION ; 02 08/10/77 ; ; COPYRIGHT (C), 1977 MEGATEK CORPORATION, ALL RIGHTS RESERVED ;******************************************************************** .TITLE PRX50 .NREL .ENT PRX50,XPX50 .EXTN ARWRT,INDEX .EXTD .CPYL, .FRET ISA = -167 IWCNT = ISA+1 IARAY = IWCNT+1 IRW = IARAY+1 WCONT = IRW+1 I=WCONT+1 ;TEMP T1=I+1 ;TEMP T2=T1+1 ;TEMP T3=T2+1 ;TEMP T4=T3+1 ;TEMP POINT=T4+1 .ISA=POINT+1 ;CALL PRX50 XPX50: 16 PRX50: JSR @.CPYL ;SET UP ARGUMENTS FOR WRITE ;FIRST - SOURfCE OF DATA LDA 1,.IDBF INC 1,1 STA 1,IARAY,3 ;SOURCE OF DATA ;NEXT - READ/WRITE: SET TO WRITE LDA 0,.C1 STA 0,IRW,3 STA 0,WCONT,3 ;ENTRY FROM ASM ;SET UP STARTING ADDRESS LDA 0,.INSF INC 0,0 STA 0,ISA,3 LDA 2,.INSF LDA 0,5,2 ;INSBF(5)' MOV 0,0,SNR ;OVERLAY CORRECTION REQUIRED? JMP L1505 ;NOPE LDA 2,.INSF LDA 1,2,2 ;INSBF(2) JSR @.INDX ;CALCULATE POINTER TO IPC LDA 3,16 LDA 0,1,2 ;IPC(1) LDA 1,2,2 ;IPC(2) ADD 0,1 LDA 0,C4 ADD 0,1 LDA 2,.INSF STA 1,1,2 ;INSBF(1)=IPC(1sm)+IPC(2)+4 L1505: LDA 1,3,2 ;INSBF(3) JSR @.INDX ;CALCULATE POINTER TO IPC LDA 3,16 STA 2,POINT,3 LDA 2,.INSF LDA 0,1,2 ;INSBF(1) LDA 2,POINT,3 STA 0,1,2 ;IPC(1)=INSBF(1) LDA 1,C5 ADD 1,0 STA 0,7,2 ;IPC(7)=IPC(1)+5 STA 0,8.,2 ;IPC(8)=IPCv(7) HEADR: LDA 0,C170M LDA 2,.IDBF STA 0,1,2 STA 0,2,2 STA 0,3,2 ;IDBUF(1),(2),(3)=170000 STA 0,6,2 STA 0,7,2 ;IDBUF(6),(7)=170000 LDA 0,C160M STA 0,4,2 ;IDBUF(4)=160000 SUB 0,0 STA 0,5,2 ;IDBUF(5)=0 LDA 3,.INSF LDA 0,4,3 ;INSBF(4) LDA Z3,.IEVL LDA 1,1,3 ;IEVML SUB 0,1,SNR JMP L1501 LDA 0,C130M STA 0,8.,2 ;IDBF(8)=130000 LDA 3,.INSF LDA 0,4,3 ;INSBF(4) STA 0,9.,2 ;IDBUF(9)=INSBF(4) JMP L1502 L1501: LDA 0,CSTOP STA 0,8.,2 ;IDBUF(8) STA 0,9.,2 ;IDBUF(9) L1502: LDA 3,16 LDA 0,.C9 STA 0,IWCNT,3 MOV 3,0 JSR @.ARW LDA 2,.INSF LDA 0,2,2 ;INSBF(2) MOV 0,0,SNR JMP @.FRET LDA 3,.IDBF LDA 0,C130M STA 0,1,3 ;IDBUF(1)=130000 LDA 0,1,2 ;INSBF(1) STA 0,2,3 ;IDBUF(2)=INSBF(1) LDA 1,2,2 ;INSBF(2) JSR @.INDX LDA 3,Y16 STA 2,POINT,3 LDA 0,7,2 LDA 1,C2 ADD 1,0 LDA 2,.INSF STA 0,1,2 ;INSBF(1)=IPC(7)+2 SYMB1: LDA 0,.C2 STA 0,IWCNT,3 MOV 3,0 JSR @.ARW LDA 2,.INSF LDA 3,D24 NEG 3,3 SUB 0,0 CLOOP: STA 0,1,2 INC 2,2 INC 3,3,SZR JMP CLOOP JMP @.FRET .sGCOMM S7000,539. .ARW: ARWRT .INDX: INDEX .INSF: .GADD S7000,515.-1 ;INSBF .IDBF: .GADD S7000,515.+8.-1 ;IDBUF .IEVL: .GADD S7000,480.+5 ;IEVML .C1: C1 C1: 1 .C2: C2 C2: 2 C4: 4 C5: 5 .C9: C9 C9: 9. D24: 24. C130M: 130000 C160M: 160000 C170M: 170000 CSTOPlG: 170010 .END PRX51.SR '?;**************************************************************** ; ; NAME: PRX51.SR 300-0130 ; ; DESCRIPTION: ; INTERFACE BETWEEN SUBROUTINE PONOF AND PROX ; ; REVISON HISTORY: ; REV DATE DESCRIPTION ; 1.00 06/20/77 PUBLIC RELEASE ; 02 08/10/77 ; .; COPYRIGHT (C), 1977 MEGATEK CORPORATION, ALL RIGHTS RESERVED ;******************************************************************** .TITLE PRX51 .NREL .ENT PRX51,XPX51 .EXTN ARWRT .EXTD .CPYL, .FRET ISA = -167 IWCNT = ISA+1 IARAY = IWCNT+1 IRW{ = IARAY+1 WCONT = IRW+1 I=WCONT+1 ;TEMP T1=I+1 ;TEMP T2=T1+1 ;TEMP T3=T2+1 ;TEMP T4=T3+1 ;TEMP POINT=T4+1 .ISA=POINT+1 ;CALL PRX51 XPX51: 16 PRX51: JSR @.CPYL  LDA 0,KSA ADD 3,0 STA 0,ISA,3 LDA 2,.INSF LDA 0,3,2 STA 0,.ISA,3 ;ISA= 9INSBF(3) LDA 0,2,2 MOV 0,0,SNR JMP L1512 LDA 0,MSKJ0 STA 0,9.,2 ;INSBF(9)=130000 JMP L1516 L1512: LDA 0,MSKST STA 0,9.,2 ;INSBF(9)=170010 L1516: LDA 0,1,2 LDA 1,4,2 ADD 0,1 STA 1,10.,2 ;INSBF(10)=INSBF(1)+INSBF(4) LDA 0,.C2 STA 0,IWCNT, 3 LDA 0,.IDBF INC 0,0 STA 0,IARAY,3 LDA 0,.C1 STA 0,IRW,3 STA 0,WCONT,3 MOV 3,0 JSR @.ARW JMP @.FRET .COMM S7000,519. .ARW: ARWRT .INSF: .GADD S7000,515.-1;INSBF .IDBF: .GADD S7000,515.+8.-1 ;IDBUF MSKJ0: 130000 MSKST: 170010 .C1: C1 C1: 1 .C2: C2 KSA: .ISA C2: 2 .END PRX52.SR 6,;**************************************************************** ; ; NAME: PRX52.SR 300-0132 ; ; DESCRIPTION: ; INTERFACE BETWEEN SUBROUTINE PFNCT AND PROX ; ; REVISON HISTORY: ; REV DATE DESCRIPTION ; 1.00 06/20/77 PUBLIC RELEASE ; 02 08/10/77 ; B; COPYRIGHT (C), 1977 MEGATEK CORPORATION, ALL RIGHTS RESERVED ;******************************************************************** .TITLE PRX52 .NREL .ENT PRX52,XPX52 .EXTN ARWRT,INDEX .EXTD .CPYL, .FRET ISA = -167 IWCNT = ISA+1 IARAY = IWCNT+ 1 IRW = IARAY+1 WCONT = IRW+1 I=WCONT+1 ;TEMP T1=I+1 ;TEMP T2=T1+1 ;TEMP T3=T2+1 ;TEMP T4=T3+1 ;TEMP POINT=T4+1 .ISA=POINT+1 ;CALL PRX52 XPX52: 16 PRX52: JSR @.CPYL LDA 0,KSA ADD 3,0 STA 0,ISA,3 LDA 2,.INSF LDA 1,1,2 ;INSBF(1) JSAR @.INDX LDA 3,16 LDA 0,1,2 ;IPC(1,INSBF(1)) LDA 1,C2 ADD 1,0 ;ISA=IPC(1)+2 STA 0,.ISA,3 ;SET UP OTHER ARGUMENTS FOR WRITE ;IN PICTURE HEADER LDA 0,.C1 STA 0,IWCNT,3 ;WORD COUNT=1 STA 0,IRW,3 ;WRITE! STA 0,WCONT,3 ;ENTRY FROM ASM LDA 0,.IDQBF INC 0,0 STA 0,IARAY,3 ;SOURCE OF DATA TO BE XFRD. MOV 3,0 JSR @.ARW JMP @.FRET .COMM S7000,519. .ARW: ARWRT .INDX: INDEX .INSF: .GADD S7000,515.-1;INSBF .IDBF: .GADD S7000,515.+8.-1 ;IDBUF MSKJ0: 130000 MSKST: 170010 .C1: C1 C1: 1 .C2: C2 KSA: .ISA C2: 2 .END PRX53.SR ;**************************************************************** ; ; NAME: PRX53.SR 300-0134 ; ; DESCRIPTION: ; INTERFACE BETWEEN SUBROUTINE PXLT AND PROX ; ; REVISON HISTORY: ; REV DATE DESCRIPTION ; 1.00 06/20/77 PUBLIC RELEASE ; 02 08/10/77 ; ;! COPYRIGHT (C), 1977 MEGATEK CORPORATION, ALL RIGHTS RESERVED ;******************************************************************** .TITLE PRX53 .ENT PRX53,XPX53 .EXTN ARWRT,INDEX .EXTD .CPYL,.FRET .NREL ISA = -167 IWCNT = ISA+1 IARAY = IWCNT+1 IRW = IARAY+1 WCONT = IRW+1 I=WCONT+1 ;TEMP T1=I+1 ;TEMP T2=T1+1 ;TEMP T3=T2+1 ;TEMP T4=T3+1 ;TEMP POINT=T4+1 .ISA=POINT+1 ;CALL PRX53 XPX53: 14 PRX53: JSR @.CPYL LDA 0,KSA ADD 3,0 STA 0,ISA,3 LDA 2,.INSF LDA 1,3,2 JSR @.INDX LDA E3,16 ;RESTORE STACK STA 2,POINT,3 LDA 0,1,2 ;IPC(1,INSBF(3)) LDA 1,C3 ADD 1,0 STA 0,.ISA,3 ;ISA=IPC(1)+3 LDA 2,.INSF LDA 0,1,2 ;INSBF(1) LDA 1,MSK12 AND 1,0 STA 0,1,2 ;INSBF(1)=INSBF(1) .AND. 7777 LDA 1,MSKXL ADD 1,0 STA 0,9.,2 ;INSBF(E9)=INSBF(1)+160000 LDA 0,2,2 LDA 1,MSK12 AND 1,0 STA 0,10.,2 ;INSBF(10)="Y TRANSLATION" LDA 0,.C2 STA 0,IWCNT,3 LDA 0,.IDBF INC 0,0 STA 0,IARAY,3 LDA 0,.C1 STA 0,IRW,3 STA 0,WCONT,3 MOV 3,0 JSR @.ARW JMP @.FRET .COMM S7000,539. .INODX: INDEX .ARW: ARWRT .INSF: .GADD S7000,515.-1 ;INSBF .IDBF: .GADD S7000,515.+8.-1 ;IDBUF MSKXL: 160000 MSK12: 7777 .C1: C1 C1: 1 .C2: C2 C3: 3 C2: 2 KSA: .ISA .END PXLT.FR vC ********************************************************* C * * C * NAME: PXLT.FR 300-0136 * C * DESCR: ADDS INSTRUCTION WORDS FOR TRANSLATION * C * * C * X : X - VALUE OF TRANSLATION * C * Y : Y - VALUR OF TRANSLATION * C * IP]A: PICTURE NUMBER * C * IA: 0 - ABS. TRANS; 1 - REL. TRANS. * C * (NORMAL FMT) (EXTD. FMT) * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * * C * TCOPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE PXLT (IP,X,Y,IA) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) C C *** CONVERT TO SCREEN UNITS C INSBF(1) = X INSBF(2) = Y IF(IPC(9,IP).EQ.0) INSBF(1) = X * RPC(2,ICPCT) IF(IPC(9,IP).EQ.0) INSBF(2) =g Y * RPC(3,ICPCT) INSBF(3) = IP INSBF(4) = IA CALL PROCS (53) RETURN END S5000FORT.CL/k/*************************************************************** / / NAME: S5000FORT.CL 300-0138 / / DESCRIPTION: / THIS COMMAND LINE COMPILES THE FORTRAN MODULES OF THE / FORTRAN GRAPHICS PACKAGE FOR THE MG-552. / /*************************************************************** FORT BDRWA FORT BDRWR FORT BDXRY FORT BDYRX FORT BGLBL FORT BINIT FORT BJMAD FORT BJMLB FORT BJSAD FORT BJSLB FORT BMOVA FORT BMOVR FORT BMXRY FORT BMYRX FORT BNSRT FORT BPLBL FORT BPNT FORT BRETN FORT BROT FORT BSCAL FORT BTXEXT FORT BSTNG FORT BDELV FORT BTXAT FORT BWNDO FORT BWORD FORT BXLT FORT IDRWA FORT IDRWR FORT IDXRY FORT IDYRX FORT IGPTR FORT IMOVA FORT IMOVR FORT IMXRY FORT IMYRX FORT IPPTR FORT IXLT FORT PFNCT FORT PONOF FORT PXLT FORT DTRANS MAC ATRANS FORT PROCS FORT S7ERS FORT PRNTD FORT DSTRT FORT GTON FORT GTOF FORT GRDTJ FORT GNUM FORT BFNCT FORT GFMT MAC MEGADOS/S BIN5 MAC RDOS/S BIN5 MAC MEGADOS/S BIN5 MAC RDOS/S CRT MAC NUMCH MAC DELV MAC PROX MAC PRX1 MAC PRX2 MAC PRX3 MAC PRX7 MAC PRX11 MAC PRX16 MAC PRX50mF MAC PRX51 MAC PRX52 MAC PRX53 MAC DRWRT FORT GTON1 FORT GTOF1 FORT GRDT1 MAC JGTAB MAC JOY27 MAC TAB67 MAC TAB27 MAC JT27 MAC JT67 MAC JTXX MAC TAB672 MAC TAB673 MAC JOY67 S7ERS.FR !CC ********************************************************* C * * C * NAME: S7ERS.FR 300-0139 * C * DESCR: ERROR REPORTING ROUTINE * C * * C * REVISION HISTORY: * C * * C * 06/20/77 REV 1.0 PUBLIC RELEASE * C * 08/10/77 REV 02 * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE S7ERS  DIMENSION IDBUF (16), ISAVE(2) DIMENSION RPC (5,32), INSBF7J (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7)x,IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2), NLAB), (IMISC(3), IECW), (IMISC(4), ISFW1), 5(IMISC(5), ISFW2), (IMISC(6), ITTY) EQUIVALENCE (IDQBUF(1), INSBF(9)) C C *** ERROR REPORTING CONTROL IS AS FOLLOWS: C * IECW = 0: NO ERROR REPORTING C * IECW = 1: ERROR REPORTING WITHOUT PROGRAM HALT C * IECW = 2: ERROR REPORTING AND PROGRAM HALT C IF(IECW .EQ. 0) RETURN IEB (1) = ICPCT IEB (2) = IPC (7,ICPCT) - IPC (1,ICPCT) IEB (3) = IPC (8,ICPCT) - IPC (1,ICPCT) WRITE (ITTY,1755) (IEB(I), I=1,5), IEB(11) 1755 FORMAT(2X,'*** ERROR DETECTED'/10X,'PICTURE:',I5 1/10X,'LCP: ',I5/10X,'ICP: ',I5/10X,'IERW1: ',I5 2/10X,'IERW2: ',I5/10X,'IMODE: ',I5) IF(IECW .EQ. 1) PAUSE IN ERROR ROUTINE 1.1 IF(IECW .EQ. 2) STOP RETURN END GRAPHICSLFE.CL6#//******************************************************************* / / NAME: GRAPHICSLFE.CL 300-0141 / / DESCRIPTION: / THIS COMMAND LINE GENERATES THE GRAPHICS LIBRARY / FROM THE RELOCATABLE BINARIES. / REVISION HISTORY: / REV DATE DESCRIPTION / 0gD2 08/31/77 / 03 10/10/77 ADDED GTON1,GTOF1,GTAB10,11,12 / 04 12/03/77 REVISED FOR JOY/TAB 27/67 / / /******************************************************************* MAC RDOS/S CRT MAC RDOS/S BIN5 LFE N GRAPHICS.LB/O BDRWA BDRWR ^ BDXRY BDYRX BGLBL ^ BINIT BJMAD BJMLB BJSAD BJSLB BMOVA BMOVR ^ BMXRY BMYRX BNSRT BPLBL BPNT ^ BRETN BROT BSCAL BTEXT BSTNG BDELV ^ BTXAT BWNDO BWORD BXLT ^ IDRWA IDRWR IDXRY IDYRX IGPTR ^ IMOVA IMOVR IMXRY IMYRX IPPTR ^ IXLT PFNCT PONOF PXLT DTRANS ATRANS ^ PROCS S7ERS PRNTD '6DSTRT GTON GTON1 ^ GTOF GTOF1 GRDTJ GRDT1 GNUM BFNCT GFMT BIN5 CRT NUMCH DELV JGTAB ^ JOY27 TAB67 TAB27 JT27 JT67 JTXX TAB672 TAB673 JOY67 ^ PROX PRX1 PRX2 PRX3 PRX7 PRX11 PRX16 PRX50 PRX51 PRX52 PRX53 DRWRTNAMES 2/************************************************************************ / / NAME: NAMES 300-0142 /REVISION HISTORY: / REV DATE DESCRIPTION / 02 08/31/77 / PRINT RLSNOTES PRINT PATCHES PRINT BDELV.FR PRINT BDRWA.FR PRINT BDRWR.FR PRINT BDXRY.FR PRINT7 BDYRX.FR PRINT BFNCT.FR PRINT BGLBL.FR MAC RDOS/S BIN5.SR $LPT/L MAC MEGADOS/S BIN5.SR $LPT/L PRINT BINIT.FR PRINT BJMAD.FR PRINT BJMLB.FR PRINT BJSAD.FR PRINT BJSLB.FR PRINT BMOVA.FR PRINT BMOVR.FR PRINT BMXRY.FR PRINT BMYRX.FR PRINT BNSRT.FR PRINT BPLBL4.FR PRINT BPNT.FR PRINT BRETN.FR PRINT BROT.FR PRINT BSCAL.FR PRINT BSTNG.FR PRINT BTEXT.FR PRINT BTXAT.FR PRINT BWNDO.FR PRINT BWORD.FR PRINT BXLT.FR MAC RDOS/S CRT.SR $LPT/L MAC MEGADOS/S CRT.SR $LPT/L MAC DELV.SR $LPT/L MAC DRWRT.SR $LPT/L PRINT DSTRT.FCR PRINT GFMT.FR PRINT GNUM.FR PRINT GRDTJ.FR MAC GTAB.SR $LPT/L PRINT GTOF.FR PRINT GTON.FR PRINT IDRWA.FR PRINT IDRWR.FR PRINT IDXRY.FR PRINT IDYRX.FR PRINT IGPTR.FR PRINT IMOVA.FR PRINT IMOVR.FR PRINT IMXRY.FR PRINT IMYRX.FR PRINT IPPTR.FR PRINT MEGADOSGJ RA.CL MAC NUMCH.SR $LPT/L PRINT PFNCT.FR PRINT PONOF.FR PRINT PRNTD.FR PRINT PROCS.FR MAC PROX.SR $LPT/L MAC PRX1.SR $LPT/L MAC PRX2.SR $LPT/L MAC PRX3.SR $LPT/L MAC PRX7.SR $LPT/L MAC PRX11.SR $LPT/L MAC PRX16.SR $LPT/L MAC PRX50.SR $LPT/L MAC PRX51.SR $LPT/L MAC PRX52.SR $LPT/L MAC PRX53.SR $LPT/L PRINT PXLT.FR PRINT S5000FORT.CL PRINT S7ERS.FR PRINT GRAPHICSLFE.CL PRINT DTRANS.FR MAC/N ATRANS $LPT/L PRINT NAMES RDOS.SR  N;NAME: RDOS.SR 300-0143 ; REVISION HISTORY: ; REV DATE DESCRIPTION ; 02 08/31/77 ;THIS FILE CAUSES THE RDOS REVISIONS ;OF THE VARIOUS GRAPHICS MACRO ROUTINES TO BE INCORPORATED ;AT ASSEMBLY TIME ;TO USE, THIS FILE SHOULD BE THE FIRST FILE IN ;THE COzJMMAND LINE. FOR A MAPPED SYSTEM, SET MAPS=1. AN EXAMPLE FOLLOWS: MAC RDOS/S BIN5 ; ; MDOS=0 MAPS=0 ; ;END OF FILE MEGADOS.SR x;NAME: MEGADOS.SR 300-0144 ;REVSION HISTORY: ; REV DATE DESCRIPTION ; 02 08/31/77 ;THIS FILE CAUSES THE MEGADOS REVISIONS ;OF THE VARIOUS GRAPHICS MACRO ROUTINES TO BE INCORPORATED ;AT ASSEMBLY TIME ;TO USE, THIS FILE SHOULD BE THE FIRST FILE IN ;T{EHE COMMAND LINE. AN EXAMPLE FOLLOWS: MAC MEGADOS/S BIN5 ; ; MDOS=1 MAPS=0 ;NO MAPPED VERSION POSSIBLE ; ;END OF FILE DTRANS.FR ZC ********************************************************* C * * C * NAME: DTRANS.FR * C * DESCR: FORTRAN CALLABLE ROTATION,TRANSLATION, * C * SCALING OF USER PICTURE. * C * * C * REVISION HISTORY: * C * * C * 08/11/77$ REV 1.0 ORIGINAL VERSION * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE DTRANS (X,Y,Z,C,N,IFLAG) DIMENSION X(N),Y(N),Z(N),C(9) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) C C *** CHECK FOR ERROR C IEND = IPC(7,IP) + 2*N + 4 IF (IEND - IEVML) 10,10,9G@999 10 IF (IPC(2,IP)) 20,100,20 20 IF (IPC(1,IP) + IPC(2,IP) - IEND) 9999,100,100 100 CALL ATRANS (I0,I1,I2,I3,I4,I5,I6,I7,I8, 1 I9,I10,I11,I12,I13,I14, 2 X,Y,Z,C,N,IFLAG) IF (IERW1 .NE. 0) CALL PROCS (75) RETURN C C *** NOT ENOUGH MEMORY! C 9:]999 IERW1 = 4 IERW2 = 37 CALL PROCS (75) RETURN END ATRANS.SR ;**************************************************************************** ; ; NAME: ATRANS.SR MEGATEK PART NO: 20-060106 ; ; REVISION HISTORY: ; ; REV. DATE DESCRIPTION ; 01 08/01/76 FORTRAN COMPLETE. CHANGES FROM ; ORIGINAL INCLUDE: (1) INTEGER CLIPPING AND ; SUB-DIVIDE (2) OPTIONAL BYPASS OF CLIPPING OR ; SUB-DIVIDE (3) USE OF FORTRAN STACK FEATURES ; 02 06/10/77 CONVERT TO MG-552 GRAPHICS. ELIMINATE ; LINE SPLIT; NO INTERFACING TO M5000 PICTURE ; CHECKING OR DISPLAY APPENDING:. ; 03 08/14/77 MODIFICATIONS TO INTERFACE TO STANDARD ; FORTRAN CALLABLE GRAPHICS I/O ROUTINES ; ; ;  CALLING SEQUENCE: ; ; CALL ATRANS (I0,I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13, ; 1 X,Y,Z,B,N,IFLAG) ; ; WHERE I0 - I7 ARE DUMMY PARAMATERS USED 3 BY DAPPND ; X = A MATRIX WITH N X VALUES ; Y = A MATRIX WITH N Y VALUES ; Z = A MATRIX WITH N Z VALUES ; B = TRANSFORMATION MATRIX ; N = NUMBER OF POINTS TO BE PLOTTED ; IFLAG= EXECUTION CONTROL WORD: ; BIT15=1 => BYPASS CLIPPING ; BIT14=1 => SU5B-DIVIDE LONG VECTORS ; ; COPYRIGHT (C), MEGATEK CORPORATION, 1976,1977 ; ALL RIGHTS RESERVED ;**************************************************************************** .TITLE ATRANS ; ; STORAGE AND CONSTANTS ; .ZREL .ENT ATRANS,TRN11,ROT11,SCL1d1 .EXTN MPY0,DVD,FNEG1,FLFX1,SIN.,COS. .EXTD .ABS,.CPYL,.FRET,IN.,APPRX .EXTN FFLD1,FFST1,FAD1,FSB1,FML1,FDV1 ; ; INDRECT JUMPS ; .TEMP: TEMP0 ;TEMPORARY STORAGE ADDRESS ; ; STORAGE ; Z0: 0 IX: 0 IY: 0 IXA: 0 IYA: 0 ; ; STACK DISPLACEMENTS FOR PASS 10 LDA 2,RSX SUB 0,2 ;CHECK X AGAINST RIGHT-SCREEN-X MOVL# 2,2,SZC LDA 3,C4 ;TO THE RIGHT => 4 STA 3,XCOD ;SAVE X COD SUB 3,3 ;GET READY FOR YCOD LDA 2,LSY ;GET LOW-SCREEN-Y ADC 1,2  2 LDA 2,RSY ;GET HIGH-SCREEN-Y SUB 1,2 MOVL# 2,2,SZC SUBZL 3,3 ;ABOVE SCREEN => 1 LDA 2,XCOD ;GET X CODE BACK AGAIN ADD 3,2 ;AC2 = COMPLETE CODE FOR POINT JMP @TEMP3 ;*********************************#************************************** ; SWAP START AND END POINTS ;*********************************************************************** SWAP: LDA 0,IX LDA 1,IXA STA 0,IXA STA 1,IX LDA 0,IY LDA 1,IYA STA 0,IYA STA 1,IY JMP 0,3 LSX: 0 LSY: 0 RS X: 0 RSY: 0 XCOD: 0 C2: 2 C4: 4 C10: 10 ;********************************************************************** ; OUTPUT ABSOLUTE POINT ;********************************************************************** ABSPT: STA 3,RTN LDA 3,CMASK ;GET 10 BIT MAS7K AND 3,0 AND 3,1 ;CLEAN UP INPUT COORDINATES MOVS 2,2 ADDZL 2,2 ADDZL 2,2 ADD 2,1 LDA 3,.IDBF STA 0,1,3 ;IDBUF(1) STA 1,2,3 ;IDBUF(2) LDA 3,16 STA 3,AENT,3 ;AENT NOT 0 SO ENTRY FROM ASM LDA 0,.C2 STA 0,IWCNT,3 MOV 3,0 ;STACK FOR APPND J SR @.APRX LDA 3,.IER1 LDA 3,1,3 MOV 3,3,SNR ;ERROR? JMP @RTN JMP @.FRET ;ERROR! ; STORAGE ; RTN: 0 CMASK: 7777 ;ABSOLUTE COORDINATE MASK TAC0: 0 TAC1: 0 TAC2: 0 .APRX: APPRX .C2: C2 .TAC0: TAC0 .NREL .COMM S7000,539. .IDBF: .GADD S7000,515.-1+8.~ ;IDBF .IER1: .GADD S7000,480.+2 ;IERW1 ;************************************************************************ ; CLIP THE LINE (USING START POINT) ;************************************************************************ XDIF: 0 YDIF: 0 SIGN: 0 RTN2: 0 TAB: 0 CLIP1: STA 3,RTN2 LDA 2,IX LDA 3,IXA SUB 3,2 STA 2,XDIF ;GENERATE X DISTANCE OF VECTOR LDA 2,IY LDA 3,IYA SUB 3,2 STA 2,YDIF MOVR 1,1,SZC ;START CHECKING CODE WORD LDA 3,HIYT MOVR 1,1,SZC LDA 3,LOYT MOVR 1,1,SZC LDA 3,HIXT MOVRջ 1,1,SZC LDA 3,LOXT STA 3,TAB ;SAVE PROCESSING TABLE ADDRESS SUB 0,0 STA 0,SIGN LDA 1,@1,3 LDA 0,@2,3 STA 1,@2,3 SUB 0,1 LDA 2,@3,3 MOVL# 1,1,SNC JMP .+3 NEG 1,1 ISZ SIGN MOVL# 2,2,SNC JMP .+3 NEG 2,2 ISZ SIGN MPY0 LDA 3,TAB LDA 2,@4,3 MOVL# 2,2,SNC JMP .+3 NEG 2,2 ISZ SIGN DVD LDA 3,TAB LDA 0,SIGN MOVR 0,0,SZC NEG 1,1 LDA 0,@5,3 ADD 0,1 STA 1,@5,3 JMP @RTN2 ;**************************************************************************** ; CLIPPING ACTION TABLES ; THERE IS OLNE TABLE FOR EACH POSSIBLE CLIPPING MODE (LOX,HIX,LOY,HIY). ; THE FIVE ELEMENTS OF THE TABLE DETERMINE THE ACTION TO BE TAKEN. ; THE GENERAL FORMULA IS: ; NEW(@2) = (@1) ; NEW(@5) = (@5) + [ (@1)-(@2) ] * (@3) / (@4) ;************************************Ʃ**************************************** LOXT: . LSX IXA YDIF XDIF IYA HIXT: . RSX IXA YDIF XDIF IYA LOYT: . LSY IYA XDIF YDIF IXA HIYT: . RSY IYA XDIF YDIF IXA ; ; ; TRANSLATION MATRIX ; ; TRN11: 0 0 TRN12: 0 0 TRN13: 0 0 TRN21gt: 0 0 TRN22: 0 0 TRN23: 0 0 TRN31: 0 0 TRN32: 0 0 TRN33: 0 0 ; ; ; SCALING MATRIX ; ; SCL11: 0 0 SCL12: 0 0 SCL13: 0 0 SCL21: 0 0 SCL22: 0 0 SCL23: 0 0 SCL31: 0 0 SCL32: 0 0 SCL33: 0 0 ; ; ; ROATAION MATRIX ; ; ROT11: 0 0 ROT12: 0 0 ROT13:V> 0 0 ROT21: 0 0 ROT22: 0 0 ROT23: 0 0 ROT31: 0 0 ROT32: 0 0 ROT33: 0 0 .END IXLT.FR gC ********************************************************* C * * C * NAME: IXLT.FR * C * DESCR: ADDS INSTRUCTION WORDS FOR TRANSLATION * C * X : X VALUE OF TRANSLATION * C * Y : Y VALUE OF TRANSLATION * C * IA : 0 -ABSOLUTE TRANSLATE; 1 - RELATIVE* C * TRANSLATE. * C * * C * REVISION HISTORY: * C * * C * 08/13/77 REV 1.1 ORIGINAL VERSION * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************K************* C SUBROUTINE IXLT (IX,IY,IA) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCUP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) INSBF(1) = IX So INSBF(2) = IY INSBF(3) = IA CALL PROCS (7) RETURN END GTON1.FR( C ********************************************************* C * * C * NAME: GTON1.FR 300-0241 * C * DESCR: STARTS EITHER THE FIRST OR THE SECOND * C * JOYSTICK/DATA TABLET HARDWARE. * C * * C * REVISION HISTORY: * C * 10/07/77 REr8V 00 ORIGINAL ENTRY * C * 11/14/77 REV 01 REVISIONS FOR JOY/TAB * C * CONFIGURATION (27/67) * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C :\ SUBROUTINE GTON1 (LABEL,JOY) C JOY=O FOR PRIMARY JOY STICK/TABLET C JOY=1 FOR SECONDARY JOY STICK/TABLET C DIMENSION IDBUF (16) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB), (IMISC(3), IECW), (IMISC(4), ISFW1), 5(IMISC(5), ISFW2) EQUIVALENCE (IDBUF(1), INSBF(9)) IF(LABEL .EQ. 0) GOTO 100 IF(LABEL .LT. 0 .OR. LABEL .GT. NLAB) GOTO 9999  INSBF (1) = LAV(LABEL) GOTO 150 100 INSBF (1) = 0 150 IF(JOY.LT.0 .OR. JOY.GT.1)RETURN CALL GTLI1(-1984,-1984,1983,1983,JOY) CALL JGTON(IDBUF(2),010000K,170000K,JOY,IERW2) IF (IERW2) 9998,200,9998 200 ISA = ISVML-16 ICURS=ISVML-6 IF(JOY ~.NE. 0) ISA = ISVML-12 IDBUF(1) =134000K CALL DRWRT(ISA,2,IDBUF,1) IF(INSBF(1) .NE. 0) CALL DRWRT(ISA+3,1,INSBF(1),1) C II=0 C IF(JOY.EQ.0) II=4 IF(INSBF(1) .EQ. 0) CALL DRWRT(ISA+3,1,ICURS,1) INSBF(1) = 0 IDBUF(1) = 0  IDBUF(2) = 0  RETURN C *** ERROR DETECTED (INVALID LABEL) C 9999 IERW2 = 15 9998 IERW1 = 5 CALL PROCS (75) RETURN END GTOF1.FR0 C ********************************************************* C * * C * NAME: GTOF1.FR 300-0247 * C * DESCR: STOPS THE FIRST OR THE SECOND * C * JOYSTICK/DATA TABLE HARDWARE AND * C * DIGITIZING OPERATION * C * * C * REVISION HISTOR0Y: * C * 10/07/77 REV 00 ORIGINAL ENTRY * C * 11/14/77 REV 01 REVISION FOR NEW JOY/TAB* C * CONFIGURATION (27/67) * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C **************************************F******************* C SUBROUTINE GTOF1 (JOY) DIMENSION IDBUF (16), ISAVE(2) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), џ 4(IMISC(2), NLAB), (IMISC(3), IECW), (IMISC(4), ISFW1), 5(IMISC(5), ISFW2) EQUIVALENCE (IDBUF(1), INSBF(9)) IF(JOY.NE.0.AND.JOY.NE.1) RETURN IDBUF(1)=130000K IF(JOY.EQ.1) GOTO 100 IDBUF(2) = ISVML-12 ISA = ISVML - 16 GOTO 200 1F00 IDBUF(2) = ISVML ISA = ISVML-12 200 CALL DRWRT(ISA,2,IDBUF,1)  IDBUF(1) = 0 IDBUF(2) = 0 CALL JGTOF(JOY,IERW2) IF (IERW2 .EQ. 0) RETURN IERW1 = 5 CALL PROCS (75) RETURN END GRDT1.FR:WTC ********************************************************* C * * C * NAME: GRDT1.FR 300-0249 * C * DESCR: GETS THE TABLET/PEN INFORMATION * C * FOR THE EITHER THE FIRST OR THE SECOND * C * JOYSTICK/DATA TABLET * C * * C * REVISION HISTORY: * C * 10/10/77 REV 00 ORIGINAL ENTRY * C * 11/14/77 REV 01 REVISION FOR NEW JOY/TAB* C * (27/67) CONFIGURATION. * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C * * C ***************>****************************************** C SUBROUTINE GRDT1 (X,Y,IPEN,JOY) DIMENSION IDBUF (16) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (AIMISC(1),NPICT), 4(IMISC(2),NLAB), (IMISC(3), IECW) EQUIVALENCE (IDBUF(1), INSBF(9)) IF(JOY.NE.1.AND.JOY.NE.0) RETURN CALL JGTRD(INSBF(1),INSBF(2),INSBF(3),JOY,IERW2) IF (IERW2) 9999,100,9999 100 IF (IPC(9,ICPCT) .NE. 0) GOTO 1000 X = INSBF(1) / RPC(2,ICPCT) Y = INSBF(2) / RPC(3,ICPCT)  IPEN = INSBF (3) INSBF(1) = 0 INSBF(2) = 0 INSBF(3) = 0 RETURN 1000 X = INSBF(1) Y=INSBF(2) IPEN=INSBF(3) RETURN 9999 IERW1 = 5 CALL PROCS(75) RETURN END JGTAB.SR6 ;**************************************************************** ; ; NAME: JGTAB.SR PART NO: 300-0291 ; ; DESCRIPTION: ; JOYSTICK/DATA TABLET COMMON SERVICING. THIS CODE ; IS ACCESSED BY THE VARIOUS CONFIGURATION MODULES AFTER ; THEY DO DEVICE CODE~ SPECIFIC DATA ACQUISITION. ; THIS MODULE ALSO CONTAINS DEVICE INITIALIZATION, ; DEVICE TURN OFF, DEVICE READ, AND LIMIT SET (ALL ; CALLABLE FROM FORTRAN). ; ; REVISION HISTORY: ; REV DATE DESCRIPTION ; 00 11/05/77 ; ;**************************************************************** .TITLE JGTAB .ENT JGTON,JGTOF,JGTRD,GTLIM,GTLI1,GTCOF,GTRAW .ENT JOYIN,TABIN .EXTN .UIEX .EXTN JT000,JT001,JT002,JT003,JT004,JT005,JT006,JT007 .EXTN JT008 .EXTD .CPYL,.FRET .NREL .COMM S7000,539. TJDEV = 0 TJDV2 = TJDEV+1 .TABX = TJDV2+1 TABX = .TABX+1 TABY = TABX+1 CLX = TABY+2 CLY = CLX+1 CUX = CLY+1 CUY = CUX+1 TMASK = CUY+1 XCUR = TMASK+1 YCUR = XCUR+1 XMASK = YCUR+1 YMASK = XMASK+1 PEN1 = YMASK+1 PEN2 = PEN1+1 PEN3 = PEN2+1 PEN4 = PEN3+1 DIN]A = PEN4+1 DINB = DINA+1 DINC = DINB+1 SAC2 = DINC+1 SAC3 = SAC2+1 TJDCT = SAC3+1 TJDC2 = TJDCT+4 ;******************************************************************* ; ; JOYSTICK/DATA TABLET INITIALIZATION: ; THIS ROUTINE IS CALLED TO INITIALIZE Tm2HE ; JOYSTICK/DATA TABLET INTERRUPT SERVICING ; FOR A SPECIFIED DEVICE. THE CONFIGURATION ; CODE IS SPECIFIED TO INDICATE THE DEVICE ; BEING USED (IN TERMS OF DIGITIZER RESOLUTION, ; CONTROL BIT LAYOUT, DEVICE TYPE, ETC.). ; ; CALL JGTON(IADDR,XMASK,YMASK-,IPRI,IER) ; ; IADDR = ADDRESS OF ABSOLUTE VECTOR. ; XMASK = BIT CONFIGURATION ADDED TO X IN DISPLAY LIST. ; YMASK = BIT CONFIGURATION ADDED TO Y IN DISPLAY LIST. ; IPRI = 0 => PRIMARY DEVICE CONFIG ; = 1 => SECONDARY DEVICE CONFIG ; IER = 0i => NO ERROR ; = 99. => DEVICE TABLE DOES NOT EXIST ; ;******************************************************************* 20 JGTON: JSR @.CPYL ;SET UP FORTRAN STACK LDA 1,@-164,3 ;GET CODE FROM USER JSR PCON ;PICK THE CONFIGURATION JMP ERRON ;NO DEVICE TABLE LDA 0,TJDEV,2 ;GET DEVICE CODE LDA 1,TJDCT,2 ;GET DCT .SYSTM .IDEF ;INTRODUCE DEVICE TO SYSTEM JMP .+1 LDA 2,-157,3 ;GET THE TABLE ADDRESS AGAIN LDA 0,.TABX,2 ;GET ADDRESS OF ABSOLUTE VECTOR STA 0,@-167,3 ;RETURN TO USER LDA 0,@-166,3 ;GET X MASK FOR ABSOLUTE VECTOR STA 0,XMASK,2 ;STORE IN DEVICE TABLE LDA 0,@-165,3 ;GET Y MASK FOR ABSOLUTE VECTOR STA 0,YMASK,2 ;STORE IN DEVICE TABLE LDA 0,TJDEV,2 ;GET THE DEVICE CODE LDA 1,.NIOS ;GET A "NIOS" SKELETON ADD 1,0 ;ADD IN !DEVICE CODE INTDS ;SHH -- DON'T LET ANYONE KNOW STA 0,.+1 ;;;STORE THE INSTRUCTION (NON-RE-ENTRANT) 0 ;;; NIOS DEV INTEN ;IT'S OK NOW LDA 0,TJDV2,2 ;GET SECOND DEVICE CODE MOV 0,0,SNR ;MORE THAN ONE DEVICE IN TABLE? JMP ERRON-1 ;NOPE LDA 1L/,TJDC2,2 ;GET SECOND DEVICE TABLE .SYSTM .IDEF ;DEFINE SECOND DEVICE JMP .+1 LDA 1,.NIOS ;GET START SKELETON ADD 1,0 ;ADD TO DEVICE CODE INTDS ;WATCH OUT STA 0,.+1 ;;;STORE THE INSTRUCTION 0 ;;;THIS IS IT INTEN ;COAST IS CLEAR! SUB 0,0,SKP ;FLAG NO ERROR ERRON: LDA 0,C99 ;GET ERROR CODE STA 0,@-163,3 ;SAVE IT JMP @.FRET ;********************************* ; PICK CONFIGURATION ;********************************* PCON: MOV 3,2 LDA 3,16 ;GET FORTRAN STACK POINTER STA 2,-160,3 ;ST^ORE RETURN ON STACK LDA 0,@.ICOF ;GET CONFIGURATION WORD FROM COMMON MOV 1,1,SZR ;CHECK USER SPECIFICATION MOVS 0,0 ;SECONDARY CODE LDA 1,C377 ;GET RIGHT BYTE MASK AND 1,0 LDA 1,.TLEN ;GET LENGTH OF TABLE SUBZ# 0,1,SNC ;BEYOND MAX NUMBER? JMP @-160,3 ;FORGET IT! LDA 2,JGTAB ;GET ADDRESS OF TABLE ADDRESSES ADD 0,2 ;PUT TO PROPER DISPLACEMENT LDA 2,0,2 ;GET THE TABLE COM# 2,2,SZR ;CHECK FOR LEGAL TABLE ISZ -160,3 ;IT'S LEGAL STA 2,-157,3 ;STORE THE TABLE ADDRESS FOR FUTURE JMP @-160,>3 ;ALL DONE WITH SUBROUTINE C99: 99. C377: 377 .NIOS: NIOS 0 .NIOC: NIOC 0 .ICOF: .GADD S7000,487. .TLEN: JGLEN ;******************************************************** ; ; CALL GTCOF(IPRIM,ISEC) ; ;****************************************************-**** 20 GTCOF: JSR @.CPYL LDA 0,@-166,3 LDA 2,C377 ANDS 2,0 LDA 1,@-167,3 AND 2,1 ADD 1,0 STA 0,@.ICOF JMP @.FRET ;******************************************************** ; ; JOYSTICK/DATA TABLET DISABLE ; ; CALL JGTOF(IPRI,IER) ; ; IPRI = 0f => PRIMARY DEVICE CONFIGURATION ; = 1 => SECONDARY DEVICE CONFIGURATION ; IER = 0 => NO ERROR ; = 99. => DEVICE TABLE DOES NOT EXIST ; ;******************************************************** 20 JGTOF: JSR @.CPYL ;SET UP FORTRAN STACK LDA 1,@-167,3 ;GET USER PICKER JSR PCON ;PICK THE CONFIGURATION JMP ERROF ;BUMMER -- NO SUCH DEVICE LDA 0,TJDEV,2 ;GET DEVICE CODE LDA 1,.NIOC ;GET "NIOC" SKELETON ADD 0,1 ;ADD IT IN INTDS ;GO TO SLEEP STA 1,.+1 ;STORE THE INSTRUCTION 0 A{INTEN ;WAKE UP! .SYSTM .IRMV ;REMOVE DEVICE FROM SYSTEM JMP .+1 ;SWALLOW ERROR LDA 2,-157,3 ;GET TABLE ADDRESS AGAIN SUB 0,0 STA 0,TABX,2 ;CLEAR ABSOLUTE VECTOR STA 0,TABY,2 LDA 0,TJDV2,2 ;GET SECOND DEVICE CODE MOV 0,0,SNR ;IS THERE ONE? J@MP ERROF-1 ;NOPE! LDA 1,.NIOC ;GET CLEAR SKELETON ADD 0,1 ;ADD IT WITH DEVICE CODE INTDS ;WATCH OUT! STA 1,.+1 ;;;STORE INSTRUCTION 0 ;;; NIOC DEV INTEN ;ALL CLEAR! .SYSTM .IRMV ;REMOVE DEVICE SERVICING JMP .+1 ;NO ERROR SUB 0,0,SKP0 ;FLAG NO ERROR ERROF: LDA 0,C99 ;GET ERROR CODE STA 0,@-166,3 ;RETURN TO USER JMP @.FRET ;ALL DONE ;******************************************************** ; ; JOYSTICK/DATA TABLET READ ; ; CALL JGTRD(IX,IY,IPEN,IPRI,IER) ; ; IX = RETURNED X C!OORDINATE (0-7777) ; IY = RETURNED Y COORDINATE (0-7777) ; IPEN = RETURNED PEN POSITION ; IPRI = 0 => PRIMARY DEVICE CONFIGURATION ; = 1 => SECONDARY DEVICE CONFIGURATION ; IER = 0 => NO ERROR ; = 99. => DEVICE TABLE DOES NOT EXISTK ; ;******************************************************** 20 JGTRD: JSR @.CPYL LDA 1,@-164,3 ;GET CONFIGURATION CODE JSR PCON ;PICK THE CONFIGURATION JMP ERRRD ;NO GOOD! LDA 0,XCUR,2 ;GET CURRENT X COORDINATE LDA 1,C2K ;MAKE IT CORRESPOND SU;B 1,0 ;TO SCREEN COORDINATES STA 0,@-167,3 ;RETURN TO FORTRAN LDA 0,YCUR,2 ;GET CURRENT Y COORDINATE SUB 1,0 ;MAKE Y AGREE TOO! STA 0,@-166,3 ;RETURN LDA 0,PEN1,2 ;GET PEN STATE LDA 1,C10 ;GET MINIMUM COUNT FOR DE BOUNCE SUBZ# 0,1,SZC ;CHECK TO }_SEE PEN COUNT IS HIGH ENOUGH SUB 0,0,SKP ;NOT HIGH ENOUGH SUBZL 0,0 ;HIGH ENOUGH -- RETURN A 1 STA 0,@-165,3 ;RETURN IT SUB 0,0,SKP ;NO ERROR FLAG ERRRD: LDA 0,C99 ;FLAG THE ERROR STA 0,@-163,3 ;STORE THE ERROR JMP @.FRET ;ALL DONE C10: 10 C2K: 2048. JGTAB: .+1 JT000 JT001 JT002 JT003 JT004 JT005 JT006 JT007 JT008 JGLEN = .-JGTAB-2 ;******************************************************** ; ; JOYSTICK/DATA TABLET LIMIT SET ; ; CALL GTLIM(IXL,IYL,IXR,IYU) ; CALL GTLI1(IXL,IYL,IXR,I YU,IPRI) ; ;******************************************************** 20 GTLIM: JSR @.CPYL SUB 1,1 ;PRIMARY JOY/TABLET JMP GT10 20 GTLI1: JSR @.CPYL LDA 1,@-163,3 ;GET CONFIGURATION FLAG GT10: JSR @.PCON ;PICK THE CONFIGURATION JMP @.FRET ;NO TABLhE -- BUMMER LDA 1,C4K LDA 0,@-167,3 ;GET LOWER-LEFT X ADD 1,0 STA 0,CLX,2 ;STORE IT LDA 0,@-166,3 ;GET LOWER-LEFT Y ADD 1,0 STA 0,CLY,2 ;STORE IT LDA 0,@-165,3 ;GET UPPER-RIGHT X ADD 1,0 STA 0,CUX,2 ;STORE IT LDA 0,@-164,3 ;GET UPPER-RIGHT Yɘ ADD 1,0 STA 0,CUY,2 ;STORE JMP @.FRET ;ALL DONE .PCON: PCON ;********************************************************** ; ; JOYSTICK/DATA TABLET RAW DATA READ ; ; CALL GTRAW(IDIA,IDIB,IDIC,IPRI,IER) ; ;********************************************:E************** 20 GTRAW: JSR @.CPYL LDA 1,@-164,3 ;GET CONFIGURATION CODE JSR @.PCON ;PICK THE TABLE ADDRESS JMP ERRAW ;BAD CODE LDA 0,DINA,2 ;GET DIA DATA STA 0,@-167,3 ;RETURN TO USER LDA 0,DINB,2 ;GET DIB DATA STA 0,@-166,3 ;RETURN TO USER 0DLDA 0,DINC,2 ;GET DIC DATA STA 0,@-165,3 ;RETURN TO USER SUB 0,0,SKP ;CLEAR ERROR ERRAW: LDA 0,CC99 ;GET ERROR CODE STA 0,@-163,3 ;RETURN ERROR CODE JMP @.FRET ;ALL DONE CC99: 99. ;******************************************************** ; ; JOYSTICK/DATA TABLET INTERRUPT SERVICING ; THIS IS THE COMMON INTERRUPT SERVICING CODE. ; ENTRY SHOULD BE MADE WITH THE ACTUAL I-O ; INSTRUCTIONS ALREADY EXECUTED. AC0,1,2 ; SHOULD CONTAIN THE DIA,B,C DATA. AC3 ; SHOULD CONTAIN THE DEVICE TABLE ADDRESS. ; ;******************************************************** ;******************************** ; JOYSTICK SERVICING ;******************************** JOYIN: STA 0,DINA,3 ;STORE DIA DATA STA 1,DINB,3 ;STORE DIB DATA LDA 1,C100 ;GET PEN POSITION BIT AND 0<,1,SZR ;ISOLATE THE BIT SUB 1,1,SKP ;FLAG PEN UP SUBZL 1,1 ;FLAG PEN DOWN STA 1,DINC,3 ;STORE AS DIC DATA LDA 1,C7 ;GET THREE BIT MASK LDA 2,C7 AND 0,1 ;ISOLATE DELTA Y MOVZR 0,0 MOVZR 0,0 MOVZR 0,0 ;MOVE DELTA X INTO POSITION AND 2,0 ;ISOLATE IT LDA 2,JSTAB ;GET TABLE OF DISPLACEMENTS ADD 0,2 ;ADD IN JOYSTICK POSITION LDA 0,0,2 ;GET REAL DISPLACEMENT LDA 2,JSTAB ;DO IT AGAIN FOR Y ADD 1,2 LDA 1,0,2 LDA 2,XCUR,3 ;GET CURRENT X POSITION ADD 2,0 ;MAKE A NEW CURRENT X LDA 2,YCUR,` 3 ;GET CURRENT Y POSITION ADD 2,1 ;ADD IT INTO Y JMP COMINT ;JOIN COMMON INTERRUPT SERVICING JSTAB: .+1 -40 -14 -1 0 0 1 14 40 ;******************************** ; TABLET ENTRY POINT ;******************************** TABIN: LDA 2,TMASK,3 ;GET< TABLET MASK SUBZ# 0,2,SNC ;CHECK FOR OVERFLOW MOV 2,0 ;MAX INTO REGISTER SUBZ# 1,2,SNC MOV 2,1 AND 2,0 ;ISOLATE X AND 2,1 ;ISOLATE Y ;******************************** ; COMMON INTERRUPT SERVICE ;******************************** COMINT: MOVL# 0,0,SZC ;CHECK FOR NEGATIVE NUMBER SUB 0,0 ;CLEAR NEGATIVE NUMBER MOVL# 1,1,SZC SUB 1,1 LDA 2,CUX,3 ;GET HIGH X LIMIT SUBZ# 0,2,SNC ;CHECK IT MOV 2,0 ;TOO HIGH -- THAT'S THE LIMIT LDA 2,CUY,3 ;GET HIGH Y LIMIT SUBZ# 1,2,SNC MOV 2,1 LDA 2,CLRX,3 ;GET LOW X LIMIT SUBZ# 2,0,SNC ;CHECK IT MOV 2,0 LDA 2,CLY,3 ;GET LOW Y LIMIT SUBZ# 2,1,SNC ;CHECK THIS ONE MOV 2,1 ;WRONG! STA 0,XCUR,3 ;STORE AS CURRENT POSITION STA 1,YCUR,3 LDA 2,C4K ;GET OFFSET TO SCREEN CENTER SUB 2,0 ;FIX X SUB 2,1 ;FIX Y LDA 2,C7777 ;GET TWELVE BIT MASK AND 2,0 AND 2,1 LDA 2,XMASK,3 ;GET GRAPHICS COMMAND WORD FOR X ADD 2,0 ;ADD IT IN LDA 2,YMASK,3 ;GET GRAPHICS COMMAND WORD FOR Y ADD 2,1 STA 0,TABX,3 ;STORE GRAPHICS INSTRUCTION STA 1,TABY,3 LDA 2,ɽDINC,3 ;GET STATUS WORD SUB 0,0 MOVR 2,2,SZC ;CHECK PEN BIT INC 0,0 LDA 1,PEN1,3 ;GET CURRENT PEN POSITION MOV 0,0,SNR ;CHCEK CURRENT STATUS SUB 1,1 INC 1,1,SNR ;ONE MORE TIME IT WAS ON LDA 1,C100 ;MAKE REAL SURE STA 1,PEN1,3 ;SAVE IT LDA 2,SAC2,3 ;GET SAVED ACCUMULATORS LDA 3,SAC3,3 ;GET AC3 .UIEX ;RETURN TO OPERATING SYSTEM C7: 7 C100: 100 C4K: 4000 C7777: 7777 .END JOY27.SR+O;**************************************************************** ; ; NAME: JOY27.SR PART NO: 300-0293 ; ; DESCRIPTION: ; DEVICE DEFINITION MODULE FOR JOYSTICK. ; THIS TABLE DEFINES CONFIGURATION "0". ; ; REVISION HISTORY: ; REV DATE DESCRIPTION ; 00 11/05/77 ; ;**************************************************************** .TITLE JOY27 .ENT JT000 .EXTN JOYIN JOY = 27 .NREL ;******************************** ; DEVICE TABLE ;******************************** JTAB: JT000: JOY ; TJDEV -- rDEVICE CODE 0 ; TJDV2 -- SECOND DEVICE CODE .+1 ; .TABX -- POINTER TO ABSOLUTE VECTOR 0 ; TABX -- X PORTION OF ABSOLUTE VECTOR 0 ; TABY -- Y PORTION OF ABSOLUTE VECTOR 170001 ; XXXXX -- RETURN FOR ABSOLUTE VECTOR SUBROUTINE 12 ; CLX -- LOWER LEFT LIMIT X 12 ; CLY -- LOWER LEFT LIMIT Y 7760 ; CUX -- UPPER RIGHT LIMIT X 7760 ; CUY -- UPPER RIGHT LIMIT Y 0 ; TMASK -- TABLET MASK WORD 0 ; XCUR -- CURRENT X POSTION (POSITIVE) 0 ; YCUR -- CURRENT Y POSITION (POSITIVE) 0 ; XMA6`SK -- MASK TO ADD TO X COORDINATE 0 ; YMASK -- MASK TO ADD TO Y COORDINATE 0 ; PEN1 -- PEN/FLAG 1 0 ; PEN2 0 ; PEN3 0 ; PEN4 0 ; DINA -- DIA DATA SCRATCH WORD 0 ; DINB -- DIB DATA SCRATCH WORD 0 ; DINC -- DIC DATA SCRATCH WORD SAC2: 0 #); SAC2 -- AC2 SAVE SCRATCH WORD SAC3: 0 ; SAC3 -- AC3 SAVE SCRATCH WORD .+1 ; TJDCT -- DCT ADDRESS DSAVE ; -- FIRST WORD OF DCT (STATE SAVE AREA) 1B10+1B14 ; -- MASK BITS JINT ; -- INTERRUPT SERVICING ADDRESS DSAVE: .BLK 10 ;ST ATE SAVE AREA (FOR RTOS) ;******************************** ; INTERRUPT SERVICE LOCATION ;******************************** JINT: STA 3,SAC3 ;STORE ACCUMULATORS STA 2,SAC2 LDA 3,.JTAB ;GET STACK ADDRESS DIAS 0,JOY ;GET JOYSTICK DATA JMP @.+1 JOYIN .JTAB: JTAB .END TAB27.SR4)';**************************************************************** ; ; NAME: TAB27.SR PART NO: 300-0295 ; ; DESCRIPTION: ; DEVICE DEFINITION MODULE FOR 10 BIT DIGITIZER. ; THIS FITS THE SUMMAGRAPHICS HW SERIES TABLET. ; THIS TABLE IS SET FOR DEVICE CODXE 27. ; THIS TABLE DEFINES CONFIGURATION "2". ; ; REVISION HISTORY: ; REV DATE DESCRIPTION ; 00 11/05/77 ; ;**************************************************************** .TITLE TAB27 .ENT JT002 .EXTN TABIN TAB = 27 .NREL ;*****************\*************** ; DEVICE TABLE ;******************************** JTAB: JT002: TAB ; TJDEV -- DEVICE CODE 0 ; TJDV2 -- SECOND DEVICE CODE .+1 ; .TABX -- POINTER TO ABSOLUTE VECTOR 0 ; TABX -- X PORTION OF ABSOLUTE VECTOR 0 ; TABY -- Y PORTION OF ABSOLUTE VECTOR 170001 ; XXXXX -- RETURN FOR ABSOLUTE VECTOR SUBROUTINE 12 ; CLX -- LOWER LEFT LIMIT X 12 ; CLY -- LOWER LEFT LIMIT Y 7760 ; CUX -- UPPER RIGHT LIMIT X 7760 ; CUY -- UPPER RIGHT LIMIT Y 7777 ; TMASK -- TABLET MASK WORD), 0  ; XCUR -- CURRENT X POSTION (POSITIVE) 0 ; YCUR -- CURRENT Y POSITION (POSITIVE) 0 ; XMASK -- MASK TO ADD TO X COORDINATE 0 ; YMASK -- MASK TO ADD TO Y COORDINATE 0 ; PEN1 -- PEN/FLAG 1 0 ; PEN2 0 ; PEN3 0 ; PEN4 DINA = .-JTAB 0 ;= DINA -- DIA DATA SCRATCH WORD DINB = .-JTAB 0 ; DINB -- DIB DATA SCRATCH WORD DINC = .-JTAB 0 ; DINC -- DIC DATA SCRATCH WORD SAC2: 0 ; SAC2 -- AC2 SAVE SCRATCH WORD SAC3: 0 ; SAC3 -- AC3 SAVE SCRATCH WORD .+1 ; TJDCT -- DCT ADDRESS DSAVE ; -- FIRST WORD OF DCT (STATE SAVE AREA) 1B10+1B14 ; -- MASK BITS JINT ; -- INTERRUPT SERVICING ADDRESS DSAVE: .BLK 10 ;STATE SAVE AREA (FOR RTOS) ;******************************** ; INTERRUPT SERVICE LOCATION ;******************************** JINT: STA 3,SAC3 ;STORE ACCUMULATORS STA 2,SAC2 LDA 3,.JTAB ;GET STACK ADDRESS DIA 0,TAB ;GET JOYSTICK DATA DIB 1,TAB DICS 2,TAB STA 0,DINA,3 STA 1,DINB,3 STA 2,DINC,3 MOVZL 0,0 MOVZL 0,0 MOVZL 1,1 MOVZL 1,1 JMP @.+1 TABIN .JTAB: JTAB .END TAB67.SR4* ;**************************************************************** ; ; NAME: TAB67.SR PART NO: 300-0297 ; ; DESCRIPTION: ; DEVICE DEFINITION MODULE FOR 10 BIT DIGITIZER. ; THIS FITS THE SUMMAGRAPHICS HW SERIES TABLET. ; THIS TABLE DEFINES CONFIGURATIONa> "1". ; ; REVISION HISTORY: ; REV DATE DESCRIPTION ; 00 11/05/77 ; ;**************************************************************** .TITLE TAB67 .ENT JT001 .EXTN TABIN TAB = 67 .NREL ;******************************** ; DEVICE TABLE ;******************************** JTAB: JT001: TAB ; TJDEV -- DEVICE CODE 0 ; TJDV2 -- SECOND DEVICE CODE .+1 ; .TABX -- POINTER TO ABSOLUTE VECTOR 0 ; TABX -- X PORTION OF ABSOLUTE VECTOR 0 ; TABY -- Y PORTION OF ABSOLUTE VECTOR 170001 ; XXXXX -- RE2TURN FOR ABSOLUTE VECTOR SUBROUTINE 12 ; CLX -- LOWER LEFT LIMIT X 12 ; CLY -- LOWER LEFT LIMIT Y 7760 ; CUX -- UPPER RIGHT LIMIT X 7760 ; CUY -- UPPER RIGHT LIMIT Y 7777 ; TMASK -- TABLET MASK WORD 0 ; XCUR -- CURRENT X POSTION (POSIT9IVE) 0 ; YCUR -- CURRENT Y POSITION (POSITIVE) 0 ; XMASK -- MASK TO ADD TO X COORDINATE 0 ; YMASK -- MASK TO ADD TO Y COORDINATE 0 ; PEN1 -- PEN/FLAG 1 0 ; PEN2 0 ; PEN3 0 ; PEN4 DINA = .-JTAB 0 ; DINA -- DIA DATA SCRATCH WORD DINB = .-JTAB 0 ; DINB -- DIB DATA SCRATCH WORD DINC = .-JTAB 0 ; DINC -- DIC DATA SCRATCH WORD SAC2: 0 ; SAC2 -- AC2 SAVE SCRATCH WORD SAC3: 0 ; SAC3 -- AC3 SAVE SCRATCH WORD .+1 ; TJDCT -- DCT ADDRESS DSAVE ; -- FIRST WORD OF DCT (STATE S,AVE AREA) 1B10+1B14 ; -- MASK BITS JINT ; -- INTERRUPT SERVICING ADDRESS DSAVE: .BLK 10 ;STATE SAVE AREA (FOR RTOS) ;******************************** ; INTERRUPT SERVICE LOCATION ;******************************** JINT: STA 3,SAC3 ;STORE D ACCUMULATORS STA 2,SAC2 LDA 3,.JTAB ;GET STACK ADDRESS DIA 0,TAB ;GET JOYSTICK DATA DIB 1,TAB DICS 2,TAB STA 0,DINA,3 STA 1,DINB,3 STA 2,DINC,3 MOVZL 0,0 MOVZL 0,0 MOVZL 1,1 MOVZL 1,1 JMP @.+1 TABIN .JTAB: JTAB .END JT27.SR4*;**************************************************************** ; ; NAME: JT27.SR PART NO: 300-0299 ; ; DESCRIPTION: ; DEVICE DEFINITION MODULE FOR JOYSTICK/ ; DATA TABLET COMBINATION USING THE MG-760 ; CONVERTER BOX ON DEVICE CODE 27. THE ; DIGITIp ZER IS SET FOR A 10 BIT MODEL ; (SUCH AS THE SUMMAGRAPHICS HW SERIES). ; THIS TABLE DEFINES CONFIGURATION "3". ; ; REVISION HISTORY: ; REV DATE DESCRIPTION ; 00 11/05/77 ; ;**************************************************************** .TITLE JT27 )e .ENT JT003 .EXTN JOYIN,TABIN TAB = 27 .NREL ;******************************** ; DEVICE TABLE ;******************************** JTAB: JT003: TAB ; TJDEV -- DEVICE CODE 0 ; TJDV2 -- SECOND DEVICE CODE .+1 ; .TABX -- POINTER TO ABSOLUTE VECTOR X 0 ; TABX -- X PORTION OF ABSOLUTE VECTOR 0 ; TABY -- Y PORTION OF ABSOLUTE VECTOR 170001 ; XXXXX -- RETURN FOR ABSOLUTE VECTOR SUBROUTINE 12 ; CLX -- LOWER LEFT LIMIT X 12 ; CLY -- LOWER LEFT LIMIT Y 7760 ; CUX -- UPPER RIGHT LIMIT X 7.760 ; CUY -- UPPER RIGHT LIMIT Y 7777 ; TMASK -- TABLET MASK WORD 0 ; XCUR -- CURRENT X POSTION (POSITIVE) 0 ; YCUR -- CURRENT Y POSITION (POSITIVE) 0 ; XMASK -- MASK TO ADD TO X COORDINATE 0 ; YMASK -- MASK TO ADD TO Y COORDINATE 0 ; PEN1q -- PEN/FLAG 1 0 ; PEN2 0 ; PEN3 0 ; PEN4 DINA = .-JTAB 0 ; DINA -- DIA DATA SCRATCH WORD DINB = .-JTAB 0 ; DINB -- DIB DATA SCRATCH WORD DINC = .-JTAB 0 ; DINC -- DIC DATA SCRATCH WORD SAC2: 0 ; SAC2 -- AC2 SAVE SCRATCH WORD SAC3: 0 ; SAC3 -- AC3 SAVE SCRATCH WORD .+1 ; TJDCT -- DCT ADDRESS DSAVE ; -- FIRST WORD OF DCT (STATE SAVE AREA) 1B10+1B14 ; -- MASK BITS JINT ; -- INTERRUPT SERVICING ADDRESS DSAVE: .BLK 10 ;STATE SAVE AREA (FOR RTOS) ;******************************** ; INTERRUPT SERVICE LOCATION ;******************************** JINT: STA 3,SAC3 ;STORE ACCUMULATORS STA 2,SAC2 LDA 3,.JTAB ;GET STACK ADDRESS DIC 2,TAB ;GET STATUS WORD LDA 1,BIT8 ;GET SPECIAL BIT AND 2,1,SNR ;CHECK FOR TABLET OR JOYSTICK JMP JOYST ;0 => JOYSTICK DIA 0,TAB ;GET DATA TABLET DATA DIBS 1,TAB STA 0,DINA,3 STA 1,DINB,3 STA 2,DINC,3 MOVZL 0,0 MOVZL 0,0 MOVZL 1,1 MOVZL 1,1 JMP @.+1 TABIN JOYST: DIAS 0,TAB ;GET JOYSTICK DATA JMP @.+1 ;GO SERVICE IT JOYIN Q BIT8: 1B8 .JTAB: JTAB .END JT67.SR4+;**************************************************************** ; ; NAME: JT67.SR PART NO: 300-0301 ; ; DESCRIPTION: ; DEVICE DEFINITION MODULE FOR JOYSTICK/ ; DATA TABLET COMBINATION USING THE MG-760 ; CONVERTER BOX ON DEVICE CODE 67. THE ; DIGITIt!ZER IS SET FOR A 10 BIT MODEL ; (SUCH AS THE SUMMAGRAPHICS HW SERIES). ; THIS TABLE DEFINES CONFIGURATION "4". ; ; REVISION HISTORY: ; REV DATE DESCRIPTION ; 00 11/05/77 ; ;**************************************************************** .TITLE JT67 .f .ENT JT004 .EXTN JOYIN,TABIN TAB = 67 .NREL ;******************************** ; DEVICE TABLE ;******************************** JTAB: JT004: TAB ; TJDEV -- DEVICE CODE 0 ; TJDV2 -- SECOND DEVICE CODE .+1 ; .TABX -- POINTER TO ABSOLUTE VECTOR X 0 ; TABX -- X PORTION OF ABSOLUTE VECTOR 0 ; TABY -- Y PORTION OF ABSOLUTE VECTOR 170001 ; XXXXX -- RETURN FOR ABSOLUTE VECTOR SUBROUTINE 12 ; CLX -- LOWER LEFT LIMIT X 12 ; CLY -- LOWER LEFT LIMIT Y 7760 ; CUX -- UPPER RIGHT LIMIT X 7.760 ; CUY -- UPPER RIGHT LIMIT Y 7777 ; TMASK -- TABLET MASK WORD 0 ; XCUR -- CURRENT X POSTION (POSITIVE) 0 ; YCUR -- CURRENT Y POSITION (POSITIVE) 0 ; XMASK -- MASK TO ADD TO X COORDINATE 0 ; YMASK -- MASK TO ADD TO Y COORDINATE 0 ; PEN1q -- PEN/FLAG 1 0 ; PEN2 0 ; PEN3 0 ; PEN4 DINA = .-JTAB 0 ; DINA -- DIA DATA SCRATCH WORD DINB = .-JTAB 0 ; DINB -- DIB DATA SCRATCH WORD DINC = .-JTAB 0 ; DINC -- DIC DATA SCRATCH WORD SAC2: 0 ; SAC2 -- AC2 SAVE SCRATCH WORD SAC3: 0 ; SAC3 -- AC3 SAVE SCRATCH WORD .+1 ; TJDCT -- DCT ADDRESS DSAVE ; -- FIRST WORD OF DCT (STATE SAVE AREA) 1B10+1B14 ; -- MASK BITS JINT ; -- INTERRUPT SERVICING ADDRESS DSAVE: .BLK 10 ;STATE SAVE AREA (FOR RTOS) ;******************************** ; INTERRUPT SERVICE LOCATION ;******************************** JINT: STA 3,SAC3 ;STORE ACCUMULATORS STA 2,SAC2 LDA 3,.JTAB ;GET STACK ADDRESS DIC 2,TAB ;GET STATUS WORD LDA 1,BIT8 ;GET SPECIAL BIT AND 2,1,SNR ;CHECK FOR TABLET OR JOYSTICK JMP JOYST ;0 => JOYSTICK DIA 0,TAB ;GET DATA TABLET DATA DIBS 1,TAB STA 0,DINA,3 STA 1,DINB,3 STA 2,DINC,3 MOVZL 0,0 MOVZL 0,0 MOVZL 1,1 MOVZL 1,1 JMP @.+1 TABIN JOYST: DIAS 0,TAB ;GET JOYSTICK DATA JMP @.+1 ;GO SERVICE IT JOYIN Q BIT8: 1B8 .JTAB: JTAB .END JTXX.SR4,G~;**************************************************************** ; ; NAME: JTXX.SR PART NO: 300-0303 ; ; DESCRIPTION: ; DEVICE DEFINITION MODULE FOR JOYSTICK/ ; DATA TABLET COMBINATION: WHEN ; DATA TABLET IS ON (DEVICE 67), USE ; ITS INPUT. OTHERWI_SE USE JOYSTICK (DEVICE ; 27). TABLET IS 10 BIT (SUMMA HW SERIES). ; ; REVISION HISTORY: ; REV DATE DESCRIPTION ; 00 11/05/77 ; ;**************************************************************** .TITLE JTXX .ENT JT005 .EXTN JOYIN,TABIN,.UIEX JOY N = 27 TAB = 67 .NREL ;******************************** ; DEVICE TABLE ;******************************** JTAB: JT005: TAB ; TJDEV -- DEVICE CODE JOY ; TJDV2 -- SECOND DEVICE CODE .+1 ; .TABX -- POINTER TO ABSOLUTE VECTOR 0 ; TABX -- X PORTION OF ABSOLUTE VECTOR 0 ; TABY -- Y PORTION OF ABSOLUTE VECTOR 170001 ; XXXXX -- RETURN FOR ABSOLUTE VECTOR SUBROUTINE 12 ; CLX -- LOWER LEFT LIMIT X 12 ; CLY -- LOWER LEFT LIMIT Y 7760 ; CUX -- UPPER RIGHT LIMIT X 7760 ; CUY -- UPPER RIGHT LIMIT Y 7777 ; TMASK -- TABLET MASK WORD 0 ; XCUR -- CURRENT X POSTION (POSITIVE) 0 ; YCUR -- CURRENT Y POSITION (POSITIVE) 0 ; XMASK -- MASK TO ADD TO X COORDINATE 0 ; YMASK -- MASK TO ADD TO Y COORDINATE 0 ; PEN1 -- PEN/FLAG 1 0 ; PENҫ2 0 ; PEN3 0 ; PEN4 DINA = .-JTAB 0 ; DINA -- DIA DATA SCRATCH WORD DINB = .-JTAB 0 ; DINB -- DIB DATA SCRATCH WORD DINC = .-JTAB 0 ; DINC -- DIC DATA SCRATCH WORD SAC2: 0 ; SAC2 -- AC2 SAVE SCRATCH WORD SAC3: 0 ; SAC3 -- AC3 SAVE SC!RATCH WORD .+1 ; TJDCT -- DCT ADDRESS DSAVE ; -- FIRST WORD OF DCT (STATE SAVE AREA) 1B10+1B14 ; -- MASK BITS DINT ; -- INTERRUPT SERVICING ADDRESS .+1 ; TJDC2 -- SECOND DCT ADDRESS DSAV2 1B10+1B14 JINT DSAVE: .BLK 10 ;STATE SAVE AREA (FOR RTOS) DSAV2: .BLK 10 ;******************************** ; INTERRUPT SERVICE LOCATION ;******************************** JINT: ISZ JCNT ;ONE MORE JOYSTICK INTERRUPT LDA 0,JCNT ;GET CURRENT COUNT LDA 1,C20 ;GET TIME-OUT COUNT SUBZ 0,1,SZCQ ;CHECK IT JMP JEXIT ;NOT ENOUGH CLICKS YET STA 3,SAC3 ;SAVE ACCUMULATORS STA 2,SAC2 LDA 3,.JTAB ;GET TABLE ADDRESS DIAS 0,JOY ;TO INPUT JMP @.+1 ;GO TO COMMON CODE JOYIN JEXIT: NIOS JOY ;RESTART JOYSTICK .UIEX DINT: SUB 0,0 STA 0,JCNT ;FLAG AS ҷDATA TABLET ON STA 3,SAC3 ;STORE ACCUMULATORS STA 2,SAC2 LDA 3,.JTAB ;GET STACK ADDRESS DIC 2,TAB ;GET STATUS WORD LDA 1,BIT8 ;GET SPECIAL BIT AND 2,1,SNR ;CHECK FOR TABLET OR JOYSTICK JMP JOYST ;0 => JOYSTICK DIA 0,TAB ;GET DATA TABLET DATA DIBS 1,TAB STA 0,DINA,3 STA 1,DINB,3 STA 2,DINC,3 MOVZL 0,0 MOVZL 0,0 MOVZL 1,1 MOVZL 1,1 JMP @.+1 TABIN JOYST: DIAS 0,TAB ;GET JOYSTICK DATA JMP @.+1 ;GO SERVICE IT JOYIN BIT8: 1B8 C20: 20 JCNT: 0 .JTAB: JTAB .END TAB672.SR4,|;**************************************************************** ; ; NAME: TAB672.SR PART NO: 300-0305 ; ; DESCRIPTION: ; DEVICE DEFINITION MODULE FOR 11 BIT DIGITIZER. ; THIS FITS THE SUMMAGRAPHICS ID SERIES TABLET. ; THIS TABLE DEFINES CONFIGURATIO{RN "6". ; ; REVISION HISTORY: ; REV DATE DESCRIPTION ; 00 11/05/77 ; ;**************************************************************** .TITLE TAB67 .ENT JT006 .EXTN TABIN TAB = 67 .NREL ;******************************** ; DEVICE TABLE ;******************************** JTAB: JT006: TAB ; TJDEV -- DEVICE CODE 0 ; TJDV2 -- SECOND DEVICE CODE .+1 ; .TABX -- POINTER TO ABSOLUTE VECTOR 0 ; TABX -- X PORTION OF ABSOLUTE VECTOR 0 ; TABY -- Y PORTION OF ABSOLUTE VECTOR 170001 ; XXXXX -- R$ETURN FOR ABSOLUTE VECTOR SUBROUTINE 12 ; CLX -- LOWER LEFT LIMIT X 12 ; CLY -- LOWER LEFT LIMIT Y 7760  ; CUX -- UPPER RIGHT LIMIT X 7760 ; CUY -- UPPER RIGHT LIMIT Y 7777 ; TMASK -- TABLET MASK WORD 0 ; XCUR -- CURRENT X POSTION (POSIlTIVE) 0 ; YCUR -- CURRENT Y POSITION (POSITIVE) 0 ; XMASK -- MASK TO ADD TO X COORDINATE 0 ; YMASK -- MASK TO ADD TO Y COORDINATE 0 ; PEN1 -- PEN/FLAG 1 0 ; PEN2 0 ; PEN3 0 ; PEN4 DINA = .-JTAB 0 ; DINA -- DIA DATA SCRATCH WORD DINB = .-JTAB 0 ; DINB -- DIB DATA SCRATCH WORD DINC = .-JTAB 0 ; DINC -- DIC DATA SCRATCH WORD SAC2: 0 ; SAC2 -- AC2 SAVE SCRATCH WORD SAC3: 0 ; SAC3 -- AC3 SAVE SCRATCH WORD .+1 ; TJDCT -- DCT ADDRESS DSAVE ; -- FIRST WORD OF DCT (STATE DSAVE AREA) 1B10+1B14 ; -- MASK BITS JINT ; -- INTERRUPT SERVICING ADDRESS DSAVE: .BLK 10 ;STATE SAVE AREA (FOR RTOS) ;******************************** ; INTERRUPT SERVICE LOCATION ;******************************** JINT: STA 3,SAC3 ;STORrE ACCUMULATORS STA 2,SAC2 LDA 3,.JTAB ;GET STACK ADDRESS DIA 0,TAB ;GET JOYSTICK DATA  DIB 1,TAB DICS 2,TAB STA 0,DINA,3 STA 1,DINB,3 STA 2,DINC,3 MOVZL 0,0 MOVZL 1,1 JMP @.+1 TABIN .JTAB: JTAB .END JOY67.SR6T;**************************************************************** ; ; NAME: JOY67.SR PART NO: 300-0323 ; ; DESCRIPTION: ; DEVICE DEFINITION MODULE FOR JOYSTICK. ; THIS TABLE DEFINES CONFIGURATION "8". ; ; REVISION HISTORY: ; REV DATE DESCRIPTION ;  00 11/05/77 ; ;**************************************************************** .TITLE JOY67 .ENT JT008 .EXTN JOYIN JOY = 67 .NREL ;******************************** ; DEVICE TABLE ;******************************** JTAB: JT008: JOY ; TJDEV -- rDEVICE CODE 0 ; TJDV2 -- SECOND DEVICE CODE .+1 ; .TABX -- POINTER TO ABSOLUTE VECTOR 0 ; TABX -- X PORTION OF ABSOLUTE VECTOR 0 ; TABY -- Y PORTION OF ABSOLUTE VECTOR 170001 ; XXXXX -- RETURN FOR ABSOLUTE VECTOR SUBROUTINE 12 ; CLX -- LOWER LEFT LIMIT X 12 ; CLY -- LOWER LEFT LIMIT Y 7760 ; CUX -- UPPER RIGHT LIMIT X  7760 ; CUY -- UPPER RIGHT LIMIT Y 0 ; TMASK -- TABLET MASK WORD 0 ; XCUR -- CURRENT X POSTION (POSITIVE) 0 ; YCUR -- CURRENT Y POSITION (POSITIVE) 0 ; XMA6`SK -- MASK TO ADD TO X COORDINATE 0 ; YMASK -- MASK TO ADD TO Y COORDINATE 0 ; PEN1 -- PEN/FLAG 1 0 ; PEN2 0 ; PEN3 0 ; PEN4 0 ; DINA -- DIA DATA SCRATCH WORD 0 ; DINB -- DIB DATA SCRATCH WORD 0 ; DINC -- DIC DATA SCRATCH WORD SAC2: 0 #); SAC2 -- AC2 SAVE SCRATCH WORD SAC3: 0 ; SAC3 -- AC3 SAVE SCRATCH WORD .+1 ; TJDCT -- DCT ADDRESS DSAVE ; -- FIRST WORD OF DCT (STATE SAVE AREA) 1B10+1B14 ; -- MASK BITS JINT ; -- INTERRUPT SERVICING ADDRESS DSAVE: .BLK 10 ;ST ATE SAVE AREA (FOR RTOS) ;******************************** ; INTERRUPT SERVICE LOCATION ;******************************** JINT: STA 3,SAC3 ;STORE ACCUMULATORS STA 2,SAC2 LDA 3,.JTAB ;GET STACK ADDRESS DIAS 0,JOY ;GET JOYSTICK DATA JMP @.+1 JOYIN .JTAB: JTAB .END TAB673.SR4-3;**************************************************************** ; ; NAME: TAB673.SR PART NO: 300-0325 ; ; DESCRIPTION: ; DEVICE DEFINITION MODULE FOR LARGE (42" X 60") ; DIGITIZER. DATA IS NOT SHIFTED FOR FIT ONTO ; SCREEN. LOWER LEFT CORNER OF TABLET IS USED FOR ; MENU/SCREEN MANIPULATION. ANY OTHER DATA IS ; RETRIEVED BY THE CALL TO GTRAW (GET RAW DIGITIZER ; DATA). ; THIS FITS THE SUMMAGRAPHICS ID SERIES TABLET. ; THIS TABLE DEFINES CONFIGURATION "7". ; ; REVISION HISTORY: ; REV DATE DESCRIPsTION ; 00 11/05/77 ; ;**************************************************************** .TITLE TAB67 .ENT JT007 .EXTN TABIN TAB = 67 .NREL ;******************************** ; DEVICE TABLE ;******************************** JTAB: JT007: TAB ; T^JDEV -- DEVICE CODE 0 ; TJDV2 -- SECOND DEVICE CODE .+1 ; .TABX -- POINTER TO ABSOLUTE VECTOR 0 ; TABX -- X PORTION OF ABSOLUTE VECTOR 0 ; TABY -- Y PORTION OF ABSOLUTE VECTOR 170001 ; XXXXX -- RETURN FOR ABSOLUTE VECTOR SUBROUTINE 12 ; CLX p -- LOWER LEFT LIMIT X 12 ; CLY -- LOWER LEFT LIMIT Y 7760 ; CUX -- UPPER RIGHT LIMIT X 7760 ; CUY -- UPPER RIGHT LIMIT Y 7777 ; TMASK -- TABLET MASK WORD 0 ; XCUR -- CURRENT X POSTION (POSITIVE) 0 ; YCUR -- CURRENT Y POSITION (POSITIVEӜ) 0 ; XMASK -- MASK TO ADD TO X COORDINATE 0 ; YMASK -- MASK TO ADD TO Y COORDINATE 0 ; PEN1 -- PEN/FLAG 1 0 ; PEN2 0 ; PEN3 0 ; PEN4 DINA = .-JTAB 0 ; DINA -- DIA DATA SCRATCH WORD DINB = .-JTAB 0 ; DINB -- DIB DATA SCRATCH WORD DINC = .-JTAB 0 ; DINC -- DIC DATA SCRATCH WORD SAC2: 0 ; SAC2 -- AC2 SAVE SCRATCH WORD SAC3: 0 ; SAC3 -- AC3 SAVE SCRATCH WORD .+1 ; TJDCT -- DCT ADDRESS DSAVE ; -- FIRST WORD OF DCT (STATE SAVE AREA) 1B10+1B14 ; -- MASK BITS JINT = ; -- INTERRUPT SERVICING ADDRESS DSAVE: .BLK 10 ;STATE SAVE AREA (FOR RTOS) ;******************************** ; INTERRUPT SERVICE LOCATION ;******************************** JINT: STA 3,SAC3 ;STORE ACCUMULATORS STA 2,SAC2 LDA 3,.JTAB ;GET STAC@lK ADDRESS DIA 0,TAB ;GET JOYSTICK DATA DIB 1,TAB DICS 2,TAB STA 0,DINA,3 STA 1,DINB,3 STA 2,DINC,3 JMP @.+1 TABIN .JTAB: JTAB .END SPRINGS.FR+ SUBROUTINE SPRINGS C ******************************************************* C * * C * NAME: SPRINGS.FR * C * COMPILE:SPRDATA, SPRINGS.FR * C * RUN: SPRINGS * C * DATE: 03/04/77 * C * REV#: * C * DESCR: PROGRAM TO DEMONSTRATE DYNAMIC * C * DISPLAYS - TWO MASSES, THREE SPRINGS * C * IN A LINE AT REST * C * * C ********************************************************* C C REAL MENUX COMMON /DLIST/ IBUF (5000) COMMON / CONS1 / MENUX,MENU,ICRC,XL,XR,Y0,MEN(2,3)  2 ,IPM(2),X(2),Y(2),NUM COMMON / SPRKON / SK1, SK2, SK3, DT, DAMP C CALL BIN5 (IBUF,5000) C C BUILD THE SUBROUTINE TO DRAW A CIRCLE C CALL BINIT (4,0,0,4.,4.) CALL BPLBL(ICRC) CALL BDRWR ( 0., 20., 0,0,0) CALL BDRWR (-8., -2., 1,0,0) CALLv BDRWR (-6., -4., 1,0,0) CALL BDRWR (-4., -6., 1,0,0) CALL BDRWR (-2., -8., 1,0,0) CALL BDRWR ( 2., -8., 1,0,0) CALL BDRWR ( 4., -6., 1,0,0) CALL BDRWR ( 6., -4., 1,0,0) CALL BDRWR ( 8., -2., 1,0,0) CALL BDRWR ( 8., 2., 1,0,0) CALL BDRWR ( 6., 4.?, 1,0,0) CALL BDRWR ( 4., 6., 1,0,0) CALL BDRWR ( 2., 8., 1,0,0) CALL BDRWR (-2., 8., 1,0,0) CALL BDRWR (-4., 6., 1,0,0) CALL BDRWR (-6., 4., 1,0,0) CALL BDRWR (-8., 2., 1,0,0) CALL BDRWR ( 0.,-20., 0,0,0) CALL BRETN (0) C C MENU SUBROUTINES {C CALL BINIT(3,0,0,4.,4.) CALL PONOF(4,0) CALL PXLT(3,-512.,-512.,0) CALL BPLBL(MEN(1,1)) CALL BDRWA ( MENUX, 1000., -15, 0,0 ) CALL BSTNG (15,3,0, "SET R. H. MASS", 14) CALL BPLBL(MEN(1,2)) CALL BDRWA(MENUX,950.,-15,0,0) CALL BSTNG (15,3,0, "SET L. H. MASS", 14) CALL BPLBL(MEN(1,3)) CALL BDRWA(MENUX,900.,-15,0,0) CALL BSTNG (15,3,0, "RELEASE", 7) CALL BDRWA(MENUX,850.,-15,0,0) CALL BSTNG (15,3,0,"EXIT",4) CALL BRETN(0) CALL BPLBL(MEN(2,1)) CALL BDRWA ( MENUX, 1000., -15, 0,0 ) CALL BSTNGI(15,3,0,"PAUSE",5) CALL BPLBL(MEN(2,2)) CALL BDRWA(MENUX,950.,-15,0,0) CALL BSTNG (15,3,0, "CONTINUE", 8) CALL BPLBL(MEN(2,3)) CALL BDRWA(MENUX,900.,-15,0,0) CALL BSTNG (15,3,0, "RETURN TO SETUP", 15) CALL BRETN(0) C C DRAW THE WALLS C CALL BINIT(5,0,0,4.,4.) CALL PXLT(5,-512.,-512.,0) CALL BDRWA ( XL, 540., 0, 0,0 ) CALL BDRWA ( XL, 460., 15, 0,0 ) CALL BDRWA ( 30., 450., 0, 0,0 ) CALL BDRWA ( XL, 470., 15, 0,0 ) CALL BDRWA ( 30., 470., 0, 0,0 ) CALL BDRWA ( XL, 490.,15, 0,0 ) CALL BDRWA ( 30., 490., 0, 0,0 ) CALL BDRWA ( XL, 510.,15, 0,0 ) CALL BDRWA ( 30., 510., 0, 0,0 ) CALL BDRWA ( XL, 530.,15, 0,0 ) C CALL BDRWA ( XR, 540., 0, 0,0 ) CALL BDRWA ( XR, 460.,15, 0,0 ) CALL BDRWA ( XR, 470., 0, 0,0 ) CALL BDRWA ( 970., 490.,15, 0,2 0 ) CALL BDRWA ( XR, 490., 0, 0,0 ) CALL BDRWA ( 970., 510., 15, 0,0 ) CALL BDRWA ( XR, 510., 0, 0,0 ) CALL BDRWA ( 970., 530., 15, 0,0 ) CALL BDRWA ( XR, 530., 0, 0,0 ) CALL BDRWA ( 970., 550., 15, 0,0 ) CALL BDRWA(XR,500.,0,0,0) IPM(1)=IGPTR(0) `O CALL BDRWA ( XR-300., Y0, 12, 0,0 ) CALL BDRWA (XR-300.,Y0,-15,0,0) CALL BJSLB ( ICRC,0) IPM(2)=IGPTR(0) CALL BDRWA ( XR-600., Y0, 12, 0,0 ) CALL BDRWA (XR-600.,Y0,-15,0,0) CALL BJSLB ( ICRC,0) CALL BDRWA(XL,Y0,12,0,0) CALL BPLBL(MENU) CALL BJSLB(MEN(1,1),0) C C CALL GTON(0) CALL DSTRT 10 SLI1 = 300. SLI2 = 300. SLI3 = 300. X1D=0. X2D = 0. Y1D = 0. Y2D = 0. JJS = 1 X(1)=XR-SLI1 Y(1)=Y0 X(2)=X(1)-SLI2 Y(2)=Y0 CALL BNSRT(2) CALL BPNT(5) CALL IPPTR(IPM(1)) CALL BDRWA(XR-300.,Y0,12,0,0) CALL BDRWA(XR-300.,Y0,-15,0,0) CALL IPPTR(IPM(2)) CALL BDRWA(XR-600.,Y0,12,0,0) CALL BDRWA(XR-600.,Y0,-15,0,0) CALL BGLBL(MENU) CALL BJSLB(MEN(1,1),0) CALL BINIT (1,2000,0,4.,4.) CALL PXLT (1,-512.,-512.,0) CALL BINIT (2,2000,0,4.,4.) CALL PXLT (2,-512.,-512.,0) CALL PONOF(3,0) C THE BASIC DRAWING IS DONE, NOW READ THE CURSOR C 50 CALL GRDTJ(XX,YY,IPEN) IF(IPEN.EQ.1) GOTO 50 CALL BPNT (3) CALL BNSRT (2) 100 CALL GTLIM(-1998,-1998,1998,1998) CALL GRDTJ ( XX, YY, IPEN ) IF(IPEN.EQ.0) GOTO 100 IF ( XX .LT. 288. ) GO TO 100 ITEM=(YY-331.)/50. IF(ITEM) 100,9999,105 105 CALL BGLBL(MEN(1,4-ITEM)) CALL BDRWA(MENUX,850.+ITEM*50.,-15,1,0) 110 CALL GRDTJ ( XX, YY, IPEN ) IF ( IPEN .NE. 0 ) GO TO 110 IF(ITEM.NE.1) GOTO 120 CALL BPNT(5) CALL BGLBL(MENU) CALL BJSLB(MEN(2,1),0) CALL BPNT(3) CALL BGLBL(MEN(1,3)) CALL BDRWA(MENUX,900.,-15,0,0) ITEM=2 GOTO 250 C 120 M=(4-ITEM) CALL GTLIM(-1968,-1968,1967,1967) 122 CALL GRDTJ ( XX, YY, IPEN ) IF ( IPEN .NE. 0 ) GO TO 122 124 CALL GRDTJ ( XX, YY, IPEN ) IF ( IPEN .EQ. 0 ) GO TO 124 CALL BPNT(5) 130 CALL IPPTR(IPM(M)) XX=XX+512. YY=YY+512. X(M)=XX Y(M)=YY CALL BDRWA ( XX, YY, 10+M*2, 0,0 ) CALL BDRWA(XX,YY,-15,0,0) CALL GRDTJ ( XX, YY, IPEN ) IF ( IPEN .NE. 0 ) GO TO 130 CALL BPNT(3) CALL BGLBL(MEN(1,M)) CALL BDRWA(MENUX,850.+ITEM*50.,-15,0,0) GO TO 100 C C 250 CALL BGLBL(MEN(2,2)) CALL BDRWA(MENUX,950.,-15,1,0) 260 CALL GRDTJ ( XX, YY, IPEN ) IF ( IPEN .NE. 0 ) GO TO 260 CALL BNSRT(0) DO 270 I=1,2 CALL BPNT (I) CALL BDRWA ( X(I), Y(I), 0, 0,0 ) 270 CONTINUE C C START OF EQUATIONS OF MOTION C DO 500 JJ=JJS,990 CALL BNSRT(2) CALL BPNT(5) DO 300 INUM=1,NUM DXR1 = XR - X(1) DX12 = X(1) -X(2) DX2L =X(2) - XL DY01 = Y0 -Y(1) DY12 =Y(1) -Y(2) DY20 =Y(f@2) - Y0 SL1 = SQRT ( DXR1*DXR1 + DY01*DY01 ) SL2 = SQRT ( DX12*DX12 + DY12*DY12 ) SL3 = SQRT ( DX2L*DX2L + DY20*DY20 ) C X1DD = SK1*(SL1-SLI1)*DXR1/SL1 - SK2*(SL2-SLI2)*DX12/SL2 X2DD = SK2*(SL2-SLI2)*DX12/SL2 - SK3*(SL3-SLI3)*DX2L/SL3 Y1DD = SK1*(SL1S-SLI1)*DY01/SL1 - SK2*(SL2-SLI2)*DY12/SL2 Y2DD = SK2*(SL2-SLI2)*DY12/SL2 - SK3*(SL3-SLI3)*DY20/SL3 C X1DD = X1DD - X1D * DAMP X2DD = X2DD - X2D * DAMP Y1DD = Y1DD - Y1D * DAMP Y2DD = Y2DD - Y2D * DAMP C X1D = X1D + X1DD * DT X2D = X2D + X2DD * DT Y91D = Y1D + Y1DD * DT Y2D = Y2D + Y2DD * DT C X(1) = X(1) + X1D * DT X(2) = X(2) + X2D * DT Y(1) = Y(1) + Y1D * DT Y(2) = Y(2) + Y2D * DT C DO 300 I=1,2 XX=X(I) YY=Y(I) IF(XX.LT.0) XX=0 IF(XX.GT.1023) XX=1023 IF(YY.LT.0) YY=0 IF(YY.GT.1023) YY=19L023 ITT=-15 IF((XX.GT.1003).OR.(XX.LT.20).OR.(YY.GT.1003).OR.(YY.LT.20)) 2 ITT=0  CALL IPPTR(IPM(I)) CALL BDRWA(XX,YY,12,0,0) CALL BDRWA(XX,YY,ITT,0,0) 300 CONTINUE C CALL BNSRT(0) DO 400 I=1,2 CALL BPNT(I) XX=X(I) YY=Y(I) IF(XX.LT.0) XX=0 IF(XX.GT.1023) XX=1023 IF(YY.LT.0) YY=0 IF(YY.GT.1023) YY=1023 IT=10+I*2 IF((XX.GT.1003).OR.(XX.LT.20).OR.(YY.GT.1003).OR.(YY.LT.20)) 2 IT=0 CALL BDRWA ( XX, YY, IT, 0,0 ) 400 CONTINUE CALL GRDTJ(XX,YY,IPEN) IF ( IPEN .EQ. 0 ) GO TO 500 IF(XX.LT.288) GOTO 500 ITEM=(YY-381.)/50. IF(ITEM.LT.0) GOTO 500 CALL BPNT(3) CALL BNSRT(2) JJS = JJ + 1 GOTO 620 490 CALL BGLBL(MEN(2,2)) CALL BDRWA(MENUX,950.,-15,1,0) 500 CONTINUE C C TRACK VECTOR LISTS ARE FULL C CALL BPNT(3) CALL BNSR#kT(2) CALL BGLBL(MEN(2,1)) CALL BDRWA(MENUX,1000.,-15,1,0) CALL BGLBL(MEN(2,2)) CALL BDRWA(MENUX,950.,-15,0,0) 610 CALL GRDTJ ( XX, YY, IPEN ) IF(IPEN.EQ.0) GOTO 610 IF(XX.LT.288) GOTO 610 ITEM=(YY-381.)/50. IF(ITEM.LT.0) GOTO 610 620 DO 630 I=1,3  CALL BGLBL(MEN(2,I)) CALL BDRWA(MENUX,900.+(3-I)*50.,-15,0,0) 630 CONTINUE IF(ITEM-1) 10,490,650 650 CALL BGLBL(MEN(2,1)) CALL BDRWA(MENUX,1000.,-15,1,0) 700 CALL GRDTJ ( XX, YY, IPEN ) CALL GPLOT(-1) IF ( IPEN .NE. 0 ) GO TO 700 GO TO 610 C 9999 CALL DHALT RETURN END RBURST.FRyy 0 C**** RBURST.FR ********************** PART NO: 20-060134 ******* C C SAMPLE FORTRAN PROGRAM MAKING USE OF THE DISPLAY TRANSFORMATION C ROUTINE (DTRANS). TWO DISPLAY BUFFERS ARE DEFINED AND ARE C USED INTERCHANGABLY. WHEN THE FIRST BUFFER IS BEIN G FILLED, C THE SECOND BUFFER IS BEING DISPLAYED (AND VICE-VERSA). THE C DISPLAY ENDPOINTS ARE GENERATED ONCE AND THEN PASSED TO THE C TRANSFORMATION ROUTINE FOR EACH "FRAME". THE ROUTINE C IS EXITED BY INDICATING PEN DOWN ON THE DATA-TABLET/JOYSTICK(. C C******************************************************************** SUBROUTINE RBURST COMMON /DLIST/ IBUF(2500) REAL IAR(2,15) COMMON /RB2/ X(150),Y(150),Z(150) COMMON /BURDAT/C(9) EQUIVALENCE (C(1),ULX),(C(2),ULY),(C(3),URX),(C(4),URY),   2 (C(5),SLX),(C(6),SLY),(C(7),SRX),(C(8),SRY),(C(9),R) DATA C / -100.,-100.,100.,100.,200.,200.,3847.,3847.,0./ SCL=1. CALL BIN5(IBUF,2500) CALL BINIT(1,1000,0,1.,1.) CALL BINIT(2,1000,0,1.,1.) CALL DSTRT C SET UP POINTS AROUND "CIRCLE" C N =5 NUMBER OF SIDES ON "CIRCLE" N=15 PI=3.14159 DO 20 I=1,N PHI=(I-1)*2*PI/N+PI/2 IAR(2,I)=100.*COS(PHI) 20 IAR(1,I)=100.*SIN(PHI) C SET UP X,Y,Z ARRAYS FOR DISPLAY C FIRST POINT: X(1)=IAR(1,1) Y(1)=IAR(2,1) Z(1)=0 IT=2 K=1 N1=N/2 DO 100 I=1,`RN1 L=K DO 100 J=1,N K=K+I IF(K.GT.N) K=K-N X(IT)=IAR(1,K) Y(IT)=IAR(2,K) Z(IT)=15 IT=IT+1 IF(K.NE.L) GOTO 100 IF(K.EQ.15) K=0 K=K+1 X(IT)=IAR(1,K) Y(IT)=IAR(2,K) Z(IT)=0 IT=IT+1 L=K 100 CONTINUE X(IT)=0 Y(IT)=0 Z(IT)=0 CALL GTON(0) DR=.1 30 R=R+DR CALL BINIT(1,1000,0,1.0,1.0) CALL PXLT(1,-2048.,-2048.,0) CALL PONOF(1,0) CALL DTRANS(X,Y,Z,C,IT,0) CALL PONOF(2,0) CALL PONOF(1,1) CALL GRDTJ(XX,YY,IZ) C CALL GPLOT(-1) IF(IZ.NE.0) GOTO 35 TRX=XX/18.24 TRY=YY/18.24 GOTO 40 35 IF((XX.GT.1900.).AND.(YY.GT.1900.)) GOTO 200 SCL=10.**(YY/2200) 40 ULX=(-100-TRX)/SCL ULY=(-100-TRY)/SCL URX=(100-TRX)/SCL URY=(100-TRY)/SCL R=R+DR CALL BINIT(2,1000,0,1.0,1.0) CALL PONOF(2,0) CALL PXLT(2,-2048.,-2048.,0) CALL DTRANS(X,Y,Z,C,IT,0 ) CALL PONOF(1,0) CALL PONOF(2,1) CALL GRDTJ(XX,YY,IZ) IF(IZ.NE.0) GOTO 45 TRX=XX/18.24 TRY=YY/18.24 GOTO 50 45 IF((XX.GT.1900.).AND.(YY.GT.1900.)) GOTO 200 SCL=10.**(YY/2200) 50 ULX=(-100.-TRX)/SCL ULY=(-100.-TRY)/SCL URX=(100.-TRX)/SCL URY=(1F00.-TRY)/SCL GOTO 30 C STOP DISPLAY 200 CALL DHALT RETURN END MEGA.FR-> SUBROUTINE LOGO COMMON /DLIST/ IBUF(5000) C *** MEGABURST LOGO *** C SAVED AS "MEGA.FR" C REV 2.0 GTS C 6-9-77 C * USES MEGATEK MG552-C GRAPHICS C * REQUIRES SUBROUTINE P8"MEGASUB" CALL BIN5 (IBUF,1500) C DRAW MEGABURST WITH SOLID VECTORS CALL BINIT (2,0,0,2.5,2.5) RADIUS=500. IBLINK=0 IDASH=0 CALL BXLT (0.,-50.,0) CALL MEGASUB (RADIUS,IBLINK,IDASH) C DRAW HEADERS CALL BINIT (1,0,0,1.0,1.0) CALL BDRWA (-3>36.,1500.,-15,0,0) CALL BSTNG (15,7,0,"MEGATEK",7) CALL BDRWA (-480.,1285.,-15,0,0) CALL BSTNG (15,4,0,"Quality Graphics",16) CALL BDRWA (-663.,-1600.,-15,0,0) CALL BSTNG (15,4,0,"WHERE VALUE COMES FIRST",23) CALL BDRWA (1700.,1700.,-15,0,0) CALL BSTNG (15,3,0,"EXIT",4) CALL DSTRT C DRAW MEGABURST WITH BLINKING DASHED VECTORS CALL BINIT (3,475,0,2.5,2.5) CALL BINIT (4,0,0,2.5,2.5) CALL PONOF (3,0) CALL PONOF (4,0) IBLINK=1 IDASH=1 CALL BXLT (0.,-50.,0) CALL MEGASUB (RADIUS,IBLINK,,IDASH) C DRAW MEGABURST WITH DASHED VECTORS CALL BPNT (3) CALL BNSRT (0) IBLINK=0 IDASH=1 CALL BXLT (0.,-50.,0) CALL MEGASUB (RADIUS,IBLINK,IDASH) CALL GTON (0) C USE JOYSTICK TO SEQUENCE THROUGH MEGABURST PIX 80 DO 200 LOOP=2,4 100 CALL WGRDTJ (X,Y,IPEN) CALL GPLOT(-1) IF ( IPEN .EQ. 0 ) GO TO 100 IF ( X .GE. 680. .AND. Y .GE. 680. ) GOTO 300 L1=LOOP+1 IF ( LOOP .EQ. 4 )L1=2 CALL PONOF (LOOP,0) CALL PONOF (L1,1) 150 CALL GRDTJ (X,Y,IPEN) IF ( IPEN .EQ. 1 ) GO T>;O 150 200 CONTINUE GO TO 80 300 CALL DHALT RETURN END MDEMO.CL4URLDR/P DEMO MDEMO/S OLAY GPLOT [MENU,DOM1 DRAW,DOM2 LOGDIA LOGDATA,DOM3 WIND, ^ DOM4 SHAPES,DOM5 DESIGN,DOM6 AIRDEMO AIRDATA,DOM7 MOVMEGA MBMOV, ^ DOM8 RBURST DTRANS ATRANS,DOM9 QUBIC QMOVE QDCOD,DOM10 AIRDEMO2 AIRDATA2,^ DOM11 MEGA MEGASUB,DOM12 LAY,DOaM13 USMAP MAPDATA,DOM14 SPRINGS SPRDATA, ^ DOM15 GLIDE PLANE,DOM16 SCROLL SCRDATA,DOM17 CHARS SETS, ^ DOM18 EXAGRAPH EXAGRID POLAR,DOM19] ^ PROCS MDOSGRAPHI.LB FORT.LB ^ KEYBD.SRy)p .TITLE KEYBD .ENT KEYON,KEYOF,GCHAR,GPLOT .EXTD .CPYL,.FRET .EXTN .UIEX .COMM S7000,539. KEY=70 .NREL 10 KEYON: JSR @.CPYL LDA 0,.KEY .SYSTM .IRMV JMP .+1 LDA 1,.KDCT LDA 0,.KEY .SYSTM .IDEF JMP .+1 NIOS KEY JMP @.FRET .KDCT: % .+1 KSAVE 1B14 KINT KSAVE: .BLK 10 10 KEYOF: JSR @.CPYL LDA 0,.KEY .SYSTM .IRMV JMP .+1 NIOC KEY JMP @.FRET KINT: DIAS 0,KEY LDA 1,C177 AND 1,0 STA 0,KCHAR .UIEX C177: 177 KCHAR: 0 .KEY: KEY 10 GCHAR: JSR @.CPYL SUB 1,1 LDA 0,KCHAR STA 1,KCHAR STA 0,@-167,3 JMP @.FRET 10 GPLOT: JSR @.CPYL LDA 0,KCHAR ;GET THE MOST RECENT CHARACTER MOV 0,0,SNR ;CHECK FOR NON-ZERO JMP @.FRET ;NO CHARACTER STRUCK -- FORGET IT SUB 1,1 STA 1,KCHAR LDA 1,CSPEC ;GET THE SPECIAL CODE (HARDCrOPY) SUB# 0,1,SZR ;A MATCH? JMP @.FRET ;NOPE -- BAG OUT LDA 0,@-167,3 ;GET DIS LIST ADDRESS COM# 0,0,SZR ;=-1? JMP .+4 ;NOPE!! LDA 0,@.ADD ;GET STANDARD DISPLAY LIST START LDA 1,C20 ;GET OFFSET SUB 1,0 ;GET REAL BEGINNING INTDS ;WATCH OUNT FOR A WHILE NIOC 17 ;CLEAR THE DEVICE NIO 17 NIO 17 NIO 17 LDA 1,C3 ;GET CLEAR CODE DOCS 1,17 ;CLEAR THE LITTLE SUCKER SKPBZ 17 JMP .-1 NIOC 17 ;CLEAR EVERYTHING AGAIN NIO 17 NIO 17 NIO 17 DOAS 0,25 ;START UP ELECTRO-STATIC HARDCOPY SK.PDZ KEY JMP BAGOUT SKPBZ 25 ;WAIT JMP .-3 BAGOUT: NIOC 25 NIO 25 NIO 25 NIO 25 SUB 0,0 INC 0,0,SZR JMP .-1 LDA 0,C14 DOAS 0,17 SKPBZ 17 JMP .-1 NIOC 17 NIO 17 NIO 17 NIO 17 JMP .+1 ; LDA 0,C14 JMP .+1 ; DOAS 0,17 ;SEND A FORM FEED INT~T#EN ;RE-ENABLE INTERRUPTS JMP @.FRET C3: 3 C14: 14 C20: 20 .ADD: .GADD S7000,485. CSPEC: 24 ;CNTL T MAKES HARDCOPY .END ATRANS.SRy ;**************************************************************************** ; ; NAME: ATRANS.SR MEGATEK PART NO: 20-060106 ; ; REVISION HISTORY: ; ; REV. DATE DESCRIPTION ; 01 08/01/76 FORTRAN COMPLETE. CHANGES FROM ; ORIGINAL INCLUDE: (1) INTEGER CLIPPING AND ; SUB-DIVIDE (2) OPTIONAL BYPASS OF CLIPPING OR ; SUB-DIVIDE (3) USE OF FORTRAN STACK FEATURES ; 02 06/10/77 CONVERT TO MG-552 GRAPHICS. ELIMINATE ; LINE SPLIT; NO INTERFACING TO M5000 PICTURE ; CHECKING OR DISPLAY APPENDING:. ; 03 08/14/77 MODIFICATIONS TO INTERFACE TO STANDARD ; FORTRAN CALLABLE GRAPHICS I/O ROUTINES ; ; ;  CALLING SEQUENCE: ; ; CALL ATRANS (I0,I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13, ; 1 X,Y,Z,B,N,IFLAG) ; ; WHERE I0 - I7 ARE DUMMY PARAMATERS USED 3 BY DAPPND ; X = A MATRIX WITH N X VALUES ; Y = A MATRIX WITH N Y VALUES ; Z = A MATRIX WITH N Z VALUES ; B = TRANSFORMATION MATRIX ; N = NUMBER OF POINTS TO BE PLOTTED ; IFLAG= EXECUTION CONTROL WORD: ; BIT15=1 => BYPASS CLIPPING ; BIT14=1 => SU5B-DIVIDE LONG VECTORS ; ; COPYRIGHT (C), MEGATEK CORPORATION, 1976,1977 ; ALL RIGHTS RESERVED ;**************************************************************************** .TITLE ATRANS ; ; STORAGE AND CONSTANTS ; .ZREL .ENT ATRANS,TRN11,ROT11,SCL1d1 .EXTN MPY0,DVD,FNEG1,FLFX1,SIN.,COS. .EXTD .ABS,.CPYL,.FRET,IN.,APPRX .EXTN FFLD1,FFST1,FAD1,FSB1,FML1,FDV1 ; ; INDRECT JUMPS ; .TEMP: TEMP0 ;TEMPORARY STORAGE ADDRESS ; ; STORAGE ; Z0: 0 IX: 0 IY: 0 IXA: 0 IYA: 0 ; ; STACK DISPLACEMENTS FOR PASS 10 LDA 2,RSX SUB 0,2 ;CHECK X AGAINST RIGHT-SCREEN-X MOVL# 2,2,SZC LDA 3,C4 ;TO THE RIGHT => 4 STA 3,XCOD ;SAVE X COD SUB 3,3 ;GET READY FOR YCOD LDA 2,LSY ;GET LOW-SCREEN-Y ADC 1,2  2 LDA 2,RSY ;GET HIGH-SCREEN-Y SUB 1,2 MOVL# 2,2,SZC SUBZL 3,3 ;ABOVE SCREEN => 1 LDA 2,XCOD ;GET X CODE BACK AGAIN ADD 3,2 ;AC2 = COMPLETE CODE FOR POINT JMP @TEMP3 ;*********************************#************************************** ; SWAP START AND END POINTS ;*********************************************************************** SWAP: LDA 0,IX LDA 1,IXA STA 0,IXA STA 1,IX LDA 0,IY LDA 1,IYA STA 0,IYA STA 1,IY JMP 0,3 LSX: 0 LSY: 0 RS X: 0 RSY: 0 XCOD: 0 C2: 2 C4: 4 C10: 10 ;********************************************************************** ; OUTPUT ABSOLUTE POINT ;********************************************************************** ABSPT: STA 3,RTN LDA 3,CMASK ;GET 10 BIT MAS7K AND 3,0 AND 3,1 ;CLEAN UP INPUT COORDINATES MOVS 2,2 ADDZL 2,2 ADDZL 2,2 ADD 2,1 LDA 3,.IDBF STA 0,1,3 ;IDBUF(1) STA 1,2,3 ;IDBUF(2) LDA 3,16 STA 3,AENT,3 ;AENT NOT 0 SO ENTRY FROM ASM LDA 0,.C2 STA 0,IWCNT,3 MOV 3,0 ;STACK FOR APPND J SR @.APRX LDA 3,.IER1 LDA 3,1,3 MOV 3,3,SNR ;ERROR? JMP @RTN JMP @.FRET ;ERROR! ; STORAGE ; RTN: 0 CMASK: 7777 ;ABSOLUTE COORDINATE MASK TAC0: 0 TAC1: 0 TAC2: 0 .APRX: APPRX .C2: C2 .TAC0: TAC0 .NREL .COMM S7000,539. .IDBF: .GADD S7000,515.-1+8.~ ;IDBF .IER1: .GADD S7000,480.+2 ;IERW1 ;************************************************************************ ; CLIP THE LINE (USING START POINT) ;************************************************************************ XDIF: 0 YDIF: 0 SIGN: 0 RTN2: 0 TAB: 0 CLIP1: STA 3,RTN2 LDA 2,IX LDA 3,IXA SUB 3,2 STA 2,XDIF ;GENERATE X DISTANCE OF VECTOR LDA 2,IY LDA 3,IYA SUB 3,2 STA 2,YDIF MOVR 1,1,SZC ;START CHECKING CODE WORD LDA 3,HIYT MOVR 1,1,SZC LDA 3,LOYT MOVR 1,1,SZC LDA 3,HIXT MOVRջ 1,1,SZC LDA 3,LOXT STA 3,TAB ;SAVE PROCESSING TABLE ADDRESS SUB 0,0 STA 0,SIGN LDA 1,@1,3 LDA 0,@2,3 STA 1,@2,3 SUB 0,1 LDA 2,@3,3 MOVL# 1,1,SNC JMP .+3 NEG 1,1 ISZ SIGN MOVL# 2,2,SNC JMP .+3 NEG 2,2 ISZ SIGN MPY0 LDA 3,TAB LDA 2,@4,3 MOVL# 2,2,SNC JMP .+3 NEG 2,2 ISZ SIGN DVD LDA 3,TAB LDA 0,SIGN MOVR 0,0,SZC NEG 1,1 LDA 0,@5,3 ADD 0,1 STA 1,@5,3 JMP @RTN2 ;**************************************************************************** ; CLIPPING ACTION TABLES ; THERE IS OLNE TABLE FOR EACH POSSIBLE CLIPPING MODE (LOX,HIX,LOY,HIY). ; THE FIVE ELEMENTS OF THE TABLE DETERMINE THE ACTION TO BE TAKEN. ; THE GENERAL FORMULA IS: ; NEW(@2) = (@1) ; NEW(@5) = (@5) + [ (@1)-(@2) ] * (@3) / (@4) ;************************************Ʃ**************************************** LOXT: . LSX IXA YDIF XDIF IYA HIXT: . RSX IXA YDIF XDIF IYA LOYT: . LSY IYA XDIF YDIF IXA HIYT: . RSY IYA XDIF YDIF IXA ; ; ; TRANSLATION MATRIX ; ; TRN11: 0 0 TRN12: 0 0 TRN13: 0 0 TRN21gt: 0 0 TRN22: 0 0 TRN23: 0 0 TRN31: 0 0 TRN32: 0 0 TRN33: 0 0 ; ; ; SCALING MATRIX ; ; SCL11: 0 0 SCL12: 0 0 SCL13: 0 0 SCL21: 0 0 SCL22: 0 0 SCL23: 0 0 SCL31: 0 0 SCL32: 0 0 SCL33: 0 0 ; ; ; ROATAION MATRIX ; ; ROT11: 0 0 ROT12: 0 0 ROT13:V> 0 0 ROT21: 0 0 ROT22: 0 0 ROT23: 0 0 ROT31: 0 0 ROT32: 0 0 ROT33: 0 0 .END AIRDEMO2.FRyy 2 SUBROUTINE AIR2 DIMENSION XXPOS(9),YYPOS(9) INTEGER SINTH,COSTH,HDNG,ALT(9) COMMON /DLIST/ IBUF(4910),IT(10,9) COMMON/BEORN/ IO(9),IN(9), IV(4,9),IE(20) 2 ,IFF(21),IG(11),IH(19),IALT(20), Q1,T,IDENT CALL FGTIM (IHR,IMIN,ISEC) IRND=ISEC IPLAN iES=9 650 T=T+Q1 SINT=-1*SIN(T) COST=COS(T) CALL GRDTJ (XXX,YYY,IZ) CALL GPLOT(-1) XXX=XXX+512. YYY=YYY+512. IF (IZ .EQ. 0) GOTO 1000 IF((XXX.GT.875.).AND.(YYY.GT.875.)) GOTO 9000 IF (YYY .GT. 200.) GOTO 800 IF (XXX .GT. 604.) GOTO 1000 IF (XXX .GT. 572.) GOTO 850 IF (XXX .GT. 322.) GOTO 1000 C SET MAP / ERASE MAP IF (YYY .LE. 62.) GOTO 1000 IM0=3 IF (YYY .GT. 87.) IM0=2 IF (YYY .GT. 112.) IM0=1 IF(XXX .LT. 30.) CALL PONOF(IM0,1) IF(XXX .GT. 287.) CALL PONOF(IM0,0) C PICK AN AIRPLANE BY P OSITION 800 DO 820 I=1,IPLANES 820 IF((ABS(XXPOS(I)-XXX).LE.20.).AND.(ABS(YYPOS(I)-YYY).LE.20.)) 2 IDENT=I GOTO 1000 C PICK AN AIRPLANE BY ENTRY 850 IDENT=-(YYY-205.)/20. C UPDATE POSITIONS OF AIRPLANES 1000 DO 2000 I= 1,IPLANES XXX= (IV(1,I)*XCOST)+IV(3,I) YYY= (-1*IV(2,I)*SINT)+IV(4,I) XXPOS(I)= XXX YYPOS(I)= YYY XXX=XXX-500. YYY=YYY-600. C IS AIRPLANE ON MAP? IF YES, ELIMINATE HIM IF (ABS(XXX) .GT. 375. .OR. ABS(YYY) .GT.375.) GOTO 1100 X=XXX Y=YYY IF (X*X+Y*Y .LT. 140625.) GOTO 12500 1100 IF (IO(I) .EQ. 1) GOTO 2000 CALL IPPTR (IT(1,I)) CALL BJMAD (IT(10,I),0) IO(I)=1 IF (I .EQ. IDENT) IDENT=0 GOTO 1500 C IS AIRPLANE ON MAP?  IF NOT, DRAW HIM 1200 IF (IO(I) .EQ. 0) GOTO 1300 IO(I)=0 IN(I)=1 CALL RAND(IRND) IRND1=IRND/3640 IRND1= IABS(IRND1*4)/2+1 CALL RAND(IRND) IRND2=IRND/3640 IRND2= IABS(IRND2*4)/2+1 CALL RAND(IRND) IRND3=IRND/5460 IRND3= IABS(IRND3*6)/2+1 CALL RAND(IRND) IRND4=IRND/3640 IRND4= IABS(IRND4*4)/2+1 ALT(I)=IRND4 CALL IPPTR (IT(5,I)) CALL BSTNG (*C15,3,0,IE(IRND1),3) CALL BSTNG (15,3,0,IFF(IRND2),4) CALL IPPTR (IT(6,I)) CALL BSTNG (15,3,0,IE(IRND1),3) CALL BSTNG (15,3,0,IFF(IRND2),4) CALL IPPTR (IT(7,I)) CALL BSTNG (15,3,0," NEW ( ) ",10) CALL IPPTR (IT(8,I)) CALL BSTNG (15,3,0,IH(IRND3),5)7 CALL BSTNG (15,3,0," ALT ",5) CALL BSTNG (15,3,0,IALT(IRND4),3) C COMPUTE AND SET UP THE DIRECTION THE SHIP IS POINTING 1300 XPRM= IV(1,I)*(SINT) YPRM= IV(2,I)*(COST) IF (XPRM .NE. 0) GOTO 1340 THETA=1.5708 IF (YPRM .LT. 0 ) THETA=-THETA GOTO 1400C 1340 THETA= ATAN2(YPRM,XPRM) 1400 COSTH= 6*COS(THETA) SINTH= 6*SIN(THETA) CALL IPPTR (IT(2,I)) X=XXPOS(I) Y=YYPOS(I) IB=0 IF(I.EQ.IDENT) IB=1 CALL BDRWA(X,Y,-15,0,0) CALL BDRWA (X,Y,0,IB,0) CALL BDRWA (X-SINTH,Y+COSTH,15,IB,0) CALL BDRWA (X+COSTRH+COSTH,Y+SINTH+SINTH,15,IB,0) CALL BDRWA (X+SINTH,Y-COSTH,15,IB,0) CALL BDRWA (X,Y,15,IB,0) CALL BDRWA (X-COSTH,Y-SINTH,15,IB,0) CALL BDRWA (X,Y,15,IB,0) CALL BDRWA (X+25.,Y,-15,0,0) CALL IPPTR (IT(1,I)) CALL BJMAD (IT(2,I),0) 1500 IF (I .EQ. IDENT) GOTO 1600 CALL IPPTR (IT(3,I)) CALL BJMAD (IT(10,I),0) IF (IN(I) .EQ. 1) GOTO 2000 CALL IPPTR (IT(7,I)) CALL BSTNG (15,3,0," ( ) ",10) GOTO 2000 1600 IN(I)=0 CALL IPPTR (IT(7,I)) CALL BSTNG (15,3,0,"IDENT ( ) ",10) CALL IPPTR (IT(3,I)) CALL BJMAD (IT(3,I)+2,0) IF (THETA .LT. 0) THETA= 6.2832+THETA HDNG=450-(THETA*57.3) IF (HDNG .GE. 360) HDNG=HDNG-360 I1= HDNG/100 I2=(HDNG-(100*I1))/10 I3=(HDNG-(100*I1)-(10*I2))+1 I1=I1+1 I2=I2+1 CALL IPPTR (IT(9,I)) CALL BSTNG (15,3,0,"HDNG ",5) F CALL BSTNG (15,3,0,IG(I1),1) CALL BSTNG (15,3,0,IG(I2),1) CALL BSTNG (15,3,0,IG(I3),1) 2000 CONTINUE GOTO 650 C RETURN TO MENU 9000 RETURN END DOM14.FRy y:< OVERLAY DOM14 SUBROUTINE DUM14 CALL SPRINGS RETURN END OLAY.SRy G .TITLE OLAY .ENT OVLOD,OVOPN .EXTD .CPYL,.FRET .NREL 10 OVLOD: JSR @.CPYL LDA 2,@-167,3 ;GET CHANNEL NUMBER LDA 0,@-166,3 ;GET OVERLAY NUMBER ADC 1,1 .SYSTM .OVLOD 77 JMP OVERR SUBZL 0,0 STA 0,@-165,3 JMP @.FRET 10 OVOPN: JSR @.CPYL .SzYSTM .GCHN JMP .+1 STA 2,@-167,3 ;STORE CHANNEL NUMBER LDA 0,-166,3 MOVZL 0,0 .SYSTM .OVOPN 77 JMP OVERR SUBZL 0,0 STA 0,@-165,3 JMP @.FRET OVERR: INC 2,2 INC 2,2 INC 2,2 STA 2,@-165,3 JMP @.FRET .END QMOVE.SRy V; ; ; ; ***** Q U B I C --- M O V E S E L E C T I O N ***** ; ; .TITL QMOVE ; .ENT QMOVE .EXTN TTT .EXTD .CPYL,.FRET ; ; .ZREL ; .TTT: TTT ; S.A. OF "TTT" COMMON AREA ; .CODE: 0 ; POINTER TO RETURN CODE .MOVE: 0 ; POINTER TO MOVE SELECTION ; BEST: 0 ; BEST SELECTION SO FAR IWIN: 0 ; COMPUTER WINS FLAG .BOX: 0 ; CURRENT BOX BEING EVALUATED ADDRESS BOX: 0 ; CURRENT BOX # .WAYS: 0 ; WINNING WAYS ARRAY POINTER .IW: 0 ; WINNING WAYS ARRAY POINTER ; LOOPW: 0 LOOP4: 0 BXVAL: 0 ; _BOX MOVE EVALUATION VALUE FOUND: 0 IS: 0 ; WINNING WAY ACCUMULATOR VALUE RAND: 0 ; RANDOM # ; .BBUF: BBUFF ; BEST MOVES TABLE S.A. .EBUF: BBUFF+64. .BEST: 0 ; .SPEC: SPECL ; SPECIAL BOX TABLE .VALU: VALUE ; WINNING WAY EVALUATION TABLE ; D4: 4. D30: 30. D64: 64. D76: 76. M77: 77 ; ; ; .NREL ; ; P1 = -167 P2 = P1+1 ; ; 2 QMOVE: JSR @.CPYL ; GET PARAMETERS LDA 0,P1,3 ; POINTER TO RETURN CODE STA 0,.CODE LDA 0,P2,3 ; POINTER TO SELECTED MOVE STA 0,.MOVE ; ADC 0,0 STA 0,BEST ; RESET BESTW SELECTION SO FAR ; SUB 0,0 STA 0,IWIN ; RESET COMPUTER WINS FLAG STA 0,@.CODE ; SET RETURN CODE TO 0 ; LDA 0,.TTT STA 0,.BOX ; S.A. OF T-T-T BOX ARRAY LDA 1,D64 ADD 1,0 STA 0,.WAYS ; S.A. OF WINNING WAYS ARRAY SUBZL 0,0 STA 0,BOX ; INITIALIZE BOX # TO 1 ; ; ; EVALUATE THE NEXT BOX ; NEXTB: SUB 3,3 ; AC3 = 0 LDA 2,.SPEC ; AC2 = S.A. OF SPECIAL BOX TABLE LDA 0,BOX SPECQ: LDA 1,0,2 ; LOAD NEXT SPECIAL BOX # MOV 1,1,SNR ; END-OF-TABLE ? JMP FIND ; YES INC 2,2 ; NO SUB# 0,1,SNR 3; THIS BOX A SPECIAL ONE ? LDA 3,0,2 ; YES - AC3 = ITS VALUE INC 2,2 JMP SPECQ ; ; ; SEARCH ALL POSSIBLE WINNINGS WAYS FOR THIS BOX ; FIND: STA 3,BXVAL ; SAVE BOX INITIAL VALUE LDA 0,D76 STA 0,LOOPW ; LOOP FOR 76 WAYS OF WINNING LDA 0,.WAYS STA 0,.IW ; S.A. OF WINNING WAYS ARRAY ; NEXTW: SUB 0,0 STA 0,FOUND ; RESET FOUND FLAG STA 0,IS ; RESET WINNING WAY ACCUMULATOR ; LDA 2,.IW ; RELOAD WINNIG WAY ARRAY POINTER LDA 0,D4 STA 0,LOOP4 LDA 0,BOX FW2: LDA 1,0,2 ; SEARCH FOR BOX # IN THIS WINNING WAY SUB# 0,1,SNR ; FOUND BOX # ? ISZ FOUND ; YES LDA 3,.TTT ; LOAD S.A. OF BOX ARRAY ADD 1,3 LDA 3,-1,3 ; LOAD BOX CONTENTS LDA 1,IS ; LOAD CURRENT WAY ACCUMULATOR ADD 3,1 STA 1,IS INC 2,2 DSZ LOOP4 ; ALL 4 BOXES IN WINNING WAY" CHECKED ? JMP FW2 ; NOT YET ; LDA 0,FOUND ; LOAD BOX FOUND FLAG MOV 0,0,SNR ; BOX ENVOLVED IN THIS WINNIG WAY ? JMP ENDW ; NO - TRY NEXT WINNING WAY ; LDA 0,IS ; YES - EVALUATE THE WINNING WAY STATUS LDA 1,D4 SUB# 0,1,SZR ; STATUS = 4 nKIN ROW PLAYER ? JMP FW3 ; NO ; ; 4 IN A ROW FOR PLAYER -- HE HAS WON ; LDA 1,.IW ; LOAD CURRENT WINNING WAYS ARRAY POINTER LDA 0,.WAYS SUB 0,1 ; AC1 = ARRAY INDEX - 1 COM 1,1 ; = - ARRAY INDEX STA 1,@.CODE JSR @.FRET ; ; ; ; CONTINUE TO EVALUATE WINNING WAY STATUS ; FW3: LDA 1,@.BOX ; LOAD BOX STATUS MOV 1,1,SZR ; BOX EMPTY ? JMP ENDW ; NO - NO MORE CHECKING NEEDED ; LDA 1,D30 SUB# 0,1,SZR ; COMPUTER HAVE 3 IN A ROW ? JMP .+3 ; NO LDA 1,.IW ; YES - POSSIBLE WIN FOR COMPUTER W STA 1,IWIN ; SAVE POSITION. ; ; LDA 2,.VALU ; LOAD S.A. OF STATUS VALUE TABLE FV1: LDA 1,0,2 ; LOAD NEXT STATUS FROM TABLE INC 2,2 MOV 1,1,SNR ; END-OF-TABLE ? JMP ENDW ; YES INC 2,2 SUB# 0,1,SZR ; WINNING WAY STATUS IN TABLE ? JMP :FV1 ; NO - TRY NEXT ENTRY  LDA 3,-1,2 ; YES - GET ITS VALUE LDA 1,BXVAL ADD 3,1 ; AND ADD TO BOX VALUE STA 1,BXVAL ; ; ENDW: ; END OF CURRENT WINNING WAY CHECL LDA 0,.IW ; CURRENT ARRAY POINTER LDA 1,D4 ; UPDATE IT ADD 1,0 STA 0,.IW DSZ LOOPW ; ALL WINNING WAYS CHECKED ? JMP NEXTW ; NOT YET. ; ; ; END OF CURRENT BOX EVALUATION ; LDA 0,@.BOX ; LOAD BOX STATUS MOV 0,0,SZR ; BOX OCCUPIED ? JMP ENDB ; YES - ALL THRUOGH WITH IT ; LDA 0,BXVAL ; NO - TEST ITS VALUE @AGAINST BEST LDA 1,BEST SUB 0,1,SNR ; BOX VALUE = PREVIOUS BEST ? JMP VALEQ ; YES - ADD TO LIST MOVL 1,1,SNC ; BOX VALUE > PREVIOUS BEST ? JMP ENDB ; NO - ALL THROUGH ; STA 0,BEST ; SAVE NEW BEST VALUE LDA 0,.BBUF STA 0,.BEST ; RESET BEST BUFFER POINTER S.A. VALEQ: LDA 0,BOX STA 0,@.BEST ; ADD BOX # TO BEST BOX TABLE ISZ .BEST ; ; ENDB: LDA 0,BOX LDA 1,D64 SUB# 0,1,SNR ; ALL BOXES BEEN TESTED ? JMP IWINQ ; YES - CHECK FOR COMPUTER WIN ISZ BOX ; NO - BUMP BOX # & TRY NEXT IJSZ .BOX JMP NEXTB ; ; IWINQ: ; END - CHECK FOR COMPUTER WIN LDA 0,IWIN MOV 0,0,SNR ; COMPUTER WIN SELECTED ? JMP PICK ; NO - JUST PICJ BEST MOVE LDA 1,.WAYS ; YES - GET WINNING BOX # SUB 1,0 INC 0,0 STA 0,@.CODE JSR @.FRET ; ; ; ; PICK KCOMPUTERS BEST MOVE ; PICK: LDA 2,.BEST LDA 3,.EBUF SUB 0,0 ; ZERO UNUSED PART OF "BEST" ARRAY SUB# 2,3,SNR JMP PICRD STA 0,0,2 INC 2,2 JMP .-4 ; PICRD: ; RANDOMLY PICK ONE OF THE BEST LDA 0,RAND JSR MY899 ; * 899 MOV 0,0,SNR ; CHECK F˕OR 0 JMP RINIT ; IF 0, THEN RE-INITIALIZE STA 0,RAND MOVS 0,0 LDA 1,M77 ; GET 6 MIDDLE BITS AND 1,0 LDA 2,.BBUF ; ACCESS BEST ARRAY ADD 0,2 LDA 0,0,2 ; LOAD VALUE MOV 0,0,SNR ; DEFINED ENTRY ? JMP PICRD ; NO - TRY AGAIN ; STA 0,@.MOVE ; YES - RETURN SELECTED MOVE JSR @.FRET ; ; RINIT: ; RANDOM # INITIALIZATION .SYSTM ; GET TIME OF DAY .GTOD JMP .+1 MOVOL 0,0 JSR MY899 STA 0,RAND JMP PICRD ; ; ; MY899: MOVZL 0,1 ; MULTIPLY BY 899 ADD 1,0 MOVZL 1,1  MOVZL 1,1 MOVZL 1,1 MOVZL 1,1 MOVZL 1,1 MOVZL 1,1 ADD 1,0 MOVZL 1,1 ADD 1,0 MOVZL 1,1 ADD 1,0 JMP 0,3 ; ; ; ; BBUFF: .BLK 64. ; BEST COMPUTER MOVE TABLE ; SPECL: ; SPECIAL BOX DEFINITION TABLE 1. 2 4. 2 13. 2 16. 2 49. 2 52. 2 61. 2 64. 2 ; 22. 1 23. 1 26. 1 27. 1 38. 1 39. 1 42. 1 43. 1 0 ; END OF TABLE ; ; VALUE: ; WINNING WAY VALUES TABLE 1. 3. 2. 50. 3. 10000. ; 10. 25. 20. 100. 0 ; .END COM.CM)DP0F:EDITDEMOFORT.CLAIRDEMO.FRyy .[ SUBROUTINE AIR C ***** AIRDEMO ***** COMMON /GANDALF/ IXX(298),IYY(298),IZZ(298),IREP(3) COMMON /DLIST/ IBUF(4910),IT(10,9) IPLANES=9 PI=3.1415926535 CALL FGTIM (IHR,IMIN,ISEC) IRND=ISEC C SET-UP DISPLAY CALL BIN5 (IBUF,3500) CALL BINIT (1,400,0'U,4.,4.) CALL BINIT (2,500,0,4.,4.) CALL BINIT (3,500,0,4.,4.) CALL BINIT (4,2000,0,4.,4.) DO 2 I=1,4 2 CALL PXLT(I,-512.,-512.,0) IREP2=1 DO 100 I= 1,3 CALL BPNT (I) IREP1=IREP(I) DO 90 II= IREP2,IREP1 X=IXX(II) Y=IYY(II) 90 CALL BDRWA (X,Y,IZ)Z(II),0,0) 100 IREP2=IREP1+1 CALL BPNT (4) DO 200 I= 1,IPLANES IT(1,I)=IGPTR (0) CALL BJMAD (IT(1,I)+2,0) IT(2,I)=IGPTR (0) CALL BDRWA (100.,600.,-15,0,0) DO 150 II= 1,7 150 CALL BDRWA (100.,600.,-15,0,0) IT(4,I)=IGPTR (0) CALL BDRWA (125.,600.,-k15,0,0) IT(5,I)=IGPTR (0) CALL BSTNG (0,1,0,"123/567",7) YL=185.- (20.*I) CALL BDRWA (620.,YL,-15,0,0) IT(6,I)=IGPTR (0) CALL BSTNG (15,3,0,"123/567",7) CALL BDRWA (500.,YL,-15,0,0) IT(7,I)=IGPTR (0) CALL BSTNG (15,3,0,"IDENT ( ) ",10) IT(3,I)=IGXPTR (0) CALL BJMAD (IT(3,I)+2,0) CALL BDRWA (734.,YL,-15,0,0) IT(8,I)=IGPTR (0) CALL BSTNG (15,3,0,"12345 ALT 321 ",14) CALL BDRWA (916.,YL,-15,0,0) IT(9,I)=IGPTR (0) CALL BSTNG (15,3,0,"HDNG 123",8) 200 IT(10,I)=IGPTR (0) CALL BNSRT(2) C NO PLANES YET DO 300 I= 1,IPLANES CALL IPPTR (IT(1,I)) CALL BJMAD (IT(10,I),0) CALL IPPTR (IT(3,I)) 300 CALL BJMAD (IT(10,I),0) C DRAW CIRCLE CALL BNSRT(0) CALL BDRWA (900.,600.,-15,0,0) DTHETA=0 DO 400 II= 1,92 DTHETA= DTHETA + (PI/46) X=500+ (400 *COS(DTHETA)) Y=600+ (400 *SIN(DTHETA)) 400 CALL BDRWA (X,Y,15,0,0) C MORE DISPLAY SET-UP CALL BDRWA (591.,185.,-15,0,0) CALL BSTNG (15,3,0,"TARGET LIST AND IDENT SELECT",28) CALL BDRWA (1.,185.,-15,0,0) CALL BSTNG (15,3,0," SET MAP / ERASE MAP",23) CALL BDRWA (1.,125.,-15,0,0) CALL BSTNG (15,3,0,"( ) WEATHER ( ) ",27) CALL BDRWA (1.,100.,-15,0,0) CALL BSTNG (15,3,0,"( ) AIRWAYS ( ) ",27) CALL BDRWA (1.,75.,-15,0,0) CALL BSTNG (15,3,0,"( ) CONTOUR ( ) ",27) CAj!LL BDRWA (900.,900.,-15,0,0) CALL BSTNG (15,3,0,"EXIT",4) C START DISPLAY CALL BPNT (4) CALL GTON (0) CALL BNSRT(2) CALL DSTRT RETURN END SETS.FR/ SUBROUTINE SETS COMMON /DLIST/ IBUF(5000) DIMENSION SX(4),SY(4),ISIZ(4),RATIO(4) C *** CHARACTER SET IN 4 SIZES *** C SAVED AS "SETS.FR" C REV 1.0 GTS C 2-20-78 C * USES MEGATEK MG552-C GRAPHICS ISIZ(1)*=1 ISIZ(2)=3 ISIZ(3)=5 ISIZ(4)=7 SX(1)=-1900. SX(2)=-1900. SX(3)=-250. SX(4)=-1000. SY(1)=390. SY(2)=-1210. SY(3)=-1420. SY(4)=60. RATIO(1)=1. RATIO(2)=2. RATIO(3)=3. RATIO(4)=4. CALL BIN5 (IBUF,800) CALL BINIT(2,0,0,1.,1.) CALL BPLBĠL(ICUR) CALL BRETN(0) CALL BINIT (1,0,0,1.0,1.0) CALL PONOF(2,0) CALL GTON(ICUR) CALL DSTRT DO 100 LOOP=1,4 X=SX(LOOP) Y=SY(LOOP) R=RATIO(LOOP) ISZ=ISIZ(LOOP) CALL BDRWA (X,Y,0,0,0) CALL BDRWA (X,Y+R*420.,15,0,0) CALL BDRWA ((X+R*750.,Y+R*420.,15,0,0) CALL BDRWA (X+R*750.,Y,15,0,0) CALL BDRWA (X,Y,15,0,0) CALL BDRWA (X+R*20.,Y+R*360.,-15,0,0) CALL BSTNG (0,ISZ,0,"MEGATEK STANDARD CHARACTER SET",30) CALL BDRWA (X+R*20.,Y+R*350.,0,0,0) CALL BDRWA (X+R*732.,Y+RW*350.,15,0,0) CALL BDRWA (X+R*70.,Y+R*290.,-15,0,0) CALL BSTNG (0,ISZ,0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ",26) CALL BDRWA (X+R*70.,Y+R*240.,-15,0,0) CALL BSTNG (0,ISZ,0,"<141><142><143><144><145><146><147>",7) CALL BSTNG (0,ISZ,0,"<150><151><152><153><154><155><156><157>",8) CALL BSTNG (0,ISZ,0,"<160><161><162><163><164><165><166><167>",8) CALL BSTNG (0,ISZ,0,"<170><171><172>",3) CALL BDRWA (X+R*260.,Y+R*190.,-15,0,0) CALL BSTNG (0,ISZ,0,"0123456789",10) CALL BDRWA (X+R*53.,Y+R*1ǒ40.,-15,0,0) CALL BSTNG (0,ISZ,0,"!<42>#$%&'()*+-,./:;<74><76>=?@<134>[]^_",27) CALL BDRWA (X+R*150.,Y+R*70.,-15,0,0) CALL BSTNG (0,ISZ,0,"PLUS OPTIONAL USER-",19)  CALL BDRWA (X+R*127.,Y+R*20.,-15,0,0) CALL BSTNG (0,ISZ,0,"DEFINEABLE SYMBOqcL SET",21) 100 CONTINUE 200 CALL GRDTJ(X,Y,IZ) CALL GPLOT(-1) IF(IZ.EQ.0) GOTO 200 CALL DHALT RETURN END QDCOD.FRy f SUBROUTINE QDCOD( MOVE , X ,Y , ICODE ) C C REAL MINX,MINY,JX,JY COMMON /DEFIN/ DX,DY,MINX,MINY,ILEVY C C IF( ICODE .NE. 0 ) GOTO 100 C C CONVERT MOVE # TO (X,Y) COORDINATES C JY = (MOVE-1)/16 JY=INT(JY) IM = MOVE - JY*16 IMY = (IM-1)/4 IMX = IM 7- IMY*4 - 1 C KY = IMY*DY + DY/2 Y = MINY + JY*ILEVY + KY X = MINX + KY + IMX*DX + DX/2 RETURN C C C C CONVERT (X,Y) COORDINATES TO MOVE # C C 100 CONTINUE MOVE = -1 C JY = Y-MINY IF( JY .LE. 0 ) RETURN C LEVEL = JY/ILEVY JY = INT((JY - LEVEL*ILEVY)/DY) IF( JY .GT. 3 ) RETURN C JX = X - MINX - JY*DY IF( JX .LE. 0 ) RETURN JX = INT(JX/DX) IF( JX .GT. 3 ) RETURN C MOVE = LEVEL*16 + JY*4 + JX + 1 RETURN C END DEMO.CL#w[RLDR/P DEMO OLAY KEYBD [MENU,DOM1 DRAW,DOM2 LOGDIA LOGDATA,DOM3 WIND, ^ DOM4 SHAPES,DOM5 DESIGN,DOM6 AIRDEMO AIRDATA,DOM7 MOVMEGA MBMOV, ^ DOM8 RBURST DTRANS ATRANS,DOM9 QUBIC QMOVE QDCOD,DOM10 AIRDEMO2 AIRDATA2,^ DOM11 MEGA MEGASUB,DOM12 LAY,DOM13 USMA!P MAPDATA,DOM14 SPRINGS SPRDATA, ^ DOM15 GLIDE PLANE,DOM16 SCROLL SCRDATA,DOM17 CHARS SETS, ^ DOM18 EXAGRAPH EXAGRID POLAR,DOM19] ^ GRAPHICS.LB FORT.LB ^ MENU.FR{u OVERLAY MENUO SUBROUTINE MENU(I) C ***** MENU ***** COMMON /DLIST/ IBUF(5000) CALL DHALT CALL BIN5 (IBUF,4500) CALL BINIT (1,1000,0,4.,4.)  CALL CHREF(6) CALL DSTRT CALL BPNT (1) CALL PXLT (1,-512.,-512.,0) CALL BDRWA (410.,900.,-15,0,0) CALL BqnSTNG (15,7,0,"MEGADEMO",8) TEM=9. X=250 Y=-800./TEM CALL BMXRY(X,Y) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"ROT-TRANS-SCALE",15) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"BOUNCING MEGABURSTS",18) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"AIRPLANE",8) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"DESIGN",6) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"SHAPES",6) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"WINDTUNNEL",10) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"LOGIC DIAGRAM",13) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"DRAW",4) ժX=700 CALL BDRWA (X,900.,-15,0,0) CALL BMXRY(X,Y) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"GRID ROUTINES",13) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"CHARACTERS",10) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"SCROLLING",9) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"GLIDESLOPE",10) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"SPRINGS",6) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"US MAP",6) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"PAGE LAYOUT",11) CALL BMXRY (X,Y) CALL BSTNG (15,3,0,"LOGO",4) CALL GTON(0) 10 CALL GRDTJ(X,YP,IZ) IF(IZ.EQ.0) GOTO 10 X=X+512. Y=Y+512. IF((X.LT.250.).OR.(X.GT.950.)) GOTO 10 IF((Y.LT.100.).OR.(Y.GT.900.)) GOTO 10 I=Y*TEM/800.+.5 IF(X.GT.512.) I=I+10 CALL DHALT RETURN END DOM19.FRb!/k OVERLAY DOM19 SUBROUTINE DUM19 RETURN END DRAW.FR$ OVERLAY DRAWO SUBROUTINE DRAW INTEGER Z,DVECT,BVECT COMMON /DLIST/ IBUF(5000) 5 IBLK=0 IDASH=0 BVECT=0 DVECT=0 INTN=15 IVMAX=2000 IARROW=0 IARRW=0 CALL BIN5(IBUF,5000) CALL BINIT(2,0,0,1.,1.) CALL BPLBL(IARROW) CALL BDRWR(150.,0.,15,0,0) =G CALL BDRWR(-20.,-20.,0,0,0) CALL BDRWR(20.,20.,15,0,0) CALL BDRWR(-20.,20.,15,0,0) CALL BRETN(0) CALL BINIT(3,0,0,1.,1.) CALL PONOF(2,0) CALL PXLT(3,1450.,-2023.,0) CALL BPLBL(IARRW) CALL BDRWA(0.,1800.,-15,0,0) CALL BJSLB(IARROW,0) CALL BINIT (1,0,0,4.,4.) CALL DSTRT CALL PXLT(1,-512.,-512.,0) C SET UP MENU ON RIGHT SIDE OF SCREEN CALL BDRWA(850.,800.,-15,0,0) CALL BSTNG(15,3,0,"LINE",4) CALL BPLBL(DVECT) CALL BDRWA(850.,750.,-15,0,0) CALL BSTNG(15,3,0,"DASH",4) CALL BPLBL(BVECT) CALLN BDRWA(850.,700.,-15,0,0) CALL BSTNG(15,3,0,"BLINK",5) CALL BDRWA(850.,650.,-15,0,0) CALL BSTNG(15,3,0,"CLEAR",5) CALL BDRWA(850.,600.,-15,0,0) CALL BSTNG(15,3,0,"ERASE",5) CALL BDRWA(850.,550.,-15,0,0) CALL BSTNG(15,3,0,"EXIT",4) C PUT A BOX AROU>(ND DRAWING AREA CALL BDRWA(0.,0.,0,-1,-1) CALL BDRWA(0.,1023.,15,-1,-1) CALL BDRWA(800.,1023.,15,-1,-1) CALL BDRWA(800.,0.,15,-1,-1) CALL BDRWA(0.,0.,15,-1,-1) CALL BDRWA(850.,456.,0,0,0) CALL BDRWA(912.,456.,15,0,0) CALL BDRWA(912.,6.,15,0,0) CA1LL BDRWA(850.,6.,15,0,0) CALL BDRWA(930.,6.,-15,0,0) CALL BSTNG(15,3,0,"0",1) CALL BDRWA(930.,444.,-15,0,0) CALL BSTNG(15,3,0,"15",2) CALL GTON(0) IVECT=0 C LISTEN TO DATA-TABLET/JOYSTICK 10 CALL GRDTJ(X,Y,Z) CALL GPLOT(-1) X=X+512. Y=Y+512. C |IF PEN IS UP -- DON'T DO ANYTHING IF(Z.EQ.0) GOTO 10 C IF PEN IS IN MARGIN, GO CHECK MENU IF(X.GT.800.) GOTO 100 C IS DISPLAY BUFFER IS FULL, IGNORE INPUT IF(IVECT.GE.IVMAX) GOTO 10 C PLOT A PEN-UP VECTOR TO START OF A STRING CALL BDRWA(X,Y,0,-1,-1) IQVECT=IVECT+1 C SAVE OLD X AND Y OX=X OY=Y C DELAY BETWEEN DRAWN POINTS 20 DO 25 I=1,500 25 CONTINUE C GET A POINT CALL GRDTJ(X,Y,Z) X=X+512. Y=Y+512. IF(Z.EQ.0) GOTO 10 C IF PEN IS IN MARGIN, GO CHECK MENU IF(X.GT.800) GOTO 100 C IF IT HASN'T MOVEDh/ ENOUGH, IGNORE IT IF((ABS(OX-X).LT.2) .AND. (ABS(OY-Y).LT.2)) GOTO 20 C DON'T DRAW PAST END OF DISPLAY LIST IF(IVECT.GE.IVMAX) GOTO 10 CALL BDRWA(X,Y,INTN,IBLK,IDASH) IVECT=IVECT+1 C SAVE OLD X,Y OX=X OY=Y GOTO 20 C MENU CHECKING: 100 IY=Y IF(IYz.LE.475) GOTO 500 IY=(IY+25)/50-10 IF(IY.LE.0 .OR. IY.GT.6) GOTO 10 GOTO (400,350,5,300,200,250),IY C DOT MODE (VECTOR INTENSITY = 0 -- ENDPOINT INTENSITY = 3) 200 IDASH=1-IDASH CALL BNSRT(2) CALL BGLBL(DVECT) IF(IDASH.EQ.1) CALL BDRWA(850.,750.,-15,1,0) IF(IDASH.NE.1) CALL BDRWA(850.,750.,-15,0,0) CALL BNSRT(0) 210 CALL GRDTJ(X,Y,Z) IF(Z.EQ.0) GOTO 10 GOTO 210 C LINE MODE (VECTOR INTENSITY = 3 -- ENDPOINT INTENSITY = 0) 250 INTN=15 IDASH=0 IBLK=0 CALL BNSRT(2) CALL BGLBL(BVECT) CALL BDRW"dA(850.,700.,-15,0,0) CALL BGLBL(DVECT) CALL BDRWA(850.,750.,-15,0,0) CALL BNSRT(0) GOTO 10 C BLINKING VECTORS 300 IBLK=1-IBLK CALL BNSRT(2) CALL BGLBL(BVECT) IF(IBLK.EQ.1) CALL BDRWA(850.,700.,-15,1,0) IF(IBLK.NE.1) CALL BDRWA(850.,700.,-15,0,0) k CALL BNSRT(0) GOTO 210 350 IF(IVECT.EQ.0) GOTO 10 CALL BDELV(2,0) IVECT=IVECT-1 DO 360 I=1,100 360 CONTINUE GOTO 10 500 CALL PONOF(3,0) CALL GTON(IARROW) CALL GTLIM(1450,-2023,1450,-223) 510 CALL GRDTJ(X,Y,IZ) IF(IZ.NE.0) GOTO 510 INTN=(Y+505.7ۼN5)/30. CALL BPNT(3) CALL BNSRT(2) CALL BGLBL(IARRW) CALL BDRWA(0.,FLOAT(INTN)*120.,-15,0,0) CALL GTON(0) CALL PONOF(3,1) CALL BNSRT(0) CALL BPNT(1) GOTO 10 C EXIT -- HALT DISPLAY 400 CALL DHALT RETURN END DOM13.FRy w:a OVERLAY DOM13 SUBROUTINE DUM13 CALL UMAP RETURN END EXAGRID.FRyy a COMPILER NOSTACK C *** SUBROUTINE EXAGRID *** C ***************** DEMO PROGRAM ********************** C DRAWS X-Y GRIDS UNDER THE CONTROL OF A USER PROGRAM C *** COPYRIGHT (C) MEGATEK CORPORATION, 1977 *** C *** ALL RIGHTS RESERVED *** C L- SAVED AS "EXAGRID.FR" C REV 2.0 GTS C 6-2-77 C VARIABLES PASSED IN ARE: C 1. I1--I1=0, CARTESIAN COORDINATES C I1=1, LOGARITHMIC COORDINATES C 2. I2--THE Q NUMBER OF MAJOR CYCLES C 3. I3--THE NUMBER OF MINOR DIVISIONS C 4. I4--I4=0, X-AXIS (X=CONSTANT) C I4=1, Y-AXIS (Y=CONSTANT) C 5. DMIN--DATA VALUE FOR FIRST CYCLE C 6. DMAX--DATA VALUE FOR LAST CYCLE C 7. MEAS--ARRAY CONTAINING UN5IT OF MEASURE STRING C 8. NUM--NUMBER OF CHARACTERS IN ARRAY MEAS C "EXAGRID" MUST BE CALLED TWICE; ONCE TO DRAW THE X=CONSTANT LINES, C ONCE TO DRAW THE Y=CONSTANT LINES. C GRID DRAWN IS FROM -1600,-1600 AS THE LOWER LEFT CORNER TO C 1600,1600 AS TCHE UPPER RIGHT CORNER IN SCREEN COORDINATES. C ANNOTATION IS BELOW X-AXIS & TO LEFT OF Y-AXIS. SUBROUTINE EXAGRID (I1,I2,I3,I4,DMIN,DMAX,MEAS,NUM) DIMENSION MEAS(10),ICHAR(10) C DRAW THE MAJOR CYCLES DO 8 I5=0,I2 I7=IFIX(FLOAT(I5)*3200./FLOAT(Iv2)) C CALCULATE THE DATA VALUE TO BE PRINTED FOR THE CYCLE FROM DMIN, C DMAX, AND WHETHER AXIS TO BE CARTESIAN OR LOGARITHMIC IF ( I1 .EQ. 0 ) GO TO 1 DCYC=DMIN*10**I5 GO TO 2 1 DCYC=DMIN+I5*(DMAX-DMIN)/I2 C CALCULATE THE NUMBER OF DIGITS LE FT OF THE DECIMAL POINT IN DCYC 2 NDIG=0 DIGIT=DCYC 3 IF ( AINT(DIGIT) .EQ. 0. ) GO TO 4 NDIG=NDIG+1 DIGIT=DIGIT/10. GO TO 3 C CALCULATE THE NUMBER OF DIGITS RIGHT OF THE DECIMAL POINT IN DCYC 4 NDEC=0 DIGIT=DCYC 5 IF ( DIGIT-AINTv(DIGIT) .EQ. 0. ) GO TO 6 NDEC=NDEC+1 DIGIT=DIGIT*10. GO TO 5 C CONVERT DATA VALUE TO STRING 6 CALL GNUM (DCYC,NDIG+NDEC+2,NDEC,10,ICHAR,NCHAR) C WRITE DCYC CENTERED ON THE CYCLE X=FLOAT((I7-1600-24*(NDIG+NDEC))*(1-I4)+I4*(-1928)) Y=FLOAT((I7-1600-32)*I4+(1-I4)*(-1808)) CALL BDRWA (X,Y,-15,0,0) CALL BSTNG (15,3,0,ICHAR,NCHAR) C WITH THE BEAM OFF, MOVE TO THE INITIAL POINT ON THE CYCLE TO BE DRAWN, C THEN DRAW THE CYCLE WITH INTENSITY 15. X=FLOAT(-1640+(I7+40)*(1-I4)) Y=FLOAT((I7+40)*I4-1640) CALL BDRWA (X,Y,0,0,0) X=FLOAT((I7-1600)*(1-I4)+I4*1600) Y=FLOAT((I7-1600)*I4+(1-I4)*1600) CALL BDRWA (X,Y,13,0,0) C IF LOOP COUNTER=NO. OF CYCLES TO BE DRAWN, DO NOT DRAW ANY MORE MINOR C DIVISIONS IF ( I5 .EQ. I2 ) GO TO 8 C IF LOGARITHMIC COORDINATES, BRANCH TO LOG MINOR DIVISION LOOP IF ( I1 .EQ. 1 ) GO TO 9 I8=I3-1 C GENERATE ALL MINOR DIVISIONS FOR CURRENT CYCLE -- CARTESIAN COORDINATES. DO 7 I6=1,I8 I7=IFIX(FLOAT(I5)*3200./FLOAT(I2)+FLOATsG(I6)*3200./FLOAT(I2*I3)) C WITH THE BEAM OFF, MOVE TO THE INITIAL POINT OF THE DIVISION TO BE DRAWN, C THEN DRAW THE DIVISION WITH INTENSITY 13. X=FLOAT(I7*(1-I4)-1600) Y=FLOAT(I7*I4-1600) CALL BDRWA (X,Y,0,0,0) X=FLOAT((I7-1600)*(z1-I4)+I4*1600) Y=FLOAT((I7-1600)*I4+(1-I4)*1600) CALL BDRWA (X,Y,11,0,0) 7 CONTINUE 8 CONTINUE C WRITE THE UNIT OF MEASURE STRING X=FLOAT(752*(1-I4)+I4*(-2048)) Y=FLOAT(1152*I4+(1-I4)*(-2008)) CALL BDRWA (X,Y,-15,0,0) CALL BSTNG (15,3`,0,MEAS,NUM) RETURN C GENERATE ALL MINOR DIVISIONS FOR CURRENT CYCLE -- LOGARITHMIC COORDINATES 9 DO 10 I6=2,9 I7=IFIX((FLOAT(I5)*3200.+3200.*ALOG10(FLOAT(I6)))/FLOAT(I2)) C WITH THE BEAM OFF, MOVE TO THE INITIAL POINT ON THE DIVISION TO BE DlRAWN, C THEN DRAW THE DIVISION WITH INTENSITY 13. X=FLOAT(I7*(1-I4)-1600) Y=FLOAT(I7*I4-1600) CALL BDRWA (X,Y,0,0,0) X=FLOAT((I7-1600)*(1-I4)+I4*1600) Y=FLOAT((I7-1600)*I4+(1-I4)*1600) CALL BDRWA (X,Y,11,0,0) 10 CONTINUE GO TO 8 END WIND.FRyy ) OVERLAY WINDO SUBROUTINE WIND C ***** WINDTNNL ***** C *** THIS VERSION IS AN EXAMPLE OF 5000/7000 GRAPHICS C *** USING THE FORTRAN CALLABLE ROUTINES DESCRIBED C *** THE FORTRAN CALLABLE ROUTINES DESCRIBED C *** AS "S7000," COMMON /DLIST/ IBUF(5000) P COMMON /BOZO/ IDATA (195) DATA IDATA/230, 668, 250, 664, 270, 656, 290, 652, 310, 644, 2 330, 644, 350, 640, 370, 640, 390, 640, 410, 640, 2 430, 644, 450, 644, 470, 648, 490, 648, 510, 592, 2 530, 664, 550, 656, 570, 668, 590, 656, 610a, 656, 2 630, 648, 650, 640, 670, 592, 690, 604, 710, 576, 2 730, 548, 750, 544, 770, 480, 790, 480, 810, 424, 2 830, 516, 230, 680, 250, 672, 2 270, 668, 290, 672, 310, 656, 330, 668, 350, 664, 2 370, 656, 390, 652, 410, 652,. 430, 652, 450, 650, 2 470, 648, 490, 644, 510, 648, 530, 672, 550, 656, 2 570, 628, 590, 680, 610, 660, 630, 652, 650, 640, 2 670, 600, 690, 572, 710, 552, 730, 564, 750, 492, 2 770, 452, 790, 424, 810, 432, 830, 400, 2 230, >688, 250, 688, 270, 692, 290, 688, 310, 688, 2 330, 688, 350, 684, 370, 680, 390, 676, 410, 676, 2 430, 680, 450, 684, 470, 688, 490, 688, 510, 672, 2 530, 692, 550, 680, 570, 672, 590, 672, 610, 656, 2 630, 640, 650, 624, 670, 600,eC 690, 552, 710, 520, 2 730, 492, 750, 460, 770, 440, 790, 428, 810, 428, 2 830, 440/ ISUB1=0 ISUB2=0 ISUB3=0 IFW = 0 ICURS=0 CALL BIN5 (IBUF,4500) CALL BINIT(3,0,0,1.,1.) CALL BPNT(3) CALL BPLBL(ICURS) CALL BRETN(0) CALL BINIT (2,100,0,1.0,1.0) CALL BINIT (1,0,0,4.,4.) CALL BPNT (2) CALL PONOF(3,0) CALL PONOF (2,0) C ISUB1 *** CALL BPLBL (ISUB1) CALL BMOVR (-20.,-20.) CALL BDRWR (0.,40.,1,0,0) CALL BDRWR (40.,0.,1,0,0) CALL BDRWR (0.,-40.,1,0,0) CALL BDRWR (-40.,0.,1,0,0) q CALL BMOVR (20.,20.) CALL BRETN (IFW) C ISUB2 *** CALL BPLBL (ISUB2) CALL BMOVR (0.,20.) CALL BDRWR (-20.,-40.,1,0,0) CALL BDRWR (40.,0.,1,0,0) CALL BDRWR (-20.,40.,1,0,0) CALL BMOVR (0.,-20.) CALL BRETN (IFW) C ISUB3 *** CALL BPLBL (ISUB3) CALL BMOVR (0.,20.) CALL BDRWR (0.,-40.,1,0,0) CALL BMOVR (-20.,20.) CALL BDRWR (40.,0.,1,0,0) CALL BMOVR (-20.,0.) CALL BRETN (IFW) CALL DSTRT CALL BPNT (1) CALL PXLT(1,-512.,-512.,0) DO 100 I=0,18 AL= 150+ (40*I) CALL BDRWA (AL,120.,-15,0,0) 1V00 CALL BDRWA (AL,1000.,15,0,0) DO 200 I= 0,22 AL= 120+ (40*I) CALL BDRWA (150.,AL,-15,0,0) 200 CALL BDRWA (870.,AL,15,0,0) DO 300 I= 0,2 CALL BDRWA (270.,160.,-15,0,0) CALL BDRWA (270.,960.,15,0,0) CALL BDRWA (190.,480.,-15,0,0) 300 CALL BDRWA (8qI30.,480.,15,0,0) CALL BDRWA (240.,450.,-15,0,0) CALL BSTNG (15,3,0," 0.0 ",5) CALL BDRWA (322.,450.,-15,0,0) CALL BSTNG (15,3,0," 4.00",5) CALL BDRWA (402.,450.,-15,0,0) CALL BSTNG (15,3,0," 8.00",5) CALL BDRWA (482.,450.,-15,0,0) CALL BSTNG (15,3i,0,"12.00",5) CALL BDRWA (562.,450.,-15,0,0) CALL BSTNG (15,3,0,"16.00",5) CALL BDRWA (642.,450.,-15,0,0) CALL BSTNG (15,3,0,"20.00",5) CALL BDRWA (160.,155.,-15,0,0) CALL BSTNG (15,3,0,"-.008",5) CALL BDRWA (160.,235.,-15,0,0) CALL BSTNG (15,3,0,"K-.006",5) CALL BDRWA (160.,315.,-15,0,0) CALL BSTNG (15,3,0,"-.004",5) CALL BDRWA (160.,395.,-15,0,0) CALL BSTNG (15,3,0,"-.002",5) CALL BDRWA (160.,475.,-15,0,0) CALL BSTNG (15,3,0," 0.0 ",5) CALL BDRWA (160.,555.,-15,0,0) CALL BSTNG (15,3,0," .00q]2",5) CALL BDRWA (160.,635.,-15,0,0) CALL BSTNG (15,3,0," .004",5) CALL BDRWA (160.,715.,-15,0,0) CALL BSTNG (15,3,0," .006",5) CALL BDRWA (160.,795.,-15,0,0) CALL BSTNG (15,3,0," .008",5) CALL BDRWA (160.,875.,-15,0,0) CALL BSTNG (15,3,0," .010",5=) CALL BDRWA (160.,955.,-15,0,0) CALL BSTNG (15,3,0," .012",5) DO 400 I= 1,3 IF (I .EQ. 1) ISUB = ISUB1 IF (I .EQ. 2) ISUB = ISUB2 IF (I .EQ. 3) ISUB = ISUB3 IJMP= 62*I-61 X= IDATA (IJMP) Y= IDATA (IJMP+1)+120*(I-1) CALL BDRWA (X,Y,-15,0,0) CALEL BJSLB (ISUB,0) DO 500 II=2,60,2 X= IDATA (IJMP+II) Y=IDATA(IJMP+II+1)+120*(I-1) CALL BDRWA (X,Y,15,0,0) 500 CALL BJSLB (ISUB,0) 400 CONTINUE CALL BDRWA (450.,240.,-15,0,0) CALL BSTNG (15,3,0,"BETA DERIVATIVES",16) CALL BDRWA (450.,215.,-15,0,0) $CALL BSTNG (15,3,0,"EFFECT ON BETA RANGE",20) CALL BDRWA (450.,190.,-15,0,0) CALL BSTNG (15,3,0,"FLAPS UP, TAIL ON",17) CALL BDRWA (150.,100.,-15,0,0) CALL BSTNG (15,3,0," CALC: D. SMITH 4/21/75",28) CALL BDRWA (150.,80.,-15,0,0) CALL BSTNG (15,A3,0," CHECK: B. JONES",16) CALL BDRWA (150.,60.,-15,0,0) CALL BSTNG (15,3,0," APA:",5) CALL BDRWA (150.,40.,-15,0,0) CALL BSTNG (15,3,0," APA:",5) CALL BDRWA (150.,97.,-15,0,0) CALL BDRWA (870.,97.,15,0,0) CALL BDRWA (150.,77.,-15,0,0) CALL BDRWA (870.,77.,15,0,0) CALL BDRWA (150.,57.,-15,0,0) CALL BDRWA (870.,57.,15,0,0) CALL BDRWA (150.,120.,-15,0,0) CALL BDRWA (870.,120.,15,0,0) CALL BDRWA (150.,37.,-15,0,0) CALL BDRWA (870.,37.,15,0,0) CALL BDRWA (150.,37.,-15,0,0) CALL BDRWA (150.,120.,15,0,0) CALL BDRWA (870.,37.,-15,0,0) CALL BDRWA (870.,120.,15,0,0) CALL BDRWA (510.,37.,-15,0,0) CALL BDRWA (510.,120.,15,0,0) CALL BDRWA (690.,37.,-15,0,0) CALL BDRWA (690.,120.,15,0,0) CALL BDRWA (374.,37.,-15,0,0) CALL BDRWA (374.,120.,15,0,0) CALL BDRWA (507.,37.,-15,0,0) CALL BDRWA (510.,100.,-15,0,0) CALL BSTNG (15,3,0," REVISED",11) CALL BDRWA (690.,100.,-15,0,0) CALL BSTNG (15,3,0," DATE",10) CALL BDRWA (296.,485.,-15,0,0) CALL BSTNG (15,3,0,"ALPHA-W",7) CALL BDRWA (275.,506.,-15,0,0) CALL BSTNG (15,3,0,"A",1) CALL BDRWA (275.,526.,-15,0,0) CALL BSTNG (15,3,0,"S",1) CALL BDRWA (275.,546.,-15,0,0) CALL BSTNG (15,3,0,"M",1) CALL BDRWA (275.,566.,-15,0,0) CALL BSTNG (15,3,0,"Y",1) CALL BDRWA (275.,586.,-15,0,0) CALL B|mSTNG (15,3,0,"C",1) CALL BDRWA (393.,18.,-15,0,0) CALL BSTNG (15,3,0,"WIND TUNNEL DATA",16) C CALL BDRWA (900.,900.,-15,0,0) C CALL BSTNG (15,3,0,"EXIT",4) CALL GTON (ICURS) 800 CALL GRDTJ (X,Y,IZ) CALL GPLOT(-1) IF (IZ .EQ. 0) GOTO 800 CALL DHALT RETURN END END SCROLL.FRyy  COMPILER NOSTACK SUBROUTINE SCROLL COMMON /DLIST/ IBUF(5000) COMMON /SCDAT/ IA(40,33),LMAX LINE=0 IWAIT=1000 CALL BIN5(IBUF,5000) CALL BINIT(1,0,0,1.,1.) CALL PONOF(1,0) CALL BPLBL(ICURS) CALL BDRWR(20.,20.,15,0,0) CALL BMOVR(-20.,-20.) CALL BDRWR(20.,-20.,15,0,0) CALL BMOVR(-20.,20.) CALL BDRWR(100.,0.,15,0,0) CALL BRETN(0) CALL BINIT(3,0,0,1.,1.) CALL BPNT(3) CALL BDRWA(-2048.,1500.,-15,0,0) CALL BSTNG(15,3,0,"FAST",4) CALL BDRWA(-2048.,0.,-15,0,0) CALL BSTNG(15,3,0,"STOP",4) CALqRL BMOVA(-1830.,0.) CALL BDRWA(-1850.,0.,15,0,0) CALL BDRWA(-1850.,1500.,15,0,0) CALL BDRWA(-1830.,1500.,15,0,0) CALL BINIT(2,4800,1,1.,1.) CALL BTXAT(2,3,-1650,1500,80,40,0) CALL BPNT(2) CALL PONOF (1,0) CALL DSTRT CALL CHREF(0) CALL GTON(ICURS)_ CALL GTLIM(-1800,0,-1799,1500) IP=0 2 IP=IP+1 5 LINE=LINE+1 IF(LINE.EQ.LMAX) LINE=1 CALL BTEXT(-1,IA(1,LINE)) IF(IP.LT.40) GOTO 2 IWAIT=30000-IWAIT DO 7 I=0,IWAIT 7 CONTINUE 10 CALL GRDTJ(X,Y,IZ) CALL GPLOT(-1) IF(IZ.NE.0) GOTO 300 IF(Y.EQ.?؄0) GOTO 10 IWAIT=Y*20. GOTO 5 300 CALL DHALT RETURN END DOM18.FRy!H9) OVERLAY DOM18 SUBROUTINE DUM18 CALL XGRAPH CALL POLAR RETURN END DOM12.FRy y"8j OVERLAY DOM12 SUBROUTINE DUM12 CALL LAY RETURN END POLAR.FRyy 3& COMPILER NOSTACK SUBROUTINE POLAR COMMON /DLIST/ IBUF(5000) C *** POLAR *** C REV 1.0 GTS C 6-2-77 C * USES MEGATEK MG552-C GRAPHICS PI=3.14159 PI2=2.*PI CALL BIN5(IBUF,5000) CALL BINIT(2,0,0,1.,1.) CALL BPLBL(ICUR) CALL BRETN(0) CALL BIZNIT (1,0,0,1.0,1.0) CALL PONOF(2,0) CALL DSTRT C DRAW POLAR GRID RAD=0. ISIDES=25 DO 100 L1=1,4  DO 100 L2=1,3 RAD=RAD+150. ISIDES=IFIX(FLOAT(ISIDES)*1.2) CALL BDRWA (0.,RAD,0,0,0) DO 100 L3=1,ISIDES X=RAD*SIN(PI2/5ISIDES*L3) Y=RAD*COS(PI2/ISIDES*L3) IZ=12 IF ( L2 .EQ. 3 ) IZ=14 CALL BDRWA (X,Y,IZ,0,0) 100 CONTINUE CALL BDRWA (0.,2000.,0,0,0) CALL BDRWA (0.,-2000.,14,0,0) CALL BDRWA (2000.,0.,0,0,0) CALL BDRWA (-2000.,0.,14,0,0) C ANNOTATE GRID CALL BDRWA (-160.,460.,-15,0,0) CALL BSTNG (15,3,0,"100",3) CALL BDRWA (-160.,910.,-15,0,0) CALL BSTNG (15,3,0,"200",3) CALL BDRWA (-160.,1360.,-15,0,0) CALL BSTNG (15,3,0,"300",3) CALL BDRWA (-160.,1810.,-15,0,0)  CALL BSTNG (15,3,0,"400",3) CALL BDRWA (-1950.,1406.,-15,0,0) CALL BSTNG (15,4,0,"TEST ANT. G-47",14) CALL BDRWA (-1950.,1150.,-15,0,0) CALL BSTNG (15,4,0," H-PLANE RESPONSE",17) CALL BDRWA (-1950.,894.,-15,0,0) CALL BSTNG (15,4,0," $28 MH<172>",7) C DRAW R=COS(5*THETA) ON GRID CALL BDRWA (1200.,0.,0,0,0) DO 300 N=1,200 THETA=FLOAT(N)*PI/200. RAD=1200.*COS(5.*THETA) X=RAD*COS(THETA) Y=RAD*SIN(THETA) CALL BDRWA (X,Y,15,0,0) 300 CONTINUE CALL GTON(ICUR) 400 CAS LL GRDTJ(X,Y,IZ) CALL GPLOT(-1) IF(IZ.EQ.0) GOTO 400 CALL DHALT RETURN END DOM1.FRy w8v OVERLAY DOM1 SUBROUTINE DUM1 CALL DRAW RETURN END EXAGRAPH.FRyy  COMPILER NOSTACK SUBROUTINE XGRAPH COMMON /DLIST/ IBUF(5000) C *** ANNOTATED MEGAGRAPH FOR THE MG552 *** C************************* DEMO PROGRAM ******************* C *** COPYRIGHT (C) MEGATEK CORPORATION, 1977 *** C *** ALL RIGHTS RESERVED *** C  SAVED AS "EXAGRAPH.FR" C REV 2.0 GTS C 6-2-77 DIMENSION MEAS1(10),MEAS2(10) COMMON/OZOB/MEAS1,MEAS2 DATA MEAS1/"V<143>"/ DATA MEAS2/"I<143>"/ C CLEAR BUFFER TABLE, INITIALIZE, & START PROCESSOR CALL BIN5 (IBUF,5000) CALL BINIT(3,0,0,1.,1.) CALL BPLBL(ICUR) CALL BRETN(0) CALL BINIT (1,0,0,1.0,1.0) CALL PONOF(3,0) CALL DSTRT C FOR X-AXIS, INPUT: C 1. WHETHER CARTESIAN OR LOGARITHMIC COORDINATES. C 2. THE NUMBER OF MAJOR CYCLES (THOSE TO BE BRIGHTLY LIGHTED). C 3. THE NUMBER OF MINOR DIVISIONS PER CYCLE (TO BE DIMLY LIGHTED). C 4. MIN & MAX DATA VALUES FOR CYCLE ANNOTATION. C 5. UNIT OF MEASURE FOR THE AXIS. C 6. NUMBER OF CHARACTERS IN TўHE UNIT OF MEASURE. I1=0 I2=10 I3=10 DMIN=0. DMAX=1000. NUM=2 C I4 IS THE AXIS STATUS FLAG FOR THE DRAWING SUBROUTINE C I4=0 DENOTES THE X-AXIS C I4=1 DENOTES THE Y-AXIS I4=0 C CALL SUBROUTINE "EXAGRID" TO DRAW THE X-AXIS (X=CONSTANT) 5LINES CALL EXAGRID (I1,I2,I3,I4,DMIN,DMAX,MEAS1,NUM) C FOR Y AXIS, INPUT: C 1. WHETHER CARTESIAN OR LOGARITHMIC COORDINATES. C 2. THE NUMBER OF MAJOR CYCLES (THOSE TO BE BRIGHTLY LIGHTED). C 3. THE NUMBER OF MINOR DIVISIONS (TO BE DIMLY LIGHTEDw). C 4. MIN & MAX DATA VALUES FOR CYCLE ANNOTATION. C 5. UNIT OF MEASURE FOR THE AXIS. C 6. NUMBER OF CHARACTERS IN THE UNIT OF MEASURE. I1=1 I2=4 I3=0 DMIN=1. DMAX=10000. NUM=2 C SET I4=1 TO DENOTE THE Y-AXIS TO THE DRAWING SUBROUTINE I4=1 C CALL SUBROUTINE "EXAGRID" TO DRAW THE Y-AXIS (Y=CONSTANT) LINES CALL EXAGRID (I1,I2,I3,I4,DMIN,DMAX,MEAS2,NUM) C ADD CURVE CALL BINIT (2,0,0,1.0,1.0) DO 100 I=1,5 X=0. CALL BDRWA (-1600.,-1600.,0,0,0) E=1.05+I*.1-.3 90 Y=X**E X=X+.16 IF ( Y .GT. 16 ) GO TO 100 IF ( X .GT. 16 ) GO TO 100 CALL BDRWA ((X-8.)*200.,(Y-8.)*200.,15,0,0) GO TO 90 100 CONTINUE CALL BDRWA (750.,-700.,-15,0,0) CALL BSTNG (15,3,0,"I<142>",2) CALL GTON(ICUR) 300 CALL GRDTJ(X,Y,EdIZ) CALL GPLOT(-1) IF(IZ.EQ.0) GOTO 300 CALL DHALT RETURN END DOM2.FRy w 8 OVERLAY DOM2 SUBROUTINE DUM2 CALL LOGDI RETURN END LAYDATA. u GDallas--Prospective purchasers of interactive graphics systems cheered today at the exhibition of MEGATEK's Series 5000 and new Series 7000 sys- tems. The MEGATEK offerings provide high performance at a most reasonable cost. The MEGRAPHIC 5000 offers comp_%lete stand-alone and terminal refresh vector graphics systems based on a 16-bit minicomputer. Hardware translation, blinking and dashed lines are standard, as is 12- bit resolution. A bold design tour de force, the MEGRAPHIC 7000 features internal RAM memwory and micro- processor to make it CPU- independent. Powerful Fortran routines make its many features convenient for the novice, versatile for the experienced. The mood among MEGATEK's major competitors was one of gloom. Their offerings now seem as holdovers from an older generation of graphics concepts. The sophisticated new MEGATEK systems with their amazingly low price tags seem to be assured of taking the graphics industry by storm. DOM3.FRy w 7P OVERLAY DOM3 SUBROUTINE DUM3 CALL WIND RETURN END DOM4.FRy w 9I OVERLAY DOM4 SUBROUTINE DUM4 CALL SHAPES RETURN END SCRDATA.y  Q BLOCK DATA COMMON /SCDAT/ IA(40,33),LMAX DATA LMAX/33/ DATA IA(1,1)/"INTRODUCTION"/ DATA IA(1,2)/" "/ DATA IA(1,3)/"The M7000 is a system of integrated, For 2tran callable subroutines"/ DATA IA(1,4)/"which enable the Fortran programmer to m  2anipulate and display graphical"/ DATA IA(1,5)/"images on the Megatek 7000 Graphic Displ 2ay System. The MEGRAPHIC 5000"/ DATA IA(1,6)/"uses a subset of the M7000 software. Th 2e system is designed to minimize"/ DATA IA(1,7)/"user attention to the screen coordinate 2system and to permit maximum"/ DATA IA(1,8)/"flexibility in defining user coordinate 2systems for the various images"/ DATA IA(1,9)/"displayed on the monitor. Bookkeeping f 2or display processor addresses<"/ DATA IA(1,10)/"has also been eliminated."/ DATA IA(1,11)/" "/ DATA IA(1,12)/"The user creates display lists in the 70 200 processor under"/ DATA IA(1,13)/"control of the M7000 software, which uti 2lizes a data base located in a "/ DATA IAJ(1,14)/"labeled common block (S7000)."/ DATA IA(1,15)/" "/ DATA IA(1,16)/"THE PICTURE"/ DATA IA(1,17)/" "/ DATA IA(1,18)/"A <42>picture<42> is a display list in the mem 2ory of the 7000 processor,"/ DATA IA(1,19)/"and consists of three specific s֤ections: 2 the picture header, the picture"/ DATA IA(1,20)/"components, and the picture trailer."/ DATA IA(1,21)/" "/ DATA IA(1,22)/"The picture header contains display list 2 commands which set initial"/ DATA IA(1,23)/"picture rotation, translation, scaling, 2clipping, and special display"/ DATA IA(1,24)/"functions. The first word of the pictur 2e header is a jump instruction"/ DATA IA(1,25)/"which is used to turn the picture <42>on 2<42> or <42>off<42>. If the"/ DATA IA(w1,26)/"picture is off, the jump instruction des 2tination address is the first"/ DATA IA(1,27)/"word of the next picture. If the pictur 2e is on, the jump instruction"/ DATA IA(1,28)/"destination address is the next word of 2the header. > A set of Fortran"/ DATA IA(1,29)/"callable subroutines is provided to perm 2it the picture to be rotated,"/ DATA IA(1,30)/"translated, etc. These <42>P<42> routin 2es (names starting with a"/ DATA IA(1,31)/"<42>P<42>) all modify the picture FUheader 2."/ DATA IA(1,32)/" "/ DATA IA(1,33)/" "/ END 2DOM5.FRy w 6\ OVERLAY DOM5 SUBROUTINE DUM5 CALL DES RETURN END CHARS.FR/# SUBROUTINE CHARS COMMON /DLIST/ IBUF(5000) DIMENSION X(32),Y(32),IROT(4) INTEGER STRING1(21),STRING2(21),ARGUMENT,CURSOR COMMON/OZOB2/STRING1,STRING2,X,Y,IROT,CURSOR DATA STRING1/"MEGATEK'S HARDWARE CHARACTER GENERATOR: "/ DATA STRING2/"PROGRAMMABLE CHARACTER SIZES "/ DATA X/8*-1600.,1200.,750.,311.,-101.,-461.,-773.,-1037.,-1219., 1 8*1600.,-1200.,-750.,-311.,101.,461.,773.,1037.,1219./ DATA Y/-1200.,-750.,-311.,101.,461.,773.,1037.,1219.,8*-1600., 1 1200.,750.,311.,-101.,-461.,-773.,-1037.,-1219.,8*1600./ DATA IROT/0,1,2,3/ DATA CURSOR/0/ C *** DEMO OF HARDWARE CHARACTER SIZES *** C SAVED AS "CHARS.FR" C REV 2.0 GTS C 02/23/78 x C * USES MEGATEK MG552-C GRAPHICS C INITIALIZE GRAPHICS BUFFER CALL BIN5 (IBUF,5000) C INITIALIZE USER-DEFINED CURSOR -- NO CURSOR, IN THIS CASE CALL BINIT (5,0,0,1.0,1.0) CALL BPLBL (CURSOR) CALL BRETN (0) C INITIALIZE EACH OF FOUR PICTURES TO BE USED FOR CHARACTERS DO 10 I=1,4 LOOP=5-I CALL BINIT (LOOP,1000,0,1.0,1.0) CALL PONOF (LOOP+1,0) 10 CONTINUE C FILL EACH PICTURE WITH 8 CHARACTER SIZES DO 30 LOOP=1,4 CALL BPNT (LOOP) CALL BNSRT (0) ARGUMENT=(LOOP-1)*8 CA`LL BDRWA (X(ARGUMENT+1),Y(ARGUMENT+1),-15,0,0) CALL BSTNG (15,7,IROT(LOOP),STRING1,32) CALL BDRWA (X(ARGUMENT+2),Y(ARGUMENT+2),-15,0,0) CALL BSTNG (15,6,IROT(LOOP),STRING1,38) CALL BDRWA (X(ARGUMENT+3),Y(ARGUMENT+3),-15,0,0) CALL BSTNG (15,5,IROT(LOOP),STRING1,40) CALL BSTNG (15,5,IROT(LOOP),STRING2,4) CALL BDRWA (X(ARGUMENT+4),Y(ARGUMENT+4),-15,0,0) CALL BSTNG (15,4,IROT(LOOP),STRING1,40) CALL BSTNG (15,4,IROT(LOOP),STRING2,12) CALL BDRWA (X(ARGUMENT+5),Y(ARGUMENT+5),-15,0k,0) CALL BSTNG (15,3,IROT(LOOP),STRING1,40) CALL BSTNG (15,3,IROT(LOOP),STRING2,26) CALL BDRWA (X(ARGUMENT+6),Y(ARGUMENT+6),-15,0,0) CALL BSTNG (15,2,IROT(LOOP),STRING1,40) CALL BSTNG (15,2,IROT(LOOP),STRING2,40) CALL BSTNG (15,2,IROT(LOR9OP),STRING1,8) CALL BDRWA (X(ARGUMENT+7),Y(ARGUMENT+7),-15,0,0) CALL BSTNG (15,1,IROT(LOOP),STRING1,40) CALL BSTNG (15,1,IROT(LOOP),STRING2,40) CALL BSTNG (15,1,IROT(LOOP),STRING1,40) CALL BSTNG (15,1,IROT(LOOP),STRING2,12) IF ( LOOP ./GT. 1 ) GO TO 20 CALL DSTRT CALL GTON (CURSOR) GO TO 30 C STOP IF JOYSTICK SWITCH PRESSED. RESTART WHEN PRESSED AGAIN. 20 CALL GRDTJ (X,Y,IPEN) CALL GPLOT(-1) IF ( IPEN .EQ. 0 ) GO TO 28 IF((XX.GT.1900.).AND.(YY.GT.1900.)) GOTO 200 S24 CALL GRDTJ (X,Y,IPEN) IF ( IPEN .EQ. 1 ) GO TO 24 26 CALL GRDTJ (X,Y,IPEN) CALL GPLOT(-1) IF ( IPEN .EQ. 0 ) GO TO 26 28 CALL PONOF (LOOP-1,0) CALL PONOF (LOOP,1) 30 CONTINUE C SHOW 4 PICTURES IN SEQUENCE 40 DO 70 LOOP=1,4 C DO|| 50 ITIME=1,100 DO 50 ITIMR=1,300 CALL GRDTJ(XX,YY,IPEN) CALL GPLOT(-1) IF(IPEN) 49,50,49 49 IF((XX.GT.1900.).AND.(YY.GT.1900.)) GOTO 200 50 CONTINUE C STOP IF JOYSTICK SWITCH PRESSED. RESTART WHEN PRESSED AGAIN. CALL GRDTJ (X,Y,IPEN)  IF ( IPEN .EQ. 0 ) GO TO 58 54 CALL GRDTJ (X,Y,IPEN) IF ( IPEN .EQ. 1 ) GO TO 54 56 CALL GRDTJ (X,Y,IPEN) CALL GPLOT(-1) IF ( IPEN .EQ. 0 ) GO TO 56 58 IF ( LOOP .EQ. 1 ) GO TO 60 CALL PONOF (LOOP-1,0) CALL PONOF (LOOP,1) GO TfwO 70 60 CALL PONOF (4,0) CALL PONOF (1,1) 70 CONTINUE GO TO 40 200 CALL DHALT RETURN END DOM6.FRy #.[ OVERLAY DOM6 SUBROUTINE DUM6 CALL AIR END DOM7.FRy y$8 OVERLAY DOM7 SUBROUTINE DUM7 CALL MMEGA RETURN END DESIGN.FR7l? SUBROUTINE DES C ***** DESIGN ***** COMMON /DLIST/ IBUF(5000) COMMON /ROTBLK/ISTR(8),ISTRG(64),ISTRG1(31) DATA ISTR/"SIDES FIGURES "/, 2 ISTRG/"1 5 10 ", 2 "0 a 50 100 "/, 2 ISTRG1/"0 30 60 90 120 150 180 210 240 270 300 330 360"/ PI=3.14159 C F IS THE CONSTANT WHICH CONTROLS THE SIZE OF THE DESIGN F=19 IMEN=1 CALL BIN5 (IBUF,4500) DO 10 I=0,1 CALL BI%NIT (I+1,0,0,1.012,1.012) CALL BDRWA(1500.,1500.,-15,0,0) CALL BSTNG(15,4,0,ISTR(I*4+1),8) CALL BDRWA(-1830.+(1-I)*180.,-2024.,-15,0,0) CALL BSTNG(15,4,0,ISTRG(I*32+1),64) CALL BDRWA(-1800.,-1550.,-15,0,0) DO 10 J=1,9 CALL BDRWR(360.,-200.,0,0,0) CqALL BDRWR(0.,200.,15,0,0) 10 CONTINUE CALL BINIT (3,0,0,1.012,1.012) CALL BDRWA(1500.,1500.,-15,0,0) CALL BSTNG(15,4,0,"ROTATION",8) CALL BDRWA(-1830.,-2024.,-15,0,0) CALL BSTNG(15,4,0,ISTRG1,62) CALL BDRWA(-1800.,-1550.,-15,0,0) DO 20 J=1,11 CALL BDRWR(300.,-200.,0,0,0) CALL BDRWR(0.,200.,-15,0,0) 20 CONTINUE CALL PONOF (2,0) CALL BINIT (5,0,0,1.012,1.012) CALL DSTRT CALL PONOF (3,0) CALL GTON (0) CALL BDRWA(1500.,1800.,-15,0,0) CALL BSTNG(15,4,0,"EXIT",4) CALL BDRWA(-1800.,-1950.,0,0,0) CALL BDRWA(-1800.,-1350.,15,0,0) CALL BDRWA(-1800.,-1650.,0,0,0) CALL BDRWA(1800.,-1650.,15,0,0) CALL BDRWA(1800.,-1350.,0,0,0) CALL BDRWA(1800.,-1950.,15,0,0) CALL BDRWA(1440.,-1550.,-15,0,0) CALL BINIT(4,2300,0,1.012,1.012) C LISTEN TO DATA TA&BLET/JOYSTICK 100 CALL GRDTJ (X,Y,IZ) IF (IZ .NE. 0) GOTO 100 110 CALL GRDTJ (X,Y,IZ) IF (IZ .NE. 1) GOTO 110 IF (X.GT.1500. .AND.Y.GT.1800.) GOTO 999 IF ((Y.GT.-1550. .OR.Y.LT.-1750.).OR.(X.LT.-1800. .OR.X.GT. 1800.)) GOTO 100 GOTO (120,140),IMEN 120p{ ISID= (X+2160.)/360. ISID1=ISID+1 IMEN=2 CALL BPNT (4) CALL BDRWA (0.,100.,-1,0,0) DO 130 I=1,ISID PHI= 2*PI*I/ISID+PI/2 X= COS(PHI)*100 Y= SIN(PHI)*100 130 CALL BDRWA (X,Y,15,0,0) CALL PONOF (1,0) CALL PONOF (2,1) GOTO 100 140 FIG=(X+1800.)/36". IFIG=FIG CALL PONOF (2,0) CALL PONOF (3,1) C LISTEN TO DATA-TABLET/JOYSTICK 200 CALL GRDTJ (X,Y,IZ) IF (IZ .NE. 0) GOTO 200 210 CALL GRDTJ (X,Y,IZ) IF (IZ .NE. 1) GOTO 210 IF (X.GT.1500..AND.Y.GT.1800.) GOTO 999 IF ((Y.GT.-1550. .OR.Y.LT.-1750.).OR.(X.LT.-1800. .OR.X.GT.1800.)) GOTO 200 CALL PONOF (3,0) CALL PONOF(5,0) CALL BPNT (4) ROT= (X+1800)*PI/1800 DO 220 I=1 ,IFIG PHI=PI/2+ROT*I R= (F*I+FIG)/FIG *100 X=R*COS (PHI) Y=R*SIN (PHI) CALL BDRWA (X,Y,-1,0,0) DO 220 J=1,ISID PHI=PI/2 +2R*PI*J/ISID +ROT*I X=R*COS (PHI) Y=R*SIN (PHI) 220 CALL BDRWA (X,Y,15,0,0) C ENDING MENU CALL BDRWA (1500.,1600.,-15,0,0) CALL BSTNG (15,4,0,"NEXT",4) CALL BDRWA(1500.,1800.,-15,0,0) CALL BSTNG(15,4,0,"EXIT",4) C LISTEN TO DATA-TABLET/JOYSTICK 300 C=ALL GRDTJ (X,Y,IZ) IF (IZ .NE. 0) GOTO 300 310 CALL GRDTJ (X,Y,IZ) CALL GPLOT(-1) IF (IZ .NE. 1) GOTO 310 IF((X.GT.1500.).AND.(Y.GT.1800.)) GOTO 999 C NEXT DESIGN CALL PONOF (4,0) CALL BINIT (4,2300,0,1.012,1.012) CALL PONOF(5,1) CALL PONOF (1,1) H:B IMEN=1 GOTO 100 C EXIT -- RETURN TO MENU 999 CALL DHALT RETURN END DOM8.FRy y 9n OVERLAY DOM8 SUBROUTINE DUM8 CALL RBURST RETURN END DOM17.FRy xE OVERLAY DOM17 SUBROUTINE DUM17 CALL SETS CALL CHARS RETURN END DOM9.FRy 8 OVERLAY DOM9 SUBROUTINE DUM9 CALL QUBIC RETURN END DOM11.FRy y":Z OVERLAY DOM11 SUBROUTINE DUM11 CALL LOGO RETURN END AIRDATA2.y  E BLOCK DATA COMMON/BEORN/ IO(9),IN(9), IV(4,9),IE(20) 2 ,IFF(21),IG(11),IH(19),IALT(20), Q1,T,IDENT DATA Q1,T/0.013,3.14159/,IO/9*1/,IN/9*1/,IV/50,300,450,300,200 2 ,200,600,400,700,25,700,700,-1000,-25,200,700,-200,-200,300,300, 2 500,-200,1100,750,-200,550,400,750,-700,450,1100,900,-200,50,750,900/ 2 ,IDENT/0/,IFF/"/134/902/167/543/328/820/131/569/742/508" 2 /,IG/"0 1 2 3 4 5 6 7 8 9 "/,IH/"DC8 L1011 B747 B727 B720 DC10 "/ 2 ,IALT/"180 195 203 245 253 278 297L 332 348 350"/ 2 ,IE/"UAL AAL TWA EAL PSA GTA BNF JAL DLT HAW"/ END AIRDATA.y D~ BLOCK DATA COMMON /GANDALF/ IXX(298),IYY(298),IZZ(298),IREP(3) DATA IXX/ 179, 184, 207, 237, 274, 321, 371, 425, 492, 560, 2 630, 699, 768, 832, 884, 182, 174, 188, 205, 194, 2 208, 232, 225, 241, 268, 262, 277, 310, 308, 321,  2 360, 358, 373, 424, 420, 438, 492, 496, 507, 561, 2 566, 580, 627, 638, 644, 697, 711, 716, 770, 785, 2 792, 837, 854, 861, 423, 474, 477, 392, 370, 472, 2 467, 350, 333, 461, 454, 317, 446, 306, 439, 291, 2 420, 2855, 279, 403, 384, 277, 273, 368, 351, 277, 2 275, 272, 277, 334, 281, 319, 273, 206, 96, 124, 2 155, 190, 224, 258, 293, 323, 359, 395, 427, 459, 2 494, 530, 566, 600, 628, 666, 692, 726, 764, 804, 2 821, 218, 259, 323, 392, 7/459, 527, 597, 647, 198, 2 254, 325, 391, 461, 529, 599, 661, 697, 738, 123, 2 185, 256, 323, 426, 494, 562, 626, 695, 763, 829, 2 890, 403, 403, 403, 403, 403, 403, 320, 267, 186, 2 101, 136, 234, 310, 410, 495, 580, 668, 753, 863, 2 898, 824, 724, 643, 565, 519, 519, 519, 519, 519, 2 519, 519, 124, 170, 230, 287, 323, 323, 323, 358, 2 467, 483, 101, 132, 214, 294, 367, 385, 421, 457, 2 517, 575, 594, 626, 127, 189, 247, 293, 379, 412, 2 (F 416, 436, 436, 458, 518, 569, 619, 651, 706, 230, 2 263, 307, 348, 348, 315, 252, 226, 230, 267, 267, 2 283, 300, 300, 267, 523, 492, 463, 439, 439, 449, 2 449, 448, 469, 469, 484, 526, 574, 609, 669, 694, 2 745, 799, 608yE, 547, 519, 510, 510, 536, 578, 652, 2 718, 796, 869, 890, 840, 808, 763, 723, 654, 608, 2 634, 601, 578, 578, 596, 600, 635, 679, 787, 833, 2 833, 803, 750, 705, 684, 661, 634, 663, 643, 643, 2 675, 740, 769, 769, 721, 689,q 664, 651, 646, 663, 2 693, 687, 692, 717, 733, 723, 710, 693/,IYY/353, 351, 2 417, 480, 542, 601, 652, 697, 721, 736, 740, 729, 2 707, 685, 668, 356, 369, 363, 408, 425, 422, 473, 2 484, 487, 533, 546, 546, 588, 603, 602, 643, 658, 2 655, 696, 712, 700, 720, 734, 725, 735, 749, 739, 2 739, 751, 738, 731, 738, 726, 707, 713, 700, 684, 2 690, 675, 501, 374, 339, 540, 560, 311, 293, 578, 2 591, 278, 267, 598, 254, 604, 242, 612, 240, 600, 2 GE 587, 256, 269, 564, 550, 278, 292, 504, 484, 483, 2 473, 312, 421, 321, 450, 341, 628, 657, 684, 710, 2 733, 755, 775, 789, 804, 815, 823, 831, 839, 849, 2 850, 849, 853, 852, 851, 851, 845, 841, 838, 882, 2 903, 924, 945J, 957, 966, 970, 971, 337, 377, 405, 2 426, 448, 451, 436, 396, 346, 278, 469, 514, 541, 2 563, 578, 593, 603, 607, 605, 587, 554, 505, 212, 2 297, 383, 485, 575, 638, 638, 638, 638, 638, 766, 2 766, 766, 766, 766, 766, 766,R, 766, 766, 638, 638, 2 638, 638, 638, 638, 560, 497, 439, 374, 306, 200, 2 463, 488, 493, 474, 430, 386, 324, 266, 236, 201, 2 582, 609, 621, 600, 542, 463, 374, 348, 348, 319, 2 270, 219, 744, 787, 846, 846, 832, 761, 681, 589, 2 518, 454, 408, 354, 310, 266, 257, 732, 770, 780, 2 756, 714, 653, 670, 700, 732, 709, 727, 733, 715, 2 697, 711, 998, 975, 947, 896, 833, 806, 770, 682, 2 602, 565, 498, 442, 402, 368, 294, 294, 315, 334, 2 9LY13, 881, 823, 731, 643, 569, 501, 435, 415, 411, 2 447, 679, 740, 793, 839, 877, 919, 914, 827, 800, 2 734, 685, 623, 571, 524, 500, 500, 556, 627, 689, 2 742, 787, 831, 839, 827, 734, 684, 629, 576, 565, 2 603, 660, 703, 76t3, 783, 783, 760, 733, 660, 639, 2 608, 602, 627, 661, 671, 659/,IZZ/0, 10, 10, 10, 10, 10, 10, 2 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 2 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1'0, 2 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 0, 10, 2 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 2 10, 0, 10, 0, 10, 0, 0, 0, 10, 0, 0, 10, 0, 0, 10, 10, 10, 2 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 2 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 12, 2 12, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 12, 2 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 10, 10, 10, 10, 2 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 2 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 0, 10, 10, 10, 2 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 2 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 0, 10, 2 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 2 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 2 10, 10/,IREP/141,172,298/ END GLIDE.FRyy ;]C ***** GLIDE.FR ***** SUBROUTINE GLIDE INTEGER BAR,LINE INTEGER M(10) REAL IX,IY DIMENSION GSX(10),GSY(10),CX(10),CY(10) COMMON /DLIST/ IBUF(5000) COMMON/PIC/ BAR,LINE COMMON /LABELS/ M DATA M/10*0/ CALL BIN5 (IBUF,4500) CALL BINIT (2,200,0,D/4.,4.) CALL PONOF (2,0) CALL PXLT (2,-512.,-512.,0) CALL GTON (0) CALL BPNT (2) CALL BPLBL (M(1)) CALL BDRWA (223.,450.,-15,0,0) CALL BSTNG (15,3,0," ",1) CALL BRETN (0) CALL BPLBL (M(2)) CALL BDRWA (223.,450.,-15,0,0) CALL BSTNG (15,3,0,"BELObW GLIDESLOPE",16) CALL BRETN (0) CALL BPLBL (M(3)) CALL BDRWA (223.,450.,-15,0,0) CALL BSTNG (15,3,0,"ABOVE GLIDESLOPE",16) CALL BRETN (0) CALL BPLBL (M(6)) CALL BDRWA (223.,450.,-15,1,0) CALL BSTNG (15,3,0,"CRASH CONDITION",15) CALL BRETN (0) B CALL BPLBL (BAR) CALL BDRWR (0.,25.,0,0,0) DO 5 I=1,4 CALL BDRWR (0.,-50.,1,0,0) 5 CALL BDRWR (1.,50.,1,0,0) CALL BRETN(0) CALL BPLBL (LINE) CALL BDRWR (0.,25.,0,0,0) CALL BDRWR (0.,-50.,1,0,0) CALL BDRWR (0.,25.,0,0,0) CALL BRETN(0) CALL BIN-IT (1,2000,0,4.,4.) CALL BPNT (1) CALL PXLT (1,-512.,-512.,0) CALL PONOF (2,0) CALL DSTRT CALL BDRWA (223.,512.,-15,0,1) CALL BDRWR (100.,500.,1,0,0) CALL BDRWA (223.,512.,-15,0,1) CALL BDRWR (800.,0.,1,0,1) CALL BDRWA (223.,250.,-15,0,1) CALL BDRWR (700.,240.,1,0,1) CALL BDRWA (223.,250.,-15,0,1) CALL BDRWR (700.,-240.,1,0,1) CALL BDRWA (223.,512.,0,0,0) CALL BDRWA (1023.,768.,15,0,0) DO 10 I=1,10 A=I X=800*ALOG10(A) IY=512+256./800.*X IX=X+223 CALL BDRWA (IX,IY+20.,0,0,0) 10 CALL BvDRWA (IX,IY-20.,15,0,0) CALL BDRWA (223.,250.,0,0,0) CALL BDRWA (1023.,250.,15,0,0) DO 20 I=1,10 A=I IX=223+800*ALOG10(A) IY=250 CALL BDRWA (IX,IY+20.,0,0,0) 20 CALL BDRWA (IX,IY-20.,15,0,0) CALL BDRWA (50.,900.,-15,0,0) CALL BSTNG (15,3,0,"WIND> 050 AT 10",14) CALL BDRWA (950.,50.,-15,0,0) CALL BSTNG (15,3,0,"TOWER",5) IMES=0 CALL BPLBL(IMES) CALL BJSLB (M(1),0) T=0 TT=0 CALL BPLBL (GST) XXX=0 25 DO 30 I=1,10 GSX(I)=1023 GSY(I)=786 CX(I)=1023 CY(I)=250 30 CONTINUE 40 TGY=512+250./8[K00. *(GSX(10)-223.) GSX(10)=GSX(9)-5 GSY(10)=TGY+100.*SIN(T) CX(10)=CX(9)-5 CY(10)=250.+SIN(TT)*(CX(10)-223)/800. *250 IF (CY(10).LT.26) CY(10)=26 T=T+.15 TT=TT+.09 IF (XXX.EQ.0) GOTO 50 CALL BGLBL(GST) 50 CALL PLANE(GSX,GSY) CALL PLANE(CX,CY) IF (XXX.EQ.0) CALL BNSRT (2) XXX=1 CALL BGLBL(IMES) ITGY=TGY IF (GSY(10) .GT. ITGY) CALL BJSLB (M(3),0) IF (GSY(10) .LT. ITGY .AND. GSY(10) .GE. 512) CALL BJSLB (M(2),0) IF (GSY(10) .LT. 512) CALL BJSLB (M(6),0) IF (GSX(10) .LE. 223) GOTO 25 CALL G5!RDTJ (IX,IY,IZ) IF (IZ .EQ. 0) GOTO 40 RETURN END PLANE.FRy C ***** SUBROUTINE PLANE.FR ***** SUBROUTINE PLANE (X,Y) DIMENSION X(10),Y(10) INTEGER BAR,LINE COMMON /PIC/ BAR,LINE CALL BDRWA (X(10),Y(10),-15,0,0) CALL BJSLBL (BAR,0) DO 10 I= 1,9 CALL BDRWA (X(10-I),Y(10-I),-13,0) CALL BJSLBL (LINE,0) 10 CON=M\TINUE DO 20 I=1,9 X(I)=X(I+1) 20 Y(I)=Y(I+1) RETURN END SHAPES.FRyy ,S SUBROUTINE SHAPE COMMON /DLIST/ IBUF(5000) C *** SHAPES *** C REV 2.0 GTS C 5-27-77 C * USES MEGATEK MG552-C GRAPHICS PI=3.14159 C INITIALIZE DISPLAY BUFFER & START PROCESSOR CALL BIN5 (IBUF,5000) CALL iBINIT (2,0,0,1.,1.) CALL BPNT(2) CALL BPLBL(ICURS) CALL BRETN(0) CALL BINIT (1,0,0,1.0,1.0) CALL PONOF(2,0) CALL DSTRT C DRAW HEADER C DRAW WAVEFORMS IN FIRST QUADRANT CALL BDRWA (650.,550.,0,0,0) CALL BDRWA (650.,1450.,13,0,0) CALL BDRWA (650.,1200.,0,0,0) CALL BDRWA (1860.,1200.,13,0,0) CALL BDRWA (1860.,800.,0,0,0) CALL BDRWA (650.,800.,13,0,0) CALL BDRWA (330.,780.,-15,0,0) CALL BSTNG (15,3,0,"V",1) CALL BDRWA (378.,770.,-15,0,0) CALL BSTNG (15,3,0,"<157>",1) CALL BDRWA (425.,780.,-15,0,0) CALL BSTNG (15,3,0,"(<164>)",3) CALL BDRWA (330.,1180.,-15,0,0) CALL BSTNG (15,3,0,"V",1) CALL BDRWA (378.,1170.,-15,0,0) CALL BSTNG (15,3,0,"<151>",1) CALL BDRWA (425.,1180.,-15,0,0) CALL BSTNG (15,3,0,"(<164>)",3) CALL BDRWA (650.,1200.,~W0,0,0) DO 200 JX=40,1150,10 X=FLOAT(JX) Y=200.*SIN(X*PI/143.75) CALL BDRWA (X+650.,Y+1200.,15,0,0) 200 CONTINUE CALL BDRWA (710.,800.,0,0,0) DO 220 JX=40,1150,10 X=FLOAT(JX) Y=(200.*SIN(X*PI/143.75)+80.*SIN(X*PI/71.875))*5./7. ( CALL BDRWA (X+710.,Y+800.,15,0,0) 220 CONTINUE C DRAW CUBE IN CENTER CALL BDRWA (-400.,-400.,0,0,0) CALL BDRWA (150.,-400.,15,0,0) CALL BDRWA (150.,150.,15,0,0) CALL BDRWA (-400.,150.,15,0,0) CALL BDRWA (-400.,-400.,15,0,0) CALL BDRWA (-150.,-15sv0.,13,0,1) CALL BDRWA (-150.,400.,13,0,1) CALL BDRWA (-400.,150.,14,0,0) CALL BDRWA (150.,150.,0,0,0) CALL BDRWA (400.,400.,14,0,0) CALL BDRWA (400.,-150.,14,0,0) CALL BDRWA (-150.,-150.,13,0,1) CALL BDRWA (-150.,400.,0,0,0) CALL BDRWA (400.,400.,1Ql4,0,0) CALL BDRWA (400.,-150.,0,0,0) CALL BDRWA (150.,-400.,14,0,0) C DRAW PARABOLAS IN THIRD QUADRANT CALL BDRWA (-1750.,-1750.,0,0,0) CALL BDRWA (-550.,-1750.,13,0,0) CALL BDRWA (-1150.,-1750.,0,0,0) CALL BDRWA (-1150.,-50.,13,0,0) DO 300 LOOP=/160,1600,160 RLOOP=FLOAT(LOOP) CALL BDRWA (-1550.,-1750.,0,0,0) DO 300 JX=-380,400,20 X=FLOAT(JX) Y=RLOOP-(RLOOP/1600.)*X*X/100. CALL BDRWA (X-1150.,Y-1750.,15,0,0) 300 CONTINUE C DRAW NESTED SQUARES IN SECOND QUADRANT XC=g-1150. YC=1150. INCR=50 DO 350 LOOP=1,12 RINCR=FLOAT(INCR*LOOP) CALL BDRWA (XC-RINCR,YC-RINCR,0,0,0) CALL BDRWA (XC+RINCR,YC-RINCR,15,0,0) CALL BDRWA (XC+RINCR,YC+RINCR,15,0,0) CALL BDRWA (XC-RINCR,YC+RINCR,15,0,0) CALL BDRWA (XC-RqINCR,YC-RINCR,15,0,0) 350 CONTINUE C DRAW ELLIPSES IN FOURTH QUADRANT DO 460 IA=160,640,160 IC=1 B=FLOAT(IA/4) A=FLOAT(IA) CALL BDRWA (1040.-A,-1000.,0,0,0) X=-A NVEC=IFIX(54.*IC) DO 440 LOOP=1,NVEC RINC=2. IF ( LOOP .GT. 10*IC ) RINC=5. IF ( LOOP .GT. 18*IC ) RINC=10. IF ( LOOP .GT. 26*IC ) RINC=20. IF ( LOOP .GT. 28*IC ) RINC=10. IF ( LOOP .GT. 36*IC ) RINC=5. IF ( LOOP .GT. 44*IC ) RINC=2. X=X+RINC*(IA/160) Y=B*SQRT(1.-X*X/(A*A)) CALL BDRWA (X+1040.,Y-1000.,15,0,0) 440 CONTINUE CALL BDRWA (1040.-A,-1000.,0,0,0) X=-A NVEC=IFIX(54.*IC) DO 460 LOOP=1,NVEC RINC=2. IF ( LOOP .GT. 10*IC ) RINC=5. IF ( LOOP .GT. 18*IC ) RINC=10. IF ( LOOP .GTQ*. 26*IC ) RINC=20. IF ( LOOP .GT. 28*IC ) RINC=10. IF ( LOOP .GT. 36*IC ) RINC=5. IF ( LOOP .GT. 44*IC ) RINC=2. X=X+RINC*(IA/160) Y=-B*SQRT(1.-X*X/(A*A)) CALL BDRWA (X+1040.,Y-1000.,15,0,0) 460 CONTINUE DO 500 IB=160,64R0,160 IC=1 A=FLOAT(IB/4) B=FLOAT(IB) CALL BDRWA (1040.,-1000.-B,0,0,0) Y=-B NVEC=IFIX(54.*IC) DO 480 LOOP=1,NVEC RINC=2. IF ( LOOP .GT. 10*IC ) RINC=5. IF ( LOOP .GT. 18*IC ) RINC=10. IF ( LOOP .GT. 26*IC ) RINC1=20. IF ( LOOP .GT. 28*IC ) RINC=10. IF ( LOOP .GT. 36*IC ) RINC=5. IF ( LOOP .GT. 44*IC ) RINC=2. Y=Y+RINC*(IB/160) X=A*SQRT(1.-Y*Y/(B*B)) CALL BDRWA (X+1040.,Y-1000.,15,0,0) 480 CONTINUE CALL BDRWA (1040.,-1000.-B,0,0,0) Y=-B NVEC=IFIX(54.*IC) DO 500 LOOP=1,NVEC RINC=2. IF ( LOOP .GT. 10*IC ) RINC=5. IF ( LOOP .GT. 18*IC ) RINC=10. IF ( LOOP .GT. 26*IC ) RINC=20. IF ( LOOP .GT. 28*IC ) RINC=10. IF ( LOOP .GT. 36*IC ) RINC=5. IF ( LOOP .GT. 44*IC ) RINC=2. Y=Y+RINC*(IB/160) X=-A*SQRT(1.-Y*Y/(B*B)) CALL BDRWA (X+1040.,Y-1000.,15,0,0) 500 CONTINUE C HALT OR CONTINUE? CALL GTON (ICURS) 600 CALL GRDTJ (X,Y,IPEN) CALL GPLOT(-1) IF ( IPEN .EQ. 0 ) GO "xTO 600 CALL DHALT RETURN END SPRDATA.yr ^C ********************************************************* C * * C * NAME: SPRDATA * C * COMPILE:SPRDATA, SPRINGS.FR * C * RUN: SPRINGS * C * DATE: 03/01/77 * C * REV#:  * C * DESCR: DATA FOR SPRINGS PROGRAM * C * * "$C ********************************************************* C BLOCK DATA C REAL MENUX COMMON / CONS1 / MENUX,MENU,ICRC,XL,XR,Y0,MEN(2,3) 2 ,IPM(2),X(2),Y(2),NUM COMMON / SPRKON / SK1, SK2, SK3, DT, DAMP C DATA MENUX / 800./,MENU/0/,ICR~+C/0/,XL/50./,XR/ 950./ 2 ,Y0/ 500./,MEN/6*0/,IPM/2*0/,NUM/1/ DATA SK1/1./,SK2/.5/,SK3/1./,DT/.1/,DAMP/.05/ C END DOM16.FRy w; OVERLAY DOM16 SUBROUTINE DUM16 CALL SCROLL RETURN END LOGDIA.FRyy ( SUBROUTINE LOGDI C ***** LOGDIA ***** COMMON /BILBO/ IO(7,33),IE(36),IN(127),IM(128),IOR(2,22),NAND(2,8) 2 ,IAND(2,24),ISETUP(3,127),ISETUP2(2,33) COMMON /DLIST/ IBUF(4819),IPT(3,18),IS(127) COMMON /BOZ/ IGT(3),IT(3),IBOX COMMON/ISP/ IFNC(9) DhATA IGT/3*0/,IT/3*0/,IBOX/0/ DATA IFNC/1,8*0/ DATA IN/127*0/,IM/128*0/ CALL BIN5(IBUF,4500) CALL BINIT(1,500,0,1.,1.) CALL GTON (0) CALL GFMT(1) C OR GATE SUBROUTINE CALL BPLBL(IGT(1)) DO 500 I=1,22 X=IOR(1,I) Y=IOR(2,I) 500 CALL BDRWR (X,Y,1,:0,0) CALL BRETN (4000K) C NAND GATE SUBROUTINE CALL BPLBL(IGT(2)) CALL BDRWR (-10.,2.,0,0,0) DO 1000 I=1,8 X=NAND(1,I) Y=NAND(2,I) 1000 CALL BDRWR (X,Y,1,0,0) CALL BDRWR (0.,-2.,0,0,0) C AND GATE SUBROUTINE CALL BPLBL(IGT(3)) DO 1500 I=1,24 X=IjAND(1,I) Y=IAND(2,I) 1500 CALL BDRWR (X,Y,1,0,0) CALL BRETN (4000K) C BOX SUBROUTINE CALL BPLBL(IBOX) CALL BDRWR (0.,-5.,0,0,0) CALL BDRWR (-10.,0.,1,0,0) CALL BDRWR (0.,10.,1,0,0) CALL BDRWR (10.,0.,1,0,0) CALL BDRWR (0.,-10.,1,0,0) CALL BDRWR (0.,5.,0,0,0) CALL BRETN (4000K) C THREE BLANK REL. VEC. EACH FOLLOWED BY A RETURN CALL BPLBL(IT(1)) CALL BDRWR (0.,0.,0,0,0) CALL BRETN (4000K) CALL BPLBL(IT(2)) CALL BDRWR (0.,0.,0,0,0) CALL BRETN (4000K) CALL BPLBL(IT(3)) CALL BDRWR (0.,0.,0,0,0) CALL BRETN (4000K) C MORE SUBROUTINES DO 1600 I=1,18 IPT(1,19-I)=IGPTR(0) CALL BDRWR (0.,-2.,0,0,0) CALL BDRWR (0.,4.,1,0,0) CALL BDRWR (10.,-2.,0,0,0) 1600 CONTINUE  CALL BRETN (4000K) DO 1700 I=1,18 IPT(2,19-I)=IGPTR(0) C CALL BDRWR (0.,5.,{1,0,0) C CALL BDRWR (0.,5.,0,0,0) CALL BDRWR(-2.,0.,0,0,0) CALL BDRWR(4.,0.,1,0,0) CALL BDRWR(-2.,10.,0,0,0) 1700 CONTINUE CALL BRETN (4000K) DO 1800 I=1,18 IPT(3,19-I)=IGPTR(0) C CALL BDRWR (0.,-5.,1,0,0) C CALL BDRWR (0.,-5.,0,0,0) CALL BDRWR(-2.q,0.,0,0,0) CALL BDRWR(4.,0.,1,0,0) CALL BDRWR(-2.,-10.,0,0,0) 1800 CONTINUE CALL BRETN (4000K) C PLOT SOME POINTS CALL BINIT(2,2000,0,4.,4.) CALL PXLT(2,-512.,-512.,0) CALL PONOF(1,0) CALL BPNT(2) CALL BFNCT(IFNC,I) DO 5000 I=1,33 X=ISETUP2(1,IV) Y=ISETUP2(2,I) CALL BDRWA (X,Y,-15,0,0) 5000 CALL BJSLB(IGT(IO(1,I)),1) DO 6000 I=1,36 ZZ=I*20+130 CALL BDRWA(105.,ZZ,-15,0,0) 6000 CALL BJSLB(IBOX,1) CALL BDRWA(595.,855.,-15,0,0) CALL BJSLB(IBOX,1) DO 4000 I=1,127 X=ISETUP(1,I) ISET=ISETUP(V2,I)/5 Y=ISET*5 IV=ISETUP(2,I)-Y CALL BDRWA (X,Y,-15,0,0) IS(I)=IGPTR(0) CALL BJMAD(IS(I)+2,0) CALL BJSLB (IT(IV),1) ISET=ISETUP(3,I) CALL BJSAD (IPT(IV,ISET),1) IP=IGPTR(0)+4 CALL BJMAD(IP,0) 4000 CALL BJSAD(IPT(IV,ISET),1) CALL BDRWA (900.,90i0.,-15,0,0) CALL BSTNG (15,3,0,"EXIT",4) CALL DSTRT CALL BNSRT(2) GOTO 8000 C CHANGE MOVEMENT 6050 CALL BPNT(1) ZI9=ZI9+1 IF (ZI9 .LT. 10.) GOTO 6100 ZI9=0 6100 CALL BGLBL(IT(1)) CALL BDRWR (ZI9,0.,0,0,0) CALL BGLBL(IT(2)) CALL BDRWR (0.,ZI9,0,0,0) CALL BGLBL(IT(3)) CALL BDRWR (0.,-ZI9,0,0,0) CALL GRDTJ (X9,Y9,IH) CALL GPLOT(-1) IF (IH .EQ. 1) GOTO 6200 X8=0. Y8=0. GOTO 6050 6200 X9=X9/4.+512. Y9=Y9/4.+512. IF((X9.GT.860.).AND.(Y9.GT.860.)) GOTO 9999 IF (ABS(X9-X8) .GT. 2.) GOTO 640Cd0 IF (ABS(Y9-Y8) .LE. 2.) GOTO 6050 6400 X8=X9 Y8=Y9 IF (Y9 .GT. 850.) GOTO 7100 IF (X9 .GT. 106.) GOTO 6050 IK=0 DO 7000 I=1,36 ZZ=I*20+130 IF (ABS(ZZ-Y9) .GT. 7.) GOTO 7000 IK=IE(I) IM(IK)=1-IM(IK) GOTO 8000 7000 CONTINUE GOTO 6050 7100 IF (ABS(X9-590.) .GT. 7.) GOTO 6050 IM(120)=1-IM(120) IM(119)=1-IM(119) 8000 DO 9000 I=1,33 IC=IM(IO(2,I))+IM(IO(3,I))+IM(IO(4,I)) IR=0 IC1=3 IF (IO(4,I) .EQ. 128) IC1=2 ITEMP=IO(1,I) GOTO (8100,8200,8300),ITEMP 8100 IF (IC .NE. 0) IR=1 GOTO 8400 8200 IF (IC .NE. IC1) IR=1 GOTO 8400 8300 IF (IC .EQ. IC1) IR=1 8400 IM(IO(5,I))=IR IM(IO(6,I))=IR 9000 IM(IO(7,I))=IR CALL BPNT(2) DO 9500 I=1,127 IF (IM(I) .EQ. IN(I)) GOTO 9500 IN(I)=IM(I) CALL IPPTR(IS(I)) IF (IM(I) .EQ. 1) GOTO 9100 CALL BJMAD l&(IS(I)+8,0) GOTO 9500 9100 CALL BJMAD (IS(I)+2,0) 9500 CONTINUE GOTO 6050 9999 CALL DHALT RETURN END QUBIC.FRyy 1 SUBROUTINE QUBIC C C C ********** Q U B I C --- 3 - D T I C T A C T O E *********C C COMMON /DLIST/ IBUF(5000) REAL MINX,MINY,JX,JY C COMMON /DEFIN/ DX,DY,MINX,MINY,ILEVY COMMON /TTT/ IBOX(64),IWWAY(304) C C DATA IWWAY/ 1,17,33,49,2,18,34,50,3,19,35,51,4,20,36,52,5,21,37,53, C 6,22,38,54,7,23,39,55,8,24,40,56,9,25,41,57,10,26,42,58,11,27,43,59, C 12,28,44,60,13,29,45,61,14,30,46,62,15,31,47,63,16,32,48,64,1,5,9,13, C 2,6,10,14,3,7,11,15,4,8,12,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, C 17,21,25,29,18,22,26,30,19,23,27,31,20,24,28,32,17,18,19,20,21,22,23,24, C 25,26,27,28,29,30,31,32,33,37,41,45,34,38,42,46,35,39,43,47,36,40,44,48, C 33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,53,57,61,50,54,58,62,  C 51,55,59,63,52,56,60,64,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64, C 1,18,35,52,5,22,39,56,9,26,43,60,13,30,47,64,13,25,37,49,14,26,38,50, C 15,27,39,51,16,28,40,52,16,31,46,61,12,27,42,57,8,23,38,53,4,19,34,49, C 4,24,44,64,3,23,#{43,63,2,22,42,62,1,21,41,61,1,6,11,16,4,7,10,13, C 17,22,27,32,20,23,26,29,33,38,43,48,36,39,42,45,49,54,59,64,52,55,58,61, C 1,22,43,64,4,23,42,61,13,26,39,52,16,27,38,49 / C DATA DX,DY,MINX,MINY,ILEVY / 100.,50.,210.,80.,220 / IOP=0 IXP=0 IYOUR=0 ICWIN=0 IYWIN=0 ISUB=0 IDUMMY=0 IDUMY=0 C C C CALL BIN5(IBUF,2000) CALL BINIT (1,0,0,4.,4.) C CALL BPLBL(IDUMMY) CALL BDRWA(0.,0.,0,0,0) CALL BRETN(0) CALL BPLBL(IDUMY) CALL BRETN(0) C C C C C DEFINE THE SUBROUTINES FOR THE X'S AND O'SĚ C CALL BPLBL(IOP) CALL BDRWR(-30.,-10.,0,0,0) CALL BDRWR(20.,20.,1,0,0) CALL BDRWR(40.,0.,1,0,0) CALL BDRWR(-20.,-20.,1,0,0) CALL BDRWR(-40.,0.,1,0,0) CALL BDRWR(30.,10.,0,0,0) CALL BRETN(0) C CALL BPLBL(IXP) CALL BDRWR(-45.,-15.,0,0,0) CALL BD9RWR(45.,15.,1,0,0) CALL BDRWR(45.,15.,1,0,0) CALL BDRWR(-30.,-30.,0,0,0) CALL BDRWR(-30.,30.,1,0,0) CALL BDRWR(15.,-15.,0,0,0) CALL BRETN(0) C CALL BPLBL(IYOUR) CALL BDRWA(400.,0.,-15,0,0) CALL BSTNG(15,3,0,"YOUR MOVE",9) CALL BRETN(0) C CALL BPLjBL(ICWIN) CALL BDRWA(316.,0.,-15,0,0) CALL BSTNG(15,3,0,"I WIN - NICE TRY",16) CALL BRETN(0) C CALL BPLBL(IYWIN) CALL BDRWA(316.,0.,-15,0,0) CALL BSTNG(15,3,0,"YOU WIN - LUCKY?",16) CALL BRETN(0) C C C C DEFINE THE PLAYING BOARD & DISPLAY IT C C CALL BINIT(2,0,0,4.,4.) CALL PXLT(2,-512.,-512.,0) CALL PONOF(1,0) DO 150 M = 1,2 C DO 150 N=1,4 X = MINX Y = (N-1)*ILEVY+MINY C DO 110 I=1,5 JX = X + (I-1)*DY JY = Y + (I-1)*DY CALL BDRWA(JX,JY,-15,0,0) 110 CALL BDRWA(JX+4.*DX,JY,15,0,0A&) C DO 120 I=1,5 JX = X+(I-1)*DX CALL BDRWA(JX,Y,-15,0,0) 120 CALL BDRWA(JX+4.*DY,Y+4.*DY,15,0,0) C IF( M .NE. 1 ) GOTO 150 C K = (N-1)*16 DO 130 I=1,4 DO 130 J=1,4 K = K+1 CALL QDCOD(K,JX,JY,0) CALL BDRWA(JX,JY,-15,0,0) 130o CALL BDRWA(JX,JY,12,0,0) C 150 CONTINUE C DO 175 M = 1,4 JY = 3*ILEVY CALL BDRWA(MINX,MINY,-15,0,0) CALL BDRWA(MINX,MINY+JY,15,0,0) X = MINX+4.*DX CALL BDRWA(X,MINY,-15,0,0) CALL BDRWA(X,MINY+JY,15,0,0) X = X+4.*DY Y = MINY+4.*DY CALL BDRWA(X, Y,-15,0,0) CALL BDRWA(X,Y+JY,15,0,0) 175 CONTINUE C C CALL BDRWA(240.,980.,-15,0,0) CALL BSTNG(15,3,0,"*** QUBIC ***",15) C C X = 0 DO 200 N=1,2 CALL BDRWA(X,0.,-15,0,0) CALL BDRWA(X,100.,15,0,0) CALL BDRWA(X+100.,100.,15,0,0) CALL BDRWA(X+100.,0.,15,0,0) CALL BDRWA(X,0.,15,0,0) IF ( N .EQ. 2 ) GOTO 180 CALL BDRWA(X+34.,62.,-15,0,0) CALL BSTNG(15,3,0,"YOU",3) GOTO 185 180  CALL BDRWA(X+3.,62.,-15,0,0) CALL BSTNG(15,3,0,"COMPUTER",8) 185 CALL BDRWA(X+22.,26.",-15,0,0) CALL BSTNG(15,3,0,"FIRST",5) 200 X = 920 C C C C C CALL GTON(0) CALL DSTRT C C C C ********** START OF NEXT GAME ********** C C 300 CONTINUE C CALL BINIT(3,0,0,4.,4.) CALL PXLT(3,-512.,-512.,0) CALL BPLBL(ISUB) CALL BJSLB(IDUMY,0) C: DO 315 I=1,64 315 IBOX(I) = 0 MV=1 C C C C C GET CHOICE OF WHO MAKES THE FIRST MOVE C 320 CONTINUE CALL GRDTJ(X,Y,IPEN) IF( IPEN .EQ. 0 ) GOTO 320 X=X+512. Y=Y+512. IF( Y .GE. 100 ) GOTO 9999 IF( ABS(X-50.) .LT. 50. ) GOTO 400 IF( ABS(X-970.) .LLT. 50. ) GOTO 500 GOTO 9999 C C C P L A Y E R ' S M O V E C 400 CONTINUE CALL BNSRT(2) CALL BGLBL(ISUB) CALL BJSLB(IYOUR,0) C 410 CALL GRDTJ(X,Y,IPEN) IF( IPEN .EQ. 0 ) GOTO 410 X=X+512. Y=Y+512. CALL QDCOD(MOVE,X,Y,1) IF( MOVE .EQ. -1 ) GOTO 4s10 IF( IBOX(MOVE) .NE. 0 ) GOTO 410 C IBOX(MOVE) = 1 CALL QDCOD(MOVE,X,Y,0) CALL BNSRT(0) CALL BDRWA(X,Y,-15,0,0) CALL BJSLB(IXP,0) C CALL BNSRT(2) CALL BGLBL(ISUB) CALL BJSLB(IDUMY,0) 415 CALL GRDTJ(X,Y,IPEN) IF( IPEN .NE. 0 ) GOTO 415 X=X+512.Z Y=Y+512. C C C C C O M P U T E R ' S M O V E C 500 CONTINUE CALL QMOVE(N,MOVE) IF( N ) 600,510,700 C 510 CALL QDCOD(MOVE,X,Y,0) IF(MV.EQ.1) GOTO 520 CALL BGLBL(LMOV) CALL BDRWA(XLMOV,YLMOV,-15,0,0) 520 CALL BNSRT(0) CALL BPLBL(LMOV) CALL BDRWA(SX,Y,-15,1,0) MV=MV+1 XLMOV=X YLMOV=Y CALL BJSLB(IOP,0) IBOX(MOVE) = 10 GOTO 400 C C C C G A M E I S O V E R - S O M E O N E W O N C C 600 I = IYWIN IOX = IXP GOTO 710 700 I = ICWIN IOX = IOP C 710 CALL BNSRT(2) CALL BGLBL(ISUB) CALL B{7JSLB(I,0) N = IABS(N) DO 750 I=1,4 CALL QDCOD(IWWAY(N),X,Y,0) N = N+1 CALL BNSRT(0) CALL BDRWA(X,Y,-15,0,0) DO 750 J=1,6 CALL BJSLB(IOX,0) 750 CONTINUE C 760 CALL GRDTJ(X,Y,IPEN) IF( IPEN .EQ. 0 ) GOTO 760 X=X+512. Y=Y+512. GOTO 300 C C 9999 RE =TURN END DOM10.FRy 9QK OVERLAY DOM10 SUBROUTINE DUM10 CALL AIR2 RETURN END LOGDATA.y 48C ***** LOGDATA ***** BLOCK DATA COMMON /BILBO/ IO(7,33),IE(36),IN(127),IM(128),IOR(2,22),NAND(2,8) 2 ,IAND(2,24),ISETUP(3,127),ISETUP2(2,33) DATA IE/1,2,3,4,11,12,13,14,21,22,23,24,38,39,40,41,48,49,50, 2 51,58,59,60,61,75,76,77,78,85,86,87=,88,95,96,97,98/ 2 ,IO/2,1,2,128,5,7,8,2,11,12,128,15,17,18, 2 2,21,22,128,25,27,28,2,38,39,128,42,44,45, 2 2,48,49,128,52,54,55,2,58,59,128,62,64,65, 2 2,75,76,128,79,81,82,2,85,86,128,89,91,92, 2 2,95,96,128,99,101,102,3,3,45,128,6,9,10, 2 1,13,14,128,16,19,20,1,23,24,128,26,29,30, 2 3,40,41,128,43,46,47,1,50,51,128,53,56,57, 2 1,60,61,128,63,66,67,3,77,78,128,80,83,84, 2 1,87,88,128,90,93,94,1,97,98,128,100,103,104, 2 1,8,9,128,31,34,35,3,18,19,1N28,32,32,32, 2 3,28,29,128,33,36,37,1,45,46,128,68,71,72, 2 3,55,56,128,69,69,69,3,65,66,128,70,73,74, 2 1,82,83,128,105,108,109,3,92,93,128,106,106,106, 2 3,102,103,128,107,110,111,2,32,35,36,112,115,116, 2 2,69,72,73,113,117m,118,2,106,109,110,114,114,114, 2 1,116,117,128,121,123,124,1,114,119,128,122,125,126, 2 3,124,125,128,127,127,127/ 2 ,IOR/-4,7,-4,5,-4,4,-6,3,-7,1,-9,0,-8,0,4,-5,2,-5,1,-5, 2 0,-5,0,-5,-1,-5,-2,-5,-4,-5,8,0,9,0,7,1,6,3,4,4,4,5,4,7/L 2 ,NAND/3,3,4,0,3,-3,0,-4,-3,-3,-4,0,-3,3,0,4/ 2 ,IAND/0,5,-2,6,-3,4,-5,3,-7,2,-6,0,-6,0,-6,0,0,-5,0,-5,0,-5,0,-5, 2 0,-5,0,-5,0,-5,0,-5,6,0,6,0,6,0,7,2,5,3,3,4,2,6,0,5/ 2 ,ISETUP/105,151,5,105,171,5,105,191,17,105,211,17, 2 200,161,15,310,201,4,350,162,1,350,171,4, 2 350,191,4,350,203,1,105,231,5,105,251,5, 2 105,271,17,105,291,17,200,241,15,310,281,4, 2 350,242,1,350,251,4,350,271,4,350,283,1, 2 105,311,5,105,331,5,105,351,17,105,371,17, 2 200,321,15,310,361,4,350,322,1,350,331,4, 2 350,351,4,350,363,1,425,181,4,425,261,8, 2 425,341,4,465,182,7,465,251,4,465,271,4, 2 465,343,7,105,391,5,105,411,5,105,431,17, 2 105,451,17,200,401,15,310,441,4,350,402,1, 2 350,411,4,35.0,431,4,350,443,1,105,471,5, 2 105,491,5,105,511,17,105,531,17,200,481,15, 2 310,521,4,350,482,1,350,491,4,350,511,4, 2 350,523,1,105,551,5,105,571,5,105,591,17, 2 105,611,17,200,561,15,310,601,4,350,562,1, 2 350,571,4,350,591@,4,350,603,1,425,421,4, 2 425,501,8,425,581,4,465,422,7,465,491,4, 2 465,511,4,465,583,7,105,631,5,105,651,5, 2 105,671,17,105,691,17,200,641,15,310,681,4, 2 350,642,1,350,651,4,350,671,4,350,683,1, 2 105,711,5,105,731,5,105,7O51,17,105,771,17, 2 200,721,15,310,761,4,350,722,1,350,731,4, 2 350,751,4,350,763,1,105,791,5,105,811,5, 2 105,831,17,105,851,17,200,801,15,310,841,4, 2 350,802,1,350,811,4,350,831,4,350,843,1, 2 425,661,4,425,741,8,425,821,4,O465,662,7, 2 465,731,4,465,751,4,465,823,7,550,261,4, 2 550,501,4,550,741,8,590,262,11,590,371,4, 2 590,391,4,590,503,11,590,761,4,590,853,9, 2 665,381,4,665,751,4,705,382,18,705,561,4, 2 705,571,4,705,753,18,780,566,4/ 2z ,ISETUP2/200,160,200,240,200,320,200,400,200,480,200,560, 2 200,640,200,720,200,800,310,200,310,280,310,360, 2 310,440,310,520,310,600,310,680,310,760,310,840, 2 425,180,425,260,425,340,425,420,425,500,425,580, 2 425,660,425,740,4e25,820,550,260,550,500,550,740, 2 665,380,665,750,780,565/ 2 ,IM/127*0,0/,IN/127*1/ END DTRANS.FRy ZC ********************************************************* C * * C * NAME: DTRANS.FR * C * DESCR: FORTRAN CALLABLE ROTATION,TRANSLATION, * C * SCALING OF USER PICTURE. * C * * C * REVISION HISTORY: * C * * C * 08/11/77$ REV 1.0 ORIGINAL VERSION * C * * C * COPYRIGHT (C) 1977 MEGATEK CORP., ALL RIGHTS RESERVED * C * * C ********************************************************* C SUBROUTINE DTRANS (X,Y,Z,C,N,IFLAG) DIMENSION X(N),Y(N),Z(N),C(9) DIMENSION RPC (5,32), INSBF (24) DIMENSION IPC (10,32), LAV (160), IEB (11), IMISC(12), IUUSD(12) COMMON /S7000/ IPC,LAV,IEB,IMISC,IUUSD,INSBF EQUIVALENCE (IEB(1), IPNO), (IEB(2), ILCP), (IEB(3),IICP), 1(IEB(4), IERW1), (IEB(5), IERW2), (IEB(6),ISVML), (IEB(7),IEVML), 2(IEB(8), ICONF), (IEB(9), ICPCT), (IEB(10), INLBL), 3(IEB(11), IMODE), (IPC(1,1),RPC(1,1)), (IMISC(1),NPICT), 4(IMISC(2),NLAB) C C *** CHECK FOR ERROR C IEND = IPC(7,IP) + 2*N + 4 IF (IEND - IEVML) 10,10,9G@999 10 IF (IPC(2,IP)) 20,100,20 20 IF (IPC(1,IP) + IPC(2,IP) - IEND) 9999,100,100 100 CALL ATRANS (I0,I1,I2,I3,I4,I5,I6,I7,I8, 1 I9,I10,I11,I12,I13,I14, 2 X,Y,Z,C,N,IFLAG) IF (IERW1 .NE. 0) CALL PROCS (75) RETURN C C *** NOT ENOUGH MEMORY! C 9:]999 IERW1 = 4 IERW2 = 37 CALL PROCS (75) RETURN END DEMO.FRy bC*********************************************************** C C NAME: DEMO.FR C C DESCRIPTION: C THIS PROGRAM IS THE CORE ROUTINE FOR THE MG-552 C DEMONSTRATION SOFTWARE. THE VARIOUS DEMO C MODULES LIE IN OVERLAYS WHICH THIS PROGRAM CAN C ACCESS. THE' MENU IS ALSO IN AN OVERLAY C (NAMELY MENU). ALL OTHER ROUTINES CAN BE C MODULARLY ADDED OR DELETED. C C REVISION HISTORY: C REV DATE DESCRIPTION C 00 05/30/77 C 01 11/17/77 ADDED EXTERNAL JT005 C C*********************************************************** COMMON /DLIST/ IBUF(5000) EXTERNAL JT005 CALL OVOPN(ICH,"DEMO.OL",IER) IF(IER.NE.1) GOTO 9999 CALL KEYON 100 CALL OVLOD(ICH,0,IER) IF(IER.NE.1) GOTO 9998 C BRING IN MENU DISPLAY! CALL MENU(I) CALL OVLOD(ICH,I,IER) IF(IER.NE.1) GOTO 99K98 CALL DUM1 IF(I.EQ.6) GOTO 200 GOTO 100 200 CALL OVLOD(ICH,10,IER) CALL DUM1 GOTO 100 9998 TYPE "ERROR IN OVERLAY LOAD ",IER GOTO 100 9999 TYPE "OVERLAY OPEN ERROR ",IER END MEGASUB.FR|| P SUBROUTINE MEGASUB (RADIUS,IBLINK,IDASH) DIMENSION AR(2,15) C *** MEGABURST GENERATING SUBROUTINE *** C SAVED AS "MEGASUB.FR" C REV 1.0 GTS C  6-7-77 C * USES MEGATEK MG552-C kGRAPHICS C * USED BY "MEGA.FR" DEMO PROGRAM PI=3.14159 DO 20 I=0,14 PHI=I*2.*PI/15.+PI/2. AR(1,I+1)=RADIUS*COS(PHI) AR(2,I+1)=RADIUS*SIN(PHI) 20 CONTINUE CALL BDRWA (AR(1,15),AR(2,15),0,0,0) I=0 DO 100 K1=2,8 K=K1 IF ( K .EQa. 8 ) K=1 M=1 IF ( MOD(K1,3) .EQ. 0 ) M=3 IF ( MOD(K1,5) .EQ. 0 ) M=5 DO 100 K2=1,M I=I+1 J=I+15*K IF ( M .NE. 1 ) J=I+15*K1/M DO 100 L=I,J,K L1=MOD(L-1,15)+1  CALL BDRWA (AR(1,L1),AR(2,L1),15,IBLINK,IDA"qSH) 100 CONTINUE RETURN END USMAP.FRy)az OVERLAY UMAPO SUBROUTINE UMAP COMMON /MDATA/ MLIST(2640) COMMON /DLIST/ IBUF(5000) COMMON /S7000/ IPC(10,32),LAV(160),IEB(11),IMISC(12),IUUSD(12) 1 ,INSBF(24) ICUR=0 IAROW=0 CALL BIN5(IBUF,5000) CALL BINIT(2,0,0,1.,1.) CALL BPLBL(ICUR) CALL BRETN(0) CALL BINIT(1,0,0,1.,1.) CALL PXLT(1,-10.,0.,0) CALL PONOF(2,0) CALL BPLBL(IAROW) CALL BDRWR(-64.,0.,1,0,0) CALL BDRWR(64.,0.,1,0,0) CALL BDRWR(-64.,0.,1,0,0) CALL BDRWR(48.,16.,0,0,0) CALL BDRWR(16.,-16.,1,0,0) CALL BDRWR(-16.,16.,:1,0,0) CALL BDRWR(16.,-16.,1,0,0) CALL BDRWR(-16.,-16.,1,0,0) CALL BDRWR(16.,16.,1,0,0) CALL BDRWR(-16.,-16.,1,0,0) CALL BDRWR(16.,16.,0,0,0) CALL DSTRT CALL BNSRT(1) DO 2 I=1,2639,2 CALL BGLBL(IAROW) INSBF(9)=MLIST(I) INSBF(10)=MLIST(I+1) CALgL PPRX(2) DO 2 J=1,500 2 CONTINUE CALL BNSRT(2) CALL BGLBL(IAROW) CALL BWORD(170010K) CALL GTON(ICUR) 5 CALL GRDTJ(X,Y,IZ) IF(IZ) 10,5,10 10 CALL GRDTJ(X,Y,IZ) CALL GPLOT(-1) IF(IZ) 15,10,15 15 RETURN END MAPDATA.1v BLOCK DATA COMMON/MDATA/MDISP(2640) DATA MDISP/ 2 2848, 704, 2656, -3348, 2476, -3296, 2468, -3344, 2 2448, -3384, 2356, -3324, 2340, -3364, 2356, -3384, 2 2352, -3420, 2340, -3452, 2360, -3468, 234$0, -3476, 2 2356, -3488, 2340, -3512, 2372, -3552, 2328, -3540, 2 2320, -3580, 2324, -3612, 2304, -3636, 2288, -3692, 2 2256, -3732, 2232, -3800, 2212, -3848, 2196, -3904, 2 2200, -3936, 219D6, -3980, 2164, -4052, 2128, -4096, 2 2152, -56, 2144, -132, 2148, -172, 2192, -248, 2 2208, -280, 2232, -256, 2272, -284, 2232, -276, 2 2224, -296, 2240, -336, 2212, -296, 2204, -336Ob, 2 2212, -368, 2236, -388, 2236, -420, 2220, -432, 2 2236, -480, 2256, -516, 2276, -572, 2280, -616, 2 2280, -648, 2304, -668, 2332, -676, 2368, -696, 2 2380, -716, 2416, -732s, 2432, -760, 2464, -784, 2 2504, -824, 2504, -864, 2508, -892, 2700, -908, 2 2692, -928, 3008, -1092, 3192, -1100, 3200, -1056, 2 3332, -1068, 3356, -1080, 3372, -1104, 3388, -1116, 2U 3392, -1144, 3432, -1160, 3460, -1184, 3480, -1272, 2 3508, -1300, 3552, -1308,  3588, -1348, 3616, -1336, 2 3624, -1296, 3644, -1272, 3716, -1268, 3748, -1284, 2 3800, -1340, 3824, -1376, 3844, -1420, 3872, -1460, 2 3908, -1488, 3916, -1544, 3944, -1568, 3948, -1600, 2 4012, -1632, 4072, -1644, 4, -1660, 4, -1628, 2 4084, -1524, 12, -1456, 36, -1420, 76, -1384, 2 120, -1372, 160, -1356, 184, -1324, 176, -1292, 2 184, -1272, 204, -1276, 224, -1292, 276, -1276, 2 324, -1264, 380, -1280, 424, -1284, 432, -1252, 2 468, -1276, 496, -1292, 520, -1296,  524, -1316, 2 564, -1296, 588, -1320, 580, -1264, 600, -1264, 2 612, -1296, 640, -1292, 652, -1316, 684, -1292, 2 652, -1284, 636, -1268, 616, -1264, 624, -1244, 2 652, -1228, 6 628, -1212, 612, -1228, 604, -1208, 2 572, -1220, 564, -1196, 592, -1188, 624, -1196, 2 656, -1176, 696, -1168, 728, -1172, 748, -1136, 2 756, -1184, 796, -1160, 828, -1156, 868, -e1144, 2 908, -1156, 932, -1164, 956, -1180, 972, -1208, 2 1008, -1196, 1044, -1184, 1048, -1164, 1088, -1160, 2 1112, -1184, 1132, -1208, 1152, -1232, 1188, -1232, 2 1200, -1264, 1204, -1300WB, 1196, -1340, 1196, -1368, 2 1228, -1352, 1240, -1368, 1224, -1392, 1236, -1424, 2 1268, -1452, 1288, -1468, 1304, -1500, 1312, -1528, 2 1344, -1548, 1368, -1568, 1380, -1592, 1404, -1600, 2 1436, -1584, 1444, -1540, 1452, -1496, 1448, -1452, 2 1440, -1412, 1424, -1392, 1408, -1352, 1388, -1308, 2 1384, -1268, 1348, -1236, 1320, -1208, 1300, -1148, 2 1276, -1096, 1268, -1064, 1252, -102 0, 1272, -988, 2 1288, -940, 1296, -912,  1320, -888, 1356, -860, 2 1380, -824, 1404, -812, 1404, -780, 1448, -720, 2 1480, -712, 1496, -680, 1520, -628, 1572, -600, 2 1592, -576,  1552, -592, 1528, -576, 1564, -572, 2 1564, -552, 1580, -536, 1608, -512, 1636, -492, 2 1620, -460, 1612, -432, 1584, -400, 1564, -380, 2 1536, -396, 1524, -380, 1536, -364, 1520, -348, 2 1536, -332, 1524, -308, 1528, -284, 1500, -276, 2 1512, -260, 1512, -236, 1492, -224, 1492, -192, 2 1480, -164, 1496, -136, 1516, -140, 1504, -168, 2 1512, -196, 1520, -216,  1520, -240, 1528, -264, 2 1552, -256, 1564, -276, 1560, -320, 1568, -352, 2 1580, -320, 1588, -268, 1596, -236, 1600, -204, 2 1588, -180, 1560, -156, 1544, -128, 1536, -100, 2 15i48, -124, 1580, -140, 1600, -156, 1612, -140, 2 1624, -100, 1628, -68, 1632, -32, 1628, -4, 2 1604, -4092, 1628, -4064, 1632, -4044, 1652, -4020, 2 1688, -3988, 1732, -3960, 1768, -3948, 1768, -3912, 2 1788, -3908, 1796, -3932, 1812, -3912, 1832, -3908, 2 1860, -3892, 1868, -3872, 1848, -3852, 1848, -3884, 2 1824, -3888, 1804, -3872, 1780, -3860, 1780, -3832, 2 1792, -3816, 1776, -3804, 1768, -3776, 1772, -3752, 2 1776, -3724, 1784, -3704, 1764, -3704, 1792, -3676, 2 1816, -3668, 1836, -3652, 1832, -3596, 1852, -3604, 2 1872, -3576, 1900, -3572, 1904, -3552, 1920, -3536}c, 2 1940, -3512, 1920, -3492, 1896, -3496, 1896, -3464, 2 1860, -3460, 1852, -3432, 1836, -3388, 1824, -3360, 2 1812, -3336, 1776, -3312, 1756, -3332, 1736, -3336, 2 1716, -3336, 1700, -3388, 1692, -3436, 1696, -3488, 2 1704, -3524, 1700, -3544, 1692, -3564, 1672, -3580, 2 1660, -3600, 1648, -3620, 1544, -3652, 1464, -3672, 2 1424, -3704, 1396, -3744, 1372, -3784, 1380, -3804, 2 1380s, -3848, 1348, -3884, 1284, -3896, 1228, -3904, 2 1200, -3908, 1228, -3944, 1224, -3980, 1188, -4020, 2 1140, -4056, 1088, -4096, 1036, -40, 980, -48, 2 940, -36, 940, -4096, 948, -4068,  @ 984, -4036, 2 988, -3992, 968, -3944, 944, -3900, 920, -3904, 2 900, -3932, 880, -3952, 860, -3932, 892, -3896, 2 896, -3856, 884, -3824, 888, -3800, 860, -3780, 2 828, -3764, 780, -3752, 760, -3760, 764, -3800, 2 744, -3856, 736, -3820, 716, -3848, 700, -3884, 2 700, -3940, 704, -3988, 724, -4024, 732, -4080, 2 720, -32, 692, -72, 668, -80, 644, -56,  2 616, -16, 612, -4060, 604, -4004, 608, -3952, 2 620, -3904, 624, -3864, 596, -3900, 576, -3896, 2 592, -3868, 608, -3832, 628, -3796, 636, -3764, 2 648, -3788, 676, -3756, 7L 16, -3748, 748, -3736, 2 772, -3740, 788, -3728, 824, -3720, 808, -3696, 2 780, -3680, 752, -3680, 756, -3656, 704, -3672, 2 668, -3692, 624, -3704, 596, -3696, 556, -3676, 2 528, 4 -3688, 532, -3668, 556, -3632, 512, -3644, 2 476, -3680, 436, -3708, 400, -3724, 376, -3728, 2 360, -3692, 324, -3716, 284, -3732, 312, -3688, 2 336, -3664, 372, -3636, 404, -3612, <440, -3592, 2 376, -3580, 340, -3580, 328, -3596, 284, -3576, 2 248, -3560, 196, -3544, 148, -3532, 116, -3524, 2 112, -3496, 84, -3488, 92, -3524, 4052, -3524, 2 3888, -3528, 3740,m -3524, 3600, -3516, 3464, -3504, 2 3316, -3488, 3160, -3460, 3016, -3432, 2840, -3392, 2 2792, -3624, 2804, -3648, 2788, -3676, 2748, -3668, 2 2704, -3664, 2652, -3656, 2616, -3660, 2568, -3648,  2 2496, -3636, 2444, -3640, 2408, -3628, 2400, -3580, 2 2372, -3552, 2788, 420, 2792, -3704, 2784, -3740, 2 2772, -3776, 2756, -3796, 2728, -3808, 2720, -3828,  2 2740, -3848, 2732, -3900, 2708, -3932, 2684, -4060, 2 2504, -4020, 2348, -3980, 2200, -3932, 2476, 80, 2 2424, -220, 2736, -684, 2740, -720, 2740, -740, 2 2768, -760, 2744, -788, 2732, -816, 2712, -856, 2 2724, +A-884, 2724, -912, 2700, -908, 2736, 3412, 2 2752, -640, 2756, -592, 2768, -572, 2792, -596, 2 2804, -572, 2812, -516, 2812, -484, 2880, -4,  2 2684, -4060, 2900, 688, 2880, -3500, 2896, -3516, 2 2896, -3544, 2904, -3568, 2924, -3588, 2924, -3628, 2 2924, -3652, 2944, -3656, 2952, -3684, 2936, -3700, 2 2924, -3716, 2936, -3732, 2960, -3740, 2976, -3768, 2 2976, -3808, 2996, -3840, 3020, -3864, 3068, -3872, 2 3100, -3844, 3132, -3832, 3292, -3864, 3432, -3880, 2 3604, -3904, 3628, -3516, 3132, 260, 3076, -140, 2 2880, 4092, 3092, -48, 3076, 3956, 3220, -164, ) 2 3392, -184, 3572, -196, 3728, -204, 3720, -592, 2 3484, -584, 3324, -572, 3184, -556, 3028, -536, 2 2896, -516, 2812, -504, 3220, 3936, 3188, -556, 2 3128, -1100, 3332, 3024, 3324, x -1044, 3488, -1056, 2 3624, -1060, 3636, -592, 3572, 3900, 3604, -3908, 2 3612, 292, 3752, -3812, 3928, -3816, 0, -3808, 2 4088, -3760, 4084, -3728, 4072, -3660, 4064, -3592, 2 4048, -35;24, 0, 288, 4092, -3840, 4088, -3864, 2 8, -3876, 8, -3920, 20, -3968, 16, -4012, 2 20, -4056, 16, -4096, 12, -28, 20, -52, 2 4068, -28, 4008, -28, 3976, -12, 3912,8 -8, 2 3768, -8, 3588, -4096, 16, 4040, 36, -100, 2 52, -144, 56, -184, 76, -208, 80, -240, 2 100, -292, 4024, -300, 3864, -300, 3732, -300, 2 104, 3800, 132, -316, 132, -336, 148, -372, 2 184, -388, 184, -484, 188, -584, 28, -596, 2 3948, -600, 3816, -592, 3724, -592, 3636, 3456, 2 3736, -644, 3860, -644, 3860, -824, 3884, -836, 2 3912, -848, 3932, -856, 3980, -868, 4008, -864, 2 4028, -892, 4064, -884, 4088, -900, 112, -876, 2 144,  -884, 172, -892, 204, -896, 244, -900, 2 252, -932, 256, -1056, 276, -1088, 300, -1128, 2 304, -1168, 284, -1212, 276, -1276, 620, 2904, 2 604, -1156, 616, -1124, 460, -1136, 468, -1088, 2 492, -1020, 472, -944, 356, -952, 256, -964, 2 208, 3200z, 200, -740, 184, -628, 188, -588, 2 184, 3468, 360, -620, 528, -608, 532, -628, 2 516, -656, 556, -656, 544, -676, 548, -700, 2 528, -704, 532, -756, 508, -776, 500, x -804, 2 472, -852, 472, -884, 472, -944, 532, 3488, 2 564, -628, 568, -600, 592, -592, 596, -568, 2 572, -544, 560, -520, 536, -484, 500, -460, 2 480, -428, 500, -38S[4, 468, -388, 448, -344, 2 412, -308, 400, -272, 392, -232, 376, -212, 2 284, -228, 184, -236, 84, -244, 392, 3864, 2 412, -208, 408, -160, 396, -144, 404, -124, 2 o 432, -124, 460, -88, 472, -60, 428, -32, 2 404, -16, 384, -4072, 380, -4044, 364, -4024, 2 244, -4040, 128, -4044, 20, -4040, 364, 72, 2 368, -4000, 344, -3976, 308, -39460, 276, -3948, 2 264, -3908, 260, -3856, 248, -3832, 256, -3804, 2 280, -3792,  288, -3736, 404, 368, 440, -3744, 2 484, -3764, 524, -3760, 568, -3768, 588, -3796, 2 592, -3824, yo 608, -3840, 412, 4076, 516, -8, 2 616, -8, 656, 4024, 668, -108, 672, -164, 2 684, -220, 684, -284, 680, -324, 700, -348, 2 676, -404, 664, -460, 664, -492, 640, -508, 2 644, -536, 604, -528, 576, -536, 592, 3504, 2 664, -584, 672, -560, 688, -572, 812, -556, 2 952, -540, 1152, -512, 1148, -544, 1132, -560, 2 1104, -580, 1080, -572, 1072, -592, 1032, -632, 2 1012, -632, 1000, -660, 976, -668, 980, -692, 2 824, -712, 676, -728, 532, -740, 676, 3368, 2 700, -752, 700, -848, 700, -948, 696, -1020, 2 6708, -1168, 796, 2936, 792, -1132, 768, -1112, 2 868, -1100, 984, -1084, 968, -1016, 976, -960, 2 956, -936, 936, -872, 924, -804, 900, -756, 2 888, -704, 980, 3404, 1084, -680, 1128, -664, 2 1196, -648, 1228, -652, 1280, -660, 1344, -652, 2 1380, -672, 1416, -692, 1448, -720, 1084, 3416, 2 1072, -708, 1104, -724, 1128, -764, 1172, -792, 2 1204, -824, f1228, -840, 1244, -872, 1268, -900, 2 1288, -940, 1268, 3032, 1236, -1064, 1232, -1112, 2 1208, -1092, 1104, -1108, 1008, -1112, 980, -1084, 2 1152, 3580, 1284, -492, 1456, -460, 1592, -412, 2 1492, 3872, 1468, -220, 1444, -204, 1400, -180, 2 1356, -184, 1348, -220, 1324, -244, 1316, -288, 2 1280, -284, 1272, -320, 1256, -340, 1248, -380, 2 1192, -432, 1172, -424,  1164, -448, 1132, -444, 2 1116, -420, 1092, -456, 1056, -500, 1020, -532, 2 1120, 3672, 1072, -384, 1056, -336, 1032, -324, 2 1012, -328, 980, -324, 948, -316, 928, -304, 2 888, -300, 888, -336, 868, -344, 844, -348, 2 844, -368, 828, -388, 812, -424, 788, -408, 2 772, -440, 752, -432, 732, -452, 700, -444, 2 664, -460, 704, 4036, 812, -44,  940, -28, 2 840, 4052, 888, -300,  1056, 3760, 1088, -332, 2 1096, -304, 1104, -264, 1116, -280, 1120, -244, 2 1148, -224, 1172, -196, 1168, -144, 1172, -88, 2 1140, -4056, 11872, 4012, 1192, -176, 1268, -164, 2 1288, -224, 1312, -204, 1324, -168, 1368, -156, 2 1392, -156, 1404, -188, 1268, 3932, 1388, -140, 2 1536, -100, 1564, -228, 1596, -220, 1540, 3988, 2 1548, -88, 1576, -52, 1576, -32, 1548, -12, 2 1532, -4076, 1540, -4044, 1544, -4016, 1524, -4004, 2 1492, -3976, 1388, -4008, 1276, -4036, 1192, -4056, 2 1184, -4028, 1540, 76, 1Z4576, -4028, 1612, -4080, 2 1656, 0, 1684, -4088, 1700, -4064, 1724, -4036, 2 1704, -4028, 1680, -4048, 1668, -4068, 1656, -4096, 2 1640, 60, 1636, -3972, 1632, -3936, 1612, -3904, 2 1616, -3864, 1604, -3812, 1584, -3784, 1568, -3756, 2 1564, -3728, 1552, -3704, 1544, -3652, 1648, 476, 2 1656, -3648, 1648, -3668, 1640, -3716, 1640, -3748, 2 1644, -3792, 1652, -3844, 1616, -3856, d`1668, 512, 2 1692, -3620, 1700, -3640, 1716, -3660, 1720, -3692, 2 1732, -3732, 1744, -3752, 1764, -3772, 1776, 292, 2 1744, -3816, 1696, -3832, 1648, -3844, 1636, 160, 2 1680, -3916, 1732, -3908, 1756, -3896, 1788, -3908, 2 1736, 188, 1744, -3956, 1772, 492, 1796, -7700, 2 1796, -7724, 1772, -7724, 1772, -7700, 1680, 328, 2 1704, -7864, 1704, -7888, 1680, -7888, 1680, -7864, w 2 1588, 412, 1612, -7780, 1612, -7804, 1588, -7804, 2 1588, -7780, 1560, 212, 1584, -7980, 1584, -8004, 2 1560, -8004, 1560, -7980, 1744, 248, 1768, -7944, 2 1768, -7968, 1744, -7968, 174yE4, -7944, 1588, 4072, 2 1612, -4120, 1612, -4144, 1588, -4144, 1588, -4120, 2 1664, 148, 1688, -8044, 1688, -8068, 1664, -8068, 2 1664, -8044, 1392, 4036, 1416, -4156, 1416, -4180, 2 1392, -4180, 1392, -4156, 1444, 3932, 1468, -4260, 2 1468, -4284, 1444, -4284, 1444, -4260, 1448, 3796, 2 1472, -4396, 1472, -4420, 1448, -4420, 1448, -4396, 2 1148, 3784, 1172, -4408, 1172, -4432, 11(/48, -4432, 2 1148, -4408, 996, 3948, 1020, -4244, 1020, -4268, 2 996, -4268, 996, -4244, 864, 3696, 888, -4496, 2 888, -4520, 864, -4520, 864, -4496, 796, 3500, 2 820, -4692, 820, R -4716, 796, -4716, 796, -4692, 2 1420, 3556, 1444, -4636, 1444, -4660, 1420, -4660, 2 1420, -4636, 1256, 3360, 1280, -4832, 1280, -4856, 2 1256, -4856, 1256, -4832, 1012, 3268, 1036, -4924, TV 2 1036, -4948, 1012, -4948, 1012, -4924, 1084, 2968, 2 1108, -5224, 1108, -5248, 1084, -5248, 1084, -5224, 2 808, 3244, 832, -4948, 832, -4972, 808, -4972, 2 808, -4948, 568, 3112, 592, -5080, 592, -5104, 2 568, -5104, 568, -5080, 480, 2900, 504, -5292, 2 504, -5316, 480, -5316, 480, -5292, 376, 3340, 2 400, -4852, 400, -4876, 376, -4876, 376, -4852, 2 320, 3!704, 344, -4488, 344, -4512, 320, -4512, 2 320, -4488, 524, 3816, 548, -4376, 548, -4400, 2 524, -4400, 524, -4376, 756, 3888, 780, -4304, 2 780, -4328, 756, -4328, 756, -4304, 472, 100, 2 496, -8092, 496, -8116, 472, -8116, 472, -8092, 2 208, 192, 232, -8000, 232, -8024, 208, -8024, 2 208, -8000, 180, 3988, 204, -4204, 204, -4228, 2 180, -4228, 180, -ZY4204, 844, 60, 868, -8132, 2 868, -8156, 844, -8156, 844, -8132, 3824, 396, 2 3848, -7796, 3848, -7820, 3824, -7820, 3824, -7796, 2 3796, 128, 3820, -8064, 3820, -8088, 3796, -8088, 72 3796, -8064, 4020, 3916, 4044, -4276, 4044, -4300, 2 4020, -4300, 4020, -4276, 44, 3688, 68, -4504, 2 68, -4528, 44, -4528, 44, -4504, 4060, 3356,  2 4084, -4836, 4084, -4860, 4060, l>-4860, 4060, -4836, 2 4084, 2852, 12, -5340, 12, -5364, 4084, -5364, 2 4084, -5340, 3428, 3408, 3452, -4784, 3452, -4808, 2 3428, -4808, 3428, -4784, 3508, 3760, 3532, -4432, 2 3532, -445v6, 3508, -4456, 3508, -4432, 3512, 3956, 2 3536, -4236, 3536, -4260, 3512, -4260, 3512, -4236, 2 3088, 432, 3112, -7760, 3112, -7784, 3088, -7784,  2 3088, -7760, 2772, 176, 2796, -8016, 2796, w -8040, 2 2772, -8040, 2772, -8016, 2996, 3908, 3020, -4284, 2 3020, -4308, 2996, -4308, 2996, -4284, 2924, 3256, 2 2948, -4936, 2948, -4960, 2924, -4960, 2924, -4936, 2 2456, 3884, 2480, -43t08, 2480, -4332, 2456, -4332, 2 2456, -4308, 2752, 600, 2776, -7592, 2776, -7616, 2 2752, -7616, 2752, -7592, 2364, 396, 2388, -7796, 2 2388, -7820, 2364, -7820, 2364, -7796, 2324, 3896, 2 x 2348, -4296, 2348, -4320, 2324, -4320, 2324, -4296, 2 2464, 664, 2476, -7504, 2488, -7528, 2464, -7528, 2 2268, 3756, 2280, -4412, 2292, -4436, 2268, -4436, 2 2440, 3360, 2452, -4808, 2464, -4G&832, 2440, -4832, 2 2528, 3224, 2540, -4944, 2552, -4968, 2528, -4968, 2 2724, 3548, 2736, -4620, 2748, -4644, 2724, -4644, 2  100, 3088, 112, -5080, 124, -5104, 100, -5104, 2 128, 2832,( 140, -5336, 152, -5360, 128, -5360, 2 576, 2844, 588, -5324, 600, -5348, 576, -5348, 2 600, 4016, 612, -4152, 624, -4176, 600, -4176, 2 3412, 3304, 3424, -4864, 3436, -4888, 3412, -$I4888, 2 1084, 4040, 1096, -4128, 1108, -4152, 1084, -4152, 2 1224, 3992, 1236, -4176, 1248, -4200, 1224, -4200, 2 1508, 4012, 1520, -4156, 1532, -4180, 1508, -4180, 2 1600, 56, 1612, -8112, 1624, -8136, 1600, -8136, 2 1392, 2596, 1404, -5572, 1416, -5596, 1392, -5596, 2 436, 3656, 448, -4512, 460, -4536, 436, -4536, 2 896, 0, 908, -8168, 920, -8192, 896, -8192, 2 4C 572, 36, 584, -8132, 596, -8156, 572, -8156, 2 1276, 3472, 1288, -4696, 1300, -4720, 1276, -4720, 2 4092,  3936, 8, -4232, 20, -4256, 4092, -4256, 2 2372, 444, 2384, -7724, 2396, -7748, 2372, -7748, 2 1544, 3864, 1716, -360, 1572, 3900, 1712, -244, 2 1588, 4004, 1736, -124, 1700, 152, 1780, -4052, 2 1752, 176, 1856, -3988, 1808, 204, 1928, -3912, 2 1732, 320, O: 1892, -3796, 1612, 432, 1516, -3524, 2 5852, -3536, -31923, -31931, 6000, -3816, -31922, -31928, 2 5540, -3508, -31914, -31916, 5548, -3856, -31922, -31911, 2 6048, -3952, -31923, -31935, 5976, -4040, -31918, -31927, 2 5872, -40, -31933, -31916, 5856, -172, -31922, -31926, 2 5828, -288, -31932, -31931, 5828, -396, -31923, -31932, 2 5376, -32, -31920, -31935, 5048, -280, -31921, -31928, 2 5268, -292, -31913, -31914,  5424, -420, -31914, -31935, 2 5352, -568, -31922, -31933, 5364, -836, -31917, -31933, 2 5164, -992, -31929, -31935, 5360, -1332, -31930, -31924, 2 4880, -1012, -31935, -31924, 4644, -900, -31923, -31917, 2 47B20, -680, -31916, -31922, 5012, -496, -31925, -31911, 2 4824, -348, -31927, -31922, 4840, -4000, -31923, -31927, 2 4484, -3908, -31913, -31927, 4176, -3760, -31923, -31922, 2 4352, -80, -31927, -31935, 4604, -228, -31927, -31924, 2 4360, -544, -31923, -31921, 4348, -772, -31935, -31918, 2 4432, -1104, -31924, -31935, 7896, -1160, -31916, -31912, 2 8008, -772, -31921, -31925, 8004, -476, -31925, -31917, 2 7904, -204, -31P7922, -31931, 8008, -4008, -31917, -31932, 2 8012, -3708, -31922, -31932, 7384, -3712, -31923, -31916, 2 7376, -20, -31913, -31911, 7456, -436, -31933, -31921, 2 7400, -936, -31922, -31923, 7004, -756, -31935, -31910', 2 7056, -396, -31915, -31916, 7008, -4016, -31927, -31932, 2 6624, -3560, -31913, -31935, 6556, -3860, -31921, -31918, 2 6728, -260, -31922, -31914, 6464, -496, -31933, -31935/ END LAY.FR%; SUBROUTINE LAY COMMON /DLIST/ IBUF(5000) DIMENSION IAR(16),LINCTR(3:6) INTEGER BOX,PIC,START(7:10) C *** TEXT LAYOUT *** C SAVED AS "LAY.FR" C REV 1.0 GTS C 6-9-77 C * USES MEGATEK MG552-C GRAPHICS C * REQUIRES FILE "LAYDATA" C SET # LINES IN EACH TEXT BUFFER LINCTR(3)=9 LINCTR(4)=9 LINCTR(5)=9 LINCTR(6)=10 CALL BIN5 (IBUF,4000) C DRAW BOX SUBROUTINE BOX=0 CALL BINIT (1,0,0,1.0,1.0) BOX=0 CALL BPLBL (BOX) CALL BDRWR (0.,-25.,0,0,0) CALL BDRWR (100.,0.,15,0,0) CALL BDRWR (0.,100.,15,0,0) CALL BDRWR (-100.,0.,15,0,0) CALL BDRWR (0.,-100.,15,0,0) CALL BRETN (0) C DRAW HEADER CALL BINIT (2,0,0,1.0,1.0) CALL BDRWA (1200.,1600.,0,0,0) CALL BDRWA (-1800.,1600.n,15,0,0) CALL BDRWA (-1800.,-1800.,15,0,0) CALL BDRWA (1200.,-1800.,15,0,0) CALL BDRWA (1200.,1600.,15,0,0) CALL BDRWA (-1300.,1472.,-15,0,0) CALL BSTNG (15,2,0,"NCC ISSUE",9) XX=-720. YY=1400. INC=1 DO 10 L1=0,16 L=L1 IF ( L1 .EQ. 0 ) L=1 IF ( L1 .EQ. 16 ) L=15 X=XX+FLOAT(INC*L) Y=YY-FLOAT(INC*L) CALL BDRWA (X,Y,-12,0,0) CALL BSTNG (17,5,0,"MEGAZETTE",9) 10 CONTINUE CALL BDRWA (450.,1472.,-15,0,0) CALL BSTNG (15,2,0,"FOUNDED 1977",12) CALL BDRWA (116.,1350.,0,0,0) CALCL BDRWA (-716.,1350.,15,0,0) CALL BDRWA (1634.,1500.,-15,0,0) CALL BSTNG (15,3,0,"EXIT ",5) CALL BJSLB (BOX,0) CALL BDRWA (1250.,1260.,-15,0,0) CALL BSTNG (15,3,0,"PARAGRAPH: 1 ",13) CALL BJSLB (BOX,0) CALL BDRWA (1778.,1140.,-15,0,0) CALL BSTNG (15,3,0,"2 ",2) CALL BJSLB (BOX,0) CALL BDRWA (1778.,1020.,-15,0,0) CALL BSTNG (15,3,0,"3 ",2) CALL BJSLB (BOX,0) CALL BDRWA (1778.,900.,-15,0,0) CALL BSTNG (15,3,0,"4 ",2) CALL BJSLB (BOX,0) CALL BDRWA (1250.,660.,-15,0,0) CALL BSTNG (15,3,0,3G"SET PIC: 1 ",13) CALL BJSLB (BOX,0) CALL BDRWA(1778.,540.,-15,0,0) CALL BSTNG(15,3,0,"2 ",2) CALL BJSLB(BOX,0) CALL BDRWA (1778.,420.,-15,0,0) CALL BSTNG (15,3,0,"3 ",2) CALL BJSLB (BOX,0) CALL BDRWA (1778.,300.,-15,0,0) CALL BSTNG (15,3,0,"Q*4 ",2) CALL BJSLB (BOX,0) CALL FOPEN (0,"LAYDATA") DO 30 LOOP=3,6 CALL BINIT (LOOP,400,1,1.0,1.0) CALL BTXAT (LOOP,3,0,0,30,10,0) L3=LINCTR(LOOP) DO 30 L2=1,L3 READ (0,20) IAR(1) 20 FORMAT (S30) CALL BTEXT (-1,IAR) 30 C"ONTINUE CALL CLOSE (0) C FILL PICTURE PICTURES WITH DUMMY STATEMENTS DO 35 LOOP=7,10 CALL BINIT (LOOP,0,0,1.0,1.0) START(LOOP)=0 CALL BPLBL (START(LOOP)) CALL BDRWA (0.,0.,0,0,0) CALL BDRWA (0.,0.,0,0,0) CALL BDRWA (0.,0.,0,0,0) \CALL BDRWA (0.,0.,0,0,0) CALL BDRWA (0.,0.,0,0,0) 35 CONTINUE DO 40 LOOP=1,6 IF ( LOOP .EQ. 2 ) GO TO 40 CALL PONOF (LOOP,0) 40 CONTINUE CALL CHREF(0) CALL DSTRT CALL GTON (0) C SELECT FROM MENU ITEMS 50 CALL GRDTJ (X,Y,IPEN) CALL GP*LOT(-1) IF ( IPEN .EQ. 0 ) GO TO 50 IF ( X .LT. 1875. .OR. Y .LT. 300. ) GO TO 50 IF ( Y .GT. 1500. ) GOTO 1000 IF ( Y .GT. 1260. ) GO TO 600 IF ( Y .GT. 1140. ) GO TO 500 IF ( Y .GT. 1020. ) GO TO 400 IF ( Y .GT. 900. ) GO TO 300 C SET PICTURE  IF ( Y .GE. 660. ) IPIC=7 IF ( Y .GE. 540. .AND. Y .LT. 660. ) IPIC=8 IF ( Y .GE. 420. .AND. Y .LT. 540. ) IPIC=9 IF ( Y .GE. 300. .AND. Y .LT. 420. ) IPIC=10 CALL BPNT (IPIC) CALL BGLBL (START(IPIC)) CALL BNSRT (2) 200 CALL GRDTJ (X,Y,IPEN) IF ]( IPEN .EQ. 1 ) GO TO 200 210 CALL GRDTJ (X,Y,IPEN) CALL GPLOT(-1) IF ( IPEN .EQ. 0 ) GO TO 210 XPLL=X YPLL=Y 220 CALL GRDTJ (X,Y,IPEN) IF ( IPEN .EQ. 1 ) GO TO 220 230 CALL GRDTJ (X,Y,IPEN) CALL GPLOT(-1) IF ( IPEN .EQ. 0 ) GO TO 230 XPUR=X YPUR=Y CALL BDRWA (XPLL,YPLL,0,0,0) CALL BDRWA (XPUR,YPLL,15,0,1) CALL BDRWA (XPUR,YPUR,15,0,1) CALL BDRWA (XPLL,YPUR,15,0,1) CALL BDRWA (XPLL,YPLL,15,0,1) 240 CALL GRDTJ (X,Y,IPEN) IF ( IPEN .EQ. 1 ) GO TO 240 GO TO 50 C MOVE TEXT PARAGRAPHS 3D00 PIC=6 GO TO 700 400 PIC=5 GO TO 700 500 PIC=4 GO TO 700 600 PIC=3 700 CALL PONOF (PIC,1) 750 CALL GRDTJ (X,Y,IPEN) IF ( IPEN .EQ. 0 ) GO TO 50 IF ( X .GT. 600. .OR. Y .LT. -1300. ) GO TO 750 CALL PXLT (PIC,X,Y,0) GO TO 750 1000 CALL DHALT RETURN END MBMOV.SRy xe .TITL MBMOV .ENT MBMOV,MBTRAN .EXTD .CPYL,.FRET TRTAB = -167 TRINC = TRTAB+1 FCNT = TRINC+1 TR1 = TRINC+1 TR2 = TR1+1 TR3 = TR2+1 TR4 = TR3+1 TR5 = TR4+1 TR6 = TR5+1 .NREL MBMOV: JSR @.CPYL LDA 0,TRTAB,3 STA 0,TR1,3 LDA 0,TRINC,3 STe#A 0,TR2,3 GEN27: LDA 2,@TR1,3 COM# 2,2,SNR JMP TRDON LDA 0,0,2 LDA 1,C7777 AND 1,0 LDA 1,@TR2,3 ADD 1,0 LDA 1,C7777 AND 1,0 LDA 1,BIT4 AND# 0,1,SZR JMP GEN28 LDA 1,C1777 SUBZ# 0,1,SZC JMP GEN28 LDA 1,@TR2,3 NEG 1,1 STA 1,@TR2,3 ADD 1,0 E LDA 1,C7777 AND 1,0 GEN28: LDA 1,C160K ADD 1,0 STA 0,0,2 ISZ TR2,3 LDA 0,1,2 LDA 1,@TR2,3 ADD 1,0 LDA 1,C7777 AND 1,0 LDA 1,BIT4 AND# 0,1,SZR JMP GEN29 LDA 1,C1777 SUBZ# 0,2,SZC JMP GEN29 LDA 1,@TR2,3  NEG 1,1 STA 1,@TR2,3 GEN29: STA 0,1,2 ISZ TR1,3 ISZ TR2,3 JMP GEN27 TRDON: JMP @.FRET C1777: 1777 C7777: 7777 C160K: 160000 BIT4: 1B4 10 MBTRAN: JSR @.CPYL LDA 2,@TRTAB,3 LDA 0,0,2 LDA 1,4,2 ADD 1,0 LDA 1,10,2 ADD 1,0 LDA 1,14,2 ADD 1,0 LDA 1,C17 AND 1,0 LDA 1,C7 SUB% 1,0 STA 0,TR2,3 LDA 0,1,2 LDA 1,5,2 ADD 1,0 LDA 1,11,2 ADD 1,0 LDA 1,15,2 ADD 1,0 LDA 1,21,2 ADD 1,0 LDA 1,C17 AND 1,0 LDA 1,C7 SUB 1,0 STA 0,TR3,3 LDA 2,TRINC,3 LDA 1,TRLOC COM# 1,1,SNR  SUB 1,1 ADD 1,2 ADD 1,2 INC 1,1 LDA 0,@FCNT,3 SUB# 0,1,SNR SUB 1,1 STA 1,TRLOC LDA 0,TR2,3 STA 0,0,2 LDA 0,TR3,3 STA 0,1,2 JMP @.FRET C7: 7 C17: 17 TRLOC: -1 .END DOM15.FRy ;S OVERLAY DOM15 SUBROUTINE DUM15 CALL GLIDE RETURN END DEMOFORT.CL)NsFORT DEMO MAC OLAY MAC KEYBD FORT MENU FORT DOM1 FORT DRAW FORT DOM2 FORT LOGDIA FORT LOGDATA FORT DOM3 FORT WIND FORT DOM4 FORT SHAPES FORT DOM5 FORT DESIGN FORT DOM6 FORT AIRDEMO FORT AIRDATA FORT DOM7 FORT MOVMEGA MAC MBMOV FORT DOM8 FORT RBURST FORT DTjRANS MAC ATRANS FORT DOM9 FORT QUBIC MAC QMOVE FORT QDCOD FORT DOM10 FORT AIRDEMO2 FORT AIRDATA2 FORT DOM11 FORT MEGA FORT MEGASUB FORT DOM12 FORT LAY FORT DOM13 FORT USMAP FORT MAPDATA FORT DOM14 FORT SPRINGS FORT SPRDATA FORT DOM15 FORT GLIDE FORT PLANE nFORT DOM16 FORT SCROLL FORT SCRDATA FORT DOM17 FORT CHARS FORT SETS FORT DOM18 FORT EXAGRAPH FORT EXAGRID FORT POLAR FORT DOM19 MOVMEGA.FRy )h COMPILER NOSTACK SUBROUTINE MMEGA DIMENSION IADR(30),ARR(2,25) COMMON /DLIST/ IBUF(5000) COMMON /BUR/ITRAN(50) DATA ITRAN /7,0,6,4,4,6,0,7,-4,6,-6,4,-7,0,-6,-4, 2 -4,-6,0,-7,4,-6,6,-4/ IWAIT=1000 NUM=12 CALL BIN5(IBUF,5000) CALL BINIT(1=,500,0,1.,1.) CALL BINIT(2,100,0,1.,1.) CALL BINIT(3,50,0,1.,1.) CALL PONOF(1,0) CALL PONOF(3,0) CALL BPNT(3) CALL BPLBL(ICURS) C CALL BDRWR(20.,20.,15,0,0) C CALL BMOVR(-20.,-20.) C CALL BDRWR(20.,-20.,15,0,0) C CALL BMOVR(-20.,20.) C CALL BDRWR(1020.,0.,15,0,0) CALL BRETN(0) CALL BPNT(1) CALL BPLBL(ISUB) N=15 PI=3.141592 DO 50 I=1,N PHI=(I-1)*2*PI/N ARR(2,I)=500.*COS(PHI)+500. 50 ARR(1,I)=500.*SIN(PHI)+500. CALL BDRWA(ARR(1,1),ARR(2,1),0,0,0) K=1 N1=N/2 DO 55 I=1,N1 L=K DO 55 J=1,N K=K+I IF(K.GT.N) K=K-N CALL BDRWA(ARR(1,K),ARR(2,K),15,0,0) IF(K.NE.L) GOTO 55 IF(K.EQ.15) K=0 K=K+1 CALL BDRWA(ARR(1,K),ARR(2,K),0,0,0) L=K 55 CONTINUE CALL BRETN(0) CALL BPNT(2) C CALL BDRWA(-2048.,1500.,-15,0,0) C CALL BSTNG(0,1,0,"FAST",4) |C CALL BDRWA(-2048.,0.,-15,0,0) C CALL BSTNG(0,1,0,"STOP",4) C CALL BMOVA(-1830.,0.) C CALL BDRWA(-1850.,0.,15,0,0) C CALL BDRWA(-1850.,1500.,15,0,0) C CALL BDRWA(-1830.,1500.,15,0,0) DO 100 I=1,NUM IADR(I)=IGPTR(0) CALL BXLT(-512.,-512.,0) CALL BJSLT}B(ISUB,0) 100 CONTINUE IADR(NUM+1)=-1 CALL GTON(ICURS) CALL DSTRT IWAIT=400 180 DO 300 IR=1,IWAIT CALL MBMOV(IADR,ITRAN) CALL GRDTJ(X,Y,IZ) CALL GPLOT(-1) IF(IZ.NE.0) GOTO 999 300 CONTINUE CALL MBTRAN(IADR,ITRAN,NUM) IWAIT=57 IF(ITRAN(1).EQ.60) ITRAN(1)=3  GOTO 180 999 CALL DHALT RETURN END  DEMO.SV(eW6    $@L?B;B?B2B6FG G"GGGHH^HHIYIXIIJ"J^JtJJJJKgK^LMNN"N0NNNNNNO O>OGOMOxOOP8PNPPQ7Q/QRR1RORLReRRRS TSkSSSSSSSSTRTTTkTiTTTTTTTTTTTTTU!U&U1U=UYUeU]UV : #P  > #P # 9 > 8 Lz H8ERROR IN OVERLAY LOAD   H8OVERLAY OPEN ERROR    7'  ?PG "*W#P ?PGW !& ")!! "`xIJ ! "`ax)A 8 !IG !I)2 ' %+))`````) nOgO````bUggU````! bOgO````` @q # f$$$A f$+$:C    f$$$: f$+$9C    f$$$9'G f$$$8'G f$$$B'G 2{$A $'^$.[@    $H f$$ f$$C    f$$ f$$C    f$$'G f$$'G f$$'G 2{$ $^ @$[@    d$ $' GՐ@ PK@+$$ f$ $C f$ 'G % > $ ? 2{$ $$[@ @K     %' C f&& &G f&' &G A &%3 2{& f&' ' &%D% @CPC%#C F f&' f&' f&&'/O f&''+Ր@%z% f&''C f&&#G%K% f&' 'C f&& AG#/ A@ %&PC&#C F+7K f&'#/Ր@ K f&'#/Ր@3%& f&''+Ր@ K f&' f&&'/Ր@#& f&& f&''G%PC&@#C F/&-&> f&'#/&>&B&&I f&'PG f&' #G f&& 'G f&&  f&&  f&& 'G f&&'C &&& f&&'o && f&& f&& f&''/G f&'#G f&&'G 2{& P > & ? &C 2{& &R  &[@ @&^&[@2K    '' @Ր@ AK@ +'#'F f'T 'k'G' ']'8 2{'f' ']'E 2{'e 'd > '\ ? 2{'[ 'W^K8    'r' @Ր@ AK@ +''c f' ''G' 'ʍ' 2{'' 'ʍ' 2{' ' > ' ? 2{' '^KB    '' (CՐ@ GK@ +'(# f(8 (Q f(1 'G' (C]}( 2{(B' (C(" 2{(A (J > (@ ? 2{(? (4(;^K-    (X f( ( f( (C   f( ( f( (C   f( (PG 2{( (^I([@    ( f( ( f( (C   f( ( f( (C   f( (PG 2{( (^([@    ) f): )W f)A )PC X  f): )P f)A )OC   f): )O'G f): )MPG 2{)O )=^)D[@    )^' )Ր@ )K@ +)z)~' E P > ) ? 2{) K8    ) D GՐ@ )* *%C E *%)PC' GՐ@  *%K@+) *%G' *%)) DG DP D f* *(+C f* C'G *, > *$ ? e2{*# **[@ @K    *:' FՐ@ PK@+*U*q f*} * ' **g*k' C * ?*t *CP > 2{* *[@ @K м   * *C f* *'G 2{* *^    d+  d+* f+#+C' +*+ EC f+#+C +/ k +K +SPC :D 'Z++ 'C E +8++ f+#+C'C+j f+#+C f+$+C'/Z+2+X f+#+C'+K+> f+#+C'C +K+j f+#,C' +C+j f+#+C f+$+C'PG+ :W !"#+C ,# f+#+C'++ f+#+C f+$+C'G E +++P E f+#+C /#++ . f+#+C ,,#+ # E + > + ? 2{+ +[@ @K      c,v , ,/7 l'K ,/ lK ,+ k#CPC,m#C+ f,o,'G f,o,'G f,o,'G f,o,PG f,o, f'G ,+ k'Ր@ ,g f,o, ,zG 2{,," ,r^,     d- ,' -,,'C, E -, f--C'C E -, f--C'/C f--C#/Ր@K f--C#/Ր@ 3,- f--C' -C : PC-L#C D f-'+Ր@ K f-'+Ր@#K f-' -#-J f- f-'/G- f--C f--C'/G f--C f--C'/Ր@ - f--C f--C'G - > - ? 2{- --[@ @K    - f.. ' .-.' FՐ@ PK@+-.' .Ր@  .K@+..' .Ր@t .K@ +.".' .Ր@ .K@ +.>. f..ƀ ' ..` f..ƀ ' .ŦC#/ k .ȎO f..ŀ 'G f..Ā 'G f..΀ 'G f..À 'G f..ʀ 'G /[ ... . ?. . ? . ?. . ? .CP > 2{. .[@ @K     d. . .C f..'G 2{. .^    / f/: /W f/A /PC   f/: /P f/A /OC   f/: /O'G 2{/L /=^/D[@    /^ f//'G f//'G f//'G f//'G f//'G 2{/ /^    d/ /' /؍/ f//C'G' /؍/ f//C'G /[@ @    / f0 0$'G f0 0'G f0 0'G f0 0PG 2{0ka 0^    d0 0/ f0 0C'/Ր@K f00C f00C'/'Ր@ 30^0`0 f0 0C'/Ր@K f00C' 0#00 f0 0C'G W0 > 0 ? 2{0 0[@ @K$    0 f1 1 1G f1 1 1G' FՐ@ PK@+01 f1 1ހ ' 1ύ01 f1 1 f1 1ހ 'G f1 o1 1G' 1ύ11 f1 1 AGPC1m#C F f1 1 f1 1ހ '/Ր@ K f1 1 f11'/Ր@#1k f1 1 f1 1 'G1) f1 1' A1 f1 1օPG 2{1 f1 1 f1 1ހ 'PG f1 1ԅPG f1 1օPG 2{1 1 ?1 1 ? 1 > 2{1 1[@ @1^K3     1 f2X 2w  f2X 2p  f2O 2j ' 2i2 f2X 2w f2_2pC   f2O 2j ' 2i2; f2X 2p f2_2oC   f2X 2o'G f2X 2n'G 2{2h 2R[@ @2[^2b[@5    d3v 2' 3Ր@ 22 h 22233333333 3333!3'3-' 323/' 3235' 323;' 323A' 3~23G' 3}23K3k >3U >3U ?'3U 3k ?H3U ?`3Ud] ?f3U ?l3U ?r3U ?|3U ?3U 3M ?3U @A3U @j3U @3U 3 3kPC3Q = ? 3|Ր@ 3f 3 3{ ? 3z >' ?3G dLK5432  n  d4k 3 H 4o3 f4[ 4~ CG f4[ 4} f4b4rC f4b4~C'/G f4[ 4u f4b4qC f4b4~C'/G HK334[  4~4|4~34[4w46(2X,'*** ERROR DETECTED'/10X,'PICTURE:',I5/10X,'LCP:  ',I5/10X,'ICP: ',I5/10X,'IERW1: ',I5/10X,'IERW2: ',I5/10X,'IMODE: ',I5) HP4L IN ERROR ROUTINE 1.1 H 4}4Y 4^;  4e[@ @    d4 4 @ 4ϤC :     4'Z\4454' GZ544 f5I 5m f5B 'G4 f5I 5m @ 5bG ;@5^5^5]5] f5P 5e : 5\5[5Z? ?458 @ 5nC f5P 5m 5YG @ 5eQ5m# 5dkC f5I 5m @ 5m 5m f5I 5m 5ZG f5P 5m 5ZG f5P 5e 5ZG 5X ? 5l > 2{5W 5E5L^5SfK@    5t f6 6. f6 6& f66% ; 6? ?55 f6 6 C'55 f6 6. f6 6&C  f6 6& f6 6%C   f6 6%'G f6 6. 6G f6 6& 6G f6 6% 6G f6 6. f6 6& f6 6%'G 6- > 2{6 6[@ @>6^6[@K   0123456789.-* c7̀ 6G 7GPK 7S  7  ~ D6a6s   f77' 6= 7K7^'C 7Ր@ 6PC q7 7    y   7 t66#/ 7C 7Ր@ 66 f77' 6= 7K7^ 7C/PK f77' 6= 7K7^PC7]#C++ 7ֵ66 f77' 6= 7K7^ 7C7[ q7  ~  q7  &  ~ #PC 7ԕ7$ 7K# 7Ӎ707A#PC f7' 6= 7K7^ f77' 6= 7K7^ f77' 6= 7K7^6 #P7@7n7PC7#C+ f 7G7r'G 'PG3 777 f 7G f M6=7#GPC7 f f' 6=G 7C3PS3 760  7 ** cAA@  7N7[6666s c9c 7 9rC8#C 9} f9\# 9sC f 'G7 f9U9 9qG f9\9r' 9qՐ@ 82 f9U9 9pG f9\9|' 9qՐ@ 8S f9U9 f9U9' 9oG f9\9z' 9qՐ@ 8t f9U9 f9U9' 9nG f9\9y' 9qՐ@ 8 f9U9 f9UQ9' 9mG f9\9l' 9qՐ@ 8 f9U9 f9U9' 9kG f9\9j' 9qՐ@ 8 f9U9 f9U9' 9sG f9\9i' 9qՐ@ 8 f9U9 f9U9' 9vG f9\9' 9qՐ@ 9 f9Ul9 f9U9' 9xG f9\9h' 9qՐ@ 99 f9U9 f9U9'PG f9\9r f9U9' 9gG 2{9h f9\9r'G 9XR  9_^99@     9' I [   !r)p ")j   9K1IB!E1EB1D!DB 1DB1C!CB1C!FB8#1=B/);B!2B14")4!2BBB )1J)0JJ 9$K!&BB)%BB!#B !"B !!B ! B!B!B!BBZF:GE ?J  t @h%:::= `!d'AbV!`!d!bV` ` 'Ad%`!d!bV  3G) "   !1C!.CC!)G'G 8'/ ! ') G)' ) O) ''G@:: "8jI/7'S7*K+!B#B87#B :$:- / &""* "3"G'B 'B")+`A`" * ")`A`!G8S%) )1R2 Sc`@`B '1/E / ")`I` "3BB" )ݎ`I` "!G / " )G" G") PG!G;6;;<=>s@S #CC!C)KK1@* 8S"C1;*3"C!ڥaU"*K"/)Ѧ+[*1*Z1") )KK 8TZ*:EQ]:;<=>?@ABCDEFGH?IeJ3")j#K!CK h81"C)׫K3"+Z 3*Z3"/B'+1*Z-*Z*32Z*)BKK <81*!.3"/B3"/B!'1B8;1!B 1!B1! B1! Bdef @@>}>{!PJPP1Z 1?")>J "S "S "R!4* J "R" )(J "R" )!J "S" )J ")J "[)PP* J ! C=]@ > 1:"15")8J !6J !2*J """ )%J !(C1")PPPPB ")* J 3""! J ! C=]H@?#?% 1")J !J ")J ""!J !C=]?F 1")J !J ") J !C=]?^ 1(!(B  1"!#B   1!B  1!B "B !C 1 !* J ! C=]/?? 1,"),PPB ")'" ) B B *" B *!" B "! ! C=]?? )eK!dCC!^C1[" 1W* T8"*!W1NJ* J8S1H"3B)LBB!N1@BBBBB!FBB95#95+!;B9-#B !8BB 8!.C? 1!"9!(C"C* 8S")1B!C 1 9B@>]e@@4@6@:  !%C1"C"!B !B "*J !C! C! CC @]e@e@h !C1* 8")C!CCC! C @>]e@@ !.;C1"* 8S")#C1")B)B ")B !C! C! CC >@]e@@K C7'3#7/"C8## #GK C7"C/S'S!"7B'G#G7/K+K'B7'b B## #A AYIQ3" 9B)1)I PP PP6COPYRIGHT (C) DGC, 1972, 73, 74, 75, 77 ALL RIGHTS RESERVED.LICENSED MATERIAL - PROPERTY OF DATA GENERAL CORPORATION.P%N  LH!?5? H9; XX15o2 9/  *!"H)"XSST1X0 *HP "( A   VU?   ! "  ! MEMORY OVERFLOW OR NO F$COM.$$ $TTO   8 ; 5ϵ H! ( PP  8X:Z(!H : "GOW '/7 "Y ӭӭP ӭӭPCK!SPCC!U`CZ!MPC!N`C!HCCCCCCCCCCCC!;CPCC2S "C'C  3 )%" PS# + +3  _S"') +K1 E YBDEEjEE,EEEREV3 #C#%d# VC!C# K1 # 1N+"\m "KS VC3"K VC32BIGEGDGFGGGODgAGPDkLGSG(D,B/CZCE!E B)D&HD<XDTn"DN'b4DNEBFH#Ƃ 1# .#++¦)&3DS#)3 K++3 #PSPSP3;  `7 a4 E# #Ƃ 3 3 \3!+ ! !  ##C M1N ]3DDvDBC#C UG# 0+ J#+Oҋ P3"")&&B3") G+`P2` 3" "*'G+#K,3*K1B)J L \)83;"B843 #C3 _(CaCl#3 #C _n# k#+Z C#+Z ) #3 ^lCSE Z 3+ J#B3ҜCSK 3 "C [ #+ł  E3#  \PC \#3#  ]  ] B!CB#C+#3J# 3C#+P ]3#P \TS#x)3Z KCL3#  \S#)3Z KC ) 3Ҝ1+P1 .3)J S#)3Z KC)#P \# # 1 1 1 G CFT 3# 3#S)3Z K+Z )? ) C'C3 CPC+t Z 7") !\S *3J+JR3C "GBE!3B3" +3 C!53 "/ǎDODŽP3 "/4J3"C3 C3 C [ ) 3K ;+J3 CǓ C3 eC")K1"C1"C3#)J PS E  B#P+ -CS ]C#Á 1S #+Z ) # 3ǂC 3#+ ^4CB P# gKPC3"C 23#B# # #Ƃ # #+Z ) #3 ^#) # ;C#C#C#C!CC(LADDC-S#Ƃ #  #) F) ) 3+K+Kҝ=17 W3B#BPB#`3` 3'N)%B"C TC#C# #) ) 5+3K)* [) X&FFFIDDG+ ) ' W+3 +K3 X#+C+CE 3)+ #+K3#K #JC#3 X+ë3K Y#)Í 1 )#S3Z KC *#S+#!J# 3# X+3K Y#+Z ;) #C#Â# W)Ғ X#C#))K)K3J#+3)+\L8S3̕ , 44\83#@"+B84\8C3#B)nPB)hBCBCC#C# Ѫ 91` 1X 1V # Ѫ *1Q )I1I 41G 11E '1C ,1A )!93#̂ 3S N R$ 3#B# P#4#̂ ̅C UD# F $+ΦC@0+-.ED \8+3SɶS3/ O4\8#C#C3Ʌ/ 4O\83 I/#CʅPC#ʂ Sυ N R3#Ђ5C C#ʂPC%Cʭ Q3PC#ʂ S O Q3#ЂC C;#ʂPC S84\83"  ,:\X$L")+B",9%$L9:)Z<"@# B\83P*L9 ,D9:,D:)ݾ\ Q3"99".D@P$@D$H@\8C3*K")B+ΎK΁7  P3" #1 )3ҐҔ)b)3ҐҔ)]KC͢K+K+ #)q  )m +K#+J##++J+K3S/ .+3SɶS3/   N!#)9 #CCCC#  + Lu N)+# #+ͪ  # 1K #3+J4FGING\8!0P+\8CDžCCK' #1; ) 3  P1+ 1) !&31+Ǫ 3+ J KC#+ȫ4#ǂ Y  +-9 \8KKK3 Dɪ #C#+ ,1`  #4\8 J/26CȕSɅC3#ɖ#Ȗ0K#)83Z KC#  #+Z )- 3 \3S#)!3Z KCCʅCȃCSCPS#+Z ) #4 -*0\8KɭS(KȅC#+Z )# ) 3 S#3Z KC3 \)3 S#) 3Z KC4CȍK0.! '  [ 3*K! 83WB! 7"G'WBB)#)K!= 3`2SC' )JK'7 +3 J!! ! 3 '7 3#B3  C!gC CKP #)S? !WC#3  /  1F 1D KSC32S b,)2)/ K15$ 13#* N 4")K) )"K  +32#SKK 01KkKpKEK9K{Ku#3 ?C   ?3ҝ !ߕ !ݕ;SP  1SCK!C 1+ ?+ ? K K K K K K KKKKK$PLT$TTP$CDR$TTO1$TTO$TTI1$TTI$LPT$PTR$PTP$TTR CC #  '1 )# 'CKKK K 3ҝ!Y BP PCCPC 3 2S7 b1gK ;  "*#P+Z:-? 8;+;)C   ?  )? ? 3J+JB)( )$ ­? 8;+ ?檛 ?/9K8) / *? L 7 bK ?3!B1'* J#83# L)m X9 ) I P3K8L@   *9  '/G '/ ' /7 '/JP߂!A 3#B);JK'CC 13+J'C3 "G#C[P#3 K 0:KK83J3yU?B! 3#;*CK&C B+3)3 KS#D0!`PZZ(J#)YB*3 8S2SS32 *83"7Ґҕ3'!;K32+ *83#:2 83"K/3"@@@32J232  cJ!X84\8)XCC2S8)X .K2 "+) 3:+J! /' lG! 'JG\RJ0 K  4Y \ KJKJD0 4ҊJ4I \3 8S 0")')&)"B9"+B84BBBBO+O7@HD!  0B\8S /CKP J4  P#i !C  C! /KK# $! ~ # OA\0""" ~ x s84) P!  )P OA0"CB!= |)=0C!6 0"CB!0 {!* # ~  +!ާ0:J8C! #! ~  ! PPPPPP$sAGeA@Af?.ʏI?JA@=@qA!  $PKC  $+K C0":"CJKK"1=!: ~ !2  !0 !) ~!) !! { ! ! #D#!  APAPPPPPPA2CA!T@ Az@DQy@ X@3 @UT@AP`0"TCCB!)K |+K! +  !! { 0+#Q+QQ Q@ڢ=%_[>/H@@ڗ>]?@2@N@tAP  PC0"?"F*!H B@K"*JP@BJ !7 !8!0C ~# !$ { ! !  BBPB!B @DQQQQQQA@@o-U@r@3@jI@A 0""3*!7S16!0CK #1. #1+ # 0!B 0+SJ# #)K !  ~# @QR Q A AA<@EF@mŃ<@WC@@\8(KC*K # ! +C # 4\ 0") "KC   #4D )\9\#*BK<84\3 "*81N0IXPpS1AC!>KCCC84\3 8S!-=ޝX#+@+ 1+9!8; KC84+9 ҀS\8#3"CC!? !@\#+95 ,<CK8#+#+3;  8 8CK68 3S SS\8s+3 8C+3 8K+3 83CK#+!K#+pC!ٝX 84@\8#++1  8CK#) 4S8CCCCJ 0 y !BBB\3 "81@0XPpSҊC!3CCCC 84S\3 8LbS!"X#11+ ZP#; KڀY 8D\81X#+ P+848@P@P@P@P@!!!!P\D 8!XP#+ #PP$ 84K I 8D 8Sd\8#+)C#+pK#+3  83CK 83P; aP8S3 83҃ 8ҋ3CKS-))\0"C80!@4))\098P#B84  2SCKpC# #K # 3+ '/7G\8OW! . "P ! ASTOP ! "P J! PAUSE STRIKE ANY KEY TO CONTINUE. ! P8#J֠WT0Z; X[;Z QBJ@J; !:^S1 P)C0H 83*"B T0Z<T0Z39-;08;X!$@##+38"):22 P9X UPJ I Aw" 0""*2C2"9s+  D8!gPC2)dπ# U!(H,   V!# ! A `@B~FATAL RUNTIME ERROR AT LOC. , CALLED FROM LOC. ?AwUހyJ  3CC!&C'pC#  !#S 33 #) 3B0V'd P)K)@)K)P@S 3 3B ) !  B X* !@8X1 #K@8\3 T<3 <+<"C84)K2*KJC3*7 8UW)K2&(!Z\@\22[X8+X82!\J @2J2X83&X83C C*KJ)0K!)07]K2W0X9 Ɛ8X 9P@ @!80" @ d?W65*Z"*:X8:2! H`:Y:2` Y8 ` =CKS8Z9(J+J@Z*J8H`DEMO.OL(a  :0 92 %310.. :4- 4 *73 13++0 #)'&00MEGADEMO ,%$0# !     (  ( AROT-TRANS-SCALE ,%09% ( ZBOUNCING MEGABURSTS ,%0P ( nAIRPLANE ,%0i# ( DESIGN ,%0}- ( SHAPES ,%0- ( WINDTUNNEL ,%0 ( LOGIC DIAGRAM ,%0 ( DRAW ,%0  # '&00 (  ( GRID ROUTINES ,%0 (  CHARACTERS ,%0 ( !SCROLLING ,%0 ( 6GLIDESLOPE ,%00 ( ISPRINGS ,%0E- ( \US MAP ,%0X- ( qPAGE LAYOUT ,%0k ( LOGO ,%0 40 5q # 0        tC   D+   tC  ' D+       D' G :0 *@C2BdC;`BC  2AC8@C A@J     C K S C C C C C 9 % ) $E $E $E $E * % 0 1 ) # '~x % 4 1 #LINE ,} ) #DASH , ) #BLINK , #CLEAR , #ERASE ,  #EXIT , # # # # # # # # # #L0 ,K #`15 ,^ 4 C 5q       # o   D@#+Ր@ o ##PC  PC#C  5q     q # o   ~ D@   o  tC   o  t+#+Ր@ *o # #PC    # Ր@SK# C + l Ki0 @ SՐ@ 3{o h'ɅP+C )[ $ #P ##P # )[ 5q # o C K S )[ $ # $ # )[oP+C )[ $ #P ##P! # )[# 3o ,#PCPCI#C @o 0 4 ;@ 5q# l[     *7 )[ $    # 4 0 )[ *7o :0 *BxBC!d 2 C CC: A`C9CC?C"`C%C(C+C.C2C5  A@Cp~pCZBBA  1  &'*,-01467:;>@AKLOQRUVY[\_`cef  ()+./23589<='F?BCMNPSTWXZ]^abdgh "# !$%-.DGH78EEEABFIJRSilm\]jjjfgkno #$pstEHIquvjmnrrrtuy{|rwz}~|} &'()0123:;<=KLMNUVWX_`ab$ Oiiii6^^^^iiii#6^^^^i7iKi_isA6i^B^K^_^kUWiiii6^^^^iiii6 ^^^^ i'i;iOic16Y^2^;^O^[EGiwiii6^^^^iiii6^^^^ii+i?iS!6I^"^+^?^K57&&&N NsNN NNU }~21; 6@0 666h666X666HTD4&&&| 5 4 9"r %""q"p"n"n 4"p 9" f!$" )$PC{#C "y f".$" $ f"$"z $ $E ""p"pV *"m f!$"z )$ $E"k"i"p"p"pPC#C "x f" $" $ f" $"z $ $E ""p"p $E"g"e"p"p"p f!$"v )$PC#C "w f"$" $ f˱"$"z $ $E ""p"p *"m ) $E"g"c"p"p"p $E"k"g""p"p $E"g"a""p"p $E"a"g""p"p $E"g"k""p"p $E"g"_"p"p"p *"m f!$" )$ $E"g"g"p"p"p *"m f!$"z )$ $E"g"g"p"p"p *"m f!$"v ))$ $E"g"g"p"p"p *"mPC#C "t "^K f!%"$ /&"p#G $E"g"e"p"p"p $E"g"\""p"p $E"a"e"p"p"pr *"mPC#C "t "^K f!%"z$ /&"p#G $E"e"g"p"p"p $E"\"g""p"p $E"e"a"p"p"p *Vs"mPC#C "t "^K f!%"v$ /&"p#G $E"e"g"p"p"p $E"\"g""p"p $E"e"k"p"p"p *"m %"z"["p"\"\ 1"z"Y"Y"p 0""p *7"z 7 PCr#C "~ f!$" $ f!$"z $ # "X"p"p7 f"2$" f!%$ '%"=PC#C "} "W+ k "VK $  #"T"X"p"p '"v #"R"P"X"p"p '"PC7#C "| f!$" $ f!$"z "O/ lK "O+ kK $ f!$"z $   # "X"p"p f!$ /%"p#G f!$ ' "zC '$"p f!$ '$" f!$"v 'C f!$ 'o$" /$"p# "NC '"p f!$ 'o$" #"L"L"X"p"pDEXIT ,"K"v"pA"N 4 )["z *7" "  ș  "a tmq "p  f!$" $$ $E"g"p"p"p f!$"z $$ $E"g"p"p"p f!$"v $$  $ $E"g$"p"p"p 5q "J#P "g "gU  "\ "H   "\ "H   "Fې DC  "F D+!    o "i D     o "i t U    "D D * }  "B D 7U "pCPC {#C "} "W+ k "VK $    o "@ D b? y f"+$ 'C f"$ f"%P/G  >U  "> o "@ D U f"$"= f"%"=P/G f"$"< f"%"

"6J^r&:tNbvX<(4I3*>"6J^r&:NbvpX(*>  C K S C C 9` % *7 ) * %i % *7 0 0 ) ( $E $E $E $E ( * ) ( $E $E $E ( * ) ( $E ( $E ( * 4 *7 1 C#C ܍#  k ێK   # # C#C Ӎ#  k ҎK   # # C #C  # # # # # 0.0 , #- 4.00 ,* #B 8.00 ,? #W12.00 ,T g#l16.00 ,i #20.00 ,~ #-.008 , #-.006 , #-.004 , #-.002 , # 0.0 , # .002 , # .004 , #) .006 ,& #> .008 ,; #S .010 ,P # h .012 ,ePC#C P+K# +K# +K#  k K fX  #PC fX#PC#  k'K   # ' C# C nj+K fX  #+PC fX#PC#  k'K   # 't #+BETA DERIVATIVES ," #HEFFECT ON BETA RANGE ,= #cFLAPS UP, TA.IL ON ,Z # CALC: D. SMITH 4/21/75 ,u # CHECK: B. JONES , # APA: , # APA: , # # # # # # # # # # # # # # # # # #Ճ # # #~ # REVISED ,} # DATE ,| #zxALPHA-W ,w #usA , #uqS ,s #uoM , #umY , #ukC , #ig1WIND TUNNEL DATA ,( 4 5q f# S= :0 [bc*BCC$C#`C" C CC0CPC CC`C+ CB%B9BMBaB<BPBdB<=>C;C6C1C,C'C"CCCBBC( C# C C C C BC3CBC<BCC6`BxC>Bx( Bo(B(A@dA   "   9" % *7 ) * %! 0 4 # # # # # # #   WV ,V! )# jo ,i! #  ~(t) ,| #  V ,! # i ,! # (t) , # C# C     w       & ( #(& # CS# C     w     w         & ( #(& # # # # # #! #! # # # # #! # # # # # #5 # # CP# ڦC ٍ   # CN# ԦC Ր@       ~      & ( #(&   CPC#OC ʍ#+ kK &      & ( #(&     & ( #(&     & ( #(&     & ( #(&     & ( #(&_ y C# ڦC ɍPK + lK &      & #&    & n(&#CPC#C+ "#  k#Ր@ < "#  k#Ր@ O "#  k#Ր@ b |c"#  k#Ր@ u "#  k#Ր@  "#  k#Ր@  " + lK & "       ~ z       & ( #(&   & #&    & n(&#CPC#C+ "#  k#Ր@  "#  k#Ր@ + "#  k#Ր@ > "#  k#Ր@ Q "#  k#Ր@ d) "#  k#Ր@ w " + lK & "       ~ z       & ( #(& C# ڦC ɍPK + lK &  $    & #&Q     & n(&#CPC#C+ "#  k#Ր@  "#  k#Ր@ ' "#  k#Ր@ : "#  k#Ր@ M "#  k#Ր@ ` "r#  k#Ր@ s " + lK & "        ~ z      & ( #(&   & #&     & n(&#CPC#C+ "# LF k#Ր@  "#  k#Ր@  "#  k#Ր@  "#  k#Ր@ ) "#  k#Ր@ < "#  k#Ր@ O " + lK & "   N     ~ z      & ( #(& 4 5q % #  :0 *C>,$BAA B6>CA 2Cm`CGBdCd`@2G"`m`C–BApAPBGBPC,`BB ~(CI CICC0 CC0CC2Ct@CK CZC"`C(AA2C  S SIDES FIGURES 1 5 10 0 50 100 0 30 60 90 120 150 180 210 240 270 300 330 360 V t s PC 91r qC#CPPC % qqoo #mmlqq j+ kPK f)! ,kjq!xP+C f h # dlqq c+ kPK f"! ,kjq!w #a_lqqPC#C ^ $E\Zqqq $EXVkqqj %Uqqoo #mmlqqROTATION ,kjqx #hdlqq ,kjqT #a_lqqPC<#C S $EQZqqq $EXVlqq# 0Pq %Oqqoo 4 0Uq 4q #mMlqqbEX6IT ,kjq_j #aKqqq #aIkqq #aGqqq #MGkqq #MIqqq #MKkqq #E_lqq %jDqoo 5q# q 5q#P  m DC  M D+A  _ DC  B t+C  a tC  M D++ h y  @ \ #PC PS *7j #X>=qqPCm#C+ P    P  ~   v <   w <R  #kqq9 0yq 0Py  M :    0Pq 0Uy 5q# q 5q#P  m DC  M D+  _ DC  B t+C  %La tC  M D++ 0Uq 0Oq *7j 9   9 PC#C+ P  ~        <   v    w   #=qqPC#C+ P  ~ P        v    w   #kqqY #m7lqqNEXT ,kjqj #mMlqqEXIT ,kjqj 5q# q 5q =#P  m DC  M D+ 0jq %jDqoo 0Oy 0yyPC :0 2%@@,3*CdB$dBdCm`CZg T`yCpC >BC `p ~Br`C]A1'A2C@'J  l As0v@t 64Ahfu16Ds~EV]r^M=2#p_N?`|%Cg6Xt$5CUUEW{C2r=z@ e6D_85|CCCfe&o?Rr%{9k3\\;  ,,  >a`#5pBezH(`zYBBTX{AA#za_Ydqk""L[ZvS07%BO V\dXK 4&(<$8AUt$/7?GQRQUTSSMIFrQyZ3BQ[_]K*)?~~~~~~~~~~~0v2D FamXv\\?NN@Mb6  A&Z5p&&;Nq79Gm; o; ,s?G;u@5[`Zs "   t * o C  B #C 9 % % % %PC#C  1PCPC#C  *7 f'C#C#C+Ր@ f"   f   f ##PC *7PCR#C+ f /#G f' C ' f /#G #PCX#C  #G f /m#G # f /#G123/567 ,|    ~  # f /#G123/567 , # f /#GIDENT ( ) , fV /#G f' C ' # f /#G12345 ALT 321 , # f /#G;HDNG 123 ,6 f /#G )[PC#C+ f 0( f ' f 0( f 'Z )[ #  PC#C э   ~    v     w    # #TARGET LIST AND IDENT SELECT , # SET MAP / ERASE MAP , #*( ) WEATHER ( ) , #K( ) AIRWAYS ( ) ,< #l( ) . CONTOUR ( ) ,] #EXIT ,~ *7 4 )[ 4 XZ Z*..g=******BKAC$X.\C8@C9@C-C@C&BBB}C%Bd A@ A2C .*i   p       9 % % % 0 0 *7 ) * *7 )   P C   PC + kK    f   v   f   w    f  f  # …P [  1 l dP    d [ xP     [  [ Ր@   [ f [ f [ #  [ x [   [ [P [ f [ f :[ #  [ x~j * *7ɅP #    f  / #G / ' PC f G 4 4  P On O O   5qZXW  W l@    f '  f  G; :0 22*d29 C@A2CdA 2 #C#C7 *")*/)&)&  ) ׏/O))B"/)) ) /OB 7"*** )$)!C"** * *))C3) ' I#B#Bb   ddBdBdBBCpCp d7 < Y 9>f %eXWYY %dXWYY 4 cC UPC#C+PC d+ kK $   d  ~  f $d  v S $ f  $e  w S $ f0$e f %ee %$ f)$e f %de %$ f"$e W $ dCPK d+ lKPC#C++KPC#C++3K#Ր@ F#K f0$ f %e %$ f)$ f %d %$ f"$ c $#PC3#{# c WK#PC f0$ f %e %$ f)$ f %d %$ f"$ W $#PC3S." f0$ W $ f)$ W $ f"$ W $ 4W Qd    %eXWYY 1eOOW 0eW i1*#W 0dW 0ee 5q# W/  M  M "R  K DC  K D+F H  ~ I ~ r G    G "Y   F    F "      %dXWYY 0dW 1dOOW i1*#W 0eW 0de 5q# W  M  M "  K DC  K D+G H  ~ I ~ r D    D "   S    S "   :0  %T,,(,3,@*  ddACvB=qÀ@BdA2CAO  & c  c  c  c | f, '  k'  K AZ f, ' f, f- '/#[  !"#$%&'()*+  >  2{  ) >  ? 2{ [@ @   %K    1w#B#B#B#B'B')x)uMs9p0()d#B1_ a     !k      !s1E E   !k !e   !sWG !g1. /  v !} !} !  w ! ! ! n n n n ! ) 1 ! )1  !k!}!Y 8) %JM%JM)%M%M n ![)V@) !k  !q  !w !m  !s  !y !9@+ !5@* )(*0+H,P-I(Q( ,(- T( *(+ ,(   ,(- Q )   !  *(+0) !)@,H- BJBJBJB J B J BJ! BJBJ BJAAqIqQqYq L ;)l1$ G 6)g1  B 1 8(1P# NB? YJ       8Y5Q5)/  ),  )'1f  &Y40(#B+J#B#B#B#B%Y$0(#B#B#B#B # B # B Y1K9"1J9Y1K91JP1 *(,@,H* +(-@-H+Y9PP9CK8[!C 9;= !e=Y0*8,Q0+8-Q99919)9!YA/'O7KK 97K 9!ӂ'O!A ,! ! -!G ,! ! -!M -! ! ,!S -! ! ,pU  e !1"2#3$4%5&6'7(8 )9 *: +; ,< -=.>/? 0@       !%)-"&*.#'+/$(,0!"#$%&'()*+,-./0159=26:>37;?48<@123456789:;<=>?@#4'8 +< /@ %1&2'3(4.= *9&5"1,@+?*>)=   !&+0$'*-16;@47:=+@*= '4&1BdB2BD^BP# h C K S C C C C C 9 % ) # * ) * ) $E $E   $E  $E   $E $E * )n $E $E $E $E $E $E * ) #(YOUR MOVE ,# * ) #KI WIN - NICE TRY ,B * ) #nYOU WIN - LUCKY? ,e * % 1 0PC#C PC#C  ^#PC b+ kK ' ` PC#C PC ' \  #PC ' \  #   Z  ' #' PC8#C PC ' Z  #   \   \  ' ) #)'#PB#PC + kKPC#C PC~#C  +PK 1  #  # ZOPC#C  b  kK ' #^` `  ' #^'  Z ^  #` `  ' #'  \    \  0 `  #   ' #' #*** QUBIC *** ,  PC#C  # #   ' #'   ' #' ## Fi   ' #'|YOU ,z   ' #'COMPUTER ,   ' #'FIRST ,   4 4 % 1 )% 'PC#C  f' GPC 5q#          ~ D*   o  t;N   o  tL )[ $ ' 5q6E# m[       1 # ҍ[ f' ' [ f' PG 1  )[ # ' )[ $ ' 5q#          #Z\F@ 1 #P  $! #"$ )[ )! ##PC " $ '  f' GN#C+KJ#C+K )[ $ ' j'#CPC]#C  f' 1'#PC )[ #PC#C Ѝ '&` 5q#        *00@@* C<B2dC BBGYA0B>B"BdC=@B  C CAB--AB(B(BA@0@ #@/#@0@1@2D/ .@3(D@5P@40@ 4* :X9 E@7 5@6@:@;06 B@8 4* :8.;(;H;8 : ;(B (6 5L/ ,3(C (6H20A* :(9H9 6(B@67$3 9(1C@1 =@? 4D?? 4(D 43 2(5D/ 0?8> B <  @<(F0="D0 "` @<PPPPPPPPPX 14=@&'*+2' d  4' !5 ? 'PC !3+ lK  n  !3  ~ #PdC !2+ lK !2+ k#PC  \ !1 \ ~  b  `   ^  Z !1 Z ~ !0G  ` !5  ~ t b  ~  b+ kK   ~ \  n  !/  ~ D  ^  \  !5  ~ t  Z  n   !/  ~ D! !3+ kK !2    !4    2,,X88,,8L8&DL82UAL AAL TWA EAL PSA GTA BNF JAL DLT HAW/134/902/167/543/328/820/131/569/742/5080 1 2 3 4 5 6 7 8 9 DC8 L1011 B747 B727 AHB720 DC10 180 195 203 245 253 278 297 332 348 350?5?}A2C3 d" d& d* B#C oK } { } } w f  } v  5q " f  d   d # c  a DC  a D+  _ Dj  ] D  [ D  Y D  W t, VC  T D= SC  Q DJPC  O tZ 0#n  M DIj 0#cPC#C+ f7$ 7  o K tC f8$ 8  o K t+# n  I K PC#C+ f7n$ 7  f7V$ 7  f7S$' f kK 7  f"f7k$ 7 f7$ 7 f7$ 7  G   E  o C DC  o C D+#A % ' % % ' ' A tA} f7$'PQ f7n$ 0(7 f7l$ '7c f7$PG# { c  f7$' c f7$ cG f 7$PG A @+ lK k+ kK j87 S+ lPK A @+ lK k+ kK j87 S+ lPK A ?+ lK >+ kK j87 S0+ lPK A @+ lK k+ kK j87 S+ lPK f 7$#G f7=$ 0(7 f7) ,<Vc7V f7* ,<Vc7k f7>$ 0(7 f7) ,<Vc7V f7* ,<Vc7k f7;$ 0(7^ NEW ( ) ,<VcXl f7:$ 0(7 f7+ ,<Vc7= ALT ,<Vc= f7, ,<Vc7V f7n$ 7  - f7S$ 7  / c - ~ D 81 c / ~ t 1 1 t/- 1 1 v >\ 1 w >  f7S$ 0(7 f7$ 7% f7$ 7' cC+ PC #%'7cc #%'c3c  % ~ ' 7 9 #97<3c %  '  7 9 #97<3c  % ܷ ' ~ 7 9 #97<3c #%'<3c % ~  ' ~ 7 9 #97<3c #%'<3c % 5 7 #7'7cc f7n$ 0(7 f7S$ '7c#  f7V$ 0(7 f7l$ '7c f 7$'P f7;$ 0(7 ( ) ,<Vcl f 7$ cG f7;$ 0(7#IDENT ( ) ,<Vcl f7V$ 0(7 f7V$' SC '7c c 1 ~ tX 3 1 1 1 0 2 ~ # /Ր@ t /C .+ lK# . k#C l+ lK# . k#C# l k#PC3S#C f7o$ 0(7HDNG ,<Vc= f74 ,<Vc7n f75 ,<Vc7n f76 ,<Vc7n ugTI  4 $$    XZ Z   dhB9LAdBA!T8E"UCpC%C@BBCBBpBWB>C C#C%BJC6C   . ;    97b %a``^^ \ `C `K /ZX` g %c``VV #TRQ``(MEGATEK ,PO`$O #MKQ``CQuality Graphics ,PJ`:I #GEQ``aWHERE VALUE COMES FIRSNT ,PJ`UD #BBQ``vEXIT ,PA`sJ 4 %A@`^^ %J``^^ 0A` 0J`PCPK /ZX` g *7A )[` `CPK /ZX` g 4` aC/#C J 5q ?# `  = DC  = D+1#PC3 J aC 0 ` 0c 5q#P- :0 9*C*Cj@d)pCPPC]A2C@A( dg<n v uC#C t  r  p  r #PC fy  v  #PC fz  w  w fyx fzx #uuu uC zCe#C oC oPKPC in# u nC im# u mCPCc#C++PK# x k#K3P2# x kK#+ l#K#Ca#+C+Ր@PC ix#PC fy fz #x |6 AA A2C   % d  d d f, G f, G f, G f, G 9 C %  C ) $E $E $E $E $E * % # # # # # #NCC ISSUE ,  PC C#C  C+ ȅPC#   K#+ kK ,  9#+ kK ,  ~  #MEGAZETTE , #FOUNDED 1977 , # # #;EXIT ,8 '  #YPARAGRAPH: 1 ,R '  #r2 ,p '  #3 , '  #4 , '  #SET PIC: 1 , '  #2 ,? '  #3 , '  # 4 ,  '  LAYDATA K Ck#C  %  - f,'CPCi#C+ G] b(STD30) *N* Lf C#C  % f , G f , ), # # # # #tPC#C   0 :4 2%4 4 5q" #    tC   t+   D"   D/e   D<`   DI[   DVV   DUId C   DC   t+| C   DC   t+ C   DC   t+ C *7# f ,# $, )[ 5q"#P 5q" # ˢ $ & 5q"#P 5q" #  ( * #$& #(& #(* #$* #$& 5q"#PTC Ch Ch Ch C 0  5q"#    DC   t+m 1 m :0 *C%Cu0CC@C!C)@C8@C?CG@Co CNCN C]Cf ,CT`Bt& C CW-C\Q@pCdCKdBdA   "<  ` 4 $ 4 0 $ 8t $l 4` $H D ,   l(tt,Ph`|dT|\P x d \ @H L4 p$   t ` x   , < @ hx `   (< t LD0Lhl P$tLxD| 4LDXd| hאp$4tDd4\H<<4TP\pThpl`x<|d|tdHT`t@xX`lH00pTD$ @Xd|(T|lh D,(H$Tp(,Ld||08X$8,HdT4LP0pt @\xtX<( ,4<@44Ld ,t@dLtX\`\D\ `4tLl(DL88  $@Xt,(<Pl p 0H\hXhxD|<, `<(|pt`\8d$dD{`tLt(@ <hp\|tx(\<"+"+ 5q# "+  !  ~ t   ! ! # "+Ր@  *7"- )[".#PC!H f!?".". $? #" ""/T"+o *7"- )[". f!?"."/ $? #"""/"+ f!?".". $? #" ""+"+ 5q# "+!!! !  ~ t!/!  ! ! # "+Ր@!H!PC!v#C "- f!?". $? "-+`<C ? ! " ? #?""+"+!L#PZ\!  f!?"."/ $? #"""/"+ 5q !# "+!!! :0 ! !!!!*C  C 3PB2CC2C% CC@C"`C<C! CCC`C BCC!C5 C8@C;`C> AA`A @` BA@   % d  d  d d 9G %FEDBB 0FD 1F@@D 4D *7F f+I )+ #><;DD@ ,:9D?I *D f+F )+ #><;DDhBELOW GLIDESLOPE ,:9D_8 *D f+9 )+ #><;DDABOVE GLIDESLOPE ,:9D8 *D f+7 )+ #><;IDCRASH CONDITION ,:9D: *D ) $E53DDDPC#C 2 $E50IDD $E.,IDD *D ) $E53DDD $E50IDD $E53DDD *D %I+DBB *7I 1I@@D 0FD 4 #>);DI $E'%IDD #>);DI $E#5IDI #>!;DI $EIDI #>!R;DI $EIDI #>)DDD #:DDPC#C J   y    #         + #+DDD   + #+:DD #>!DDD #!:DDPC#C Jy   y        + #+DDD   + #+:DD #, ;DD$WIND 050 AT 10 ,:9D # ,;DD9TOWER ,:9D6 DC ) f+I '+D D  D ! )# D %PC#C J f+  + f+  + f +  + f +  +f ! # f+J + >  ' f+J f,  , ~ + f+J  w ' ' + f +J f ,  , ~ + f +J ! w f ,J  , ~ #  ! + f +J  + ~ t f +J  +    !  ! D % ~ t15 $# M M D % ~ tO )[F I % $ ' ) f+J ) + ~ Dv f+9 '+D f+J ) + ~ tC f,J  , ~ D+ f+F '+D f+J  + ~ t f+7 '+D f+J  + ~ tb 5q*# D *      @ =@&ff C;`C8@BC C0C?BC+BC2C@BdC B2A2BC B A@  c΀ cҀ X f f  # '؅PC#C ׍ ۍK f +C f  # 'sPC#C ׍ f#PC f  f #PC f     D   INTRODUCTION The M7000 is a system of integrated, Fortran callable subroutinesXwhich enable the Fortran programmer to manipulate and display graphicalimages on the Megatek 7000 Graphic Display System. The MEGRAPHIC 5000uses a subset of the M7000 software. The system is designed to minimizeuser attention to the screen coordinate system and to permit maximumflexibility in defining user coordinate systems for the various imagesdisplayed on the monitor. Bookkeeping for display processor addresseshas also been eliminated.iO The user creates display lists in the 7000 processor undercontrol of the M7000 software, which utilizes a data base located in a labeled common block (S7000). THE PICTURE A "picture" is a display list in the memory of the 7000 processor,and consists of three specific sections: the picture header, the picturecomponents, and the picture trailer. The picture header contains display list commands which set initialpicture rota@tion, translation, scaling, clipping, and special displayfunctions. The first word of the picture header is a jump instructionwhich is used to turn the picture "on" or "off". If thepicture is off, the jump insɯtruction destination address is the firstword of the next picture. If the picture is on, the jump instructiondestination address is the next word of the header. A set of Fortrancallable subroutines is provided to permit tPhe picture to be rotated,translated, etc. These "P" routines (names starting with a"P") all modify the picture header.  !     " 9v % 0 ): $E ( $E ( $E *  % *7 #zFAST ,w #STOP , (U # # # % - *7 0 4 :4 4: ;@~   P  P  P  fl  *}  Ր@ | " "  32 3 3 "' 5q><; } ; Pg  < ~ t^4 <Պ  " :0 o(((x*u0Psr`C]ÀBdBA!(     MEGATEK'S HARDWARE CHARACTER GENERATOR: PROGRAMMABLE CHARACTER SIZES ddddddddCKC.Cpe0P@L0CdCdCdCdCdCdCdCdK.pBeCC0PC@CL0K.pBeCC0PC@CL0ddddddddCKC.Cpe0P@L0CdCdCdCdCdCdCdCd  9 % ) *ՅPC#C ؍ ֍K % #PC 0PC#C {؍ *7 )[#PC + kKPK f#PC f # f ,΀# ͦC f# ͦC f # f ,̀# ʦC f# ʦC f # f ,ր f ,ր# ئC f# ئC f # f ,؀ f ,؀# ֦C f# ֦C f # f ,ʀ f , qʀ# ̦C f# ̦C f # f ,̀ f ,̀ f ,̀# ΦC f# ΦC f # f ,ڀ f ,ڀ f% ,ڀ f ,ڀ#PՐ@  4 4 5q # Ս   DC   D+ 5q #P 5q # Սb#PC 0 0 ܅PC#C ؍PC2#C Í 5q  #0   DC   D+0 5q # ՍDk 5q #PUD 5q #|R ՍkU#Pv#PC 0 0  0 0 :0 W@ @ *,Cv (&A  d  d  d d f RPG f P OG f O NG f Q MG fR K fP K fO I fQ G fR E fP C fO A fQ ? f R =? f P ; f O 9 f Q 7 96 %P55== ) *5 %R55== 0P5 4 4PC#C Q f  f  f   f 'C #555  3 2r  #255  0   3   ! #!255  0   #255 #255  .   ,   ! #!+55PMEGATEK STANDARD CHARACTER SET ,55@*  .    (   ! #!555  &   (   ! #!255  $   "   ! #!+55ABCDEFGHIJKLMNOPQRSTUVWXYZ ,55!  $      ! #!+55abcdefg ,55Mhijklmno ,55pqrstuvw ,55xyz ,55O        ! #!+55<0123456789 ,556        ! #!+55p!"#$%&'()*+-,./:;<>=?@\[]^_ ,55b     $   ! #!+55PLUS OPTIONAL USER- ,55     .   ! #!+55DEFINEABLE SYMBOL SET ,55 5qa  # 5 :0  *BBBB5 BC@BC BFC-CCBC.C@ A@A0A AB<XKC`>vZ    VcIc  9Q| %yxxvv ) *x %{xxvv 0yx 4 x 2 z 8 z > tD rK q R x X 28>X@DKJRP 2 p 8 x > vD nK q RP X 28>XDKCR %qxxvvP    m t #kkxxx  g i e    r   c  b  ~ D bn  ~ D  ` ^  ` ^ # ]xx #[YXxxIb ,]yxq 4 5q+ W + x=$ :0 E  L  S*+C.B*A@(@L@AdD'C>A  c    /    n# /    pK            m  t P         m  ~  t#2  P       C 6@ yE     CS#  k#P7CK#+ krK / k#K  m   C'+ kP7CK + k#K   #m ,yE  P/CS#+ k K  m  C'+ k K   #m  P/CS#+ kK / k#8K  m  C'+ kP7CK + k#K   #m /'P'P #P P P P #   P  '/ kK   n# P7K#  k K  Zm'  k K   #m  P/CS#+ kK / k#K  m  C'+ kP7CK + k#K   #m)P/C#  kK / k#K  m'  kP7CK + k#K   #m9 ,  Pu P P    P  y   n# P7K#  k K  m'  k K   #m  P/CS#+ kK / k#K  m  C'+ kP7CKύ + k#K   #m {~   ( h( x@AC       9 % ) * % 0 4 `  P  y   ͍P  w   ̍      n #  #ӅP Cu C C    ~ C w  A   ~ C v  T  [  k  [ #AT[( # # # # #100 , #200 , #300 , #40G0 , #TEST ANT. G-47 , # H-PLANE RESPONSE ,  #, 28 MHz ,( #ӅP W} W W  W   U  U v 3  U v  A U w  T #ATA 4 5qAT[  [ Ӎ :0 *APBCKC7CGCWyCq CUC8C }C} A33BAA A2CC  LAYDATA u GDallas--Prospective purchasers of interactive graphics systems cheered today at the exhibition of MEGATEK's Series 5000 and new Series 7000 sys- tems. The MEGATEK offerings provide high performance at a most reasonable cost. The MEGRAPHIC 5000 offers comp_%lete stand-alone and terminal refresh vector graphics systems based on a 16-bit minicomputer. Hardware translation, blinking and dashed lines are standard, as is 12- bit resolution. A bold design tour de force, the MEGRAPHIC 7000 features internal RAM memwory and micro- processor to make it CPU- independent. Powerful Fortran routines make its many features convenient for the novice, versatile for the experienced. The mood among MEGATEK's major competitors was one of gloom. Their offerings now seem as holdovers from an older generation of graphics concepts. The sophisticated new MEGATEK systems with their amazingly low price tags seem to be assured of taking the graphics industry by storm.