Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
The QB64 IDE shell
#1
Find attached the QB64 shell program.

Installed in this package is Qb64shell.bas which is the source..

The file contents are as follows:

Code: (Select All)
Information file for:

  QB64SHELL - command line prompt shell windows program for QB64

Purpose:

  Provides a low level DOS-like command shell program similar to the one
  used by Windows CMD.EXE prompt. Tries to improve on most DOS functions,
  such as: DIR, COPY, DELETE, MKDIR, etc. Also supports standard I/O
  between commands and a full screen editor.

Installation:

  Copy the QB64shell archive to C:\QB64 and extract contents there.

  Load/Start or make .EXE then enter the shell at the command line.

  Since QB64shell starts with user profiles activated, enter SYSOP
  and PASSWORD to logon.

Files used:

  QB64shell attempts to create the folder QB64shell in the \program files
  group. The files in the folder are:

    filemenu.cfg  -  config data for the file menu box
    profiles.dat  -  user profiles data file
    qb64shell.cfg  -  current state of QB64shell after exit

  filename.cfg is written the first time QB64shell starts.

  profiles.dat is written with SYSOP the first time QB64shell starts.

  qb64shell.cfg is written every time the QB64shell exits and contains
  such variables as the windows coordinates, statusbar setting, etc.

  Any of these files may be safely deleted.

Compiling QB64shell:

  The following files are required to make the QB64shell.exe program:

    QB64shell.bas  --  main QB64shell code
    QB64shell.inc  --  the QB64shell include file
    QB64shell.ico  --  the QB64shell icon file
    QB64shell.new  --  new version list file
    QB64shell.txt  --  readme file
    Mem.h        --  memory and cpu usage include file

    THX_Sound_Effect.mp3  -  intro sound
      (only plays the first time QB64shell starts)

Author notes:

  Program is published 11/30/2022 and is public domain BASIC source code.

  Written and maintained by Erik Jon Oredson who can be reached at:

    eoredson@gmail.com

-end-

The QBshell commands are:
Code: (Select All)
QB64shell commands:

Basic commands:
  CLS    CPU      KEY      MEM      VER      TOGGLE
  CLOCK  DATE      TIME      MENU      HELP    EDIT
  DEBUG  COLOR    PROMPT    STATUS    SYSTEM  QUIT
  ASCII  HEXCHART  HEXCALC  REDRAW    WHATIS  COUNT
  MONITOR PROFILES  SCREENSAVER

Filters:  FIND      MORE      SORT      TYPE

Filename commands:
  COMPFILE COPY    DELETE    DIR      MKFILE    RENAME
  ENCRYPT  DECRYPT  GETATTR  SETATTR  LISTFILE  TOUCH

Directory commands: COMPDIR  LISTDIR  PUSHD    POPD
  TREE    TREEDEL  TOUCHDIR  CHDIR    MKDIR    RMDIR

Volume commands:
  DRIVES  LABEL    VOL      LISTDRIVE

