Skip to content

Commit

Permalink
1) Fix line terminators in makefile
Browse files Browse the repository at this point in the history
2) add iconify menu option in ACP
3) add system stats and session stats in ACP
4) add intuition menus on node screen in express
5) rework install script
  • Loading branch information
dmcoles committed Sep 7, 2023
1 parent c1b2b74 commit df09309
Show file tree
Hide file tree
Showing 5 changed files with 611 additions and 187 deletions.
153 changes: 143 additions & 10 deletions ACP.e
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,11 @@ CONST TAG_END=0
CONST NODECONFIG=1
CONST RUNMCP=2

CONST LAST_CALLERS=0
CONST LAST_UPLOADS=1
CONST LAST_DOWNLOADS=2
CONST LAST_CALLERS=0
CONST SYSTEM_STATS=3
CONST SESSION_STATS=4

CONST CHAT_ENTER=5
CONST CHAT_EXIT=4
Expand Down Expand Up @@ -314,6 +316,10 @@ DEF telnetNode[MAX_NODES]:ARRAY OF INT
DEF ftpNode[MAX_NODES]:ARRAY OF INT
DEF bbsStack

DEF startTime:datestamp
DEF startCalls
DEF ulCount=0,dlCount=0

DEF nodes[MAX_NODES]:ARRAY OF INT
DEF suspend[MAX_NODES]:ARRAY OF INT
DEF showAbout=0
Expand Down Expand Up @@ -540,6 +546,25 @@ PROC getSystemTime()
startds:=DateStamp(currDate)
ENDPROC Mul(Mul(startds.days,1440),60)+(startds.minute*60)+(startds.tick/50)

PROC formatLongDateTime(dt:PTR TO datetime,outDateStr)
DEF datestr[10]:STRING
DEF daystr[10]:STRING
DEF timestr[10]:STRING
DEF dateVal


dt.format:=FORMAT_DOS
dt.flags:=0
dt.strday:=0
dt.strdate:=datestr
dt.strtime:=timestr

IF DateToStr(dt)
StringF(outDateStr,'\s[7]\d\s \s',datestr,IF dt.stamp.days>=8035 THEN 20 ELSE 19,datestr+7,timestr)
RETURN TRUE
ENDIF
ENDPROC FALSE

PROC trimStr(src:PTR TO CHAR, dest:PTR TO CHAR)
DEF i
StrCopy(dest,TrimStr(src))
Expand All @@ -564,14 +589,11 @@ PROC myrequest(s:PTR TO CHAR)
END myES[5]
ENDPROC

PROC menunum(n)
ENDPROC ((n) AND $1F)
PROC menunum(n) IS ((n) AND $1F)

PROC itemnum(n)
ENDPROC (Shr((n),5) AND $3F)
PROC itemnum(n) IS (Shr((n),5) AND $3F)

PROC subnum(n)
ENDPROC (Shr((n),11) AND $1F)
PROC subnum(n) IS (Shr((n),11) AND $1F)

->/* ***** Free the Gadlist and return ***** */
PROC freeGads()
Expand Down Expand Up @@ -914,6 +936,16 @@ PROC findClose()
dir_info:=NIL
ENDPROC

EXPORT PROC readIntFromFile(filename: PTR TO CHAR)
DEF fh
DEF v[100]:STRING
IF((fh:=Open(filename,MODE_OLDFILE)))<>0
ReadStr(fh,v)
Close(fh)
RETURN Val(v)
ENDIF
ENDPROC -1

/* ***** Do BevelBorders ***** */
PROC drawborders()
/* *** Stats *** */
Expand Down Expand Up @@ -1034,6 +1066,7 @@ PROC createCustomMenus(nodes)
maddItem( NM_SUB,' Stephan Schiemann ',0,0,0,0)
maddItem( NM_SUB,' Eddie Oniel ',0,0,0,0)

maddItem( NM_ITEM, 'Iconify',0,0,0,0)
maddItem( NM_ITEM, 'Quit',0,0,0,0)

maddItem( NM_TITLE, 'Master Control',0,0,0,0)
Expand Down Expand Up @@ -1184,7 +1217,7 @@ PROC initGads(scr:PTR TO screen)
IF (gad = NIL) THEN RETURN 0

