//PROGRAM TO PLOT SINC Program Rev. 6

XEQLBL FF GUDERM        // BINDS THE PROGRAM NAME TO THE SOFTMENU BUTTON ON SCREEN

//SUPPORTS NORMALIZED SINCPI AND STANDARD SINC

  RAD          // SET ADM

  ERPN                   // ENSURE IN ERPN
  DOTD                   // ENSURE IN REAL MODE
  CLSUM                  // CLEAR STATS DATA. CLΣ.
  TICKS STO 01           // GET CURRENT TIME IN 0.1 SECOND UNITS
  101 STO 00             // 100 LOOPS, COUNTER REG00, 101 (STARTNO) DECREMENTS TO 1, AT 0 IT SKIPS
  STO 02                 // LOOP START VALUE STORED FOR LATER USE
  DROPX DROPX

  LBL M1                 // CREATE LOOPING LABEL. FOUR LABELS AVAILABLE M1, M2, M3, M4
    RCL 02               // GET THE START VALUE OF THE LOOP COUNTER
    RCL 00 -             // REVERSE THE RANGE TO: 0 TO STARTNO-1
    GSB M4               // CALL SUBROUTINE TO PRODUCE Y AND X. NO NESTING POSSIBLE.
    SUM+                 // USE SUM+ TO SEND X&Y TO STATS BUFFER. Σ+.
    DROPX DROPX
    DSZ 00               // DECREMENT AND SKIP NEXT COMMAND IF RESULT ZERO
  GTO M1                 // THE GTO IS SKIPPED IF RESULT 0

  TICKS                  // GET CLOCK STATUS
  RCL 01 -               // GET STORED CLOCK STATUS. SUBTRACT TO GET EXPIRED TIME
  10 /                   // DIVIDE BY 10 TO GET SECONDS
  ALPHA " SEC" EXIT +    // ADD TEXT
  PLTRST
  P_INT
  PLSTAT                 // PLOTS THE STATS DATA

RETURN                   // STOPS PROCESSING


//---SUBROUTINE----------   ------------------------------------------------------------
LBL M4                      // CALC SUBROUTINE: START RANGE N IS 0 TO (STARTNO-1)
  RCL 02 DECR X 2 IDIV /    // SCALE THE RANGE TO: ([0:100]/ ((101-1)/2)); i.e. 0-2
  1 - 0.49 *                   // SCALE [-5:5]

  PI *                      // SCALE [-5PI:5PI]

  ENTER                     // ENSURE TWO COPIES OF X
  GD^-1                        // CALCULATE FUNCTION

  X<>Y                      // SHIFT Y TO Y AND X TO X
RTN                      //RETURN TO MAIN PROGRAM

END                      //OPTIONAL END OF PROCESSING MARKER. NOTHING AFTER THIS GETS PARSED.
