News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

CPC/IP reworked onto a ROM.

Started by rpalmer, 00:43, 31 December 10

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

rpalmer

Hello all,

I have been re-working the CPC/IP source code to work from a ROM.
I have managed to get a version assembled to work from a ROM.

The converted code does not include the device controller to communicate with the hardware.
The device code would be expected to work independently via a common buffer.
There is more work to follow (so soon all CPC owners may be able to get to the web????)

Feel free to ask questions via email or CPCwiki.

I do have a real CPC6128, but alas my internal drive died some 10 years ago so i am unable to test my code.

I have an EPROM programmer for CPC, but again no drive no means to create a real ROM.

I also have a real RS-232 interface, but again with no way to get the code onto a real CPC im still only able to develop the code via WinAPE.

CPCLER

Hi

Great news been waiting for this for quite a while :-)

/CPCLER

Quote from: rpalmer on 00:43, 31 December 10
Hello all,

I have been re-working the CPC/IP source code to work from a ROM.
I have managed to get a version assembled to work from a ROM.

The converted code does not include the device controller to communicate with the hardware.
The device code would be expected to work independently via a common buffer.
There is more work to follow (so soon all CPC owners may be able to get to the web? ??? )

Feel free to ask questions via email or CPCwiki.

I do have a real CPC6128, but alas my internal drive died some 10 years ago so i am unable to test my code.

I have an EPROM programmer for CPC, but again no drive no means to create a real ROM.

I also have a real RS-232 interface, but again with no way to get the code onto a real CPC im still only able to develop the code via WinAPE.

arnoldemu

Quote from: rpalmer on 00:43, 31 December 10
Hello all,

I have been re-working the CPC/IP source code to work from a ROM.
I have managed to get a version assembled to work from a ROM.

The converted code does not include the device controller to communicate with the hardware.
The device code would be expected to work independently via a common buffer.
There is more work to follow (so soon all CPC owners may be able to get to the web? ??? )

Feel free to ask questions via email or CPCwiki.

I do have a real CPC6128, but alas my internal drive died some 10 years ago so i am unable to test my code.

I have an EPROM programmer for CPC, but again no drive no means to create a real ROM.

I also have a real RS-232 interface, but again with no way to get the code onto a real CPC im still only able to develop the code via WinAPE.
Welcome to cpcwiki forum.
Good to see CPC/IP working from ROM.

It is possible to fix the internal drive, it may be a simple job of replacing the belt or have you tried this already?
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

robcfg

Does WinAPE support network connection?


I mean, so we can try the rom on WinAPE.

MacDeath

Then replace the internal Disk Drive with a 3"1/2 disk drive, those can be found quite easily nowadays...


IP ?

You mean internet's IP as in TCP/IP ?

rpalmer

i have tried to replace the internal drive with a 3.5 inch one as documented on CPCWiki, but it did not work after 5 attempts (and significant checks during the changes), maybe the Aussie version of the CPC is different to those elsewhere?  I will try again so that i can get my beloved CPC to rise from the ashes.
I have bought 3.5 drives from my local computer parts retailer, but these appear to not be compatible with those documented here.  I did at one time have a siren software mega drive (3.5 drive) as drive B:, but the discs i used with it now have errors on these from non-use for over a decade.  I have tried to transfer all of them to .dsk images but i dont know if any will work when i get the CPC to work again.

WinApe does not allow for serial connection (aka RS232), however i am developing the CPC/IP software to work from a common buffer such that the external driver for the serial device can be anything that exists.
Such devices like the CPC Booster, Virtual Network 96 and so on can be developed by those who have knowledge to develop a driver.
I have converted the original serial device driver from the original CPC/IP into a ROM as well.
My very first attempt to assemble all of the code would not fit onto a 16K ROM, so i choose to develop the code without finger, telnet and the serial driver.

arnoldemu

Quote from: rpalmer on 21:32, 31 December 10
i have tried to replace the internal drive with a 3.5 inch one as documented on CPCWiki, but it did not work after 5 attempts (and significant checks during the changes), maybe the Aussie version of the CPC is different to those elsewhere?
Most of my 3.5" drives needed physical modification to work.
They are the kind for PCs so they are hardwired to be drive B (or is it A), and also they give Disk change (DC) compared to Ready (RDY).
Thankfully a few could be fixed by moving a surface mount resistor.
I also use them as cpc's drive B and I also use an old PC disc cable (the one with edge connector for 5.25" drive)
I also power them externally.

