DIR

VARNAME P35
::
 ABUFF
 # 2A
 # 11
 # 57
 # 30
 GROB!ZERODRP
 # 1B
 # 29
 MAKEGROB
 INVGROB
 ABUFF
 # 2D
 # 14
 GROB!
 # 1C
 # 2A
 MAKEGROB
 INVGROB
 ABUFF
 # 2B
 # 12
 GROB!
 ABUFF
 # 2C
 # 13
 # 54
 # 2D
 GROB!ZERODRP
 GROB 64 F000081000000042000005000455454C42AAA44C9AA4838A49F08A0C0182033280C2520022320812520402520204010008F0
 ABUFF
 # 32
 # 15
 GROB!
 $ "PRESENTA\1F"
 $>grob
 ABUFF
 # 2D
 # 26
 GROB!
;

VARNAME P34
::
 ERRSET
 ::
  '
  ID DATOS
  SAFE@
  ITE
  ::
   TYPELIST?
   ?SKIP
   ERRJMP
  ;
  ERRJMP
  ID DATOS
  ONE
  NTHCOMPDROP
  DUPTYPECSTR?
  ?SKIP
  ::
   DROP
   NULL$
   ID DATOS
   SWAP
   >HCOMP
   '
   ID DATOS
   SAFESTO
  ;
 ;
 ERRTRAP
 ::
  $ "LISTA DATOS?"
  ERRJMP
 ;
;

VARNAME P33
::
 ERRSET
 ::
  ID DATOS
  TWO
  NTHCOMPDROP
  INNERCOMP
  FOUR
  #=
  ITE
  ::
   DUPTYPEREAL?
   ?SKIP
   ERRJMP
   4UNROLL
   FOUR
   ONE
   DO
   INDEX@
   ROLL
   DUP
   %FP
   %0<>
   IT
   ERRJMP
   COERCE
   LOOP
  ;
  ERRJMP
 ;
 ERRTRAP
 ::
  $ "DAT. GENERAL."
  ERRJMP
 ;
;

VARNAME P32
::
 ERRSET
 ::
  ID DATOS
  DUP
  SIX
  NTHCOMPDROP
  LENCOMP
  SWAP
  SEVEN
  NTHCOMPDROP
  LENCOMP
  #+
  LAM Nhi
  #2*
  #<>case
  ERRJMP
 ;
 ERRTRAP
 ::
  $ "HIPOTESIS"
  ERRJMP
 ;
;

VARNAME P31
CODE
	GOSBVL	=SAVPTR
	GOSBVL	=DispOn
	GOSBVL	=AllowIntr
	GOVLNG	=GETPTRLOOP
ENDCODE

VARNAME P30
::
 ERRSET
 ::
  ID DATOS
  THREE
  NTHCOMPDROP
  INNERCOMP
  OVER
  MDIMSDROP
  THREE{}N
  ONE
  LAM Nnu
  TWO
  THREE{}N
  EQUAL
  ?SKIP
  ERRJMP
  DUP
  ROMPTR C3 14
  %4
  %+
  COERCE
  FOUR
  DO
  PTR 1D0AB
  INCOMPDROP
  COERCE
  {}N
  ROMPTR E8 16
  DUP
  CARCOMP
  INDEX@
  UNROLL
  LAM Nnu
  NTHCOMPDROP
  INDEX@
  UNROLL
  LOOP
  % 130
  6PICK
  6PICK
  2DUP
  %=
  IT
  ::
   DUP
   7PICK
   7PICK
   %-
   %10
   %/
   %+
   ROTDROPSWAP
  ;
  %-
  %/
  % 51
  5PICK
  5PICK
  2DUP
  %=
  IT
  ::
   DUP
   TEN
   PICK
   TEN
   PICK
   %-
   %10
   %/
   %+
   ROTDROPSWAP
  ;
  %-
  %/
  ID P4
  1LAMBIND
  2DUP
  1GETLAM
  %*
  %>
  ITE
  ::
   SWAPDROP
   DUP
   1GETLAM
   %*
   SWAP
  ;
  ::
   DROP
   DUP
   1GETLAM
   %/
  ;
  ABND
  5ROLL
  DROP
 ;
 ERRTRAP
 ::
  $ "COORDENADAS"
  ERRJMP
 ;
;

VARNAME P29
::
 ERRSET
 ::
  ID DATOS
  FOUR
  NTHCOMPDROP
  DUP
  LENCOMP
  OVER
  >R
  BEGIN
  RSWAP
  ticR
  ITE
  ::
   DUPLENCOMP
   #2<>
   IT
   ERRJMP
   INCOMPDROP
   TYPEREAL?
   SWAP
   TYPEREAL?
   AND
   ?SKIP
   ERRJMP
   FALSE
  ;
  TRUE
  DUP
  ?SKIP
  RSWAP
  UNTIL
 ;
 ERRTRAP
 ::
  $ "AREAS"
  ERRJMP
 ;
;

VARNAME P28
::
 ERRSET
 ::
  ID DATOS
  FIVE
  NTHCOMPDROP
  INNERCOMP
  OVER
  MDIMS
  ?SKIP
  ERRJMP
  THREE{}N
  ONE
  LAM Nba
  THREE
  THREE{}N
  EQUAL
  ?SKIP
  ERRJMP
 ;
 ERRTRAP
 ::
  $ "DEF. BARRAS"
  ERRJMP
 ;
;

