Enterprise Forever

:UK => Other topics => Topic started by: gflorez on 2014.September.20. 23:18:09

Title: Enterprise Graphical Interface
Post by: gflorez on 2014.September.20. 23:18:09
The main EGI program, fman.egi(File Manager), freezes on the emulator, but I've managed to make work(some) two applets included on the EGI disk: Icon Editor and Word Count, made by the same autor of the EGI, Rhodri Cusack(can be this man? http://scholar.google.ca/citations?user=La2oJSkAAAAJ&hl=en http://www.cusacklab.org/)
Title: Re:Enterprise Graphical Interface
Post by: gflorez on 2014.September.21. 01:38:59
Ok, ok. It seems the file manager of the EGI isn't compatible with language roms(HUN.rom, ESP.rom, BRD.rom, etc) so I've removed it from the emulator memory and now it works fine. Don't forget to put first the image of the disk one on  the drive a:.

Remember, as I have no interface, I've changed the Mouse.xr driver for the HSOFT one, here (http://enterpriseforever.com/egyeb-temak/paintbox-mouse-xr/?action=dlattach;attach=7907). (That Paintbox v2.0R is not the same as Nick's).
Title: Re:Enterprise Graphical Interface
Post by: lgb on 2014.September.21. 16:29:02
My try with JSep "webemu" (http://ep.lgb.hu/jsep/demo.new/?snapshot=egi.ep128s&disk=egi.dsk&autostart=yes).
Title: Re:Enterprise Graphical Interface
Post by: Z80System on 2014.September.28. 03:37:48
I tried to run EGI without a floppy drive, from SD card,
and it cannot run, because after loading the EGI file manager,
it forcibly want to access A: and does not enable to change to the other drive
regardless that it loaded from other drive than A:.
Title: Re:Enterprise Graphical Interface
Post by: gflorez on 2014.September.29. 14:12:30
EGI is an old program! In its file manager it only presents the floppy drives and the Ramdisk, letters A:, B:, C:, D: and E:.
But it is not a problem of EGI, as the EXDOS always asks at startup for the init file.
 
I think the necessary EXDOS.INI file is only read from a floppy. Ask Zozo how to execute a startup file(batch file) without a Floppy controller card. I don't know if it is possible.

On the other side, if EGI is well written it must admit other logical units. I'll see it with the emulator...
Title: Re:Enterprise Graphical Interface
Post by: gflorez on 2014.October.04. 02:46:53
The demo programs of EGI(wrdcount.egi, prime.egi) are very short. It can be easy to see how the environment is managed inside of a  graphic application.

On the other side, I've extracted and edited some fragments of assembler code left as text inside EGI.REL:
Title: Re:Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 00:26:57
Quote from: gflorez
EGI is an old program! In its file manager it only presents the floppy drives and the Ramdisk, letters A:, B:, C:, D: and E:.
But it is not a problem of EGI, as the EXDOS always asks at startup for the init file.
 
I think the necessary EXDOS.INI file is only read from a floppy. Ask Zozo how to execute a startup file(batch file) without a Floppy controller card. I don't know if it is possible.

On the other side, if EGI is well written it must admit other logical units. I'll see it with the emulator...
Effectively, EGI Filemanager(fman.egi) only admits those  five  units, but you can assign F: to B: and it manages  HD partitions like a pro... You must consider fman.egi only as a badly written app(but only cos then there wasn't other logic units) inside a good environment(good because it depends very much of EXOS, maintained by Zozo....)

To recreate this you may have the modified Nick1 disk (http://enterpriseforever.com/other-topics/quick-note-to-say-hi/?action=dlattach;attach=10908) in A: and   the filled ide vhd from Zozo (http://www.ep128.hu/Emu/Ep_ide192m.rar) on the Primary Master of the IDE disk section inside the emulator preferences.
Title: Re:Enterprise Graphical Interface
Post by: Z80System on 2014.October.06. 00:55:06
Quote
but you can assign F: to B: and it manages  HD partitions like a pro... 
How did you do this assignment ?
Title: Re:Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 01:22:09
Point on EGI at the upper left corner and press Space. It opens the EGI system menu. Then you must point to "System (: )" and a window opens where you can execute EXOS commands without exiting from EGI.

Write "assign b: f:", then press Enter. Esc to return to the main window. 

Now click at the B: square and you are viewing F: content.
Title: Re:Enterprise Graphical Interface
Post by: Z80System on 2014.October.06. 01:29:56
Is "assign" a standard exdos command ?

Can I run it from an exdos.ini ?
Title: Re:Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 01:34:26
Yes, you can put it in the exdos.ini of the EGI disk.:)
Title: Re:Enterprise Graphical Interface
Post by: Z80System on 2014.October.06. 01:38:16
Quote
Yes, you can put it in the exdos.ini of the EGI disk.(http://enterpriseforever.com/Smileys/phpbb/smiley.gif)

Cool ... :)

I did not know that ...

My drives come from SDs and named from F: to H:

I will try to assign the letter list in the egi file manager to my drives ...
Title: Re:Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 01:59:38
Sorry, I don't know if you can start the EP on an EXDOS.INI file without floppy disks...

By the way write "help exdos" on the command line to see the internal commands. There are good manuals about EXDOS in Magyar.

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

As I said before, it seems fman.egi is incompatible with language roms, but not the EGI, as I managed to run the demo apps(icon.egi, prime.egi, wrdcount.egi) with the ESP.rom installed.
Title: Re:Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 02:04:19
It seems  necessary to have a "default" startup drive where we can put te EXDOS.INI file.
Title: Re:Enterprise Graphical Interface
Post by: Z80System on 2014.October.06. 02:09:41
Quote
It seems  necessary to have a "default" startup drive where we can put te EXDOS.INI file.
I have a modified exdos.

It looks for the exdos.ini on that drive I specified.

It is H: because the exdos.ini (egi's exdos.ini) and egi itself is on that drive.

I inserted a
:H:
line to the egi's exdos.ini, and modified the whole exdos.ini accordingly.

EGI started up with that exdos.ini, but always asked for A: and that retry/abort dialog does not disappear pushing anything.
But after the "assign" probably it will work ...
Title: Re:Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 02:36:40
Ok I didn't know about of that EXDOS modified rom. In that case you must assign also the H: disk to A:. It is the more important thing as if not the EGI insists on searching its system files on A: and hangs.

 Write "assign a: h:" an then "assign b: f:"(or the partition you want to manage) the very first lines of EXDOS.INI and leave all the following paths as in the original file.

But if your EP got instaled a HUN.rom or a BRD.rom, fman.egi will hang.....

To ensure that all is well, change the last line of EXDOS.INI " load \egi.sys\fman.egi" to "load \progs\icon.egi".

It then will jump directly to the demo app "icon editor".

We must wait for a programmer to fix that fman app.
Title: Re:Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 02:53:50
Ok it works....
Title: Re:Enterprise Graphical Interface
Post by: Z80System on 2014.October.06. 08:13:57
Quote
But if your EP got instaled a HUN.rom or a BRD.rom, fman.egi will hang.....
I have none of those. I use a pure english system.
Title: Re:Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 08:20:51
Even better! FMAN.EGI doesn't like alternate languages, but if you put ":UK" on one of the first lines of EXDOS:INI, it will start fine with a BRD.rom, ESP.rom or HUN.rom installed....!
Title: Re:Enterprise Graphical Interface
Post by: lgb on 2014.October.06. 09:13:00
Some lame attempt after I wrote hw level emulation of boxsoft mouse interface in my web based EP128 emulator ("JSep"):

http://ep.lgb.hu/jsep/demo.new/?snapshot=egi.ep128s&disk=egi.img&autostart=yes (http://ep.lgb.hu/jsep/demo.new/?snapshot=egi.ep128s&disk=egi.img&autostart=yes)

After the emulation starts wait for the EGI interface is shown then click onto the emulated screen of the Enterprise. The browser may ask if it's OK to grab the mouse cursor, you should click on OK etc then (you won't see the "PC" - well, or Mac, etc - mouse pointer anymore). After this, you should be able to use your mouse to control EGI more or less :) You can get your "normal" mouse pointer back with the ESC key (at least in firefox, maybe the same with Chrome, etc). Of course you need quite decent browser to use JSep in general, and especially the mouse emulation (forget IE ... any version!).
Title: Re: Enterprise Graphical Interface
Post by: Z80System on 2014.October.06. 09:26:39
Quote
Write "assign a: h:" an then "assign b: f:"(or the partition you want to manage) the very first lines of EXDOS.INI and leave all the following paths as in the original file.
Hmmm ... on my machine
:assign
is
*** Unrecognised command string

Maybe it is opimalized out from exdos ... :)
Title: Re: Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.06. 09:36:18
ASSIGN and some other commands original part of the EXDOS (version 0.3) but later removed because out of ROM space (version 1.0). Only available in IS-DOS.
The German EXDOS 1.3 got a 32K EPROM, with lot of unused ROM space. Later unknow Hungarian man putted back some of the removed commands.
In the EXDOS 1.4 I putted back all removed commands. Few months ago I uploaded test version.