The version history is:
Code: (Select All)
QB64shell - command line prompt shell windows program for QB64

  First release:

    Version v.0001 Release r.001
      Build 11-21-2017.01

  New release:
    Build 11-24-2017.01
      Edits TREE to reflect TREEDIR

  New release:
    Build 11-29-2017.01
      Copyit v9.0a r4.0a updates:
        Adds quit option to disk full error.
        Now copies ambiguated unicode filenames.
        Fixes switches in moreprompt.

  New release:
    Build 12-02-2017.01
      Copyit v9.0a r5.0a updates:
        Now preserves unicode filenames.
        Now also preserves unicode directories.
        Adds break option to break trap.

  New release:
    Build 12-05-2017.01
      Adds Unicode to rename.

  New release:
    Build 12-15-2017.01
      Fixes recursive loop in Stree.
      Adds more Unicode to recursive searches.
      Repairs Stdout in Getattr.

  New release:
    Build 12-16-2017.01
      Fixes missing toolbar.
      Adds features to ScrnEdit:
        Adds Control-Break during fileload,
        Adds percent file loaded in title.
      Forces alternate filename in redirection.

  New release:
    Build 12-30-2017.01
      Adds switches to detect compressed/encrypted files.

  New release:
    Build 01-01-2018.01
      Modifies attribute to _unsigned long.

  New release:
    Build 04-20-2022.01
      Fixes syntax errors in GetDateTime and FormatX$

  New release:
    Build 12-10-2022.01
      Adds dialog box to file menu.
      Removes file menu box.

  New release:
    Build 12-17-2022.01
      Edits SendMessage for screensaver.
      Removes LocateF, PrintF, ColorF, ColorF2.
      Adds (C)ount to Sub Menu.
      Fixes problem with displaytoolbar in dropdown file menu.

  New release:
    Build 12-20-2022.01
      Write critical error to error log file.
      Adds some userprofile reserved values.
      Add help copy stats.
      Fixes recursive clock$ function.

  New release:
    Build 12-24-2022.01
      Removes 150 lines of unused code.
      Edits prompt $W[<exp$>] parsing.

  New release:
    Build 02-20-2023.01
      Adds parameter to GetOpenFileName$
      Adds keypad-5 trap.

  New release: (qbshell8.zip)
    Build 03-20-2023.01
      Adds Serial and Fattype displays to volume commands.
      Fixes setting/displaying volume in Sub Label.
      Adds /A, /B, /1:d to Sub Label.
      Wrote documentation files:
        QB64shell.doc and QB64shell.cmd

  New release: (qbshell9.zip)
    Build 03-28-2023.01
      Modifies titlebar icon.

-end-


[Image: qbshell.png]


[Image: qbshell2.png]

Code: (Select All)
  (QbshellA.zip);
  New release:
    Build 04-28-2023.01
      Fixes Inkeyx$ function.
      Updates ReadConfig and WriteConfig removing GetConfigFilename$
      Replaces CreateFile and CreateFileA library function calls with
        custom Sub CreateFileA function.
      Removes call to GrabURL.
      Moves _Limit calls to Function Inkeyx$
      Adds Inkeyz$ and Keypad-5 centering to all boxes.

  New release:
    Build 05-04-2023.01
      Removes _DirExists when directory semantics flag could be used
        with Sub CreateFileA instead.
      Removes all f$=keyboardline$ and g$=keyboardline$ when using
        dialog box instead.
      Adds more keyboard scancodes to Sub HexCalc.

  New release:
    Build 05-05-2023.01
      Adds chdir to Sub NewDir to store in DriveTable.
      Fixes SwitchDrive with C: declared without path.

  New release:
    Build 05-15-2023.01
      Edits critical error trap.
      Adds "debug errorlog" to display error log file.
      Fixes blank line when <down> is at end of history array.

  New release:
    Build 05-20-2023.01
      Fixes history array when up/down selected.

  New release: (qbshellb)
    Build 05-23-2023.01
      Adds up/down scancodes to some message boxes.

  New release: (qbshellc)
    Build 05-26-2023.01
      Adds WhatisBox to enter equations.
      Adds CheckAlarms timer trap and AlarmMenu.
        Adds KeyboardLine$ function support for AlarmMenu.

  New release: (qbshelld)
    Build 06-03-2023.01
      Adds Table command to list drivetable/netpathtable.
        Adds search string option to Table command.
        (may contain ? and * characters).
        Adjusts NetPathHistory in KeyboardLine$

  New release: (qbshelle)
    Build 06-20-2023.01
      Fixes problem when started from netpath/cdrom.
      Adds filename entry to GrabURL in debug.
      Fixes problem when started from netpath.

  New release: (qbshellf)
    Build 07-01-2023.01
      Fixes retracting multidots in CD/RD/MD.
      Fixes possible cascade in error.routine trap.

  New release: (qbshellg)
    Build 07-07-2023.01
      Remove Cls from GetOpenFilename$
      Adds percent display in VerifyFiles2.
      Adds /F"file" and /G"file" to compfile.
      Adds /F"path" and /G"path" to compdir.
      Fixes some display in compdir.

  New release: (qbshellh)
    Build 07-15-2023.01
      Adds more titlebar display in Compfile and Conpdir.
      Adds MouseWheel and WheelReverse to all 16 boxes.
      Adds <test> <function> to DebugFunc:
      Adds $X and $Z and $A[<n>] to DisplayPrompt.
      Adds "debug mouse" to test mouse functions.
      Adds ViewFile function to simple array.
      Fixes attribute assignment in ListFiles.

  New release: (qbshellh)
    Build 07-20-2023.01
      Converts sound effect file to 8-bit stored as 88KB.
        Compresses qbshellh.zip from 880K to 330K.
      Fixes Strip.Blanks in More function.

  New release: (qbshelli)
    Build 08-03-2023.01
      Fixes [Removable] drive in Sub ListDrives.
        Adds MediaExists in Sub FreeSpace and Sub TotalSpace.
      Improves drive display in Volume in Sub Menu.

  New release: (qbshellj)
    Build 08-25-2023.01
      Fixes display in Sub FindY during streaming.
      Now allows multiple filenames in ListFile.
      Tweaks some monitorbox function calls.

