Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.sys.apple2.programmer > #4550 > unrolled thread

A2osX : Now Preemptive .....and still lacking contributors!

Started byremy gibert <remygibert63@gmail.com>
First post2018-05-24 08:35 -0700
Last post2018-06-30 12:40 -0700
Articles 20 on this page of 23 — 8 participants

Back to article view | Back to comp.sys.apple2.programmer


Contents

  A2osX : Now Preemptive .....and still lacking contributors! remy gibert <remygibert63@gmail.com> - 2018-05-24 08:35 -0700
    Re: A2osX : Now Preemptive .....and still lacking contributors! Jean-Michel Paris <paris.jean.michel@gmail.com> - 2018-05-24 13:29 -0700
      Re: A2osX : Now Preemptive .....and still lacking contributors! remy gibert <remy.gibert@free.fr> - 2018-05-26 03:19 -0700
    A2osX : Now Preemptive .....and still lacking contributors! Jonathan Roseberry <jonathan.roseberry4@gmail.com> - 2018-05-25 17:25 -0700
      Re: A2osX : Now Preemptive .....and still lacking contributors! remy gibert <remy.gibert@free.fr> - 2018-05-25 23:55 -0700
    Re: A2osX : Now Preemptive .....and still lacking contributors! remy gibert <remy.gibert@free.fr> - 2018-06-09 10:09 -0700
    Re: A2osX : Now Preemptive .....and still lacking contributors! Jean-Michel Paris <paris.jean.michel@gmail.com> - 2018-06-10 05:45 -0700
      Re: A2osX : Now Preemptive .....and still lacking contributors! Antoine Vignau <antoine.vignau@laposte.net> - 2018-06-11 21:17 -0700
        Re: A2osX : Now Preemptive .....and still lacking contributors! remy gibert <remy.gibert@free.fr> - 2018-06-12 03:24 -0700
    Re: A2osX : Now Preemptive .....and still lacking contributors! remy gibert <remy.gibert@free.fr> - 2018-06-29 04:30 -0700
      Re: A2osX : Now Preemptive .....and still lacking contributors! Antoine Vignau <antoine.vignau@laposte.net> - 2018-06-30 05:28 -0700
        Re: A2osX : Now Preemptive .....and still lacking contributors! remy gibert <remy.gibert@free.fr> - 2018-06-30 07:01 -0700
          Re: A2osX : Now Preemptive .....and still lacking contributors! MG <*@guidero.us> - 2018-06-30 12:45 -0700
            Re: A2osX : Now Preemptive .....and still lacking contributors! remy gibert <remy.gibert@free.fr> - 2018-06-30 23:11 -0700
              Re: A2osX : Now Preemptive .....and still lacking contributors! ol.sc@web.de (Oliver Schmidt) - 2018-07-02 08:49 +0000
                Re: A2osX : Now Preemptive .....and still lacking contributors! remy gibert <remy.gibert@free.fr> - 2018-07-02 06:33 -0700
                  Re: A2osX : Now Preemptive .....and still lacking contributors! MG <*@guidero.us> - 2018-07-02 22:30 -0700
                    Re: A2osX : Now Preemptive .....and still lacking contributors! remy gibert <remy.gibert@free.fr> - 2018-07-03 10:39 -0700
                      Re: A2osX : Now Preemptive .....and still lacking contributors! barana <barana24@hotmail.com> - 2018-07-13 22:59 -0700
                        Re: A2osX : Now Preemptive .....and still lacking contributors! remy gibert <remy.gibert@free.fr> - 2018-07-14 00:00 -0700
                          Re: A2osX : Now Preemptive .....and still lacking contributors! barana <barana24@hotmail.com> - 2018-07-14 00:50 -0700
                            Re: A2osX : Now Preemptive .....and still lacking contributors! remy gibert <remy.gibert@free.fr> - 2018-07-14 01:18 -0700
      Re: A2osX : Now Preemptive .....and still lacking contributors! MG <*@guidero.us> - 2018-06-30 12:40 -0700

Page 1 of 2  [1] 2  Next page →


#4550 — A2osX : Now Preemptive .....and still lacking contributors!

Fromremy gibert <remygibert63@gmail.com>
Date2018-05-24 08:35 -0700
SubjectA2osX : Now Preemptive .....and still lacking contributors!
Message-ID<6ce7b4f4-0141-41bc-8155-c14d787d94c0@googlegroups.com>
All is there :

https://github.com/burniouf/A2osX

I need testers, coders, hardware providers, help....

If anybody want to join this project...

[toc] | [next] | [standalone]


#4551

