The MASM Forum

Miscellaneous => The Orphanage => Topic started by: TouEnMasm on August 24, 2020, 04:12:42 PM

Title: QBASIC the return of the ancestor of all basics
Post by: TouEnMasm on August 24, 2020, 04:12:42 PM
Hello,
Perhaps did you remember Qbasic who can be found on 8086 machine with MSDOS as system ?.
Surprise,I found a site who resurrect him with videos,tutorials and all is needed to made it actual.
For fun,
https://www.bing.com/videos/search?q=qbasic&&view=detail&mid=05F1C69D93AFB409F56805F1C69D93AFB409F568&rvsmid=000DE8AD119BBD421FBC000DE8AD119BBD421FBC&FORM=VDQVAP (https://www.bing.com/videos/search?q=qbasic&&view=detail&mid=05F1C69D93AFB409F56805F1C69D93AFB409F568&rvsmid=000DE8AD119BBD421FBC000DE8AD119BBD421FBC&FORM=VDQVAP)
here the download
https://www.qbasic.net/en/qbasic-downloads/DOS/Windows-Solutions.htm (https://www.qbasic.net/en/qbasic-downloads/DOS/Windows-Solutions.htm)

Title: Re: QBASIC the return of the ancestor of all basics
Post by: Vortex on August 24, 2020, 05:32:38 PM
Hi TouEnMasm,

That is an old DOS compiler which cannot be run on 64-bit systems wihout the support of an emulator or a virtualization application. Why not to use FreeBasic?

QuoteWhen used in its "QB" language mode, FreeBASIC provides a high level of support for programs written for QuickBASIC. Many programs written for QuickBASIC will compile and run in this mode with no changes needed. However, for compilation in the FreeBASIC default language mode, most substantial programs will require changes.

QuoteFreeBASIC is a free/open source (GPL), BASIC compiler for Microsoft Windows, DOS and Linux.

https://www.freebasic.net/
Title: Re: QBASIC the return of the ancestor of all basics
Post by: daydreamer on September 16, 2020, 09:51:58 PM
anyone tried the good old machine code in .data statements in QBASIC ?
might be easier to use an assembler to make a tiny .COM file and change QBASIC read/data statements to open and read in .COM file?
Title: Re: QBASIC the return of the ancestor of all basics
Post by: Vortex on September 17, 2020, 01:57:22 AM
Hi daydreamer,

The 64-bit versions of Windows does not provide native 16-bit application support. You will a need a tool like MS-DOS Player to do your tests.
Title: Re: QBASIC the return of the ancestor of all basics
Post by: TouEnMasm on September 18, 2020, 03:09:02 AM
Work with:https://dosbox.en.lo4d.com/windows (https://dosbox.en.lo4d.com/windows)
and this
https://www.qbasic.net/en/qbasic-downloads/DOS/Windows-Solutions.htm (https://www.qbasic.net/en/qbasic-downloads/DOS/Windows-Solutions.htm)
dosbox is not really easy to install.
The good way is to keep an eye on the path where is the dosbox-0.74-3.conf.
Modify it is easy with the notepad,there is help in it.
The path would be like that:
C:\Users\UserName\AppData\Local\DOSBox\dosbox-0.74-3.conf         
modify those lines at the bottom of the file
Quote
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
MOUNT C H:\dosbox\work
C:\



Title: Re: QBASIC the return of the ancestor of all basics
Post by: daydreamer on September 19, 2020, 02:14:40 AM
Quote from: TouEnMasm on September 18, 2020, 03:09:02 AM
Work with:https://dosbox.en.lo4d.com/windows (https://dosbox.en.lo4d.com/windows)
and this
https://www.qbasic.net/en/qbasic-downloads/DOS/Windows-Solutions.htm (https://www.qbasic.net/en/qbasic-downloads/DOS/Windows-Solutions.htm)
dosbox is not really easy to install.
The good way is to keep an eye on the path where is the dosbox-0.74-3.conf.
Modify it is easy with the notepad,there is help in it.
The path would be like that:
C:\Users\UserName\AppData\Local\DOSBox\dosbox-0.74-3.conf         
modify those lines at the bottom of the file
Quote
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
MOUNT C H:\dosbox\work
C:\
if you going to use it for qbasic,I seen some package old 16bit qbasic packaged together with Dosbox thats just ready to use and some qbasic for kids tutorials site
Title: Re: QBASIC the return of the ancestor of all basics
Post by: Vortex on September 19, 2020, 02:30:27 AM
Hi daydreamer,

QuoteI seen some package old 16bit qbasic packaged together with Dosbox

Here is something similar :