New release: (qbshellk)
  Build 09-20-2023.01
    Replaced call to Whereis with Stree.
    Retools Sub EditProfiles.
      Fixes AddProfile for new usernames.
      Adds (I)nit to Sub EditProfiles.
    Adds MessageBox to ViewFileInfo.
    Adds double bar to MessageBox.
    Edits critical error trap with System selection.
    Adds TeeFunction to redirect Stdout.

  New release: (qbshelll)
    Build 10-10-2023.01
      Adds ReadConfig during edit config.
      Modifies Sub Menu.
        Adds (Z)viewfile to Files.
        Adds (Y)randomize volume labels in Volume.
        Adds (Z)ap volume labels in Volume.
      Moves _ControlChr off to top of program.
      Fixes possible cascade error in Sub Copyit_DisplayError.
      Adds more debug functions.
      Adds Const CopyitConfig$ = "COPYIT.CFG"
      Edits date/time override using SetLocalTime.
      Adds MonitorSuffix for k/m/g/t in monitor display.
        And adds to config file in Qb64shell.cfg and to
        user profiles in Profiles.dat
      Replaces all Color statements with constants.
      Replaces all Chr$(34) with Quote constant.
      Adds Const TabStop=8 to Keyboardline$ and Scrnedit.
      Adds ctrl-k appendfile and ctrl-l insertfile to Sub ScrnEdit.
      Fixes SearchReplace in Sub ScrnEdit.
      Now allows realtime display prompt in Function KeyBoardLine$

  New release: (qbshellm)
    Build 01-10-2024.01
      Adds Search to commands and SearchFiles.
      Adds F4 AppendFile and F5 InsertFile to ScrnEdit.
      Fixes array in insertfile in Sub ScrnEdit.
      Adds VersionInfo settings to QB64shell.inc
      Adds '-/+', 'a-z', 'A-Z', '0-9' to scan filename in SearchFiles.
      Adds F3 to search filename in SearchFile. And Ctrl-F3 to repeat search.
      Extends Search command with filespec parameter.

  New release: (qbshelln)
    Build 03-10-2024.01
      Replaces LoadIcon with Icon2BMP.
      Adds F4 and F5 to SortOrder for Dirs and Files in SearchFiles.
      Adds F6 to recursively call SearchFiles.
      Adds dirspec prompt to SearchFiles.
      Replaces all Kill with DeleteFileA.
      Replaces Name AS with MoveFile.
      Replaces MkDir with CreateDirectory.
      Rewrote LoadDrives, LoadFiles, and SortFiles in SearchFiles.
      Adds missing DisplayStatusLine function in SearchFiles.
      Adds missing PercentDisplay function in SearchFiles and ScrnEdit2.
      Now checks drive exists/added/removed realtime in SearchFiles.
      Now parses command line switch to append slash in several functions.

  New release: (qbshello)
    Build 05-20-2024.01
      More mods for Sub SearchFiles:
        Enables support for Midi files.
        Adds Sub VerifyPlay function to check sound filename extension.
        Adds Play Pause and Play Resume to toggle playmode.
        Adds Sub VerifyFile to check system file.
        Adds Sub VerifyFile2 to check library file.
        Adds Sub VerifyFile3 to check source file.
        Adds Sub VerifyFile4 to check document file.
        Adds Sub VerifyFile5 to check compressed file.
        Adds Sub VerifyFile6 to check video file.
        Adds Sub VerifyFile7 to check image file.
        Adds Sub VerifyFile8 to check web file.
        Adds Sub VerifyFile9 to check database file.
        Adds PlayFile to play sound files.
          And Ctrl-P = pause/resume soundfile.
          And Ctrl-Q = set soundfile plus 10 seconds.
          And Ctrl-R = set soundfile minus 10 seconds.
          And Ctrl-X = exit with soundfile remaining.
          And Ctrl-Y = increase sound volume.
          And Ctrl-Z = decrease sound volume.
      Adds left/right to MessageBox and HelpBox.
      Adds Quote constant assignment.
      Fixes _ControlChr in backspace display.
      Fixes GrabUrl with read-only bit set in download file.
      Fixes Hex Screen.Print and File.Print in Sub ScrnEdit.
      Adds _SelectFolderDialog$ for directory options in Sub Menu.
      Prevents WhatisBox from hanging by adding a special error trap.
        Now displays <token error> and <quote error> in WhatError trap.
        Traps exponent dual binary parsing error in Whatis numeric processor.

  New release: (qbshellp)
    Build 10-10-2024.01
      Fixes date/time settings when hangs.
        Affects DateFunc and TimeFunc.
      Edits Escape function in LineInput$

