Jump to content
IGNORED

7800basic beta, the release thread


RevEng

Recommended Posts

On 2/26/2020 at 9:09 AM, RALPH! said:

IF-Blocks would be very helpful.  IF [THEN], ELSE, ELSEIF, ENDIF included with Basic, Pascal, C, and other programming language made from 30 year ago. It greatly simplifies programming complex game logic. Programming 7800 Basic is similar to programming in Atari or Commodore computer basic. 

If I were programming the language from ground zero, I'd do that. 7800basic reused the batari basic codebase, and as a result it inherits the same syntax.

 

Changing the language syntax fundamentally at this point is a non-starter for me, and same with complicating the language parser with two different styles of conditional logic. There are also advantages to keeping the language syntax more or less in sync with bB.

 

FWIW, you can get the same code block effect by testing for the absence of a condition you want the code block to handle, and skipping over the code block in that case. Yes, it's a bit less elegant, but it's a workable solution, and one you get used to soon enough.

 

Link to comment
Share on other sites

19 hours ago, RevEng said:

I've put out a new 7800basic pre-release for v0.8 (RC2) at the github release page, which has a few more fixes. See the release page for details.

 

If I get no more bugs reported in the next week or so, I'll promote this to an official v0.8. (otherwise I'll keep rolling in fixes)

 

Any changes to the PDF?

Link to comment
Share on other sites

On 2/26/2020 at 9:39 AM, RevEng said:

If I were programming the language from ground zero, I'd do that. 7800basic reused the batari basic codebase, and as a result it inherits the same syntax.

 

Changing the language syntax fundamentally at this point is a non-starter for me, and same with complicating the language parser with two different styles of conditional logic. There are also advantages to keeping the language syntax more or less in sync with bB.

 

FWIW, you can get the same code block effect by testing for the absence of a condition you want the code block to handle, and skipping over the code block in that case. Yes, it's a bit less elegant, but it's a workable solution, and one you get used to soon enough.

 

Batari Basic was made in C and is compiled into assembler 6502? Can use programming from other Basic compiler that supports advanced logic add paste to Batari or 7800 Basic code base? Batari Basic was made in C and is compiled into assembler 6502? can we just take the next Basic compiler that supports advanced logic and add it to Batari / 7800 Basic? He'll have to find Bing in search of 6502-based things.I look up on Google to see lf something similar done before. Perhaps some did it for Apple, Commodore, Nintendo.

Link to comment
Share on other sites

On 2/28/2020 at 4:08 PM, RevEng said:

A couple slight changes to the section "Sprite Collisions with boxcollision", due to the fact that collisionwrap is now on as a default.

 

In case you want to know, I tried to download 7800basic-0.8-RC2-win-x64.zip using Google Chrome and it blocked it with the message "7800basic-0.8-RC2-win-x64.zip is not commonly downloaded and may be dangerous."

 

They also give a link to this page:

 

support.google.com/chrome/answer/6261569?hl=en

 

I clicked on 'Keep,' but that warning might scare some people.

 

 

  • Confused 1
Link to comment
Share on other sites

4 hours ago, Random Terrain said:

In case you want to know, I tried to download 7800basic-0.8-RC2-win-x64.zip using Google Chrome and it blocked it with the message "7800basic-0.8-RC2-win-x64.zip is not commonly downloaded and may be dangerous."

 

They also give a link to this page:

 

support.google.com/chrome/answer/6261569?hl=en

 

I clicked on 'Keep,' but that warning might scare some people.

It happens with every new MAME release for the first couple of days as well.

 

A review of the file can be requested to Goggle, but it typically stops automatically with time (24-72 hrs).

Link to comment
Share on other sites

Yay, another assault on hobby developers. Only google engineers could come up with this one; reporting updated software as suspicious, is pretty much anathema to basic security principals. A question for the google geniuses, how exactly does a small hobby project become "commonly downloaded" when Big Brother is scaring people away?

 

The whitelist crap is the same stuff the antivirus vendors are pulling - the put the onus of effort on you, to prove their accusations are false, with each and every software revision you put out. I'm not playing that game. [edit - looks like google's whitelist is domain based, so I would need to own and whitelist all of github ?]

 

Thanks for the heads-up, RT. Thanks for the info, Trebor. This will probably stick around longer for my software, compared to Mame, because my download volume is nothing.

 

FU to you too, Google.

  • Like 7
Link to comment
Share on other sites

Google Issues seems to be an reoccurring thing on these threads. 

It is good to read that Double Buffer will work with other screen height. 

i use some 6502 assembler language for game I make. Wrote whole routine to handle collision between sprite and screen. Use screen values of font for walls that cannot go past. 

