home *** CD-ROM | disk | FTP | other *** search
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Sysop PPE for Atlantis v1.0 [Add-On]
- ; Written by Jolly Roger.
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Please modify it so it suits your needs.
- ; If you decide to use one of my functions/code in your own program
- ; you MUST mention the original writer in the doc/nfo - That's me :)
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; The source code is NOT documented, sorry, but I didn't have the time!
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- DECLARE FUNCTION RequestKey() STRING
- DECLARE PROCEDURE SetupItems(INTEGER TotalItems)
- DECLARE PROCEDURE SetNewHighlighted(INTEGER Highlighted, INTEGER Before)
- ;────────────────────────────────────────────────────────────────────────────
- INTEGER UserSecurity, TotalItemsInMenu, Temp
- INTEGER CurrentHighlighted, LastHighlighted
- ;────────────────────────────────────────────────────────────────────────────
- STRING ReturnKey
- STRING Items(14), Header, Colors(2)
- INTEGER FirstX, FirstY
-
- *$USEFUNCS
-
- BEGIN
-
- CurrentHighlighted = 1
- :Start
- STARTDISP FNS
- TotalItemsInMenu = 14
- Colors(1) = "@X07"
- Colors(2) = "@X4F"
- Items(1) = " View the callers logfile "
- Items(2) = " View User Activity "
- Items(3) = " Pack The Message Base "
- Items(4) = " Re-Activate A Killed Message "
- Items(5) = " Quick Message Scan "
- Items(6) = " View A File From The HDD (Any File) "
- Items(7) = " User Editor "
- Items(8) = " Pack The Users File "
- Items(9) = " Exit To Dos From Remote (DOORWAY) "
- Items(10) = " Preform A Dos Function (DOES NOT EXIT TO DOS) "
- Items(11) = " View Who Is OnLine "
- Items(12) = " Auto Logoff Node # "
- Items(13) = " View Logfile of Node # "
- Items(14) = " Drop Node # to DOS "
- FirstX = 14
- FirstY = 5
- LastHighlighted = CurrentHighlighted
- PRINT "@X07@CLS@"
- DISPFILE PPEPATH() + "SYSOP.PCB",0
- SetupItems(TotalItemsInMenu)
- SetNewHighlighted(CurrentHighlighted, LastHighlighted)
-
- :MainLoop
-
- ReturnKey = RequestKey()
- SELECT CASE (UPPER(ReturnKey))
- CASE "UP","A", "LEFT"
- LastHighlighted = CurrentHighlighted
- IF (CurrentHighlighted = 1) THEN
- CurrentHighlighted = TotalItemsInMenu
- ELSE
- CurrentHighlighted = CurrentHighlighted - 1
- END IF
- SetNewHighlighted(CurrentHighlighted, LastHighlighted)
- CASE "DOWN", "Z", "RIGHT"
- LastHighlighted = CurrentHighlighted
- IF (CurrentHighlighted = TotalItemsInMenu) THEN
- CurrentHighlighted = 1
- ELSE
- CurrentHighlighted = CurrentHighlighted + 1
- END IF
- SetNewHighlighted(CurrentHighlighted, LastHighlighted)
- CASE CHR(27)
- PRINT "@X07@CLS@"
- NEWLINE
- END
- CASE CHR(13)
- PRINT "@X07@CLS@"
- COMMAND TRUE, STRING(CurrentHighlighted)
- NEWLINE
- WAIT
- GOTO Start
- CASE "HOME"
- LastHighlighted = CurrentHighlighted
- CurrentHighlighted = 1
- SetNewHighlighted(CurrentHighlighted, LastHighlighted)
- CASE "END"
- LastHighlighted = CurrentHighlighted
- CurrentHighlighted = TotalItemsInMenu
- SetNewHighlighted(CurrentHighlighted, LastHighlighted)
- END SELECT
- GOTO MainLoop
- END
-
- FUNCTION RequestKey() STRING
- LET ReturnKey = ""
- WHILE (ReturnKey = "") DO
- LET ReturnKey = INKEY()
- IF (ReturnKey = "BADKEY") ReturnKey = ""
- ENDWHILE
- RequestKey = ReturnKey
- ENDFUNC
-
- PROCEDURE SetupItems(INTEGER TotalItems)
- FOR Temp = 1 TO TotalItems
- ANSIPOS FirstX, FirstY + Temp - 1
- PRINT Colors(1) + Items(Temp)
- NEXT
- END PROC
-
- PROCEDURE SetNewHighlighted(INTEGER Highlighted, INTEGER Before)
- ANSIPOS FirstX, FirstY + Before - 1
- PRINT Colors(1) + Items(Before)
- ANSIPOS FirstX, FirstY + Highlighted - 1
- PRINT Colors(2) + Items(Highlighted)
- ANSIPOS FirstX, FirstY + Highlighted - 1
- END PROC
- END
-