Z80System I think you have the first quick modified version which only the FAT sector handling bug fixed.
Title: Re: Enterprise Graphical Interface
Post by: Z80System on 2014.October.06. 09:44:20
Quote
Z80System I think you have the first quick modified version which only the FAT sector handling bug fixed.
I (still :)) have the version you putted to the rom of cartridge14.zip for the cartridge SD ...

(Except of the hex editor customized exdos.ini command ...)

Maybe is it the time for the cartridge15.zip ? :)
Title: Re:Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 10:32:47
Quote from: lgb
Some lame attempt after I wrote hw level emulation of boxsoft mouse interface in my web based EP128 emulator ("JSep"):

But.....it works great! Every EP owner will want one of these Boxoft mouses....

(Only, in your  JSEP if you points to the extreme right you appear a little at the left... Few tweaks and it will do fine)
Title: Re: Enterprise Graphical Interface
Post by: Z80System on 2014.October.06. 10:37:40
Quote
Every EP owner will want one of these Boxoft mouses.... 
The PC mouse converter is on its way ... :)
Title: Re:Enterprise Graphical Interface
Post by: lgb on 2014.October.06. 10:41:41
Quote from: gflorez
(Only, in your  JSEP if you points to the extreme right you appear a little at the left... Few tweaks and it will do fine)