Link to comment
Share on other sites


I know you can make 8 or 16 fonts with high and double width and make a screen with tiles. Can 7800 Basic mix 2 text lines 8 x 8 320 pixels top of the screen to display information? maybe the result, level, life, points, short text "GAME OVER" "STAGE COMPLETE"

Link to comment
Share on other sites

I've released the official v0.8 at github.

 

Since v.0.7 was released...

mksmith found a longstanding bB and 7800basic bug with for...next using a step of -1 and end value of 0. (yes, bB was updated too) He also put the doublebuffer-with-screenheight bug back to my attention.

SmittyB found a bankswitch bug.

Revontuli also found bugs regarding high score display in alternate display modes, second player score entry, and sfx at priority 0.

KarlG had some great usability suggestions, and manual updates.

Muddyfunster inspired the ability to use wider banners.

RT has thanklessly updated the 7800basic online manual. (thanks!)

 

Sorry if I missed anyone. I really appreciate the bug reports and help guys! Very much a team effort. ?

  • Like 7
Link to comment
Share on other sites

@RevEng Thanks for your continued hard work and dedication to both 7800basic and bB Mike! You are also always willing to help and solve issues with either the languages or our code - cannot thank you enough ???? 

  • Like 2
Link to comment
Share on other sites

Add function to set up Display List Interupt for text line at top or bottom. Change mode and color. The WYSNC method does not work correct on real 7800 system after adding some text to the line. Holds up The 6502 processor if using many WSYNC writes. The vertical size of the line does not remain constant. 

Link to comment
Share on other sites

  • 2 weeks later...

What memory addresses does 7800 Basic search for Pokey chip at? Have standard cartridge circuit board from Atari and know friend that may put together custom board with RAM and Pokey mapped at $7FF0 or $7F00. Ram located at $4000 to $7EFF or 7FEF. If use 7800 Basic, will game run?

Link to comment
Share on other sites

Found issue. When doing split for text line in 320 mode plus rest of screen in 160 mode. The compile program shows normal with PROSYSTEM emulator. But with MAME one and running on real 7800, the line where it switches is 3 or 3 pixels below. Program is showing Score, Extra lives, Level. Almaybe at times extra debugging information. Not sure if this problem with 7800 Basic or PROSYSTEM. Had to reduce amount of WSYNCs so proper show on real system.

Link to comment
Share on other sites

38 minutes ago, RALPH! said:

Not sure if this problem with 7800 Basic or PROSYSTEM

It's a problem with ProSystem and actually one of a handful of reasons I quickly moved to using MAME. ProSystem should just be avoided as it has too many problems compared to the current alternatives.

  • Like 2
Link to comment
Share on other sites

  • 5 weeks later...

@RevEng I've been editing Voxolotl! and I've found a couple of odd issues that at the moment I can only put down to being caused by some change between the current build of 7800BASIC and whatever version I was using at the time.

 

The first is/was a graphical issue when calling plotbanner on a pretty big 320B banner. It seems that the compiler was essentially not setting the width, drawing everything, then setting the width as expected and then drawing everything again with offsets to the x position and graphics locations. In the end I just took the assembly and commented out the bits I wasn't expecting to see and the seems to have done the trick.

Without knowing what the compiler needs to do I guess I've probably just done something in such a way as to not set a flag in the background to give the my desired result.

 

The second is with the right hand column of the keypad in the left port which I just can't get working on hardware while it works fine in A7800. I've tried both the new keypad support in 7800BASIC and the code I was using previously with the same results so at the moment I'm guessing something may be interfering with INTP0 but I haven't a clue where to start looking to troubleshoot this.

I've verified that it's not the keypad or console as they work fine with BASIC Programming.

The next thing I'll try is to compile it with an older version of 7800 BASIC, but I have a feeling I've since deleted the ones I had sitting around.

Link to comment
Share on other sites

I don't know why I didn't think of it earlier but I compiled the keypad sample program and that works absolutely fine.

That made me think it must be something I'm doing so I've been cutting bits out to see where the issue might be, but I'm now down to just the following code and it's still happening so whatever the matter is it's beyond what I can figure out.

	changecontrol 0 keypad
	BACKGRND = $0F
logoLoop	
	if keypadmatrix0a then goto skipLogoLoop
	if keypadmatrix0b then goto skipLogoLoop
	if keypadmatrix0c then goto skipLogoLoop
	if keypadmatrix0d then goto skipLogoLoop	
	drawscreen
	goto logoLoop
skipLogoLoop	
	BACKGRND = $00
mainLoop
	drawscreen
	goto mainLoop

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...