home *** CD-ROM | disk | FTP | other *** search
/ RBBS in a Box Volume 1 #3.1 / RBBSIABOX31.cdr / zzap / xsystat.bas < prev    next >
BASIC Source File  |  1984-05-27  |  4KB  |  86 lines

  1. 10 REM Program by; Crisp
  2. 20 REM refrence; "CONFIG.BAS" by; Peter G. Wohlmut
  3. 30 REM           "POKEPEEK.DOC"   auther unknown
  4. 40 REM ***** see "I/O ADDRESS MAP" in the technical reference manual *****
  5. 50 CLS:KEY OFF:DEF SEG:POKE &H5C,25
  6. 60 TEMP=INP(&H61)
  7. 70 REM ***** turn off keyboard and read switches
  8. 80 OUT &H61,&HC8
  9. 90 SW1=INP(&H60)
  10. 100 SW2H=(INP(&H62) AND &HF)
  11. 110 REM ***** turn keyboard back on
  12. 120 OUT &H61,TEMP
  13. 130 SW2L=(INP(&H62) AND &HF)
  14. 140 SW2=16*SW2H+SW2L
  15. 150 REM ***** draw and label switches
  16. 160 LOCATE 1,12:PRINT "       SW1                 SW2       "
  17. 170 LOCATE 2,12:PRINT "┌─╥─╥─╥─╥─╥─╥─╥─┐   ┌─╥─╥─╥─╥─╥─╥─╥─┐"
  18. 180 LOCATE 3,12:PRINT "│ ║ ║ ║ ║ ║ ║ ║ │on │ ║ ║ ║ ║ ║ ║ ║ │"
  19. 190 LOCATE 4,12:PRINT "│ ║ ║ ║ ║ ║ ║ ║ │   │ ║ ║ ║ ║ ║ ║ ║ │"
  20. 200 LOCATE 5,12:PRINT "└─╨─╨─╨─╨─╨─╨─╨─┘   └─╨─╨─╨─╨─╨─╨─╨─┘"
  21. 210 LOCATE 6,12:PRINT " 1 2 3 4 5 6 7 8     1 2 3 4 5 6 7 8 "
  22. 220 LOCATE 3,31:PRINT CHR$(24)
  23. 230 REM ***** draw switch status
  24. 240 FOR I=0 TO 7
  25. 250 IF (SW1 AND 2^I)/2^I=1 THEN 270
  26. 260 LOCATE 3,I*2+13:PRINT "▀":GOTO 280
  27. 270 LOCATE 4,I*2+13:PRINT "▄"
  28. 280 IF (SW2 AND 2^I)/2^I=1 THEN 300
  29. 290 LOCATE 3,I*2+33:PRINT "▀":GOTO 310
  30. 300 LOCATE 4,I*2+33:PRINT "▄"
  31. 310 NEXT I
  32. 320 REM ***** find status in ram
  33. 330 DEF SEG=&H40
  34. 340 REM ***** memory size
  35. 350 TOTMEM=256*PEEK(&H14)+PEEK(&H13)
  36. 360 IOMEM=256*PEEK(&H16)+PEEK(&H15)
  37. 370 REM ***** equipment flags (bits 1,8,13 not used)
  38. 380 EQUIPFLAG=256*PEEK(&H11)+PEEK(&H10)
  39. 390 SYSBRDMEM=((EQUIPFLAG AND 2^3+2^2)/2^2+1)*16
  40. 400 IF (EQUIPFLAG AND 2^0)=0 THEN DISKS=0:GOTO 420
  41. 410 DISKS=(EQUIPFLAG AND 2^7+2^6)/2^6+1
  42. 420 VI=(EQUIPFLAG AND 2^5+2^4)/2^4
  43. 430 IF VI=0 THEN VIDINIT$="No graphics card set"
  44. 440 IF VI=1 THEN VIDINIT$="40x25 Color card"
  45. 450 IF VI=2 THEN VIDINIT$="80x25 Color card"
  46. 460 IF VI=3 THEN VIDINIT$="80x25 Mono card"
  47. 470 SERIAL=(EQUIPFLAG AND 2^11+2^10+2^9)/2^9
  48. 480 IF (EQUIPFLAG AND 2^12)=2^12 THEN GAME$="YES" ELSE GAME$="NO"
  49. 490 PARALLEL=(EQUIPFLAG AND &HC000)/2^14
  50. 500 REM ***** print status from ram
  51. 510 LOCATE 8,19:PRINT "Status according to RAM":PRINT
  52. 520 PRINT "Total Memory",TOTMEM;"Kbytes";TAB(40);"Disk drives",DISKS
  53. 530 PRINT "I/O Memory",IOMEM;"Kbytes";TAB(40);"Parallel ports",PARALLEL
  54. 540 PRINT "Sys Brd Mem",SYSBRDMEM;"Kbytes";TAB(40);"Serial ports",SERIAL
  55. 550 PRINT "Video def",VIDINIT$;TAB(40);"Game adapter",GAME$
  56. 560 REM ***** find keyboard status
  57. 570 INSERTTGL=(PEEK(&H17) AND &H80)/&H80
  58. 580 CAPLCKTGL=(PEEK(&H17) AND &H40)/&H40
  59. 590 NUMLCKTGL=(PEEK(&H17) AND &H20)/&H20
  60. 600 SCRLCKTGL=(PEEK(&H17) AND &H10)/&H10
  61. 610 ALTERN=(PEEK(&H17) AND &H8)/&H8
  62. 620 CONTRL=(PEEK(&H17) AND &H4)/&H4
  63. 630 LFTSFT=(PEEK(&H17) AND &H2)/&H2
  64. 640 RGTSFT=(PEEK(&H17) AND &H1)/&H1
  65. 650 REM ***** print keyboard status
  66. 660 LOCATE 15,1
  67. 670 PRINT "Insert mode",INSERTTGL;TAB(40);"Alternate",ALTERN
  68. 680 PRINT "Caps lock",CAPLCKTGL;TAB(40);"Control",CONTRL
  69. 690 PRINT "Number lock",NUMLCKTGL;TAB(40);"Left shift",LFTSFT
  70. 700 PRINT "Scroll lock",SCRLCKTGL;TAB(40);"Right shift",RGTSFT
  71. 710 PRINT:PRINT "press ESC to end"
  72. 720 IF INKEY$=CHR$(27) THEN SYSTEM ELSE 560
  73. 730 REM ***** RS232 and Printer address's
  74. 740 FOR I=1 TO 4:J=I*2-1
  75. 750 SERIAL$(I)=HEX$(PEEK(J))+HEX$(PEEK(J-1))
  76. 760 PRINTR$(I)=HEX$(PEEK(J+8))+HEX$(PEEK(J+7))
  77. 770 NEXT I
  78. 780 REM ***** current video mode
  79. 790 CV=PEEK(&H49)
  80. 800 IF CV=0 THEN CV$="40x25 BW"
  81. 810 IF CV=1 THEN CV$="40x25 Color"
  82. 820 IF CV=2 THEN CV$="80x25 BW"
  83. 830 IF CV=3 THEN CV$="80x25 Color"
  84. 840 IF CV=4 THEN CV$="320x200 Color"
  85. 850 IF CV=5 THEN CV$="320x200 BW"
  86.