VARNAME P27
::
 ZEROZERO
 ROT
 ZEROZERO
 TWENTYTWO
 Blank$
 ID P24
 ID P24
;

VARNAME P26
::
 ZERO
 SIX
 ROT
 ZERO
 SIX
 SIXTEEN
 Blank$
 ID P24
 ID P24
;

VARNAME P25
::
 undo
 LAM flags
 DOSTOSYSF
 LAM menu
 InitMenu%
 LAM dib?
 SEVEN
 TestUserFlag
 AND
 IT
 RECLAIMDISP
 DispMenu.1
 BEGIN
 '
 LAM dib?
 @LAM
 ITE
 ::
  DROP
  ABND
 ;
 SKIP
 AGAIN
;

VARNAME P24
::
 $>grob
 XYGROBDISP
;

VARNAME P23
::
 LAM dib?
 ?SKIP
 ID P31
 ERROR@
 DUP
 #EXITERR
 #<>
 ITE
 ::
  ONE
  OVER#=case
  $ "FALTA MEMORIA"
  ZERO
  OVER#=case
  $ "PRDA. USUARIO"
  # 304
  OVER#=case
  $ "S. INDETERM."
  # 305
  OVER#=case
  $ "S. INCOMPAT."
  $ "N\B0 ERROR "
  SWAP
  #>$
  &$
 ;
 DROP
 $ "ERROR\n"
 !insert$
 FIFTEEN
 SIX
 ROMPTR B0 85
 ROMPTR B1 2
 ERRBEEP
 ROMPTR B1 0
 DEPTH
 NDROP
 ID P25
 PTR 10FD6
;

VARNAME P22
::
 PTR 37BCB
 INDEX@
 PULLREALEL
 SWAP
 LOOP
 DROP
;

VARNAME P21
::
 #2*
 DUPUNROT
 PULLREALEL
 SWAPROT
 #1-
 PULLREALEL
 UNROTDROP
;

VARNAME P20
::
 LAM Xmin
 %-
 LAM escx
 %*
 COERCE
 LAM A
 #+
;

VARNAME P19
::
 % 63
 SWAP
 LAM Zmin
 %-
 LAM escz
 %*
 %-
 COERCE
;

VARNAME P18
::
 DUPUNROT
 PULLREALEL
;

VARNAME P17
::
 ROT
 PUTREALEL
;