https://sourceforge.net/projects/turbopascal-wdb/
Title: Re: QBASIC the return of the ancestor of all basics
Post by: hutch-- on September 19, 2020, 12:57:14 PM
It is not the ancestor of all basics, I used a basic dialect on a z80 Sinclair back in about 1980. Used to be on a big floppy.
Title: Re: QBASIC the return of the ancestor of all basics
Post by: TouEnMasm on September 19, 2020, 07:10:16 PM

Just,i have forgotten the zx80 basic who  no longer exist.
I don't think than his basic can be found  somewhere,qbasic is already here.
Perhaps have you a link ?.
Title: Re: QBASIC the return of the ancestor of all basics
Post by: Vortex on September 19, 2020, 08:06:33 PM
Hi TouEnMasm,

You can try the emulation software. Here are some of the Sinclair emulators :

https://github.com/chernandezba/zesarux.git

http://sz81.sourceforge.net/

https://emulation.gametechwiki.com/index.php/Sinclair_ZX81_emulators

Title: Re: QBASIC the return of the ancestor of all basics
Post by: TouEnMasm on September 19, 2020, 08:46:54 PM
 :thumbsup:,
We are beginning a museum of informatic dialect.
Title: Re: QBASIC the return of the ancestor of all basics
Post by: daydreamer on September 20, 2020, 12:48:01 AM
Quote from: Vortex on September 19, 2020, 08:06:33 PM
Hi TouEnMasm,

You can try the emulation software. Here are some of the Sinclair emulators :

https://github.com/chernandezba/zesarux.git

http://sz81.sourceforge.net/
I
https://emulation.gametechwiki.com/index.php/Sinclair_ZX81_emulators
I really hope they didn't include emulate "out of memory" when your program was more than 1kb  :badgrin:
Title: Re: QBASIC the return of the ancestor of all basics
Post by: jj2007 on September 20, 2020, 01:58:33 AM
QBasic was launched in 1991. I have GfaBasic sources that are five years older, and believe me, Gfa:QB is like Ferrari:Tin Lizzy :cool:
Title: Re: QBASIC the return of the ancestor of all basics
Post by: hutch-- on September 20, 2020, 01:15:51 PM
For MS-DOS basic, QB45 with Ethan Winer's assembler libraries could put the fear of God into many of the other offerings at the time.  :tongue:
Title: Re: QBASIC the return of the ancestor of all basics
Post by: TouEnMasm on September 20, 2020, 05:45:25 PM

Here a link with the various version of qbasic ,start 1985
https://winworldpc.com/product/quickbasic/45 (https://winworldpc.com/product/quickbasic/45)
Title: Re: QBASIC the return of the ancestor of all basics
Post by: jcfuller on September 20, 2020, 07:23:20 PM
Quote from: hutch-- on September 20, 2020, 01:15:51 PM
For MS-DOS basic, QB45 with Ethan Winer's assembler libraries could put the fear of God into many of the other offerings at the time.  :tongue:
Hutch,
I used the assembler from QuickC with Quick Assembler to give performance to QB45

James
Title: Re: QBASIC the return of the ancestor of all basics
Post by: TimoVJL on September 20, 2020, 11:18:31 PM
And MS QuickC wasn't an optimizer C compiler.
I have MS QuickC, but i started with Zortec C++
Title: Re: QBASIC the return of the ancestor of all basics
Post by: jcfuller on September 21, 2020, 02:47:35 AM
Back then, with crt's, it always amazed me how much asm code you could cram in between the horizontal and vertical blank interrupts.
I wonder if the dos emulators allow that??

James
Title: Re: QBASIC the return of the ancestor of all basics
Post by: TouEnMasm on September 21, 2020, 10:30:12 PM
Quote
I wonder if the dos emulators allow that??
There is a certain time that i haven't play with the dos int,but it seem well that he allow them.
The dosbox is a real good emulator who allow all games to be replayed with windows 10.
The one who survive in windows 10 and is allways usefull is the int 3,debugbreak use it.

You speak of quickC to add to Qbasic,here it is
https://winworldpc.com/product/quick-c/2x (https://winworldpc.com/product/quick-c/2x)

Title: Re: QBASIC the return of the ancestor of all basics
Post by: daydreamer on September 21, 2020, 11:55:52 PM
Quote from: jcfuller on September 21, 2020, 02:47:35 AM
Back then, with crt's, it always amazed me how much asm code you could cram in between the horizontal and vertical blank interrupts.
I wonder if the dos emulators allow that??

James
probably does that because many games otherwise should be unable to because it uses interrupts,also biggest reason the emulator emulates opcodes right timings,otherwise wrong timings could break a horizontal blank interrupt to change things at the wrong place
Title: Re: QBASIC the return of the ancestor of all basics
Post by: hutch-- on September 22, 2020, 11:20:12 AM
Magnus,

