|
Post by Carl Gundel on Apr 3, 2018 9:23:41 GMT -5
Describe the Liberty BASIC program(s) that you wrote that is so cool, or which you are very proud of. It can be a game, or a handy utility, or an application that solves a problem at work, etc.
|
|
|
Post by Mark Dunham on Apr 3, 2018 10:57:24 GMT -5
One of the best programs that I have made my brother and I are still working on. It is a level editor that lets us design levels for games. We used it to make a side scroll-er game that is working but is not yet complete. We use it to draw 32x32 pixel tiles on the screen save them to .dat files and we are able to import them into our games as levels. Screenshots of the game are below. We are adding more tiles at the moment so we can start working on an RPG game as well. I hope to do a youtube series on how to make the level editor as we call it and and how to import saved levels. The images are hosted on my dropbox account to conserve space on the forum. www.dropbox.com/s/i44qo58kau8ucfk/The%20Crust%201.png?dl=0www.dropbox.com/s/pjngldxnhqxk4fk/The%20Crust%202.png?dl=0
|
|
|
Post by Carl Gundel on Apr 4, 2018 11:05:37 GMT -5
A couple of cool programs that I wrote in Liberty BASIC:
1) A program that was used as part of a demo to the Defense Nuclear Agency back when I was contracting as part of a team for IBM and Raytheon. It was essentially a utility that reset the variables in our system each time we needed to run through the demo. This was a prototype of a system that was meant to facilitate compliance of an agreement with the former Soviet Union to disassemble and dispose of nuclear materials.
2) An application which used CNC data for circuitboards to generate CNC for electrical test fixtures. The output was editable graphically. Kind of hard to explain if you aren't familiar with circuitboard automated testing.
|
|
|
Post by Mark Dunham on Apr 5, 2018 11:10:43 GMT -5
A couple of cool programs that I wrote in Liberty BASIC: 1) A program that was used as part of a demo to the Defense Nuclear Agency back when I was contracting as part of a team for IBM and Raytheon. It was essentially a utility that reset the variables in our system each time we needed to run through the demo. This was a prototype of a system that was meant to facilitate compliance of an agreement with the former Soviet Union to disassemble and dispose of nuclear materials. 2) An application which used CNC data for circuitboards to generate CNC for electrical test fixtures. The output was editable graphically. Kind of hard to explain if you aren't familiar with circuitboard automated testing. Carl, cool programs. The company I work for makes our own PCB boards so I totally understand circuit board testing. Hundreds of pins on the test fixtures we use.
|
|
|
Post by Carl Gundel on Apr 7, 2018 12:07:36 GMT -5
Another cool program, which I didn't actually write, but I ported from another BASIC is the Tiny BASIC interpreter which reproduces pretty much the same BASIC that came with the first Radio Shack TRS-80 computer. I even wrote some blog posts explaining how to extend it with graphics. Here: basicprogramming.blogspot.com/2015/and here: basicprogramming.blogspot.com/2016/
|
|
|
Post by bluatigro on Jul 8, 2019 6:20:28 GMT -5
i realy m prowd of my genetic programming code i consider it my 'masterpiece' [ my proof that i can realy program ] and my openGL tree is special too i never had any scooling on programming that makes these even more special
|
|
|
Post by mystic on Jul 8, 2019 17:28:15 GMT -5
Three popular programs I utilize at work are...
1) A program that currently monitors 57 sites and 228 devices on our network. It plays the Enterprise red alert sound when one of the sites loses connectivity. Working on implementing email notification as well utilizing PowerShell.
2) Our management required our personnel to request their overtime through a format in email. This program allows them to choose the date, time, and type of overtime, in addition to adding a justification for the request. The program then opens their email and formats the request perfectly as upper management has requested.
3) We're currently upgrading all of our computers to Windows 10, and someone wrote a script to search AD and put all Non-Windows 10 computers into a spreadsheet. Although helpful, it showed thousands of entries for the entire country. My program reads the spreadsheet data, pulls out only my sites and computers, lists the total of machines left to upgrade, the deadline we have to get this done, and the number of machines we need to be upgrading daily to hit that deadline.
|
|
|
Post by pandawdy on Jul 20, 2019 13:03:22 GMT -5
I'm currently working on a piece of software that can send out messages over serial or UDP for programming equipment. It's not done yet but I have the most important parts worked out and functioning. It uses a .dat file. A user can select a pre defined record and send the configuration data to the equipment, and they can also write their own custom configurations.
|
|
stig
New Member
Posts: 40
|
Post by stig on Feb 5, 2022 12:24:33 GMT -5
[step3Cancel] close #dialog goto [close]
[step3Back] close #dialog goto [STEP2]
[step3Next] close #dialog goto [STEP4]
[STEP4] button #dialog.next, next$,[step4Next],UL,266,198,76,25 button #dialog.cancel, cancel$,[step4Cancel],UL,114,198,76,25 button #dialog.back, back$,[step4Back],UL,190,198,76,25
open title4$ for dialog as #dialog gosub [setfont]
print #dialog, "trapclose [step4Cancel]"
[step4wait] wait
[step4Cancel] close #dialog goto [close]
[step4Back] close #dialog goto [STEP3]
[step4Next] close #dialog goto [STEP5]
[STEP5] button #dialog.next, finish$,[step5Finish],UL,266,198,76,25 button #dialog.cancel, cancel$,[step5Cancel],UL,114,198,76,25 button #dialog.back, back$,[step5Back],UL,190,198,76,25
open title5$ for dialog as #dialog gosub [setfont]
print #dialog, "trapclose [step5Cancel]"
[step5wait] wait
[step5Cancel] close #dialog goto [close]
[step5Back] close #dialog goto [STEP4]
[step5Finish] close #dialog goto [close]
' subroutines:
[setfont] print #dialog, "font consolas 10" return
[center] UpperLeftX = DisplayWidth/2 - WindowWidth/2 UpperLeftY = DisplayHeight/2 - WindowHeight/2 return
[initialize] nomainwin
WindowWidth = 360: WindowHeight = 260
nl$ = chr$(13)
cancel$="Avslutt": back$="<< Tilbake" next$="Neste >>": finish$="Fullfør" title1$="Step1": title2$="Step2" title3$="Step3": title4$="Step4" title5$="Step5": title5$="Step5" return
[close] end
|
|
|
Post by Carl Gundel on Feb 5, 2022 13:10:39 GMT -5
[step3Cancel] close #dialog goto [close]
[step3Back] close #dialog goto [STEP2]
[step3Next] close #dialog goto [STEP4]
[STEP4] button #dialog.next, next$,[step4Next],UL,266,198,76,25 button #dialog.cancel, cancel$,[step4Cancel],UL,114,198,76,25 button #dialog.back, back$,[step4Back],UL,190,198,76,25
open title4$ for dialog as #dialog gosub [setfont]
print #dialog, "trapclose [step4Cancel]"
[step4wait] wait
[step4Cancel] close #dialog goto [close]
[step4Back] close #dialog goto [STEP3]
[step4Next] close #dialog goto [STEP5]
[STEP5] button #dialog.next, finish$,[step5Finish],UL,266,198,76,25 button #dialog.cancel, cancel$,[step5Cancel],UL,114,198,76,25 button #dialog.back, back$,[step5Back],UL,190,198,76,25
open title5$ for dialog as #dialog gosub [setfont]
print #dialog, "trapclose [step5Cancel]"
[step5wait] wait
[step5Cancel] close #dialog goto [close]
[step5Back] close #dialog goto [STEP4]
[step5Finish] close #dialog goto [close]
' subroutines:
[setfont] print #dialog, "font consolas 10" return
UpperLeftX = DisplayWidth/2 - WindowWidth/2 UpperLeftY = DisplayHeight/2 - WindowHeight/2 return
[initialize] nomainwin
WindowWidth = 360: WindowHeight = 260
nl$ = chr$(13)
cancel$="Avslutt": back$="<< Tilbake" next$="Neste >>": finish$="Fullfør" title1$="Step1": title2$="Step2" title3$="Step3": title4$="Step4" title5$="Step5": title5$="Step5" return
[close] end
Hey Stig, This does not look like a complete program. What is it supposed to do?
|
|
|
Post by Marco Kurvers on Dec 13, 2023 4:52:57 GMT -5
hey Carl, I have made modules. A Filemanager module that uses the array to manage files (some also call it the info$() array) and a nice Canvas module to make it easier to use graphical string commands. Maybe the Canvas module in LB5 isn't needed anymore, but I think I'll make one for it. A Canvas library. Here is the Filemanager module. I make more modules and templates. More about this see my forum: makurvers.freeforums.net/Greetings
|
|
|
Post by Marco Kurvers on Dec 13, 2023 4:53:42 GMT -5
'The File module with a demo. Save the module without the demo.
'Insert the module in an another program.
'Do not copy and paste the module, but only insert this.
'==============================================================
dim filemanager$(0, 0)
path$ = "" 'use your path here
if not(File.FillInfo(path$)) then
if filemanager$(0, 3) = "" then
print "Directory not found."
end
end if
end if
print "Number of files: "; File.FilesFound()
print "File Tabstrip1.lbf ";
if File.Exist("Tabstrip1.lbf") then
print "exist."
else
print "does not exist."
end if
print "Subdirectory's: "; File.SubDirsFound()
print "Filename 10: "; File.Name$(10)
print File.DirPath$()
print File.FullPath$()
print File.SubDir$()
'=============================================================
function File.FillInfo(pathSpec$)
files pathSpec$, filemanager$()
File.FillInfo = val(filemanager$(0, 0)) > 0
end function
function File.Exist(file$)
'files path$, file$, filemanager$()
'File.Exist = val(filemanager$(0, 0)) > 0
found = 0
i = 1
while i <= val(filemanager$(0, 0)) and not(found)
found = filemanager$(i, 0) = file$
i = i + 1
wend
File.Exist = found
end function
function File.FilesFound()
files$ = filemanager$(0, 0)
File.FilesFound = val(files$)
end function
function File.SubDirsFound()
subDirs$ = filemanager$(0, 1)
File.SubDirsFound = val(subDirs$)
end function
function File.DriveSpec$()
File.DriveSpec$ = filemanager$(0, 2)
end function
function File.DirPath$()
File.DirPath$ = filemanager$(0, 3)
end function
function File.Name$(fileNr)
if fileNr <= File.FilesFound() then
File.Name$ = filemanager$(fileNr, 0)
else
File.Name$ = "Filenumber index out of range!"
end if
end function
function File.Size(fileNr)
fileSize = val(filemanager$(fileNr, 1))
File.Size = fileSize
end function
function File.DateTime$(fileNr)
File.DateTime$ = filemanager$(fileNr, 2)
end function
function File.Attribute(fileNr)
File.Attribute = val(filemanager$(fileNr, 3))
end function
function File.FullPath$()
count = val(filemanager$(0, 0))
File.FullPath$ = filemanager$(count + 1, 0)
end function
function File.SubDir$()
count = val(filemanager$(0, 0))
File.SubDir$ = filemanager$(count + 1, 1)
end function
|
|
|
Post by atomose on Dec 13, 2023 17:16:16 GMT -5
|
|
|
Post by Brandon Parker on Dec 13, 2023 22:17:40 GMT -5
I have a few programs that I am fond of... 1. ScreenShot Taker - Automatically takes screenshots of powerplant HMI screen running Cimplicity HMI software. Automatically detected specific alarms and would take a full set of screenshots, automatically took weekly screenshots of each HMI displays, allowed the user to manually initiate screenshots, and allowed the user to view screenshots before transferring them to the company network for storage. The empty TextBoxes shown below would be filled in with information. {:0) Brandon Parker
|
|
|
Post by Brandon Parker on Dec 13, 2023 22:18:53 GMT -5
2. Andon Light Wizard - Interactive dashboard of powerplants on a map with too many features to mention. It has a 58-page manual that does not even cover some of the Admin level functionality. This thing has many different windows, interaction with GoToMyPC, PI Database from OSISoft, SQLite, email functionality including automatic notification of plant status changes, trending, alarming, and a full-fledged Events Manager where automatic entries are made by the program as well as manual entries by users, among other fantastic features. {:0) Brandon Parker
|
|