I guess it's fault of the mouse driver on the EP (mouse.xr) or the EGI itself, etc. Mouse interface at hardware level (what I emulate) only knowns about relative motion (it does not know anything about the "real" screen coordinates!), and the software on the EP calculates some real posiition of the pointer, so I can't fix that. As far as I can tell (however I can't check that ...) it would be the case on a real EP with boxsoft mouse and this software as well! Of course I can be wrong, but in theory this is how it works. However it would be great if someone can test this also happens with a real EP+mouse too, I am curious now. If it does not happen there, it's a quite odd situation and not so easy to find the bug then in JSep :-) Thanks for the feedback!
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 10:44:15
Quote from: Z80System
Hmmm ... on my machine
:assign
is
*** Unrecognised command string

Maybe it is opimalized out from exdos ... :)
You can try putting IS-DOS.SYS on the EGI disk and then only ":load is-dos.sys" inside EXDOS.INI.

When ISDOS starts it searches for the AUTOEXEC:BAT batch file to execute, then you can put there the EGI commands.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 10:50:45
lgb, you are too modest. Sure you find the bug soon as you did with the keyboard keys.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 10:55:18
Quote from: gflorez
You can try putting IS-DOS.SYS on the EGI disk and then only ":load is-dos.sys" inside EXDOS.INI.

When ISDOS starts it searches for the AUTOEXEC:BAT batch file to execute, then you can put there the EGI commands.
Ooop. But surely ISDOS will search for it on drive a:, so we are inside a vicious circle....
Title: Re: Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.06. 11:03:09
Quote from: gflorez
Ooop. But surely ISDOS will search for it on drive a:, so we are inside a vicious circle....
:ISDOS F: /EGI.BAT
Title: Re: Enterprise Graphical Interface
Post by: lgb on 2014.October.06. 11:04:15
Quote from: gflorez
lgb, you are too modest. Sure you find the bug soon as you did with the keyboard keys.