So please consider that your drives may need to be modified to work with the cpc.

Talking of Aussie CPCs, there isn't much info about them here on the wiki, so any extra information (pics of the startup screen, pics of the keyboard, pics underneath the keyboard and of the pcb would be nice to add to the information already there).

Quote from: rpalmer on 21:32, 31 December 10
I have bought 3.5 drives from my local computer parts retailer, but these appear to not be compatible with those documented here.  I did at one time have a siren software mega drive (3.5 drive) as drive B:, but the discs i used with it now have errors on these from non-use for over a decade.  I have tried to transfer all of them to .dsk images but i dont know if any will work when i get the CPC to work again.
Well I would be happy to try and recover any data from them.

Quote from: rpalmer on 21:32, 31 December 10
  My very first attempt to assemble all of the code would not fit onto a 16K ROM, so i choose to develop the code without finger, telnet and the serial driver.
The CPC firmware can support a program split into 4 consecutive 16K Roms. It is something that FutureOS does, and you use a special firmware call to execute functions from the other roms. So perhaps this is an option to add finger, telnet and a driver back in?

I like the way that you have made the code generic so it will work with any serial driver
.
What would be nice, is if you defined a fixed set of functions that a driver must support, and perhaps define a jumpblock, and then a "3rd party" serial driver in a rom could patch your jumpblock and then it could be used with your roms. In this way, we would only need to write new driver roms and not have to modify the code you made?

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

rpalmer

I have a number of pictures of the internals of my CPC as well as various 3.5 drives i tried to connect and others CPC bits I bought a long long time ago.

I have had my beloved CPC since 1986 when they first came out here in OZ.
I currently have the following CPC H/W:
Vidi (Video Converter)
John Morrison Eprom programmer + S/W
RAM/ROM Card for S/W development
AMX Mouse + S/W (again I think this one is now dead)
2 set of eprom cards (1x4 slot and 1x6 slot)
The original RS-232 interface
An MP-1 power supply

I have a very old 3 inch drive which was for XT/AT PC (before 3.5/3 drives were chosen as PC Standard)
I did have at one time a 3.5 inch drive working on my CPC, unfortunately it was canabalised (i forgot why) and has since not worked.  The old XT/AT 3 inch drive worked but it too i think has problems with it now (wont step the head).

Thanks for the info about 4 roms acting like one.
However, if i can get finger and telnet to become separate programs to work with CPC/IP then i can see it possible to make something similar to what SYMBOS uses to view web-like pages work.

Gryzor

Welcome, mate - excellent stuff! If this gets pulled off the ground and an app or two are created (SymbOS??) it'll be a day to remember...

Concerning EPROMs: a great forum member donated an EPROM programmer a while ago, I could try urning some ROMs for you? Or I could lend it to you...

OCT

Quote from: rpalmer on 00:43, 31 December 10
my internal drive died some 10 years ago so i am unable to test my code.
There used to be a little-known sequence of OUT commands that could often resurrect 3" drives which would have stopped working in spite of a replacement belt.
An OUT sequence so rarely found in fact that I haven't been able to dig it up again just yet - but someone around here has got to know?

arnoldemu

Quote from: OCT on 20:41, 01 January 11
There used to be a little-known sequence of OUT commands that could often resurrect 3" drives which would have stopped working in spite of a replacement belt.
An OUT sequence so rarely found in fact that I haven't been able to dig it up again just yet - but someone around here has got to know?
No idea what that could be.
The only think I can think of is to force it to seek back and forward, perhaps making it align itself again, but this would not be a reliable way to fix it.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

rpalmer

Hello all,

Thanks for the possible donation of an EPROM programmer, but what i will do is post the ROM here on Wiki and let all those who can make an EPROM do so and maybe test things to see how it all works.
I so much want to get my beloved CPC up and running again.