VARNAME P16
::
 % 130
 LAM Xmax
 LAM Xmin
 %-
 LAM escx
 %*
 2DUP
 %>
 ITE
 ::
  %-
  %2
  %/
 ;
 ::
  2DROP
  %0
 ;
 COERCE
 '
 LAM A
 STO
 LAM Mtip
 ROMPTR C3 12
 DROP
 LAM Nec
 DUP
 TWO{}N
 %0
 MAKEARRY
 ROMPTR C3 12
 DROP
 LAM dib?
 IT
 ::
  CLEARVDISP
  SEVEN
  SetUserFlag
  $ "FORMO MATRIZ RIGIDEZ"
  ID P27
  LAM tit
  DUPLEN$
  SEVENTEEN
  #>
  IT
  ::
   ONE
   SIXTEEN
   SUB$
   $ "\1F"
   !append$
  ;
  SIXTYFOUR
  SIX
  ROT
  ID P24
 ;
 LAM Nba
 #1+_ONE_DO
 LAM Nec
 LAM Nba
 #+
 INDEX@#-
 #1+
 ROLL
 ID P22
 COERCE2
 ROT
 COERCE
 {
  LAM J
  LAM ntip
  LAM I
 }
 BIND
 ERRSET
 ::
  LAM dib?
  IT
  ::
   ID P11
   ID P26
  ;
  LAM ntip
  LAM Nbt
  #>
  LAM I
  LAM Nnu
  #>
  OR
  LAM J
  LAM Nnu
  #>
  OR
  LAM I
  LAM J
  2DUP#=
  UNROT
  #>
  OR
  OR
  IT
  ERRJMP
  LAM Mco
  LAM I
  ID P21
  LAM Mco
  LAM J
  ID P21
  FOUR
  NDUP
  ID P10
  LAM Area
  LAM ntip
  NTHELCOMP
  DROP
  INCOMPDROP
  FOUR
  NDUP
  '
  NULLLAM
  THIRTEEN
  NDUPN
  DOBIND
  LAM dib?
  IT
  ::
   13GETLAM
   ID P20
   12GETLAM
   ID P19
   11GETLAM
   ID P20
   10GETLAM
   ID P19
   FOUR
   NDUP
   4PICK
   3PICK
   #>
   IT
   2SWAP
   LINEON
   PIXOFF
   PIXOFF
  ;
  5GETLAM
  LAM E
  %*
  8GETLAM
  %/
  4PUTLAM
  %2
  LAM E
  %*
  6GETLAM
  %*
  8GETLAM
  %/
  DUP
  3PUTLAM
  %3
  %*
  8GETLAM
  %/
  DUP
  2PUTLAM
  %2
  %*
  8GETLAM
  %/
  1PUTLAM
  4GETLAM
  9GETLAM
  PTR 1B47B
  %*
  1GETLAM
  7GETLAM
  PTR 1B47B
  %*
  %+
  4GETLAM
  1GETLAM
  %-
  9GETLAM
  7GETLAM
  %*
  %*
  2GETLAM
  7GETLAM
  %*
  4GETLAM
  7GETLAM
  PTR 1B47B
  %*
  1GETLAM
  9GETLAM
  PTR 1B47B
  %*
  %+
  2GETLAM
  9GETLAM
  %*
  3GETLAM
  LAM I
  #1-
  THREE
  #*
  #1+DUP
  #1+DUP
  #1+
  LAM J
  #1-
  THREE
  #*
  #1+DUP
  #1+DUP
  #1+
  ABND
  '
  NULLLAM
  TWELVE
  NDUPN
  DOBIND
  LAM Nec
  6GETLAM
  #-
  #1+
  ROLL
  6GETLAM
  ID P18
  12GETLAM
  %+
  ID P17
  5GETLAM
  ID P18
  11GETLAM
  %+
  ID P17
  4GETLAM
  ID P18
  10GETLAM
  %CHS
  %+
  ID P17
  12GETLAM
  %CHS
  3GETLAM
  PUTREALEL
  11GETLAM
  %CHS
  2GETLAM
  PUTREALEL
  10GETLAM
  %CHS
  1GETLAM
  PUTREALEL
  LAM Nec
  6GETLAM
  #-
  #1+
  UNROLL
  LAM Nec
  5GETLAM
  #-
  #1+
  ROLL
  6GETLAM
  ID P18
  11GETLAM
  %+
  ID P17
  5GETLAM
  ID P18
  9GETLAM
  %+
  ID P17
  4GETLAM
  ID P18
  8GETLAM
  %+
  ID P17
  11GETLAM
  %CHS
  3GETLAM
  PUTREALEL
  9GETLAM
  %CHS
  2GETLAM
  PUTREALEL
  8GETLAM
  1GETLAM
  PUTREALEL
  LAM Nec
  5GETLAM
  #-
  #1+
  UNROLL
  LAM Nec
  4GETLAM
  #-
  #1+
  ROLL
  6GETLAM
  ID P18
  10GETLAM
  %CHS
  %+
  ID P17
  5GETLAM
  ID P18
  8GETLAM
  %+
  ID P17
  4GETLAM
  ID P18
  7GETLAM
  %2
  %*
  %+
  ID P17
  10GETLAM
  3GETLAM
  PUTREALEL
  8GETLAM
  %CHS
  2GETLAM
  PUTREALEL
  7GETLAM
  1GETLAM
  PUTREALEL
  LAM Nec
  4GETLAM
  #-
  #1+
  UNROLL
  LAM Nec
  3GETLAM
  #-
  #1+
  ROLL
  12GETLAM
  %CHS
  6GETLAM
  PUTREALEL
  11GETLAM
  %CHS
  5GETLAM
  PUTREALEL
  10GETLAM
  4GETLAM
  PUTREALEL
  3GETLAM
  ID P18
  12GETLAM
  %+
  ID P17
  2GETLAM
  ID P18
  11GETLAM
  %+
  ID P17
  1GETLAM
  ID P18
  10GETLAM
  %+
  ID P17
  LAM Nec
  3GETLAM
  #-
  #1+
  UNROLL
  LAM Nec
  2GETLAM
  #-
  #1+
  ROLL
  11GETLAM
  %CHS
  6GETLAM
  PUTREALEL
  9GETLAM
  %CHS
  5GETLAM
  PUTREALEL
  8GETLAM
  %CHS
  4GETLAM
  PUTREALEL
  3GETLAM
  ID P18
  11GETLAM
  %+
  ID P17
  2GETLAM
  ID P18
  9GETLAM
  %+
  ID P17
  1GETLAM
  ID P18
  8GETLAM
  %CHS
  %+
  ID P17
  LAM Nec
  2GETLAM
  #-
  #1+
  UNROLL
  LAM Nec
  1GETLAM
  #-
  #1+
  ROLL
  10GETLAM
  %CHS
  6GETLAM
  PUTREALEL
  8GETLAM
  5GETLAM
  PUTREALEL
  7GETLAM
  4GETLAM
  PUTREALEL
  3GETLAM
  ID P18
  10GETLAM
  %+
  ID P17
  2GETLAM
  ID P18
  8GETLAM
  %CHS
  %+
  ID P17
  1GETLAM
  ID P18
  7GETLAM
  %2
  %*
  %+
  ID P17
  LAM Nec
  1GETLAM
  #-
  #1+
  UNROLL
  ABND
 ;
 ERRTRAP
 ::
  ID P11
  ERRJMP
 ;
 ABND
 LOOP
 LAM Nec
 ROMPTR C3 15
;

VARNAME P15
::
 LAM dib?
 IT
 ::
  $ "APOYOS"
  ID P27
  NULL$
  ID P26
 ;
 ERRSET
 ::
  ID DATOS
  EIGHT
  NTHCOMPDROP
  INCOMPDROP
  ROMPTR C3 12
  OVER
  MDIMS
  case
  ERRJMP
  FOUR
  #<>case
  ERRJMP
  COERCE
  ZERO_DO
  ID P22
  SWAPROT
  '
  NULLLAM
  THREE
  NDUPN
  DOBIND
  COERCE
  #1-
  THREE
  #*
  LAM Nec
  #1+
  #*
  #1+
  LAM R
  THREE
  #1+_ONE_DO
  INDEX@
  GETLAM
  DUP
  %1
  %=
  ITE
  DROP
  ::
   DUP
   %0=
   ITE
   ::
    DROP
    % 1E30
   ;
   ::
    UNROTOVER
    PULLREALEL
    4ROLL
    %+
   ;
   3PICK
   PUTREALEL
  ;
  SWAP
  LAM Nec
  #+
  #1+
  SWAP
  LOOP
  '
  LAM R
  STO
  DROP
  LOOP
 ;
 ERRTRAP
 ::
  $ "APOYOS"
  ERRJMP
 ;