FromJean-Michel Paris <paris.jean.michel@gmail.com>
Date2018-05-24 13:29 -0700
Message-ID<37758ab7-bd40-439b-9804-4bc2c158522d@googlegroups.com>
In reply to#4550
Le jeudi 24 mai 2018 17:35:01 UTC+2, remy gibert a écrit :
> All is there :
> 
> https://github.com/burniouf/A2osX
> 
> I need testers, coders, hardware providers, help....
> 
> If anybody want to join this project...

It's a great project, you have to support him!

I'm free for testing A2osX.dsk anytime on real hardware ;)

[toc] | [prev] | [next] | [standalone]


#4554

Fromremy gibert <remy.gibert@free.fr>
Date2018-05-26 03:19 -0700
Message-ID<cf8568d5-2f5c-469a-85e8-15ffb1ff9742@googlegroups.com>
In reply to#4551
Le jeudi 24 mai 2018 22:29:43 UTC+2, Jean-Michel Paris a écrit :
> Le jeudi 24 mai 2018 17:35:01 UTC+2, remy gibert a écrit :
> > All is there :
> > 
> > https://github.com/burniouf/A2osX
> > 
> > I need testers, coders, hardware providers, help....
> > 
> > If anybody want to join this project...
> 
> It's a great project, you have to support him!
> 
> I'm free for testing A2osX.dsk anytime on real hardware ;)

Hello JM!

Please report issues at GitHub.

[toc] | [prev] | [next] | [standalone]


#4552

FromJonathan Roseberry <jonathan.roseberry4@gmail.com>
Date2018-05-25 17:25 -0700
Message-ID<2ae5c174-9204-4dd7-a9cd-88c025e688a3@googlegroups.com>
In reply to#4550
I would love to help out! Where do we sign up?

[toc] | [prev] | [next] | [standalone]


#4553

Fromremy gibert <remy.gibert@free.fr>
Date2018-05-25 23:55 -0700
Message-ID<6bf7c606-2869-4314-9cdb-b94062c8374f@googlegroups.com>
In reply to#4552
Le samedi 26 mai 2018 02:25:18 UTC+2, Jonathan Roseberry a écrit :
> I would love to help out! Where do we sign up?

Great!

If not already done, create an account at GitHub.
a good start should be reading/commenting:

https://github.com/burniouf/A2osX/issues/29

PM me your skills and in which area (test,dev...etc...) you'll be glad to contribute.

Thanx

[toc] | [prev] | [next] | [standalone]


#4586

Fromremy gibert <remy.gibert@free.fr>
Date2018-06-09 10:09 -0700
Message-ID<c6082fcc-5a86-4fde-9e3f-c7757095794f@googlegroups.com>
In reply to#4550
Le jeudi 24 mai 2018 17:35:01 UTC+2, remy gibert a écrit :
> All is there :
> 
> https://github.com/burniouf/A2osX
> 
> I need testers, coders, hardware providers, help....
> 
> If anybody want to join this project...

Nobody ?

[toc] | [prev] | [next] | [standalone]


#4587

FromJean-Michel Paris <paris.jean.michel@gmail.com>
Date2018-06-10 05:45 -0700
Message-ID<84adb396-9d99-4055-8f9f-554c96d87c5c@googlegroups.com>
In reply to#4550
Le jeudi 24 mai 2018 17:35:01 UTC+2, remy gibert a écrit :
> All is there :
> 
> https://github.com/burniouf/A2osX
> 
> I need testers, coders, hardware providers, help....
> 
> If anybody want to join this project...


Ok, I'll gather inputs into GitHub

[toc] | [prev] | [next] | [standalone]


#4588

FromAntoine Vignau <antoine.vignau@laposte.net>
Date2018-06-11 21:17 -0700
Message-ID<e39003e4-2d02-4736-ad6d-dfc7e0bbfad2@googlegroups.com>
In reply to#4587
Rémy,
please read comp.sys.apple2, a couple of persons would like to exchange with you,
av

[toc] | [prev] | [next] | [standalone]


#4589

Fromremy gibert <remy.gibert@free.fr>
Date2018-06-12 03:24 -0700
Message-ID<72cdd998-1989-4bcf-a7bc-8a350f535d11@googlegroups.com>
In reply to#4588
Le mardi 12 juin 2018 06:17:46 UTC+2, Antoine Vignau a écrit :
> Rémy,
> please read comp.sys.apple2, a couple of persons would like to exchange with you,
> av

oops....did not realized you also published to comp.sys.apple...

Thanx!

[toc] | [prev] | [next] | [standalone]


#4623

