Reinventing a graphics IDE that runs in MSX2, compiles for MSX1.

Page 1/27
| 2 | 3 | 4 | 5 | 6

By flyguille

Prophet (3029)

flyguille's picture

04-10-2013, 20:32

INTRO: As I lost all my old tools, I am redoing one of it, this way, like I want, but not with too high goals, because I only have like 15 days for MSX enjoy before to go back to the real world profitable developements.

So, I will going asking little things to refresh my memory.

The IDE tools will go in BASIC, plus some ASM subs, plus will RUN in screen 8, and will do GFX for tiles & sprites for MSX1, expandable for MSX2 in a later revision.

Why to do it for real MSX?, the speed of real msx let you to actual THINK and ENJOY, and it have very little distractions, because is not like there will pop up some facebook messages, or having the anxiety to browse the web, and the productivity will be higher. Tongue

If anybody can reply quick, the dev will go faster.

---------------

Question 1: I needs to know where the basic interpreter saves the line number asigned to the command RESTORE, because in the BASIC you can't write "RESTORE variable", you needs to hardcode line numbers in the code, and some subs needs to do READs first, and READs again, needs to peek/poke the line number.

Login or register to post comments

By flyguille

Prophet (3029)

flyguille's picture

04-10-2013, 21:48

for Question 1: I did some quick investigation , I have two candidates, wich chose?

F6AB or F6B5?, both seems to be altered identically when executing the RESTORE command. I now thinks that these are actual internal parser's variables.

Oh, and also there must be a variable for pointing inside the line number the actual DATA record ,,,,cursor,,,, better to looks for the line number RAM address, and not its shown line number.

I tried, there is none variable in the rangre F380 FFF0 that points to the range where the DATA line IS.

By flyguille

Prophet (3029)

flyguille's picture

04-10-2013, 22:17

there is some of my finds.

being the code format

.... < NextLineAddress > < LineNumber > < OpCode > < Params including all spaces > < NULL > ....

F6A7 points to the NULL char that is the END of the current line in execution.
F6C8 points to the NULL char that is the END of the line BEFORE the line that has the DATA sentence.

YES I FIND OUT, it is the RESTORE cursor, F6C8/9 points like that, hard to find out, because it is SET UP on the NULL character of the previous line, and I was looking something pointing to the chain line adress, or the command ID, or the address of the first data in the DATA sentence.

SOME Information not available elsewhere (I looked at the grauw website).

Now googling the variable address I find out a nice chart, http://fms.komkon.org/MSX/Docs/SysArea.txt

By flyguille

Prophet (3029)

flyguille's picture

05-10-2013, 01:33

Question 2: wich are the pokes needed to set before loading a BASIC program starting at &HC000 area?.

By Manuel

Ascended (16034)

Manuel's picture

05-10-2013, 09:39

This can be found in many ROM crack loaders.

By jltursan

Prophet (2246)

jltursan's picture

05-10-2013, 10:48

Just in case you're still looking for it:

POKE &HF676,0: POKE &HF677,&HC0: POKE &HC000,0

By flyguille

Prophet (3029)

flyguille's picture

05-10-2013, 15:38

Manuel wrote:

This can be found in many ROM crack loaders.

Yes, Manuel, I am sure of that, but right now I have nothing in handy, and Yes I found that in a ROM crack.

Question 3:

Which is the best color table, for emulating in screen8 the colors of msx1. ( I needs only the 16 HEX numbers for VPOKING directly in the bitmap)

By flyguille

Prophet (3029)

flyguille's picture

05-10-2013, 17:21

Question 4: where is a quick guide to record video of the openMSX emulation ready to upload to YT?

status of the developement

In first 16hours I did.

I have done all the menus bar, menu popups, messageboxes, textboxes, checkboxs, labelsboxes, all done and functioning perfect in screen 8!!! with full keyboard control.

and is easy as:

for a message box where you can setup optionally a label, a textbox, plus a bunch of checkboxes.

100 DATA PosX,PosY,CaptionIfAny,Textbox.length,Textbox.captionOnlyIfUsed,checkboxCaption1,checkboxCaption2, < EOD >
110 restore 100:gosub 10300

for a menu popup is

100 DATA PosX,PosY,MenuItem1, MenuItem2,,,,, < EOD >
110 restore 100:gosub 10100

for a menubar the same but gosub 10000

BASIC is fast for coding, but I miss a lot the variables isolations (Locals/Module/globals).

By flyguille

Prophet (3029)

flyguille's picture

05-10-2013, 21:52

which is the standard way to know where in page 0 is the tileset of the BIOS? I needs to PRINT text from asm code and needs to know the standard way.

By flyguille

Prophet (3029)

flyguille's picture

05-10-2013, 22:54

flyguille wrote:

which is the standard way to know where in page 0 is the tileset of the BIOS? I needs to PRINT text from asm code and needs to know the standard way.

Solved, it is: ld hl,(4)

By flyguille

Prophet (3029)

flyguille's picture

06-10-2013, 04:01

STATUS UPDATE: lacks the GGGBBBRR coded color table, but today I did a lot of subroutines in asm for support the console render. And started a set of routines for feeding from/to the user's storage space, as it is multi RAM segments showed only on page2, can't be like a simple LDIR by the rollup issue.

There is some details.

It will use all the RAM available , so projects can come in BIG.

Tiles can be drawed for screen2 format, screen 5 and screen 8 format.

The file output can be in RAW FILE, COMPILED* or NOT, or plus BLOAD header, or plus BLOAD,S header.

*COMPILED means that it will separate color data from pattern data at the file creation, ideal for dump to the VRAM all the table a once, this is because internally it handles a tile as a joint (8 bytes pattern + 8 bytes color) = 16bytes in a block for screen2 format.

The idea is to be capable of loading multiple sets, chose few tiles from multiple sets, and then save it as a new set, ideal for handle dozens of tileSets on the disk.

For now, I will develop to reach the FULL functionality of the tile set browser/editor. As a first stage goal. Then STOP, then see how many RAM space still left. Calculating it will take 10-15 hours dev time.

I am worried about file -> RAM / RAM -> file in RAW access. Sure I can do it with OPEN / PUT / GET, but that will be slow, and the interfacing will EAT a lot of RAM by the ever growing BASIC listing. I will needs to know, the most simple way to do that in ASM meeting the standard, the goal is not to insert any *dirty* trick that will issue compatibility problems, but I already hardcoded the out ($98) I hope in MSX2 it is a fixed value by standard (in MSX1 is not).

Page 1/27
| 2 | 3 | 4 | 5 | 6