aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey Armstrong <jeff@approximatrix.com>2024-11-14 14:57:26 -0500
committerJeffrey Armstrong <jeff@approximatrix.com>2024-11-14 14:57:26 -0500
commit4075a189f237bf9c5b223e512d4c0eaf24ca0cef (patch)
tree6dd0be5d501797726ad330f7cd64c55a8cdba272
parent7cc7ad98394decfa32779e00e7066e5f67c14712 (diff)
downloadGWFetch-4075a189f237bf9c5b223e512d4c0eaf24ca0cef.tar.gz
GWFetch-4075a189f237bf9c5b223e512d4c0eaf24ca0cef.zip
The machine type is now guessed using video memory detection on the bow or the model number from bios on IBMs.
-rw-r--r--gwfetch.bas60
1 files changed, 53 insertions, 7 deletions
diff --git a/gwfetch.bas b/gwfetch.bas
index fd22767..196f4c7 100644
--- a/gwfetch.bas
+++ b/gwfetch.bas
@@ -1,6 +1,10 @@
10 REM Customization!
-20 COMPNAME$ = ""
+19 REM Maybe you want to name the computer?
+20 COMPNAME$ = ENVIRON$("HOSTNAME")
+28 REM Uptime can be shown, but is meaningless if the system has a clock
+29 REM battery or the time has been set
+30 SHOWUPTIME = 1
200 PRINT "Working..."
210 TMPFILE$ = "TEST.TMP"
@@ -13,6 +17,9 @@
270 REM CPU Detection
280 GOSUB 12000:GOSUB 12300
+290 REM Get a machine name
+300 GOSUB 14000
+
500 REM Just produce an MSDOS logo for now
510 DIM LOGO$(25)
520 GOSUB 20000
@@ -27,12 +34,20 @@
1035 R = R + 1
1040 LOCATE R,C:PRINT STRING$(LEN(COMPNAME$),"-");
1095 R = R + 1
-1100 LOCATE R,C:PRINT "Shell: ";INTERP$;
-1102 IF LEN(VERSION$) > 0 THEN PRINT " ";VERSION$;
-1105 R = R + 1
-1110 LOCATE R,C:PRINT "CPU: ";CPU$;
-1115 R = R + 1
-1120 LOCATE R,C:PRINT "Memory: ";MEMFREE$;" / ";MEMTOTAL$;
+1100 REM Normal output
+1180 IF LEN(MACHINE$) = 0 THEN GOTO 1200
+1190 LOCATE R,C:PRINT "Host: ";MACHINE$;
+1195 R = R + 1
+1199 REM Uptime really only makes sense if the time was never set
+1200 IF SHOWUPTIME <> 1 THEN GOTO 1220
+1201 LOCATE R,C:PRINT "Uptime Today: ";:GOSUB 13000
+1205 R = R + 1
+1220 LOCATE R,C:PRINT "Shell: ";INTERP$;
+1222 IF LEN(VERSION$) > 0 THEN PRINT " ";VERSION$;
+1225 R = R + 1
+1230 LOCATE R,C:PRINT "CPU: ";CPU$;
+1235 R = R + 1
+1240 LOCATE R,C:PRINT "Memory: ";MEMFREE$;" / ";MEMTOTAL$;
1998 LOCATE ROWS, 41:PRINT "Press any key...";
1999 WHILE LEN(INKEY$) = 0:WEND
@@ -227,6 +242,37 @@
12380 CPU$ = MFG$+" "+CPUNAME$(CPUID%)
12390 RETURN
+13000 REM Create an Uptime string
+13010 HOURS = INT(TIMER / 3600)
+13020 MINUTES = INT(TIMER / 60) MOD 60
+13040 IF HOURS > 0 THEN PRINT HOURS;" hours ";
+13050 PRINT MINUTES;" minutes";
+13060 RETURN
+
+14000 REM Guess machine
+14010 REM output: MACHINE$
+14015 MACHID = 0
+14020 REM Check for Rainbow video memory first
+14030 DEF SEG=&HEE00
+14040 IF PEEK(0) = &HFF AND PEEK(1) = 3 AND PEEK(3) = &HFF AND PEEK(4) = 18 THEN MACHID=100
+14050 DEF SEG
+14099 IF MACHID > 0 THEN GOTO 14200
+14100 REM Detect using the machine id from the IBM bios
+14110 DEF SEG=&HF000
+14120 MACHID = PEEK(&HFFFE)
+14130 DEF SEG
+14200 REM Parse Machine ID
+14210 IF MACHID = 100 THEN MACHINE$="Digital Rainbow 100":GOTO 14299
+14220 IBMID = MACHID - &HF8
+14230 DIM IBMMODELS$(7)
+14240 IBMMODELS$(0) = "PS/2 Model 80":IBMMODELS$(1) = "Convertible PC":IBMMODELS$(2) = "PS/2 Model 30"
+14241 IBMMODELS$(3) = "PC/XT":IBMMODELS$(4) = "PC/AT or Compatible":IBMMODELS$(5) = "PCjr"::
+14242 IBMMODELS$(6) = "PC/XT":IBMMODELS$(7) = "PC"
+14250 IF IBMID >= 0 THEN MACHINE$ = "IBM "+IBMMODELS$(IBMID):GOTO 14299
+14260 IF MACHID = 154 OR MACHID = 46 THEN MACHINE$ = "Compaq PC":GOTO 14299
+14270 IF MACHID = 49 THEN MACHINE$ = "Sperry PC":GOTO 14299
+14299 RETURN
+
20000 REM MS-DOS Logo
20010 LOGO$(1) = " "
20011 LOGO$(2) = " &&&&&& &&&&&& &&&&&&&&"