Fromremy gibert <remy.gibert@free.fr>
Date2018-06-29 04:30 -0700
Message-ID<aa7e6987-c7e3-4b2f-a758-8fc1d90fd7af@googlegroups.com>
In reply to#4550
Le jeudi 24 mai 2018 17:35:01 UTC+2, remy gibert a écrit :
> All is there :
> 
> https://github.com/burniouf/A2osX
> 
> I need testers, coders, hardware providers, help....
> 
> If anybody want to join this project...

Quick Z80 Questions :

I'm currently rewriting the whole A2osX kernel, and i reach the part of the code that handle Code segment management & 65c02 relocation.

I want it to be extended to Z80, and i'm not an expert on this processor.

- is a piece of Z80 code could be relocatable od do i need to add an opcode parser and a relocator for Z80 ?

i know there is 2 main families of Z80 board achitecture : Microsoft Z80 (& clones) and PCPI applicard.

- is anybody aware of developer documentation about PCPI, specially dealing about IRQ ?

[toc] | [prev] | [next] | [standalone]


#4632

FromAntoine Vignau <antoine.vignau@laposte.net>
Date2018-06-30 05:28 -0700
Message-ID<5443c4c7-c99d-43d6-84fb-6d4807466968@googlegroups.com>
In reply to#4623
Try here: http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Interface%20Cards/Z80%20Cards/

av

[toc] | [prev] | [next] | [standalone]


#4633

Fromremy gibert <remy.gibert@free.fr>
Date2018-06-30 07:01 -0700
Message-ID<c10af0d1-e6b0-48df-a0a5-c545d57703d0@googlegroups.com>
In reply to#4632
Le samedi 30 juin 2018 14:28:58 UTC+2, Antoine Vignau a écrit :
> Try here: http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Interface%20Cards/Z80%20Cards/
> 
> av

Thanx Antoine!

Already read the OEM manual, but i need confirmation that the Apple IRQ/NMI lines are NOT linked to Z80 IRQ/NMI....only accessing I/O C0n6 & C0n7 interrupt the Z80.

For MS softcard, i need confirmation that SI-4 is OFF, Z80 is halted and 6502 is awaken in IRQ state.


[toc] | [prev] | [next] | [standalone]


#4635

FromMG <*@guidero.us>
Date2018-06-30 12:45 -0700
Message-ID<e96901c6-8f9d-47a4-8045-ada55bdf04fd@googlegroups.com>
In reply to#4633
On Saturday, June 30, 2018 at 7:01:56 AM UTC-7, remy gibert wrote:
> Le samedi 30 juin 2018 14:28:58 UTC+2, Antoine Vignau a écrit :
> > Try here: http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Interface%20Cards/Z80%20Cards/
> > 
> > av
> 
> Thanx Antoine!
> 
> Already read the OEM manual, but i need confirmation that the Apple IRQ/NMI lines are NOT linked to Z80 IRQ/NMI....only accessing I/O C0n6 & C0n7 interrupt the Z80.

I believe this is correct.  Additionally, as I mentioned before the C0x6 line is only functional if the CTC is installed.

> For MS softcard, i need confirmation that SI-4 is OFF, Z80 is halted and 6502 is awaken in IRQ state.

This is incorrect.  When an IRQ occurs, the 6502 has an IRQ response pending, but the Z80 stays active until it voluntarily gives up control.  It is probably for this reason that the SoftCard BIOS generally uses 6502 code to do menial things like read the keyboard, because it gives the opportunity for the 6502 to service interrupts.

MG

[toc] | [prev] | [next] | [standalone]


#4636

Fromremy gibert <remy.gibert@free.fr>
Date2018-06-30 23:11 -0700
Message-ID<0b0f57cd-19dc-4154-ba93-fdfa1a3207f7@googlegroups.com>
In reply to#4635
Le samedi 30 juin 2018 21:45:34 UTC+2, MG a écrit :
> On Saturday, June 30, 2018 at 7:01:56 AM UTC-7, remy gibert wrote:
> > Le samedi 30 juin 2018 14:28:58 UTC+2, Antoine Vignau a écrit :
> > > Try here: http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Interface%20Cards/Z80%20Cards/
> > > 
> > > av
> > 
> > Thanx Antoine!
> > 
> > Already read the OEM manual, but i need confirmation that the Apple IRQ/NMI lines are NOT linked to Z80 IRQ/NMI....only accessing I/O C0n6 & C0n7 interrupt the Z80.
> 
> I believe this is correct.  Additionally, as I mentioned before the C0x6 line is only functional if the CTC is installed.
> 
> > For MS softcard, i need confirmation that SI-4 is OFF, Z80 is halted and 6502 is awaken in IRQ state.
> 
> This is incorrect.  When an IRQ occurs, the 6502 has an IRQ response pending, but the Z80 stays active until it voluntarily gives up control.  It is probably for this reason that the SoftCard BIOS generally uses 6502 code to do menial things like read the keyboard, because it gives the opportunity for the 6502 to service interrupts.
> 
> MG