-end-

QB64shell.bas is now 53,607 lines.


Attached Files
.zip   QBSHELLP.ZIP (Size: 403.09 KB / Downloads: 4)
Reply
#2
Thumbs Up 
Hi Erik. Thank you for this program and for the Erik's Dungeon.
Reply
#3
I'll second that!
Reply
#4
I'm sorry to go off-topic a bit about which program. I need Turbo Assembler to be able to create "Erik's Dungeon". Forgot about that while going into Windows to use QB64PE 32-bit. Sadly the OBJ files from that program won't work in this case. The "gas" that comes with MinGW would inevitably require changes to your assembly source code. Maybe we might have to ask you to create the EXE file for MS-DOS, and provide it so we could run it on DOSBOX or something like that.

Ummmm... never mind. Made this post and then noticed the links were removed except for QB64 Shell.
Reply
#5
(12-07-2022, 03:11 AM)mnrvovrfc Wrote: I'm sorry to go off-topic a bit about which program. I need Turbo Assembler to be able to create "Erik's Dungeon". Forgot about that while going into Windows to use QB64PE 32-bit. Sadly the OBJ files from that program won't work in this case. The "gas" that comes with MinGW would inevitably require changes to your assembly source code. Maybe we might have to ask you to create the EXE file for MS-DOS, and provide it so we could run it on DOSBOX or something like that.

Ummmm... never mind. Made this post and then noticed the links were removed except for QB64 Shell.

The link to The Dungeon still remains at:

https://bit.ly/EriksDungeon

For Dngeon13.zip the following is:

   Note: Tasm 4.1 can be found on vetusware

   The Dungeon contains assembly to trap ctrl-break and can be removed from the source by deleting Call Setint/Call Restint.

   This program and source are completely 16-bit and won't load in QB64 because it contains arrays in UDTs..

For Dungeon_v12_QB64.zip it contains no assembly.

Attached is:

   Dngeon13.zip for VB10.
   Dungeon_v12_QB64.zip for QB64.


Attached Files
.zip   DUNGEON_v12_QB64.zip (Size: 354.78 KB / Downloads: 52)
.zip   DNGEON13.ZIP (Size: 306.9 KB / Downloads: 14)
Reply
#6
(12-01-2022, 03:56 PM)Pete Wrote: I'll second that!

When I said I replaced the file menu box with a dialog box I am serious:

The file menu box never worked and after installing 45 lines of dialog box it literally replaced 6,000 lines of code
including all references to and from the file menu box.

Thus there were 150 lines of leftover unused code to delete..

Erik.
Reply




Users browsing this thread: 1 Guest(s)