Do you live anywhere near Malmo ? I found a train trip with driver cabin video from Malmo to Gottenberg. Basically up the west coast of Sweden.
Title: Re: QBASIC the return of the ancestor of all basics
Post by: daydreamer on September 23, 2020, 02:48:12 AM
Quote from: hutch-- on September 22, 2020, 11:20:12 AM
Magnus,

Do you live anywhere near Malmo ? I found a train trip with driver cabin video from Malmo to Gottenberg. Basically up the west coast of Sweden.
I live in a great town with a railroad junction about 100km distance  to malmo, where I can go almost anywhere with train,almost in the center of southernmost province skane
It lies on the railroad between malmo - Stockholm
Close enough to Denmark to have a mini vacation, in Copenhagen and helsingor


Title: Re: QBASIC the return of the ancestor of all basics
Post by: HSE on September 23, 2020, 03:10:39 AM
Close to Hamstald?

https://www.youtube.com/watch?v=1Rq9b_bn6Bc&t=316s
Title: Re: QBASIC the return of the ancestor of all basics
Post by: TimoVJL on September 23, 2020, 03:16:54 AM
@Magnus
So Per Orinius is not so far from you :thumbsup:
And i am just other side of a coast :biggrin:
Title: Re: QBASIC the return of the ancestor of all basics
Post by: daydreamer on September 23, 2020, 04:02:25 AM
Quote from: TimoVJL on September 23, 2020, 03:16:54 AM
@Magnus
So Per Orinius is not so far from you :thumbsup:
And i am just other side of a coast :biggrin:
actually live closer to Copenhagen than Stockholm,but X2000 is fast few hours if I want to go to Stockholm,so maybe closest to some danish previous member
great :thumbsup:
Title: Re: QBASIC the return of the ancestor of all basics
Post by: TouEnMasm on December 28, 2020, 02:46:19 AM
Qbasic64 with source code
https://github.com/QB64Team/qb64/releases (https://github.com/QB64Team/qb64/releases)
Title: Re: QBASIC the return of the ancestor of all basics
Post by: hutch-- on December 28, 2020, 03:19:34 AM
Remembering from long ago, QB45 built exe files as MODEL MEDIUM BASIC so if the language was capable of building that, you could link the code to QB. I used MASM back then and the modules worked OK.
Title: Re: QBASIC the return of the ancestor of all basics
Post by: TimoVJL on December 28, 2020, 03:34:38 AM
From my shelf.
Those was for making support programs for automation lines and robotics at those golden times.
Those where the days :biggrin:

Title: Re: QBASIC the return of the ancestor of all basics
Post by: avcaballero on December 28, 2020, 08:02:58 AM
Quote from: hutch-- on September 20, 2020, 01:15:51 PM
For MS-DOS basic, QB45 with Ethan Winer's assembler libraries could put the fear of God into many of the other offerings at the time.  :tongue:
I bought his book, quite expensive, but it was worth it, it took me out of programming history into the modern age. Now can be downloaded for free in his own webpage:

https://ethanwiner.com/fullmoon.html
Title: Re: QBASIC the return of the ancestor of all basics
Post by: daydreamer on December 28, 2020, 08:57:59 PM
Quote from: hutch-- on December 28, 2020, 03:19:34 AM
Remembering from long ago, QB45 built exe files as MODEL MEDIUM BASIC so if the language was capable of building that, you could link the code to QB. I used MASM back then and the modules worked OK.
this tool,inspired by MASM?
https://atariwiki.org/wiki/attach/Atari%20Macro%20Assembler/Atari%20Macro%20Assembler-OCR.pdf (https://atariwiki.org/wiki/attach/Atari%20Macro%20Assembler/Atari%20Macro%20Assembler-OCR.pdf)

@Caballero
thanks for the link
its important to adapt to the cooperative programming style of windows and not the hog the whole system for yourself like DOS days

but important old math/algos can improve speed too
Title: Re: QBASIC the return of the ancestor of all basics
Post by: jj2007 on December 28, 2020, 10:18:12 PM
Quote from: caballero on December 28, 2020, 08:02:58 AMhttps://ethanwiner.com/fullmoon.html

QuotePKUNZIP program needed to unzip the above files (29k)
:biggrin:
Title: Re: QBASIC the return of the ancestor of all basics
Post by: TouEnMasm on December 29, 2020, 12:59:16 AM
Quote
this tool,inspired by MASM?
Yes,in his beautifull time,it was possible to add masm obj to speed it up a little.
Title: Re: QBASIC the return of the ancestor of all basics
Post by: Vortex on December 29, 2020, 01:07:50 AM
Hello,

