Metropoli BBS
VIEWER: sys.s MODE: TEXT (ASCII)
**********************************************************************
* Name:		SYS
* Stack:
* Desc:		SYSEVAL shorthand + float conversions
**********************************************************************
ASSEMBLE
	CON(1)	8
RPL
xNAME SYS
::
  CK1&Dispatch
    hxs		XEQSYSEVAL
    bint	SYSEVAL
    real	%>%%
    ereal	%%>%
    ecmp	C%%>C%
    cmp
    ::
      C%>%% GX? ITE G_%%>C%% %%>C%%
    ;
    arry
    ::
      DUP ELEMENTTYPE
      TYPEREAL #=casedrop
      ::
	DUP DIMLIMITS %%0 MAKEARRY
        CODE
		GOSBVL	=PopASavptr
		C=DAT1	A		->short
		DAT1=A	A		Return ->long
		D0=C			->short
		D1=A			->long
		D0=D0+	15
		D1=D1+	5
		C=DAT1	A
		C=C+A	A
		D=C	A		->longend-5
		D1=D1+	10
		A=DAT0	A
		A=A+1	A		dims+1
		C=A	A
		C=C+C	A
		C=C+C	A
		A=A+C	A
		CD0EX			skip dimensions
		C=C+A	A
		CD1EX
		C=C+A	A
--		D0=C
		A=DAT1	W		short
		D1=D1+	16
		GOSBVL	=SPLITA		long
		SETHEX
		GOSBVL	=PUTAB0		store
		CD0EX
		?C<D	A
		GOYES	--
		GOVLNG	=GETPTRLOOP
        ENDCODE
      ;
      TYPEEREL #=casedrop
      ::
        DUP DIMLIMITS %0 MAKEARRY
        DUP ARSIZE #1+_ONE_DO (DO)
          INDEX@ 3PICK GETATELN DROP
          %%>% INDEX@ PUTREALEL
        LOOP
        SWAPDROP
      ;
      SETTYPEERR
    ;
;

**********************************************************************


[ RETURN TO DIRECTORY ]