Thank you for these usefull links & informations.

The good news is that no particular Z80 IRQ handler has to be written in both cases.

The bad news, if a Z80 process is running, it could not be interrupted by "Tick source", so collaborative only, not preemtive.

[toc] | [prev] | [next] | [standalone]


#4638

Fromol.sc@web.de (Oliver Schmidt)
Date2018-07-02 08:49 +0000
Message-ID<phcou3$3ci$1@news.albasani.net>
In reply to#4636
Hi,

>> This is incorrect.  When an IRQ occurs, the 6502 has an IRQ response pend=
>ing, but the Z80 stays active until it voluntarily gives up control.  It is=
> probably for this reason that the SoftCard BIOS generally uses 6502 code t=
>o do menial things like read the keyboard, because it gives the opportunity=
> for the 6502 to service interrupts.

I've done interrupt driven serial I/O from CP/M back then and I
remember it in the same way (with 6502 code) - and I remember that the
Microsoft documention was pretty clear and accurate regarding IRQ
handling.

Regards,
Oliver

[toc] | [prev] | [next] | [standalone]


#4639

Fromremy gibert <remy.gibert@free.fr>
Date2018-07-02 06:33 -0700
Message-ID<665636c2-cf22-4478-be5f-305f5690bbe8@googlegroups.com>
In reply to#4638
Le lundi 2 juillet 2018 10:49:08 UTC+2, Oliver Schmidt a écrit :
> Hi,
> 
> >> This is incorrect.  When an IRQ occurs, the 6502 has an IRQ response pend=
> >ing, but the Z80 stays active until it voluntarily gives up control.  It is=
> > probably for this reason that the SoftCard BIOS generally uses 6502 code t=
> >o do menial things like read the keyboard, because it gives the opportunity=
> > for the 6502 to service interrupts.
> 
> I've done interrupt driven serial I/O from CP/M back then and I
> remember it in the same way (with 6502 code) - and I remember that the
> Microsoft documention was pretty clear and accurate regarding IRQ
> handling.
> 
> Regards,
> Oliver

Following Antoine link, I found this :

http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Interface%20Cards/Z80%20Cards/Microsoft%20SoftCard/Manuals/ Microsoft SoftCard - Software and Hardware Details.pdf

According Schematics, seems S1-4 switched to ON is the solution to interrupt Z80.

So i need a IRQ Handler in the Z80 code that's simply switch back to 6502 to an instruction that switch bacl to Z80. As the 6502 should get also interrupted, the IRQ Handler code should be called between these 2 Lines. 

Z80 IRQ Handler:

LD (0En00H),A
   <Z80-6502 IRQ Handler>
RETI


Z80-6502 IRQ Handler
   <IRQ!>
sta $Cn00  (go back to Z80 RETI)

[toc] | [prev] | [next] | [standalone]


#4640

FromMG <*@guidero.us>
Date2018-07-02 22:30 -0700
Message-ID<393072b2-0b6e-4cbc-91f0-dc9a836bbd7d@googlegroups.com>
In reply to#4639
On Monday, July 2, 2018 at 6:33:03 AM UTC-7, remy gibert wrote:
> So i need a IRQ Handler in the Z80 code that's simply switch back to 6502 to an instruction that switch bacl to Z80. As the 6502 should get also interrupted, the IRQ Handler code should be called between these 2 Lines. 
> 
> Z80 IRQ Handler:
> 
> LD (0En00H),A
>    <Z80-6502 IRQ Handler>
> RETI
> 
> 
> Z80-6502 IRQ Handler
>    <IRQ!>
> sta $Cn00  (go back to Z80 RETI)

It's going to be a little more complicated than that.  For the Softcard and compatibles, each processor picks up where it left off (provided there was no intervening reset) each time a write to it's ROM space happens.  You can't just STA $CN00 from the IRQ handler on the 6502 side, since to manage Z80 execution you need to be in a loop like this:

ZLOOP: STA $Cn00
  JSR FF58 (or some other RTS, Z80 code will change this to make 6502 calls)
  ; check for exit condition here.
  JMP ZLOOP