;

VARNAME P14
::
 LAM dib?
 IT
 ::
  $ "C. NUDOS"
  ID P27
 ;
 ERRSET
 ::
  LAM dib?
  IT
  ::
   # 5A
   ZERO
   $ "HIPOTESIS"
   ID P24
  ;
  LAM Nhi
  #1+_ONE_DO
  LAM dib?
  IT
  ::
   INDEX@
   ID P13
  ;
  ID DATOS
  SIX
  NTHCOMPDROP
  INDEX@
  NTHCOMPDROP
  DUP%0=
  ITE
  DROP
  ::
   ROMPTR C3 12
   OVER
   MDIMS
   case
   ERRJMP
   FOUR
   #<>case
   ERRJMP
   COERCE
   ZERO_DO
   ID P22
   '
   NULLLAM
   THREE
   NDUPN
   DOBIND
   COERCE
   ID P7
   LAM F
   3GETLAM
   3PICK
   PUTREALEL
   2GETLAM
   3PICK
   LAM Nhi
   #+
   PUTREALEL
   1GETLAM
   ROT
   LAM Nhi
   #2*
   #+
   PUTREALEL
   '
   LAM F
   STO
   LOOP
  ;
  LOOP
 ;
 ERRTRAP
 ::
  $ "C. NUDOS"
  ERRJMP
 ;
;

VARNAME P13
::
 # 7E
 ZERO
 ROT
 #>$
 ID P24
;