The Qb64 package looks complicated. Not even sure how to make only an object module with Qb64. I think FreeBASIC is better organized.
Title: Re: QBASIC the return of the ancestor of all basics
Post by: hutch-- on December 29, 2020, 07:00:29 PM
Magnus,

I think you will find that Atari had nothing to do with MASM of the same era. They were different hardware and did not use the same instruction set.
Title: Re: QBASIC the return of the ancestor of all basics
Post by: jj2007 on December 29, 2020, 08:33:33 PM
Quote from: hutch-- on December 29, 2020, 07:00:29 PMI think you will find that Atari had nothing to do with MASM of the same era. They were different hardware and did not use the same instruction set.

Indeed, that site cares for the Atari 800. Several years later the Atari ST came out, and I started programming in 68000 Assembly, again a very different animal. It doesn't resemble at all the x86 set. For example, it had conditional calls, i.e. you could decide to call or not call a subroutine, based on flags.
Title: Re: QBASIC the return of the ancestor of all basics
Post by: daydreamer on December 30, 2020, 05:18:06 AM
Quote from: jj2007 on December 29, 2020, 08:33:33 PM
Quote from: hutch-- on December 29, 2020, 07:00:29 PMI think you will find that Atari had nothing to do with MASM of the same era. They were different hardware and did not use the same instruction set.

Indeed, that site cares for the Atari 800. Several years later the Atari ST came out, and I started programming in 68000 Assembly, again a very different animal. It doesn't resemble at all the x86 set. For example, it had conditional calls, i.e. you could decide to call or not call a subroutine, based on flags.
I meant just the macro assembler
Maybe macro caps was inspired by masm
Macros are great tool whatever cpu,lacking opcodes and/or mnemonics
Shorter typing of often used code snippets

Title: Re: QBASIC the return of the ancestor of all basics
Post by: hutch-- on December 30, 2020, 07:46:19 PM
There were assemblers before Microsoft created their first MASM.EXE. MASM originally was the name of the Unisys Meta ASseMbler.
Title: Re: QBASIC the return of the ancestor of all basics
Post by: TimoVJL on December 30, 2020, 08:04:46 PM
Before that
https://www.fourmilab.ch/documents/univac/manuals/pdf/Software/UP-8453_MASM_Programmers_Ref_1977.pdf
:biggrin:
QuoteMASM was written in Pascal by Marc McDonald (Microsoft employee #1, after Bill & Paul). Microsoft had been doing all their development on DEC computers, and the macro capability put in MASM was modeled after DEC assemblers. Because MASM was such a large macro assembler, one of the guys referred to it as "McDonald's big mac".
Title: Re: QBASIC the return of the ancestor of all basics
Post by: jj2007 on December 30, 2020, 09:35:56 PM
Interesting that an assembler had to be written in a high level language :cool:
Title: Re: QBASIC the return of the ancestor of all basics
Post by: hutch-- on December 30, 2020, 09:38:41 PM
Timo,

Same assembler.

SPERRY UNIVAC
Meta-Assembler
(MASM)
Title: Re: QBASIC the return of the ancestor of all basics
Post by: TimoVJL on December 30, 2020, 09:54:08 PM
@hutch, my bad :undecided:
Quote from: jj2007 on December 30, 2020, 09:35:56 PM
Interesting that an assembler had to be written in a high level language :cool:
Those language/macro parsers was written in pascal at those times.
My first contact to computers had pascal and basic, not a personal computer, a bigger one :azn:
Data General Nova
The whole life i worked for industrial automation, programming was just a tool for that.
Title: Re: QBASIC the return of the ancestor of all basics
Post by: jj2007 on December 30, 2020, 10:33:34 PM
Quote from: TimoVJL on December 30, 2020, 09:54:08 PMThose language/macro parsers was written in pascal at those times.

The interesting bit is that Pascal probably did not directly generate machine code. So there must have been already an assembler for Pascal :cool:
Title: Re: QBASIC the return of the ancestor of all basics
Post by: TimoVJL on December 30, 2020, 10:37:32 PM
Sure, some people programmed pascal with assembler to target CPUs.
Title: Re: QBASIC the return of the ancestor of all basics
Post by: daydreamer on December 31, 2020, 12:19:49 AM
Quote from: TimoVJL on December 30, 2020, 10:37:32 PM
Sure, some people programmed pascal with assembler to target CPUs.
I made a very simply onepass assembler in BASIC
but it was without labels,variable names,mnemonics+followed only with numbers
ok I had kinda "line numbers" too,but line numbers was the actual adress I wanted the mnemonic be coded into

I dont know if pascal had some syscall or USR like basic,if not probably wrote directly to a executable file format?
pascal I remember was lot of typing full words ,that C later replaced with lot shorter {} and lot of other onechar symbols
masm shortened it down to PROC, ENDP