I have completed a device driver rom for a custom DOS (call HDOS).
The ROM contains two commands to manage the device drivers:
1.  |DEVMGR,p1,p2,....,pn,@Rom,@Address,RoutineIndex,"DriverName"
2.  |DEVLST

The first allows access to the routines for each driver.
examples:

  |DEVMGR,@ROM,@ADDRESS,1,"RS-232"
  This will return the ROM number and Address of routine #1.

  |DEVMGR,8,"N",1,@ROM,@ADDRESS,15,"RSR-232"
  This will return the RS-232 setup routine and setup the RS-232 to 8 Bits, No Parity, 1 Stop bit

The last 4 parameters are required and if more than 4 parameters are passed the routine is executed as well.  This allows for the device to be initialised with what ever the user chooses.  An example of this might be to setup the serial device with Configuration data, the Buffer Management Variables Location, etc.

The second command just lists the drivers available in this rom.

The ROM only has a simple RS-232 device driver and more is to come.

The reference to HDOS is my own custom DOS which currently has been tested on WinAPE and appears to work as expected.  The DOS would eventually allow for SymbiFace-II to work for BASIC without any need to modify any basic program (when working from the AMSDOS systems calls).
The HDOS system is still in Beta testing, but if anyone wishes to do any testing with what i have at the moment please let me know and i will put the ROM image and associated files up on wiki.
The DOS has been in development for over 5 years.

andycadley

Sounds cool. As far as the drive goes, I'd recommend doing what I did and just replace it with a HxC SD card floppy emulator. It's about a zillion times more reliable than any floppy drive is going to be and highly preferable if you don't really need to read actual discs any more.

OCT

Quote from: arnoldemu on 22:03, 01 January 11No idea what that could be.
The only think I can think of is to force it to seek back and forward, perhaps making it align itself again, but this would not be a reliable way to fix it.
I only know I successfully used it once in the early 1990s to revive a drive on a 6128 bargain, and it probably came from a German mag in print at the era - so chances are someone around here hopefully will recall.

OCT

Quote from: andycadley on 07:19, 02 January 11
As far as the drive goes, I'd recommend doing what I did and just replace it with a HxC SD card floppy emulator. It's about a zillion times more reliable than any floppy drive is going to be and highly preferable if you don't really need to read actual discs any more.
Regrettably it still does not come in a drop-in replacement form factor with the display, buttons and SD card slot brought to the front faceplate, for rewiring it that way takes "a hard day's bricolages" as can be seen early on in that thread, requiring much effort as well as tools and parts not everyone has access to just where their (C)PC or other retro/legacy devices are.

Bryce

To be fair to Jeff, it wasn't designed for a CPC, it was designed for all computers with a floppy controller. He has kept the design reasonably compact and VERY flexible by adding a header socket for display and buttons. You can't really ask for more than that. It would also be very un-economical to make several versions for each computer and the price would also shoot up.

A possible solution to your issue would be a display / button PCB specially for the CPC, which could be plugged directly into the main HxC PCB, I can do a layout for this if you like, when I have time, but I won't be building any and I doubt Jeff will offer them for sale either.

Bryce.

OCT