VARNAME P12
::
 LAM dib?
 IT
 ::
  $ "C. BARRAS"
  ID P27
 ;
 ERRSET
 ::
  LAM Nhi
  #1+_ONE_DO
  LAM dib?
  IT
  ::
   INDEX@
   ID P13
  ;
  ID DATOS
  SEVEN
  NTHCOMPDROP
  INDEX@
  NTHCOMPDROP
  DUP%0=
  ITE
  DROP
  ::
   ROMPTR C3 12
   OVER
   MDIMS
   case
   ERRJMP
   SEVEN
   #<>case
   ERRJMP
   COERCE
   ZERO_DO
   ID P22
   7ROLL
   COERCE
   7ROLL
   COERCE
   {
    LAM P
    LAM A
    LAM B
    LAM \95
    LAM T
    LAM I
    LAM J
   }
   BIND
   ERRSET
   ::
    LAM dib?
    IT
    ::
     ID P11
     ID P26
    ;
    LAM I
    ID P7
    LAM J
    ID P7
    LAM Mco
    LAM I
    ID P21
    LAM Mco
    LAM J
    ID P21
    ID P10
    ROT
    LAM \95
    %COS
    3PICK
    %*
    OVER
    LAM \95
    %SIN
    %*
    %-
    LAM P
    %*
    OVER
    LAM \95
    %COS
    %*
    4PICK
    LAM \95
    %SIN
    %*
    %+
    LAM P
    %CHS
    %*
    LAM A
    LAM B
    %+
    LAM A
    7PICK
    %/
    {
     LAM i1
     LAM j1
     LAM L
     LAM s
     LAM c
     LAM Pn
     LAM Pt
     LAM a1
     LAM al
    }
    BIND
    ::
     LAM T
     %1=case
     ::
      DROP
      LAM Pt
      %1
      LAM al
      %-
      %*
      LAM Pt
      LAM al
      %*
      %CHS
      %3
      %2
      LAM al
      %*
      %-
      LAM al
      PTR 1B47B
      %*
      %1
      OVER
      %-
      LAM Pn
      %*
      SWAP
      LAM Pn
      %*
      %CHS
      %1
      LAM al
      %-
      DUP
      PTR 1B47B
      LAM A
      %*
      LAM Pn
      %*
      SWAP
      LAM al
      %*
      LAM A
      %*
      LAM Pn
      %*
      %CHS
     ;
     %2=case
     ::
      DROP
      LAM A
      LAM B
      %2
      %/
      %+
      LAM L
      %/
      %1
      OVER
      %-
      LAM B
      %*
      LAM Pt
      %*
      SWAP
      LAM B
      %*
      LAM Pt
      %*
      %CHS
      LAM a1
      %4
      %^
      LAM A
      %4
      %^
      %-
      LAM L
      %/
      LAM a1
      %3
      %^
      LAM A
      %3
      %^
      %-
      %2
      %*
      LAM a1
      PTR 1B47B
      LAM A
      PTR 1B47B
      %-
      '
      NULLLAM
      THREE
      NDUPN
      DOBIND
      3GETLAM
      2GETLAM
      %-
      DUP
      LAM Pn
      %2
      %/
      LAM L
      PTR 1B47B
      %/
      SWAP
      %2
      LAM B
      %*
      LAM L
      PTR 1B47B
      %*
      %+
      OVER
      %*
      UNROT
      %*
      3GETLAM
      LAM L
      %/
      %3
      %*
      2GETLAM
      LAM L
      %/
      2DUP
      %4
      %*
      %-
      %6
      1GETLAM
      %*
      %+
      LAM Pn
      % 12
      %/
      %*
      UNROT
      %2
      %*
      %-
      LAM Pn
      % 12
      %/
      %*
      ABND
     ;
     DUP
     %ABSCOERCE
     #3=
     case
     ::
      %3
      %=
      IT
      ::
       LAM L
       LAM A
       %-
       LAM B
       %-
       '
       LAM A
       STO
       LAM A
       LAM B
       %+
       '
       LAM a1
       STO
      ;
      %2
      LAM A
      %*
      LAM a1
      %+
      %3
      %/
      LAM L
      %/
      %1
      OVER
      %-
      LAM B
      %2
      %/
      LAM Pt
      %*
      DUP
      4UNROLL
      %*
      SWAP
      ROT
      %*
      %3
      LAM T
      %=
      IT
      SWAP
      %CHS
      LAM a1
      PTR 1B47B
      LAM a1
      LAM A
      %*
      %2
      %*
      %+
      %3
      LAM A
      PTR 1B47B
      %*
      %+
      LAM L
      %/
      LAM a1
      %3
      %^
      LAM a1
      PTR 1B47B
      %2
      %*
      LAM A
      %*
      %+
      %3
      LAM a1
      %*
      LAM A
      PTR 1B47B
      %*
      %+
      %4
      LAM A
      %3
      %^
      %*
      %+
      LAM L
      PTR 1B47B
      %/
      LAM Pn
      LAM B
      %*
      % 20
      %/
      '
      NULLLAM
      THREE
      NDUPN
      DOBIND
      %10
      LAM L
      %*
      %2
      2GETLAM
      %*
      %5
      3GETLAM
      %*
      2DUP
      SWAP
      %-
      4UNROLL
      %-
      %+
      1GETLAM
      LAM L
      %/
      DUP
      ROT
      %*
      SWAP
      ROT
      %*
      LAM T
      %3
      %=
      IT
      SWAP
      %CHS
      LAM a1
      LAM A
      %2
      %*
      %+
      % 10
      %*
      %3
      2GETLAM
      %*
      %5
      3GETLAM
      %*
      2DUP
      SWAP
      %-
      4UNROLL
      %2
      %*
      %-
      %+
      1GETLAM
      %3
      %/
      DUP
      ROT
      %*
      SWAP
      ROT
      %*
      LAM T
      %3
      %=
      IT
      SWAP
      %CHS
      ABND
     ;
     %4
     %=
     case
     ::
      %0
      %0
      LAM P
      LAM al
      %*
      %6
      %*
      LAM L
      %/
      %1
      LAM al
      %-
      %*
      DUP
      LAM al
      %4
      %3
      LAM al
      %*
      %-
      %*
      %1
      %-
      LAM P
      %*
      %2
      %3
      LAM al
      %*
      %-
      LAM al
      %*
      LAM P
      %*
     ;
     COERCE
     ERRJMP
    ;
    %0
    %0
    %0
    '
    NULLLAM
    NINE
    NDUPN
    DOBIND
    LAM F
    LAM i1
    ID P18
    9GETLAM
    LAM c
    %*
    %-
    7GETLAM
    LAM s
    %*
    %+
    ID P17
    LAM j1
    ID P18
    8GETLAM
    LAM c
    %*
    %+
    6GETLAM
    LAM s
    %*
    %-
    ID P17
    LAM i1
    LAM Nhi
    #+
    ID P18
    9GETLAM
    LAM s
    %*
    %-
    7GETLAM
    LAM c
    %*
    %-
    ID P17
    LAM j1
    LAM Nhi
    #+
    ID P18
    8GETLAM
    LAM s
    %*
    %+
    6GETLAM
    LAM c
    %*
    %+
    ID P17
    LAM i1
    LAM Nhi
    #2*
    #+
    ID P18
    5GETLAM
    %-
    ID P17
    LAM j1
    LAM Nhi
    #2*
    #+
    ID P18
    4GETLAM
    %-
    ID P17
    '
    LAM F
    STO
    %0
    %0
    9GETLAM
    8GETLAM
    FOUR
    ID P5
    3PUTLAM
    %0
    %0
    7GETLAM
    6GETLAM
    FOUR
    ID P5
    2PUTLAM
    %0
    %0
    5GETLAM
    4GETLAM
    FOUR
    ID P5
    1PUTLAM
    LAM I
    LAM J
    TWO{}N
    LAM Lc
    JINDEX@
    NTHCOMPDROP
    2DUP
    matchob?
    ITE
    ::
     1GETLAM
     2GETLAM
     3GETLAM
     5ROLL
     5ROLL
     2DUP
     NTHOF
     #1+DUP
     #3+
     SWAP
     4ROLLDROP
     DO
     DUP
     INDEX@
     NTHCOMPDROP
     ROT
     PTR 36115
     INDEX@
     ROT
     PUTLIST
     LOOP
    ;
    ::
     DROPSWAP
     3GETLAM
     2GETLAM
     1GETLAM
     FOUR
     {}N
     &COMP
    ;
    JINDEX@
    LAM Lc
    PUTLIST
    '
    LAM Lc
    STO
   ;
   ERRTRAP
   ::
    $ "C. "
    ID P11
    &$
    MINUSONE
    ERRJMP
   ;
   ABND
   LOOP
  ;
  LOOP
 ;
 ERRTRAP
 ::
  MINUSONE
  #<>
  IT
  $ "C. BARRAS"
  ERRJMP
 ;
;

VARNAME P11
::
 $ "BARRA "
 LAM I
 #>$
 &$
 $ ","
 &$
 LAM J
 #>$
 &$
;

