flat assembler
Message board for the users of flat assembler.

Index > OS Construction > fasm port to FAMOS now operational

Goto page 1, 2, 3  Next
Author
Thread Post new topic Reply to topic
neville



Joined: 13 Jul 2008
Posts: 507
Location: New Zealand
neville 16 Oct 2008, 08:04
Hi

FAMOS IDE is operational with "fasm for FAMOS"

My IDE is now working after successfully porting and integrating fasm ver 1.48

The FAMOS IDE incorporates a text editor, assembler (ffasm), hex memory editor and a rather crude disassembler. More features are planned.
The assembled code can be immediately run from within the IDE, and can be made to return to the IDE!
An automatic new memory entry is created for successfully assembled code, which is also available for selection via the GUI.
If fasm detects an error on a particular source line, the editor repositions the text to display the faulty line.


I've uploaded a new version of FAMOS, "FAMOS NZ panorama" (ver 1.14), available here:
http://w14.easy-share.com/1702014590.html
(includes 1.44Mb floppy image FAMOS14F.IMG and info FAMOS114.TXT, total 771,162 bytes)

I feel FAMOS has reached a significant milestone because now it's possible to develop FAMOS in FAMOS!
My first program program developed using the IDE is my Decimal (10-hour) analogue/digital clock.


What's new in FAMOS NZ panorama (v 1.14):
- the FAMOS IDE / SDK
- a panoramic New Zealand photo on the GUI start screen. So far I have 6 panoramas to choose from, but there's only room for one on the floppy disk. (Note: a panorama is also known as a vista Smile )
- cursor/enter key item selection (in addition to buttons)
- two pre-loaded ASM source files to demonstrate/test the IDE
- improved ISO9660 error handling


The ASM sources to demonstrate and test the IDE are:
1. Hello World - assembles to 1200 bytes and illustrates the ten FAMOS built-in fonts.

2. Decimal Clock - a brand new program I've just developed to display the time in both analogue and digital decimal formats.
Includes some FPU programming to generate the circular clock face and moving hands.
Has 3 deliberate errors in the source to demonstrate the IDE's error handling. They are obvious errors which are easily fixed because fasm will identify the lines containing the errors each time F9:Assemble source is pressed.

_________________
FAMOS - the first memory operating system
Post 16 Oct 2008, 08:04
View user's profile Send private message Visit poster's website Reply with quote
Shahada



Joined: 25 Jul 2008
Posts: 77
Shahada 20 Oct 2008, 08:37
Thanks neville, nice work. Can you write a more detailed doc about FAMOS programming? The one existing is not enough.

OTOH there are some problems. For example, try to keep pressed the 'down' cursor key while in the IDE or try to actually assemble 'decimal clock'.
Post 20 Oct 2008, 08:37
View user's profile Send private message Reply with quote
neville



Joined: 13 Jul 2008
Posts: 507
Location: New Zealand
neville 21 Oct 2008, 19:09
Shahada wrote:
Thanks neville, nice work. Can you write a more detailed doc about FAMOS programming? The one existing is not enough.

OTOH there are some problems. For example, try to keep pressed the 'down' cursor key while in the IDE or try to actually assemble 'decimal clock'.

Thanks for your feedback Shahada Very Happy

About the 'decimal clock' source - it has 3 deliberate errors which must be fixed. Please see the last sentence in my post above, and the 'Revision History' note in the source code itself.

Yes the text editor is not too flash. Scrolling up/dowm with the cursor key is just a bit slow? It's because I've used some quite slow BIOS routines. Or do you have other problems? I will improve it, but for very fast scrolling you can use PgDn/PgUp. Also Ctrl-PgDn/Up takes you to the end/start of the source. I'm basing the functionality of my editor on a DOS text editor I like called EZEDIT written by Craig Hessel. Because of space limitations on the FAMOS boot disk at the moment the entire IDE is limited to 53,248 bytes (104 sectors). So before I can add more code to the IDE I have to either optimise some existing code, take out some existing code, or restructure the boot disk!

The easiest and quickest would be to take out some more of fasm's functions which are not really appropriate for FAMOS. For example if I remove the code for the 'reserve data' assembler directives (rb, rd etc) I would save more than 600 bytes. Those directives would just be re-directed to error processing. The unitilialised 'define data' directives (db ?, dd ? etc) could still be used of course.