Ehm, yes maybe, if it's really a bug :) I mean being or not being a bug from my point of view (bug in JSep itself which I can fix). Otherwise the bug should be found in EGI itself or such :-) I also noticed what you wrote about anyway, I strictly spoke theoretically. as relative motion reported by the MSX mouse protocol (what boxsoft mouse uses as well) only sends mouse movement relative to the last query, so "mouse pointer behaves oddly at some screen position" is nothing to do at that (emulation) level but in the software running on the emulator (EGI? mouse.xr?). But again, miracles happen sometimes it can be my fault :D I'm still curious if anyone can test this problem with the real hardware.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 12:13:37
I've better made the units assignments just before loading FMAN.EGI. It gives no errors.

Also I've limited the utility roms to the minimum. Some interact in strange ways...
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 12:19:02
Quote from: lgb
Ehm, yes maybe, if it's really a bug :)
The up and down border limits are also bad, they don't go to the end.... but it works!
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 12:41:14
LGB, definitively, it's not your error. With the emulator and the HSOFT MOUSE.XR it acts the same. Sorry for the inconveniences of not seeing it before...

That FMAN:EGI needs some reparations...
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 12:58:16
The problem of border limits is with the EGI, all apps(fman, icon, prime and wrdcount) act the same.

But PaintBox, with the same HSOFT driver, acts accurate to limits of screen(almost the harrow point pixel).
Title: Re: Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.06. 13:03:27
I will look it on the real machine.
Title: Re: Enterprise Graphical Interface
Post by: lgb on 2014.October.06. 13:35:37
Quote from: gflorez
LGB, definitively, it's not your error. With the emulator and the HSOFT MOUSE.XR it acts the same. Sorry for the inconveniences of not seeing it before...

No problem here, don't worry, it's always nice to get feedback and wanting-to-help messages regardless of the future of those comments :)

Anyway this EGI looks interesting, if I understand correctly, this wanted to be the new interface of the "next'gen super-EP"? :) With Hitachi's "super-z80" (or Zilog Z180) the recreation of the new (only planned?) EP is not so far then ...
Title: Re: Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.06. 13:43:17
Quote from: lgb
if I understand correctly, this wanted to be the new interface of the "next'gen super-EP"? :)
Yes and No :-)
EGI created by English Enterprise users. But we don't know anything about it.
Mr. Kopácsy say this is will be the user interface of the EXOS 3.0.
But Mr. Kopácsy company do it many other times: collect softwares from English users and sold as "we make a some great new software". For example Andrew Richards IS-BASIC extension sold as Enterprise Plus cartridge. So I think just adapted the existing EGI to the planned new machine.
Title: Re:Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.06. 13:45:01
Quote from: lgb
Some lame attempt after I wrote hw level emulation of boxsoft mouse interface in my web based EP128 emulator ("JSep"):

http://ep.lgb.hu/jsep/demo.new/?snapshot=egi.ep128s&disk=egi.img&autostart=yes (http://ep.lgb.hu/jsep/demo.new/?snapshot=egi.ep128s&disk=egi.img&autostart=yes)
How you recolored the EGI? What I previously see are black and green.
Title: Re:Enterprise Graphical Interface
Post by: lgb on 2014.October.06. 14:00:17
Quote from: Zozosoft
How you recolored the EGI? What I previously see are black and green.

I haven't done anything to recolour it :) I also saw only black/green when I tried first with my emulator but it was the version of mouse.xr which used joystick and not mouse. So today morning I've copied some files from the first posted ZIP file in this topic to a disk image with the hope that the mouse "driver" inside it will handle mouse thus working with JSep. And it worked, but the colours were changed too, no idea why. Maybe I've missed to copy some files EGI needs and colours are stored there? Or maybe because I also using a snapshot file (watch the URL I've posted) too? That snapshot file was also posted in the topic by someone (sorry, I forgot) without that, the EGI interface looks corrupted. Maybe the snapshot helps that only that amount of RAM, ROM images etc are configured. I am really not sure how it's related though ...
Title: Re: Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.06. 16:19:12
Some EGI technical informations what I'm discovered:
It is a normal EXOS extension (header 06h), using own space as RAM at many-many points then it is can not placed to ROM.
The main activity started by load EXOS module function, the .EGI programs are 128 (80h) type modules which are handle by the EGI extension.
It is link a new device driver called as EGI: and also open channel for it, and set to default. This is a replacement of the EXOS EDITOR function for the graphical enviroment.
When writing to EGI: channel it is displayed in the active window.