VARNAME P10
::
 SWAP
 UNROT
 %-
 UNROT
 %-
 2DUP
 PTR 1B47B
 SWAP
 PTR 1B47B
 %+
 %SQRT
 DUPUNROT
 %/
 UNROT
 DUPUNROT
 %/
;

VARNAME P9
::
 LAM dib?
 IT
 ::
  NULL$
  ID P26
  $ "RESOL. SISTEMA "
  LAM Nec
  #>$
  $ "x"
  OVER
  &$
  &$
  &$
  ID P27
 ;
 LAM F
 ROMPTR C3 14
 COERCE
 ONE
 '
 NULLLAM
 DUP
 TWO
 DOBIND
 BEGIN
 LAM dib?
 IT
 ::
  2GETLAM
  ID P13
 ;
 LAM Nec
 ONE
 LAM R
 4ROLL
 PTR 36B14
 ROMPTR C2 54
 LAM Nhi
 UNROLL
 2GETLAM
 #1-DUP
 2PUTLAM
 1GETLAM
 #<
 UNTIL
 ABND
 LAM Nhi
 ROMPTR C3 15
 MATTRN
 '
 LAM F
 STO
;

VARNAME P8
::
 LAM tit
 ONE{}N
 '
 LAM res
 ONE
 DOBIND
 ID DATOS
 EIGHT
 NTHCOMPDROP
 ONE
 NTHCOMPDROP
 ROMPTR C3 14
 3DROP
 ARSIZE
 ONE{}N
 %0
 MAKEARRY
 DUPDUP
 THREE
 ROMPTR C3 15
 PTR 38179
 ROMPTR C3 12
 COERCE
 {}N
 '
 LAM R
 STO
 ID P22
 DEPTH
 {}N
 '
 LAM Nec
 STO
 LAM Nhi
 #1+_ONE_DO
 LAM res
 $ "HIPOTESIS NUM: "
 INDEX@
 #>$
 !append$
 NEWLINE$&$
 >TCOMP
 '
 LAM res
 STO
 LAM dib?
 IT
 ::
  INDEX@
  ID P13
  $ "COPIO ESFUERZOS"
  ID P27
 ;
 LAM Nba
 #1+_ONE_DO
 LAM dib?
 IT
 ::
  $ "BARRA "
  INDEX@
  #>$
  !append$
  ID P26
 ;
 INDEX@
 THREE
 #*
 #2-
 LAM Mtip
 OVER
 PULLREALEL
 COERCE
 UNROTOVER
 #1+
 PULLREALEL
 SWAPROT
 #2+
 PULLREALEL
 SWAPDROP
 COERCE2
 LAM Mco
 4PICK
 ID P21
 LAM Mco
 5PICK
 ID P21
 ID P10
 LAM Area
 5ROLL
 NTHCOMPDROP
 INCOMPDROP
 {
  LAM I
  LAM J
  LAM c
  LAM L
  LAM s
  LAM i
  LAM a
 }
 BIND
 LAM E
 LAM a
 %*
 LAM L
 %/
 %2
 LAM E
 %*
 LAM i
 %*
 LAM L
 %/
 %6
 LAM E
 %*
 LAM i
 %*
 LAM L
 PTR 1B47B
 %/
 %12
 LAM E
 %*
 LAM i
 %*
 LAM L
 %3
 %^
 %/
 ZEROZERO
 {
  LAM eal
  LAM ei1
  LAM ei2
  LAM ei3
  LAM i1
  LAM j1
 }
 BIND
 LAM Lc
 JINDEX@
 NTHCOMPDROP
 DUP
 LAM I
 LAM J
 TWO{}N
 EQUALPOSCOMP
 DUP#0=ITE
 ::
  2DROP
  {
   FOUR
  }
  %0
  MAKEARRY
  DUPDUP
 ;
 ::
  #1+
  2DUP
  NTHCOMPDROP
  UNROT
  #1+
  2DUP
  NTHCOMPDROP
  UNROT
  #1+
  NTHCOMPDROP
 ;
 LAM F
 '
 LAM i1
 LAM I
 ID P7
 DUP
 ROT
 STO
 PULLREALEL
 SWAP
 '
 LAM j1
 LAM J
 ID P7
 DUP
 ROT
 STO
 PULLREALEL
 ROT
 %-
 SWAP
 LAM i1
 LAM Nhi
 #+
 PULLREALEL
 SWAP
 LAM j1
 LAM Nhi
 #+
 PULLREALEL
 ROT
 %-
 SWAP
 LAM i1
 LAM Nhi
 #2*
 #+
 PULLREALEL
 SWAP
 LAM j1
 LAM Nhi
 #2*
 #+
 PULLREALEL
 SWAP
 '
 NULLLAM
 EIGHT
 NDUPN
 DOBIND
 LAM I
 UNCOERCE
 LAM J
 UNCOERCE
 LAM eal
 5GETLAM
 LAM c
 %*
 4GETLAM
 LAM s
 %*
 %+
 %*
 %CHS
 DUP
 FOUR
 ID P5
 8GETLAM
 PTR 36115
 %3
 PTR 35EA9
 5GETLAM
 LAM s
 %*
 4GETLAM
 LAM c
 %*
 %-
 1PUTLAM
 LAM I
 UNCOERCE
 LAM J
 UNCOERCE
 LAM ei2
 3GETLAM
 2GETLAM
 %+
 %*
 LAM ei3
 1GETLAM
 %*
 %+
 DUP
 FOUR
 ID P5
 7GETLAM
 PTR 36115
 %3
 PTR 35EA9
 LAM I
 UNCOERCE
 LAM J
 UNCOERCE
 LAM ei2
 1GETLAM
 %*
 DUP
 LAM ei1
 %2
 3GETLAM
 %*
 2GETLAM
 %+
 %*
 %+
 SWAP
 LAM ei1
 3GETLAM
 %2
 2GETLAM
 %*
 %+
 %*
 %+
 FOUR
 ID P5
 6GETLAM
 PTR 36115
 %3
 PTR 35EA9
 LAM Nec
 LAM I
 UNCOERCE
 EQUALPOSCOMP
 DUP#0=ITE
 DROP
 ::
  THREE
  ID P6
 ;
 LAM Nec
 LAM J
 UNCOERCE
 EQUALPOSCOMP
 DUP#0=ITE
 DROP
 ::
  FOUR
  LAM s
  %CHS
  '
  LAM s
  STO
  LAM c
  %CHS
  '
  LAM c
  STO
  ID P6
 ;
 ABND
 ABND
 ABND
 LOOP
 LAM res
 $ "REACCIONES:\n[Apoyo, Rx, Ry, M]\n"
 >TCOMP
 LAM Nec
 INNERCOMP
 ID P5
 LAM R
 INNERCOMP
 ROMPTR C3 15
 PTR 38179
 ROMPTR C3 12
 %1+
 COERCE
 ROMPTR C3 16
 >TCOMP
 $ "\nESFUERZOS EN BARRAS\n[nudo I,J,axilI,axilJ]\n[nudo I,J,cteI,cteJ]\n[nudo I,J,mtoI,mtoJ]\n"
 >TCOMP
 DEPTH
 UNROLL
 LAM Nba
 THREE
 #*
 ROMPTR C3 15
 >TCOMP
 $ "\nDESPLAZAMIENTO NUDOS\n[nudo,dir. X, Y, Z]\n"
 >TCOMP
 LAM dib?
 IT
 ::
  $ "COPIO MOVIMIENTOS"
  ID P27
  NULL$
  ID P26
 ;
 LAM Nnu
 #1+_ONE_DO
 INDEX@
 DUP
 UNCOERCE
 SWAP
 ID P7
 LAM F
 OVER
 PULLREALEL
 UNROTOVER
 LAM Nhi
 #+
 PULLREALEL
 SWAPROT
 LAM Nhi
 #2*
 #+
 PULLREALEL
 SWAPDROP
 FOUR
 ID P5
 %5
 PTR 35EA9
 LOOP
 LAM Nnu
 ROMPTR C3 15
 >TCOMP
 '
 LAM res
 STO
 LAM R
 INNERCOMP
 ROMPTR C3 15
 %0
 MATCON
 ROMPTR C3 12
 COERCE
 {}N
 '
 LAM R
 STO
 LOOP
 LAM res
 ID port.cfg
 FOUR
 SUB$1#
 #1=
 LAM dib?
 AND
 IT
 ::
  ABUFF
  >TCOMP
 ;
 '
 ID res
 STO
 ABND