And yes, I will write a Programming Manual for FAMOS. The first edition will be brief but hopefully will be enough to get you started. Maybe it could be in the form of a FAMOS ASM source which is 100% commented, and contains a tutorial where you can uncomment individual lines and immediately assemble them and run them in the IDE to try them out... What do you think? Also, should I assume you are familiar with the X86 architecture and 80386 instruction set? I haven't used any 486, Pentium, MMX or SSE instructions in 32-bit FAMOS, but there's nothing to stop you from using them if you wish!

_________________
FAMOS - the first memory operating system
Post 21 Oct 2008, 19:09
View user's profile Send private message Visit poster's website Reply with quote
Shahada



Joined: 25 Jul 2008
Posts: 77
Shahada 23 Oct 2008, 09:14
neville wrote:
About the 'decimal clock' source - it has 3 deliberate errors which must be fixed. Please see the last sentence in my post above, and the 'Revision History' note in the source code itself.


Embarassed

Quote:
Yes the text editor is not too flash. Scrolling up/dowm with the cursor key is just a bit slow? It's because I've used some quite slow BIOS routines. Or do you have other problems? I will improve it, but for very fast scrolling you can use PgDn/PgUp.


Keeping pressed the "down" cursor key fills the rows with trash characters.

Quote:
And yes, I will write a Programming Manual for FAMOS. The first edition will be brief but hopefully will be enough to get you started. Maybe it could be in the form of a FAMOS ASM source which is 100% commented, and contains a tutorial where you can uncomment individual lines and immediately assemble them and run them in the IDE to try them out... What do you think?


I find it a good idea.
Post 23 Oct 2008, 09:14
View user's profile Send private message Reply with quote
neville



Joined: 13 Jul 2008
Posts: 507
Location: New Zealand
neville 23 Oct 2008, 20:10
Shahada wrote:
Quote:
Keeping pressed the "down" cursor key fills the rows with trash characters.

That's amazing Shahada.
1. Are all the "trash" characters the same? What do they look like?
2. Do the other cursor keys work OK?
3. Does it happen in both Ovrtype and Insert modes?

Obviously my code is not reading your cursor key correctly. This will make FIDE difficult to use for you! However, in Ovrtype mode the Enter key functions the same as Cursor Down so you should be able to use that instead until I fix your problem.

Attached is source for KeyCodes. What does your keyboard give for Cursor Down? All my computer keyboards give blank display, scan code = 50h, ascii code = 0

I've started the Programming Manual - will post in a few days ...


Description: Displays char, scan code and ascii code of any key
Download
Filename: KEYCODES.ASM
Filesize: 7.55 KB
Downloaded: 490 Time(s)


_________________
FAMOS - the first memory operating system
Post 23 Oct 2008, 20:10
View user's profile Send private message Visit poster's website Reply with quote
Shahada



Joined: 25 Jul 2008
Posts: 77
Shahada 24 Oct 2008, 07:58
neville wrote:

1. Are all the "trash" characters the same? What do they look like?
2. Do the other cursor keys work OK?
3. Does it happen in both Ovrtype and Insert modes?


All the trash characters are the same (i.e. the rows are filled with only one character), but the character may vary, it seems to be the last character under cursor before the trash is displayed. No, the other cursor keys don't work better and it happens in both modes.

neville wrote:
Obviously my code is not reading your cursor key correctly.

No, your code doesn't redraw correctly the screen. The problem appears only when the displayed text page is changed. (BTW, KeyCodes works as expected).
Post 24 Oct 2008, 07:58
View user's profile Send private message Reply with quote
neville



Joined: 13 Jul 2008
Posts: 507
Location: New Zealand
neville 24 Oct 2008, 09:06
Shahada wrote:
No, your code doesn't redraw correctly the screen. The problem appears only when the displayed text page is changed. (BTW, KeyCodes works as expected).

OK, obviously the text editor has some issues a.k.a bugs Wink. Maybe it's possible for the source buffer and screen buffer to get out of step with each other but it hasn't happened on any of my test computers so far.

I wonder if anybody else has similar problems?

BTW, is this your 486 Shahada? I remember having some problems with that particular computer before ... Wink