For the mouse using a MOUSE: channel, which are come from the original Boxsoft MOUSE.XR, but any modified MOUSE.XR can be used.
Title: Re: Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.06. 16:27:36
If anyone interested, there is the draft disassembly:
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 16:58:33
The EGI apps are loaded on 0x100. A jump to the EGI extension is placed at 0x08, so some things(graphical) are done loading registers and doing RST 0x08.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2014.October.06. 17:08:22
Quote from: Zozosoft
If anyone interested, there is the draft disassembly:
Hey Zozo, can you see if that disassembly is similar to the text inside EGI.REL (http://enterpriseforever.com/other-topics/enterprise-graphical-interface/?action=dlattach;attach=11028)?

If so then somebody can put correctly the labels.(I'm not an assembly programmer, only a snooper....)
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2014.October.07. 00:27:12
The text file is the same assembler code.  There are two big chunks full of useful labels.
Title: Re: Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.07. 10:54:25
Quote from: gflorez
The text file is the same assembler code.  There are two big chunks full of useful labels.
Yes, it is looks parts of source remain as memory garbage at empty buffers locations.
Unfortunately are encoded source, probably broken Turbo Asmon?
I manualy decoded to text format in Programmers Notepad, by pressing very lot of DELs and TABs :-)
Title: Re: Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.07. 11:01:18
The code start of src1, WINDINIT at CF46h in the code.
The src2 start at few instructions before D335h.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2014.October.07. 12:09:05
Really chunk 1 and 2 follow straight(why? I don't know, mystery of compilers...), but there is a gap just between the end of open: and SYSTOP:
Title: Re: Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.07. 13:29:03
I added the discovered labels to the disassembly.
Title: Re:Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.07. 16:22:02
Quote from: Zozosoft
How you recolored the EGI? What I previously see are black and green.
Found the solution: the EGIOPT.DAT contain the color options.
But don't find where you can setup this in the EGI :oops:
Title: Re:Enterprise Graphical Interface
Post by: lgb on 2014.October.07. 16:45:12
Quote from: Zozosoft
Found the solution: the EGIOPT.DAT contain the color options.
But don't find where you can setup this in the EGI :oops:

Hmm, maybe I failed to copy that file, and the default is the colour scheme you've asked about :) Is it possible that there was some kind of setup utility as a standalone program and not inside the "manager" to set things up like the colours?
Title: Re: Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.07. 22:48:31
I checked the "mouse pointer bug" on the real machine with the original mouse. The bug are in the EGI.
Title: Re: Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.08. 14:26:23
On Nicks Disk 1 are included a EGI.PIC in the EGI package.
[attach=1]

It is same picture what used at Enterprise Computing International first release cover (http://enterprise.iko.hu/magazines/ECI_No1.jpg).
When found this magazine few years ago, was the evidence the EGI are existing thing not only fairytale :-)
Title: Re: Enterprise Graphical Interface
Post by: Z80System on 2014.October.08. 15:48:31
Yes, it is so strange ... when I first heard about the "Amiga" it seemd fairy tale, too. Then, after some years, turned out, it is real.

It is the same case ... maybe this was the ONLY instance in which it survived ...

And it found the way to us ... :)
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2014.October.08. 16:51:31
I think EGI isn't similar to EDCW(EDCW is a joke of Mac, but very limited). EGI has more potential if its operation is decoded. Somebody could implement a system window as was done in w95 or Amiga, with only showing on the screen the icons loaded from a separate file("FILE.I"). I think Rhodri Cusack thought about it. Why did he an icon editor?



Some predetermined files(TXT, COM, etc) without that icon file could be viewed with predetermined icons stored on DOODLE.ICS or ICON.ICS. And then be launched automatically like the EGI system yet does. Then could be easy to add more types of file like Zozo had made to EXDOS.
Title: Re: Enterprise Graphical Interface
Post by: Zozosoft on 2014.October.15. 09:06:41
Wow! See the name of the latest new member!
Title: Re: Enterprise Graphical Interface
Post by: geco on 2014.October.15. 09:15:52
Great !!! :smt041
Welcome here Rhodri :)
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2014.October.15. 14:00:20
I have sent several invitations to Rhodri Cusack, to his blog and by Twitter. Like fishing.....