When an interrupt occurs in Z80 mode, the Z80 ISR needs to save the target address of the JSR, set the JSR to $FF58 (or some other RTS), and then STA $En00 to let the 6502 ISR service the interrupt.  After that happens then do whatever work needs to be done in the Z80 ISR.

You're going to find the lack of ability to set the Z80 to a known state to be particularly challenging, and in my opinion is the biggest flaw in the Softcard design.  If you aren't the first program getting control of the Z80 since the last reset, you are not guaranteed you will get control at all and will likely hang or crash.

Assuming you do have control of the Z80, in order to get out of the Z80 for a while and reliably get back in, you'll need to make sure you always exit from a known address after setting the exit condition, that way you know which address to poke a Z80 JP instruction to in order to regain control later.

MG

[toc] | [prev] | [next] | [standalone]


#4644

Fromremy gibert <remy.gibert@free.fr>
Date2018-07-03 10:39 -0700
Message-ID<b8007603-6638-4774-a191-412c1a1e1608@googlegroups.com>
In reply to#4640
Le mardi 3 juillet 2018 07:30:01 UTC+2, MG a écrit :
> On Monday, July 2, 2018 at 6:33:03 AM UTC-7, remy gibert wrote:
> > So i need a IRQ Handler in the Z80 code that's simply switch back to 6502 to an instruction that switch bacl to Z80. As the 6502 should get also interrupted, the IRQ Handler code should be called between these 2 Lines. 
> > 
> > Z80 IRQ Handler:
> > 
> > LD (0En00H),A
> >    <Z80-6502 IRQ Handler>
> > RETI
> > 
> > 
> > Z80-6502 IRQ Handler
> >    <IRQ!>
> > sta $Cn00  (go back to Z80 RETI)
> 
> It's going to be a little more complicated than that.  For the Softcard and compatibles, each processor picks up where it left off (provided there was no intervening reset) each time a write to it's ROM space happens.  You can't just STA $CN00 from the IRQ handler on the 6502 side, since to manage Z80 execution you need to be in a loop like this:
> 
> ZLOOP: STA $Cn00
>   JSR FF58 (or some other RTS, Z80 code will change this to make 6502 calls)
>   ; check for exit condition here.
>   JMP ZLOOP
> 
> When an interrupt occurs in Z80 mode, the Z80 ISR needs to save the target address of the JSR, set the JSR to $FF58 (or some other RTS), and then STA $En00 to let the 6502 ISR service the interrupt.  After that happens then do whatever work needs to be done in the Z80 ISR.
> 
> You're going to find the lack of ability to set the Z80 to a known state to be particularly challenging, and in my opinion is the biggest flaw in the Softcard design.  If you aren't the first program getting control of the Z80 since the last reset, you are not guaranteed you will get control at all and will likely hang or crash.
> 
> Assuming you do have control of the Z80, in order to get out of the Z80 for a while and reliably get back in, you'll need to make sure you always exit from a known address after setting the exit condition, that way you know which address to poke a Z80 JP instruction to in order to regain control later.
> 
> MG

Yes, i agree! i'm quite sure it will end up with more than 2 lines of Z80 code ;-)

Thanx for your inputs, it make things more clear, now.
My main problem for now is how to insert these Z80 lines inside kernel setup routines. The assembler i use does not knowthis CPU, and the A2osX embedded cross assembler which is able to assemble anything is not yet completed.

Also, to have the complete picture of the Z80 world, i must find out how to handle PCPI type cards and i need to know if there is any 3rd type of Z80 card  i should consider.


Thanx all for your inputs!
Rémy

[toc] | [prev] | [next] | [standalone]


#4648

Frombarana <barana24@hotmail.com>
Date2018-07-13 22:59 -0700
Message-ID<5cf1dda3-830d-4fb4-bbd4-73caa87e6b8b@googlegroups.com>
In reply to#4644
Will your os run existing 8 bit binaries?

[toc] | [prev] | [next] | [standalone]


#4649

Fromremy gibert <remy.gibert@free.fr>
Date2018-07-14 00:00 -0700
Message-ID<b3ae1910-fcae-4bf4-8d55-02cb0a342fec@googlegroups.com>
In reply to#4648
Le samedi 14 juillet 2018 07:59:37 UTC+2, barana a écrit :
> Will your os run existing 8 bit binaries?

Do you mean another ".SYSTEM" File ?

A2osX installs its own "quit code" to switch to another .SYSTEM file, then come back to KERNEL....but for now, The Kernel is not able yet to quit gracefully every processes and uninstall itself from memory. This is designed for, but required code is still missing.....

[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | comp.sys.apple2.programmer


csiph-web