When I finish the Programming Manual (I've already made good progress) I'll have a look at the editor (I also want to add cut/copy and search/replace) and then I'll post a new version.

I'm just thinking, if you use the Memory Editor to hex-edit the source, and then go back to the text editor it would definitely be possible to get the two buffers out of sync with each other. But I guess you haven't done that Shahada?

_________________
FAMOS - the first memory operating system
Post 24 Oct 2008, 09:06
View user's profile Send private message Visit poster's website Reply with quote
windwakr



Joined: 30 Jun 2004
Posts: 827
windwakr 24 Oct 2008, 13:21
Great OS neville. I have seen the bug shahada is talking about in the editor.



EDIT: I have managed to reproduce the bug in virtual pc, see picture. All I did was hold down until it hit bottom of screen, then it wiped out all text but bottom line. If I move cursor around it reveals the text.


Description: Bug
Filesize: 6.91 KB
Viewed: 13029 Time(s)

famos.png



_________________
----> * <---- My star, won HERE
Post 24 Oct 2008, 13:21
View user's profile Send private message Reply with quote
Shahada



Joined: 25 Jul 2008
Posts: 77
Shahada 24 Oct 2008, 14:17
On 486 it appears to work correctly, but if "FAMOS dream"(or something like this) is loaded, at the end of the text it shows trash and trying to return to the pages previously displayed it shows only trash. IMO there are some problems with the screen buffer which in certain conditions become manifest.
Post 24 Oct 2008, 14:17
View user's profile Send private message Reply with quote
neville



Joined: 13 Jul 2008
Posts: 507
Location: New Zealand
neville 24 Oct 2008, 22:24
None of my computers here will reproduce this bug. I'm not sure if that should make me Sad or Very Happy ! Maybe I should just Crying or Very sad .

Windwakr, your screen shot shows everything is correct i.e. buffer addresses, total lines=904 etc and the little bit of text showing where you moved the cursor is all in the right place, but the screen just hasn't been updated.

So I can only assume it is a BIOS issue, because the line scrolling uses BIOS functions. The PgUp/Dn scrolling functions are BIOS-independent so folks, could you check it out by scrolling up and down using PgUp/PgDn to see if the bug appears? TYVM !

Shahada, unfortunately you shoudn't use FIDE to load ordinary text documents at the moment because text documents lack the 1A terminating byte that FIDE expects at the end of ASM sources. That's why if you run FIDE first it only lets you select ASM's. I will fix this problem though because I agree that FIDE should be able to load any text, ASM source or not.

BTW, Ctrl-PgUp resets both the source and screen buffers and puts the cursor at line 1 column 1. Does that "fix" the bug ??

I also noticed that the text on the bottom line of the screenshot contains a typo in the comment - CLOKTIKS is actually a dword, not a byte ... No big deal, but I'll correct this in the next release too.

Has anybody successfully assembled and run Decimal Clock yet?

_________________
FAMOS - the first memory operating system
Post 24 Oct 2008, 22:24
View user's profile Send private message Visit poster's website Reply with quote
windwakr



Joined: 30 Jun 2004
Posts: 827
windwakr 25 Oct 2008, 00:26
I've assembled and run the clock, it's pretty good. It's a shame your awesome OS isn't getting more attention.


Directed to below post: Edfed, is waiting 20 seconds and entering an easy to read code too much for you? Why waste bandwidth when downloading it is easy enough as it is?

_________________
----> * <---- My star, won HERE


Last edited by windwakr on 25 Oct 2008, 00:44; edited 3 times in total
Post 25 Oct 2008, 00:26
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4353
Location: Now
edfed 25 Oct 2008, 00:38
i don't want to download something that ask for validation code on a "full of ads page". if it only was an attachment, i'll download it and try imediatelly.
Post 25 Oct 2008, 00:38
View user's profile Send private message Visit poster's website Reply with quote
Shahada



Joined: 25 Jul 2008
Posts: 77
Shahada 25 Oct 2008, 08:13
neville wrote:
So I can only assume it is a BIOS issue, because the line scrolling uses BIOS functions. The PgUp/Dn scrolling functions are BIOS-independent so folks, could you check it out by scrolling up and down using PgUp/PgDn to see if the bug appears?

With PgUp/PgDn the bug doesn't appear. It is possible to be a BIOS issue, in case you use VESA you should check if int 10h scrolling functions are supported.

Quote:
BTW, Ctrl-PgUp resets both the source and screen buffers and puts the cursor at line 1 column 1. Does that "fix" the bug ??

No, it doesn't, there are still trash characters displayed on some rows.
BTW, the shown memory address is the address of the source buffer or that of the screen buffer? I assume it is that of the source buffer. The data there is clean even if the text displayed on the screen after pressing Ctrl-PgUp is still corrupted, it changes only when actually editing the text.

Quote:
Has anybody successfully assembled and run Decimal Clock yet?

I did it also.
Post 25 Oct 2008, 08:13
View user's profile Send private message Reply with quote
tom tobias



Joined: 09 Sep 2003
Posts: 1320
Location: usa
tom tobias 26 Oct 2008, 10:41
windwakr wrote:

Why waste bandwidth when downloading it is easy enough as it is?
edfed wrote:

if it only was an attachment, i'll download it and try imediatelly.
Concur...
Edfed is absolutely correct. It is utterly ridiculous to compel FASM forumers to visit a Porn site in order to download FAMOS. Absurd. If I seek to look at scantily clad young virgins, I will gaze at my favorite photo of Ms. Taken. I don't require that kind of stimulation. One could understand the need for an offsite location (but not a porn site) to manage LARGE files, but this OS resides on a floppy disk, for heaven's sake....KILOBYTES. What, such a tiny file is going to cause the FASM forum to crash?
Rolling Eyes
Post 26 Oct 2008, 10:41
View user's profile Send private message Reply with quote
windwakr



Joined: 30 Jun 2004
Posts: 827
windwakr 26 Oct 2008, 15:13
I don't see how you can call it a porn site. I don't see any porn there....maybe you should not click on the ads?? Or maybe you and edfed are just too impatient to wait 20 seconds and enter a simple code??

_________________
----> * <---- My star, won HERE
Post 26 Oct 2008, 15:13
View user's profile Send private message Reply with quote
bogdanontanu



Joined: 07 Jan 2004
Posts: 403
Location: Sol. Earth. Europe. Romania. Bucuresti
bogdanontanu 26 Oct 2008, 16:47
Sites that are "free" usually present Advertisement in the time that you are waiting or try to hack you in that time.

Depending on a lot of factors including the moon shine and the direction of wind blow in Baghdad on a starry night you MIGHT get porn right into your eyes.

Sometimes it does happen even on sites with free games for childrens.
I saw it on my child screen while she was using an Advertising driven site to play "free" child games.

Hence IF possible never use a "free" download or upload site unless you are ready to suffer the consequences.
Post 26 Oct 2008, 16:47
View user's profile Send private message Visit poster's website Reply with quote
neville



Joined: 13 Jul 2008
Posts: 507
Location: New Zealand
neville 27 Oct 2008, 09:28
FAMOS NZ Panorama Version 1.14 updated!

New:
- FAMOS Application Programming Manual (Contents as below)
- Debugging, breakpoint processing in FIDE
- Symbolic debugging in conjuction with FASM (sort of!)
- Simple line cut/copy functions (F2/F4, like EZEDIT)
- Simple text search function (up to 31 chars)

Changes:
- Panorama is now Wellington City instead of Lake Wanaka
- FIDE Text editor line scrolling functions rewritten! (BIOS functions removed, now hopefully more robust and definitely faster though a little bit "flashy"!)

Windwakr & Shahada, thanks again for your feedback. Yes the memory address is the current source buffer address in the text editor. It becomes the code address etc. in the memory editor. Hopefully this new version will work reliably now with no scrolling problems etc. The Programming Manual turned out to be a bit longer than I envisaged - I hope it proves to be useful.

And of course I respect everyone's views so ...

the image archive FAMOS4FW.ZIP is attached.

Programming Manual Contents:
Code:
 1. Scope
 2. Introduction
 3. Background Info
 4. Text Editor
 5. Assembler
 6. Memory Editor
 7. Disassembler
 8. Debugging
 9. BIOS Interrupts
10. FAMOS Syscalls
11. Program Tutorial    


Good question Shahada. It took ages uploading, then disappeared...
Trying again ....

File is now at http://w14.easy-share.com/1702201438.html (see post below)

_________________
FAMOS - the first memory operating system


Last edited by neville on 27 Oct 2008, 23:19; edited 2 times in total
Post 27 Oct 2008, 09:28
View user's profile Send private message Visit poster's website Reply with quote
Shahada



Joined: 25 Jul 2008
Posts: 77
Shahada 27 Oct 2008, 09:32
But where is the attachement?
Post 27 Oct 2008, 09:32
View user's profile Send private message Reply with quote
neville



Joined: 13 Jul 2008
Posts: 507
Location: New Zealand
neville 27 Oct 2008, 09:51
Grrr..

"The Attachment is too big." !!!!

Max Size: 700 KB

So ... I'll post the Easy-Share link as soon as I've uploaded it there.
(Won't take long...)

_________________
FAMOS - the first memory operating system
Post 27 Oct 2008, 09:51
View user's profile Send private message Visit poster's website Reply with quote
neville



Joined: 13 Jul 2008
Posts: 507
Location: New Zealand
neville 27 Oct 2008, 10:09
Hmm, no joy at Easy-Share at the moment either. I'll try again later.
Post 27 Oct 2008, 10:09
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2, 3  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.