There was no mistaking with his name so I searched him in the Web.

He is a very busy person and we must thank a lot his visit.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2015.July.22. 23:04:07
I forgot to say that I had a last answer from Rhodri Cusack for my invitation.  He said  that entering the web page had rejoiced him the day...

But seems that almost thirty years later from creating the EGI he has other interests now.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2015.July.23. 00:33:46
I've removed an EXOS call inside EGI.REL. It changed the "INPUT_DEVICE" variable(189) to option 3 (Boxsoft interface).

But then now we must set it to our choice before loading FMAN.EGI on the EXDOS.INI script:

:uk  this is to avoid the EGI File Manager incompatibility with Language Roms(BRD: HUN: ESP:)
:var 7 1  This is to cancel Key-click on Internal Joystick mode.
:var 6 1
:var 10 8
:var 11 20
:echo EGI-I-101-wmstrt-Warm starting
:load \egi.sys\fman.egi
:cls
:echo Creating Ramdisk E:
:ramdisk 2 /d
:vol e: EGI Ramdisk
:echo EGI-I-102-cdstrt-Cold starting
:load \egi.sys\mouse.xr
:load \egi.sys\egi.rel
:assign a: f:  these two assigns are for compatibility with the SD-reader without EXDOS card. Delete them if not the case  
:assign b: g:   /
:var 189 0  this is to select the internal joystick to move the pointer.
:load \egi.sys\fman.egi

Here are the modified EGI extension and Mouse driver(Hsoft&Boxsoft mix). I've included a ready EGI image disk that can also work with the SD-reader if you copy all the files to the F: partition.

The "INPUT_DEVICE" variable(189) can be set inside the EGI with the "SYSTEM (: )" menu option executing for example "VAR 189 1" to select the Joy1 control. You can exit the command line with the scape key. If you select an option and you lack the proper interface obviously you can't controll the pointer.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2015.September.20. 16:53:13
What if the EGI were an interpreted language?

I suspect it is. I am searching on the assembly code how an EGI module is loaded in it to track how it works.

Imagine the posibilities....
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2015.September.23. 00:47:42
It isn't an interpreted language, it is better, a library of  calls for graphics tasks.

The EGI  uses "rst 8" the same as EXOS uses "rst 30h".  For that purpose some code has been put at addresses 08h and 80h. Just before the call the registers are loaded with parameters. A byte is put just after the call, and so the EGI knows what command is.

The header of  EGI modules begin with 00h 80h mark and their content is  positioned on address 100h. It is Z80 code, but as it has EGI calls mixed, it can't run outside of the graphical environment.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2015.September.23. 23:13:59
This is the disassembly of the "word count" module(WRDCOUNT.EGI).

I still have to discover what the calls do, but fortunately the program is very simple and short.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2015.September.24. 20:07:27
This post is to put the curiosities I find inside the EGI:

-Like the PCs, pressing Ctrl+Alt+Del makes the Enterprise reset towards the flashing letters.......

-Ctrl+Alt+P sends a snapshot to a connected printer if......you have installed the  Boxsoft  Screen Utilities. When you press the keys-combination  the string "SCRDUMP 254" is send to the system extensions.

-Coordinates on EGI are counted by rows and columns of characters inside the rectangles, but on the screen they are counted by real pixels. X and Y begin at the upper-left corner.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2015.September.27. 17:42:23
This is the description of the EGI calls (rst 8 ) with the information I am finding.

CAUTION! this information can be packed of errors....

Call 0 returns doing nothing.

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

Call 1

-Option A=0, without other parameters, initializes some vars and the latch  byte_CE27=1, Also is initialised the screen for EGI(channel FEh), puts the stock menu and initializes the mouse.