->IF(initGadsagain=FALSE) THEN ngAry[GAD_TOPS].topedge:=ngAry[GAD_TOPS].topedge+(-110+(theight*11))
gad:= CreateGadgetA(CYCLE_KIND, gad, ngAry [GAD_TOPS], [GTCY_LABELS,['Last Five Callers','Last Five Uploads','Last Five Downloads',NIL],GTCY_ACTIVE,topOption,TAG_END])
gad:= CreateGadgetA(CYCLE_KIND, gad, ngAry [GAD_TOPS], [GTCY_LABELS,['Last Five Callers','Last Five Uploads','Last Five Downloads','System Stats','Session Stats',NIL],GTCY_ACTIVE,topOption,TAG_END])
IF (gad = NIL) THEN RETURN 0

->IF(initGadsagain=FALSE) THEN ngAry[GAD_TOPSBOX].topedge:=ngAry[GAD_TOPSBOX].topedge+(-110+(theight*11))
Expand Down Expand Up @@ -1322,6 +1355,10 @@ PROC doControl(node)
showNdLastUploads(eWin,node)
CASE LAST_DOWNLOADS
showNdLastDownloads(eWin,node)
CASE SYSTEM_STATS
showSystemStats(eWin)
CASE SESSION_STATS
showSessionStats(eWin)
ENDSELECT
ENDSELECT
control:=0
Expand Down Expand Up @@ -1463,14 +1500,18 @@ PROC handleEditGadget(im:PTR TO intuimessage,ig)
ENDIF
CASE GAD_TOPS
topOption++
IF(topOption>2) THEN topOption:=0
IF(topOption>SESSION_STATS) THEN topOption:=0
SELECT topOption
CASE LAST_CALLERS
showLastUser(eWin)
CASE LAST_DOWNLOADS
showLastDownloads(eWin)
CASE LAST_UPLOADS
showLastUploads(eWin)
CASE SYSTEM_STATS
showSystemStats(eWin)
CASE SESSION_STATS
showSessionStats(eWin)
ENDSELECT
CASE GAD_TOPSBOX
IF(control)
Expand All @@ -1482,6 +1523,10 @@ PROC handleEditGadget(im:PTR TO intuimessage,ig)
showLastUploads(eWin)
CASE LAST_DOWNLOADS
showLastDownloads(eWin)
CASE SYSTEM_STATS
showSystemStats(eWin)
CASE SESSION_STATS
showSessionStats(eWin)
ENDSELECT
ELSE
control:=SV_TOPS
Expand Down Expand Up @@ -1666,6 +1711,10 @@ PROC updateNode(name:PTR TO CHAR,location:PTR TO CHAR,action:PTR TO CHAR,baud:PT
showLastUploads(eWin)
CASE LAST_DOWNLOADS
showLastDownloads(eWin)
CASE SYSTEM_STATS
showSystemStats(eWin)
CASE SESSION_STATS
showSessionStats(eWin)
ENDSELECT
saveState()
ENDIF
Expand Down Expand Up @@ -1838,6 +1887,77 @@ PROC regNodeUser(name:PTR TO CHAR,dateStr:PTR TO CHAR, node)
list.add(name,dateStr)
ENDPROC

PROC showSystemStats(win:PTR TO window)
DEF i=0
DEF rowTop
DEF tempStr[255]:STRING
DEF systemCalls
rowTop:=topOffset+(theight*11)+BTOP_TOPSBOX
SetAPen(win.rport,0)
RectFill(win.rport,BLEF_TOPSBOX+5,rowTop+1,BLEF_TOPSBOX+BWID_TOPSBOX-10,rowTop+BHEI_TOPSBOX-2)
SetAPen(win.rport,1)

StringF(tempStr,'\sSystemStats',bbsPath)
systemCalls:=readIntFromFile(tempStr)

StringF(tempStr,'System Calls: \d',systemCalls)
rowTop:=topOffset+155-110+(theight*11)
printMyText(win.rport,tempStr,GLEF_TOPS+5,rowTop)

StringF(tempStr,'Number of users: \d',Div(FileLength('bbs:user.data'),$e8 ))
rowTop+=10
printMyText(win.rport,tempStr,GLEF_TOPS+5,rowTop)

formatLongDateTime(startTime,tempStr)
StringF(tempStr,'Startup: \s',tempStr)
rowTop+=10
printMyText(win.rport,tempStr,GLEF_TOPS+5,rowTop)

StringF(tempStr,'Available memory: \d',AvailMem(0))
rowTop+=10
printMyText(win.rport,tempStr,GLEF_TOPS+5,rowTop)
ENDPROC

PROC showSessionStats(win:PTR TO window)
DEF i=0
DEF rowTop
DEF tempStr[255]:STRING
DEF systemCalls,uptime
DEF systemTime:datestamp
rowTop:=topOffset+(theight*11)+BTOP_TOPSBOX
SetAPen(win.rport,0)
RectFill(win.rport,BLEF_TOPSBOX+5,rowTop+1,BLEF_TOPSBOX+BWID_TOPSBOX-10,rowTop+BHEI_TOPSBOX-2)
SetAPen(win.rport,1)

DateStamp(systemTime)
uptime:=Mul(systemTime.days-startTime.days,1440)+systemTime.minute-startTime.minute

formatLongDateTime(startTime,tempStr)
StringF(tempStr,'Startup: \s',tempStr)
rowTop:=topOffset+155-110+(theight*11)
printMyText(win.rport,tempStr,GLEF_TOPS+5,rowTop)

StringF(tempStr,'Uptime: \d days \r\z\d[2]:\r\z\d[2]',Div(uptime,1440),Div(Mod(uptime,1440),60),Mod(uptime,60))
rowTop+=10
printMyText(win.rport,tempStr,GLEF_TOPS+5,rowTop)

StringF(tempStr,'\sSystemStats',bbsPath)
systemCalls:=readIntFromFile(tempStr)

StringF(tempStr,'System calls: \d',systemCalls-startCalls)
rowTop+=10
printMyText(win.rport,tempStr,GLEF_TOPS+5,rowTop)


StringF(tempStr,'Uploads: \d',ulCount)
rowTop+=10
printMyText(win.rport,tempStr,GLEF_TOPS+5,rowTop)

StringF(tempStr,'Downloads: \d',dlCount)
rowTop+=10
printMyText(win.rport,tempStr,GLEF_TOPS+5,rowTop)
ENDPROC

PROC showLastUser(win:PTR TO window)
DEF i=0
DEF rowTop
Expand Down Expand Up @@ -2066,8 +2186,10 @@ PROC checkMasterSig(signals)
getSystemDate(datestr)

regLastDownloads(tempstr2,datestr,msg.node)
dlCount++
saveState()
IF topOption = LAST_DOWNLOADS THEN showLastDownloads(eWin)
IF topOption = SESSION_STATS THEN showSessionStats(eWin)
StringF(temp,'DL: \s',msg.user)
StringF(temp1,'\d',SV_NEWMSG)
updateNode(temp,msg.location,temp1,msg.baud,msg.node)
Expand All @@ -2081,8 +2203,10 @@ PROC checkMasterSig(signals)
getSystemDate(datestr)

regLastUploads(tempstr2,datestr,msg.node)
ulCount++
saveState()
IF topOption = LAST_UPLOADS THEN showLastUploads(eWin)
IF topOption = SESSION_STATS THEN showSessionStats(eWin)
StringF(temp,'UL: \s',msg.user)
StringF(temp1,'\d',SV_NEWMSG)
updateNode(temp,msg.location,temp1,msg.baud,msg.node)
Expand Down Expand Up @@ -3804,6 +3928,8 @@ PROC main() HANDLE

KickVersion(37) -> E-Note: requires V37

DateStamp(startTime)

updateVersion(myVerStr,myBuildStr)

FOR i:=0 TO MAX_NODES-1
Expand Down Expand Up @@ -3937,6 +4063,9 @@ PROC main() HANDLE
readStartUp(iconStartName)
IF acpError THEN Raise(ERR_STARTUP)

StringF(tempstr,'\sSystemStats',bbsPath)
startCalls:=readIntFromFile(tempstr)

loadConnectionList(connectionList)

IF commodityEnabled
Expand Down Expand Up @@ -4165,6 +4294,8 @@ PROC main() HANDLE
showLastUploads(eWin)
CASE LAST_DOWNLOADS
showLastDownloads(eWin)
CASE SYSTEM_STATS
showSystemStats(eWin)
ENDSELECT
FOR i:=0 TO MAX_NODES-1
IF(StrLen(startNode[i])>0)
Expand All @@ -4177,8 +4308,10 @@ PROC main() HANDLE
CASE GADGETUP
handleEditGadget(im,0)
CASE MENUPICK
->iconify
IF(menunum(im.code)=0) AND (itemnum(im.code)=5) THEN ZipWindow(eWin)
->quit menu item
IF(menunum(im.code)=0) AND (itemnum(im.code)=5) THEN attemptShutdown()
IF(menunum(im.code)=0) AND (itemnum(im.code)=6) THEN attemptShutdown()

IF(menunum(im.code)=1) AND (itemnum(im.code)=14)
IF FileLength(AX_SETUP_TOOL)>=0 THEN Execute(AX_SETUP_TOOL,0,0)
Expand Down
Loading

0 comments on commit df09309

Please sign in to comment.