Quote from: Bryce on 16:32, 03 January 11
To be fair to Jeff, it wasn't designed for a CPC, it was designed for all computers with a floppy controller. He has kept the design reasonably compact and VERY flexible by adding a header socket for display and buttons. You can't really ask for more than that.
Far from criticizing his design (or Pentagon's tutorial), I'm just suggesting as a further improvement to bring it closer to the 3" form factor as the lowest (or rather smallest) common denominator. A 5.25" plastic front (possibly even in a choice of black or "computer gray") with horizontal and vertical grooved notches on the back, allowing to break the face plate down along defined lines to also fit a 3.5" or 3" bay, would make mounting a lot easier, as most machines needing a disk drive replacement will have used one of these form factors.
Offering a version like this should make Jeff's great work accessible to an even wider user base.

redbox

Quote from: OCT on 18:10, 03 January 11
Far from criticizing his design (or Pentagon's tutorial), I'm just suggesting as a further improvement to bring it closer to the 3" form factor as the lowest (or rather smallest) common denominator.

I agree - I think the one thing that's stopped me from getting one is not being able to swap my 3" drive for it as a replacement, and the correct form factor would allow this.

It is an amazing piece of work though (from what I've seen) but I still can't quite give up my 3" drive for it yet  :)

Jeff_HxC2001

#18
Quote from: redbox on 18:16, 03 January 11
I agree - I think the one thing that's stopped me from getting one is not being able to swap my 3" drive for it as a replacement, and the correct form factor would allow this.

It is an amazing piece of work though (from what I've seen) but I still can't quite give up my 3" drive for it yet  :)


Sorry but the SDCard HxC Floppy Emulator have exactly the width of the a 3" - 3"1/2 floppy disk drive.
Here a drop in replacement :
http://www.youtube.com/watch?v=bnyC5te6Mn0

After if you want a front panel with all stuffs (lcd + buttons) , this is possible (there are a connector on the emulator waiting for this ;-) ) , but this an additionnal pcb to make -> Higher total price (problably over 100euros).
And if you want a box add 30-40euros (Final price -> ~130-150euros... )


Quote from: Bryce on 16:32, 03 January 11
  A possible solution to your issue would be a display / button PCB   specially for the CPC, which could be plugged directly into the main HxC   PCB, I can do a layout for this if you like, when I have time, but I   won't be building any and I doubt Jeff will offer them for sale either.
 
  Bryce.
 

This is on the roadmap (i don't put an connector on the pcb for nothing ;-), but as i wrote, the final price will be higher and the target of this product will be a little different.
 

OCT

#19
Thanks for the info. The thinking was simply that some kind of a frame&faceplate could pave the way to your design being requested in higher numbers, especially if the faceplate (with breakpoints if need be, or available in various versions) would also hold the LCD&buttons besides an SD slot, and could be made to fit several sizes of drive bays.
 
As interest catches on e.g. with music enthusiasts and the HxC floppy emulator also finds more use as a spare for industrial equipment, a "production ramp-up" of sorts could cause the price point to stay the same or even come down over time while including the "extra bells&whistles".

redbox

Quote from: Jeff_HxC2001 on 21:09, 03 January 11
Sorry but the SDCard HxC Floppy Emulator have exactly the width of the a 3" - 3"1/2 floppy disk drive.
Here a drop in replacement :
http://www.youtube.com/watch?v=bnyC5te6Mn0

I really thought it didn't fit - thanks for the video link and I will be buying one next time you make a batch  :)

rpalmer

hello all,

I have been working on the CPC/IP ROM and have been successful in getting telnet back into a single ROM, but alas i can not get the finger command as well.
I checked wikipedia about finger and see that it has been suggested to be disabled after various issues around hacking peoples computers via the finger command.

All of the RSX commands are now fully programmed.

I have yet to test any of them.

I have also included in the attached Zip file of the latest source a file in assembler to assist in creating a configuration file to setup CPC/IP (refer to "load-cfgh.asm" for more information).

All looks good so far  :)

As for HxD SD interface, i tried to contact to person from his ebay website and got no reply.  I will try again soon.

I do have a tape recorder and can make progress that way (but will be really painfully slow).

I will also look at creating Compact Interface as i have a few CF cards (See drivers zip file for CF related information).

CPCIak

Quote from: rpalmer on 10:35, 06 January 11
As for HxD SD interface, i tried to contact to person from his ebay website and got no reply.  I will try again soon.

If you want to contact Lotharek try
http://www.lotharek.pl


TFM

Wonderfull to see that CPCs TCP/IP developpment contiues!!!
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

rpalmer

hello all,

I have been working to get something working with CPC/IP onto a ROM.

The attached zip file contains a working version which can load a configuration file specific to 6128, but users are able to make there own, see previous entries here or load-cfg.asm in the zip).

The testing to date has been to:

1. Get the System to load the conifguration data via a binary file (see cpciplc.bas)
2. Get the console to startup.
3. Abort the console back to the OS.
4. Restart the TCP/IP.
5. Provide a means for local help via text files.

I have been having some trouble with tickers so for now i doubt the Comms part works.

All of the baove tests appear to work, although I did not test some of the commands which require connection to another machine.

To see the console commands, just type help
To see syntax help for the commands the just type help follwed by the command itsef (e.g help host).



Powered by SMFPacks Menu Editor Mod