-Option A=1, serves to change the base of icons. They are contained on ICS-taged files. DE points to a device filename string. Closes channel FAh if exists, then opens it with the filename string in DE, loads an ICS block(user-created Icon files always  have 2304 bytes, except the internal EGI.ICS that has 72 bytes) at unk_F6O4 and closes the FAh channel. The buffer unk_F604(Icons) is manipulated by call 2, obviously.

-Option A=255, 100h is loaded at address word_CE25.  I still don't know why.

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

Call 2

-Option A=1 draws an icon and puts an event that waits for a click inside the icon-drawn zone. BC contains the coordinates of the left-upper corner. DE the number of icon, HL the Z80 address where to jump when the icon is clicked.

-Option A=0, I think it only draws the icon but without putting a click zone.

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

Call 3 with A=1 puts a personal menu at the Right side of the EGI stock one, but I still don't know how to fill the parameters.

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

Call 4 draws windows on the screen, only the graphics, it doesn't create a space to put things.

It needs BC, DE and A registers as operands.

BC contains the column and row where the left-upper corner will be drawn.

D contains the number of columns the window will have. E contains the number of lines.

A contains the stile on bits 0, 1, 2, 3, 4. But only some bits seem to do something.

Stile 0 is rectangle without frame.
Stile 1 is line frame,
Stile 2 makes the rectangle a click-event zone, but I still don't know how.
Stile 4 is thick texture frame.
Stile 1+4 is thick solid frame
--------------------------

Call 5 with A=6 selects in L the window where to put the printing cursor, in the same order that they where opened, beginning at 0.

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

Call 6

-Option A=1 changes the graphics of the mouse pointer. Both HL(shape) and DE(mask) can't be higher than 25h nor 0(observe it can get past number 32 icon upto Arrow shape and Arrow mask). Of course you must have been loaded before buffer Unk_F604 with an ICS-tagged file with 32 icons(call 1, a=1). If not, the pointer will have a strange look.

If HL=0 then file arrshp.dat(arrow shape, 76 bytes ) is loaded at buffer (unk_ff94h ), and file arrmsk.dat(arrow mask, 76 bytes ) loaded at buffer (unk_ff4ch ). It is the default pointer graphic loaded at EGI startup

-Option A=2. If HL is empty then it's loaded with the value of (unk_cdf6=00aah ). (word_cda3 ) is loaded with the value of HL.

-Option A=3. (word_cda1) is loaded with the value of HL.

-Option A=4. If (byte_c429)=ffh, load (word_cd9d) with the content of (word_c427) and (word_c427) with ffh.
                       If (byte_c429)<>ffh, load (word_c427) with the content of (word_cd9d) and (byte_c429) with ffh.

-Option A=6. If L>11 then returns. The value of L is loaded on (byte_c3f8 ) and returns.

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

Call 8 simply closes channel FEh and puts byte_CE27=0. This var is like a latch that only allows calls 1, 6, 125 and 255 to work.

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

call 9

Deals with opening zones to print and printing of strings:

-Option A= 0 opens a space on the screen to print strings. Then BC and DE operands act the same as with call 4.

BC contains the coordinates of the point in the screen where the left-upper corner will be drawn. B as X and C as Y.
D contains the number of columns the window will have. E contains the number of lines.


-Option A=1, implies printing on a zone previously opened with option A=0. "BC" contains the length and "DE" the z80 address where the string begins. It isn't the standard EP string mode "length+string".

The text can have a stile: normal, bold, italic or inverse just inserting a escape sequence on the string:

ESCP,I,0=normal
ESCP,I,1=Bold
ESCP,I,2=italic
ESCP,I,4=inverse

They are binary so, for example, mode 3 is bold+italic.

Also there are the usual LF, ERA, DEL, INS etc.

I still don't know what register L does(displaces the box some lines down).

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

Call 13

Loads and executes a new EGI module. DE points to a device filename string.

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

Call 126

Register A can have options 1 and 2 that are converted to 1 and 0 respectively and stored on byte_C231. I still don't know what it does.

------------------------
Call 255

Starts a sort of script of EGI calls. HL holds the start address. The eight bytes starting on (HL ) contain:

(HL)     = Register A
(HL+1 )= Number of call
(HL+2 )= Register C
(HL+3 )= Register B
(HL+4 )= Register E
(HL+5 )= Register D
(HL+6 )= Register L
(HL+7 )= Register H

Once transferred the data to the appropriate register or var address, the routine sub_c195(sorting of EGI calls) is called.

When returned HL is incremented by 8 and the following eight bytes are read and so on.

The way to exit from that loop is putting a zero on the two first bytes of a group of eight.

------------------------
I still don't know what the rest of calls do (7, 10, 125 and 127).
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2015.October.07. 11:19:57
I've found new details of the EGI calls. You can read them on the two previous posts.


Also, here it is a preliminary disassembly of the EGI FileManager. Still remains a lot of work.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2015.October.13. 18:54:49
Zozo said it on a previous post. The colour appearance of the EGI is contained on a file named EGIOPT.DAT on the EGI.SYS directory. But There isn't an option to change it on the menu.

Searching with an Hex editor (http://www.handshake.de/user/chmaas/delphi/download/xvi32_254.zip) I've found the mystery: the two last bytes of the file are the paper and the ink.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2015.October.14. 10:41:34
With the EGI you can change the shape of the pointer editing the files  ARRSHP.DAT and ARRMSK.DAT. It can be done comfortably with the ICON.EGI module but you can't save a one-icon file(72 bytes), it saves all the 32 icon base even if it is not loaded(2304 bytes). The solution is to put the pointer's graphic on the first position, then you can later erase all the rest with an Hex editor.

Why two files? because the EGI needs a mask to erase the shape to the background.

This is my first attempt:
https://www.dropbox.com/s/try23fyieltrvbg/Hand%20pointer.bmp?dl=0

Edit: I have edited the dropbox link because it doesn't show properly. Also I have changed the shape. An oversize shape is better to see the solid arrow, but for the hand an exact shape is sufficient.
Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2015.November.05. 17:31:29
The HEASS.rom is compatible with the EGI, what happens is that the ".EGI" tag is associated with HEASS when that rom is present. So first the HEASS is loaded because the EXDOS.INI batch file tried to load Fman,egi without the Graphical Environment.

Once loaded EGI.REL, the programs loading with that tag is correctly redirected to the EGI.

This is the fixed EXDOS.INI:

:uk  This is to avoid the EGI File Manager incompatibility with Language Roms(BRD: HUN: ESP:)
:var 7 1    This is to cancel Key-click on Internal Joystick mode.
:var 6 1
:var 10 8
:var 11 20
:echo EGI-I-101-wmstrt-Warm starting   These two lines must be deleted.
:load \egi.sys\fman.egi
:cls
:echo Creating Ramdisk E:  The RAMDISK creation can be avoided deleting that lines.
:ramdisk 2 /d                       <----|
:vol e: EGI Ramdisk          <----|
:echo EGI-I-102-cdstrt-Cold starting   This line must be deleted.
:load \egi.sys\mouse.xr
:load \egi.sys\egi.rel
:assign a: f:    These two assigns are for compatibility with the SD-reader without EXDOS card. Delete them if not the case  
:assign b: g:   /
:var 189 0    This is to select the internal joystick to move the pointer.
:load \egi.sys\fman.egi


A better way for warm re-entering the EGI can be  putting "load a:\egi.sys\fman.egi" inside a text file named "EGI" or the name you want.

Put that batch file inside the root of the disc, and then you can return from Basic to EGI only typing ":EXDOS A:EGI".



edit: the EGI needs other auxiliary files that must be present on the a:\egi.sys\ directory, but the unit can be anyone, F, G or B. If not found this screen is shown:

Title: Re: Enterprise Graphical Interface
Post by: gflorez on 2016.February.05. 15:04:31
This is an image of my modified EGI disk. It has the EGI batch file, so you can return from other program only executing :EXDOS EGI from the root directory of the disk. Also, it has the last version of the Mouse driver.

I want to put the image disk as a link on the wiki pages.



Edit: I sort of fixed an error that prevented using Zozo-tools  with the File Manager of EGI. Now 12 h time(system var 79 put to 27) is set every time an EGI module is launched.

Edit: EnterMice wiki links updated.