;

VARNAME P7
::
 #1-
 THREE
 #*
 LAM Nhi
 #*
 JINDEX@
 #+
;

VARNAME P6
::
 LAM R
 ROT
 2DUP
 NTHCOMPDROP
 7PICK
 5PICK
 PULLREALEL
 SWAPDROP
 DUP
 LAM c
 %*
 SWAP
 LAM s
 %*
 %0
 THREE
 ID P5
 PTR 36115
 6PICK
 5PICK
 PULLREALEL
 SWAPDROP
 DUP
 LAM s
 %*
 %CHS
 SWAP
 LAM c
 %*
 %0
 THREE
 ID P5
 PTR 36115
 5PICK
 5ROLL
 PULLREALEL
 SWAPDROP
 %0
 DUPROT
 THREE
 ID P5
 PTR 36115
 SWAPROT
 PUTLIST
 '
 LAM R
 STO
;

VARNAME P5
::
 DUP
 ONE{}N
 %0
 MAKEARRY
 PTR 19294
;

VARNAME P4
::
 ID port.cfg
 THREE
 OVER
 TWO
 SUB$1#
 UNCOERCE
 UNROT
 SUB$1#
 UNCOERCE
 %10
 %/
 %+
;

VARNAME P3
::
 ERRSET
 ::
  '
  ID port.cfg
  DUP
  @
  ?SKIP
  ERRJMP
  DUPTYPECSTR?
  ?SKIP
  ::
   DROP
   ERRJMP
  ;
  LEN$
  #5=
  ?SKIP
  ERRJMP
 ;
 ERRTRAP
 ::
  $ "\01\01\00\00\01"
  PATHDIR
  UNROT
  SYSCONTEXT
  DOVARS
  UNROT
  OVER
  CREATE
  UNROT
  '
  SetHiddenRes
  Ob>Seco
  NULLID
  DUPDUP
  @
  DROP
  TYPERRP?
  ITE_DROP
  PURGE
  CREATE
  ERRSET
  XEQORDER
  ERRTRAP
  ::
   NULLID
   PURGE
  ;
  COMPEVAL
 ;
 @
 DROP
;

VARNAME P2
::
 SWAP
 ITE
 $ "\01"
 $ "\00"
 &$
;

VARNAME CFG
::
 CK0
 ID P3
 DUP
 ONE
 SUB$1#
 #1=
 SWAP
 DUP
 FIVE
 SUB$1#
 #1=
 SWAP
 DUP
 FOUR
 SUB$1#
 #1=
 SWAP
 ID P4
 SWAPDROP
 '
 NULLLAM
 FOUR
 NDUPN
 DOBIND
 $ "\BFDIBUJAR?"
 ONE
 TEN
 $ "\BFSONIDO?"
 ONE
 NINETEEN
 $ "\BFSALVAR DIBUJO?"
 FIFTYFIVE
 TEN
 $ "ESCALA"
 FIFTYFIVE
 NINETEEN
 'DROPFALSE
 FORTY
 EIGHT
 SIX
 NINE
 THIRTYTWO
 MINUSONE
 MINUSONE
 $ "DIBUJAR= LENTITUD"
 MINUSONE
 MINUSONE
 TRUE
 4GETLAM
 'DROPFALSE
 FORTY
 SEVENTEEN
 SIX
 NINE
 THIRTYTWO
 MINUSONE
 MINUSONE
 NULL$
 MINUSONE
 MINUSONE
 TRUE
 3GETLAM
 'DROPFALSE
 BINT_116d
 EIGHT
 SIX
 NINE
 THIRTYTWO
 MINUSONE
 MINUSONE
 $ "GUARDA EL DIBUJO EN 'res'"
 MINUSONE
 MINUSONE
 FALSE
 2GETLAM
 'DROPFALSE
 # 50
 SEVENTEEN
 SIXTEEN
 NINE
 ONE
 {
  ZERO
 }
 FOUR
 $ "ESCALA DEL DIBUJO"
 MINUSONE
 MINUSONE
 %1
 1GETLAM
 ABND
 FOUR
 FOUR
 'DROPFALSE
 $ "CONFIGURACION"
 DoInputForm
 ID P3
 DROP
 IT
 ::
  4ROLL
  NULL$
  ID P2
  SWAP
  DUP
  %FP
  %10
  %*
  SWAP
  %IP
  COERCE2
  #>CHR
  CHR>$
  SWAP
  #>CHR
  >T$
  &$
  ID P2
  ID P2
  '
  ID port.cfg
  STO
 ;
;

VARNAME PORTICOS
::
 AtUserStack
 ERRORCLR
 #EXITERR
 ERRORSTO
 ID P3
 ONE
 SUB$1#
 #1=
 DUP
 ITE
 ID P35
 CODE
	GOSBVL	=SAVPTR
	GOSBVL	=DisableIntr
	GOSBVL	#1D44
	INTOFF
	GOSBVL	=GETPTRLOOP
ENDCODE
 GetMenu%
 RCLSYSF
 {
  LAM dib?
  LAM menu
  LAM flags
 }
 BIND
 SAVESTACK
 ERRSET
 ::
  DEPTH
  NDROP
  SEVEN
  ClrUserFlag
  ELEVEN
  SetSysFlag
  TWELVE
  SetSysFlag
  SIXTEEN
  SEVENTEEN
  EIGHTEEN
  TWENTYTWO
  FIFTYFIVE
  FIVE
  ZERO_DO
  ClrSysFlag
  LOOP
  FIFTYSIX
  ID port.cfg
  FIVE
  SUB$1#
  #1=
  ITE
  ClrSysFlag
  SetSysFlag
  ID P34
  ID P33
  DUP
  THREE
  #*
  DUP
  5PICK
  TWO{}N
  %0
  MAKEARRY
  ZERO
  {
   LAM tit
   LAM E
   LAM Nhi
   LAM Nba
   LAM Nnu
   LAM Nec
   LAM F
   LAM R
  }
  BIND
  ID P32
  ID P30
  ID P29
  ID P28
  ZERO
  LAM Nhi
  ZERO_DO
  NULL{}
  LOOP
  LAM Nhi
  {}N
  {
   LAM Xmax
   LAM Xmin
   LAM Zmin
   LAM Mco
   LAM escx
   LAM escz
   LAM Area
   LAM Nbt
   LAM Mtip
   LAM A
   LAM Lc
  }
  BIND
  LAM dib?
  IT
  ::
   HARDBUFF
   DUPGROBDIM
   DROP
   CHECKHEIGHT
   $ "    El Estructur\F3n   "
   LISTLAM
   DISPN
   SIXTYFOUR
   FIFTYSIX
   DO
   INDEX@
   LINECHANGE
   SLOW
   SLOW
   LOOP
   %.5
   dowait
  ;
  ID P16
  '
  LAM R
  STO
  ID P15
  ID P14
  ID P12
  ID P9
  ID DATOS
  EIGHT
  NTHCOMPDROP
  ONE
  NTHCOMPDROP
  ROMPTR C3 14
  3DROP
  MDIMSDROP
  ONE{}N
  %0
  MAKEARRY
  DUPDUP
  THREE
  ROMPTR C3 15
  PTR 38179
  ROMPTR C3 12
  COERCE
  {}N
  '
  LAM R
  STO
  ID P22
  DEPTH
  {}N
  '
  LAM Nec
  STO
  ID P8
  LAM dib?
  ?SKIP
  ID P31
  ID P25
 ;
 ERRTRAP
 ::
  ID P23
 ;
;

VARNAME $CONFIG
::
 # 3D0
 TOSRRP
;

VARNAME $VISIBLE
{
 ID PORTICOS
 ID CFG
}

VARNAME $TITLE
$ "Porticos, ver. 0.1\DF"

VARNAME $ROMID
% 976

ENDDIR
