Shop OBEX P1 Docs P2 Docs Learn Events
Behold because a new era has just begun :-) pPropQL ist da ! — Parallax Forums

Behold because a new era has just begun :-) pPropQL ist da !

AleAle Posts: 2,363
edited 2009-12-24 17:10 in Propeller 1
With the sounds of cymbals I present: pPropQL : a hardware emulator of the Sincla1r QL! burger.gifcool.gif

* Real 68008 @ 8 MHz (1 MIPS)
* 128 K SRAM (4 cycles access), no cycle stealing needed! Video memory is mirrored into the propeller's HUB memory, reads occur from SRAM writes are routed to both smile.gif
* 128 K Flash ROM (only 64 K mapped at 0x00000) 4 cycles access

+ One propeller for Video emulation

+ One propeller for the rest of IOs (microdrive emulation, RTC, serial port, keyboard, etc)

But the most amazing feature is the trace capabilities. ROM reads can be traced because the A and D buses (as well as ROMCS* and DTACK* are routed to the video prop and DTACK* is driven by the prop or grounded). yeah.gif

Here are the schematics and board layout (Note: there are some air wires because this is a revision B, the revision A had some misroutings smile.gif but now it works.

I used simple 1k27 resistors to connect the 5V bus to the 3.3V bus and a HCT245 to buffer the databus (not really needed, but to rise the voltage). All glue logic was done with discrete components from the HCT variant, so except for the 68008 that is a NMOS part (it could be done with a 68HC001 that has 8 bit bus capabilities, or was it the SEC000 ?) it draws little current (I need to measure!).

What works so far: trace, propeller as ROM!, ROM (i used a EPROM with the JS ROM for test). Video: well, I did not get the 4 color mode working yet :-(. The rest of IOs is still not done.

Cluso: This is what kept me busy for working with my triBladeProps... smile.gifroll.gif

Edit: As I have some 68EC020 (the ones that are TQFP100) from another project I couldn't finish :-( :-(, I'll make a third revision with that one too. (At 16 MHz you can get up to 10 MIPS with fast SRAM!) also in 10x16 cm boards.

Edit2: Here are a couple of photos of the built board. Note: Except for the flying resistor, the rest of the components _have_ to be on the solder side by design smile.gif.

Post Edited (Ale) : 4/21/2009 5:12:22 AM GMT
1680 x 974 - 147K
1680 x 974 - 51K
1680 x 974 - 53K
1024 x 768 - 270K
1024 x 768 - 278K
«1

Comments

  • heaterheater Posts: 3,370
    edited 2009-04-20 08:19
    That is gorgeous. I want to run One Man Unix (OMU) on it.
    tallyho.bc.nu/~steve/omu.html

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • BaggersBaggers Posts: 3,019
    edited 2009-04-20 08:20
    Very cool Ale, can't wait to see a vid [noparse]:)[/noparse]
    I was wondering when someone would attach a 68K to a prop ( or two lol )
    Nicely done! [noparse]:D[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-04-20 08:30
    Congratulations Ale smile.gif

    We are definately in a new prop era. The more of these projects we get for the prop, the wider the audience and usage. smile.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index)
    · Search the Propeller forums (via Google)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • AleAle Posts: 2,363
    edited 2009-04-20 09:26
    Thanks !, videos and photos will come soon, as soon as I do not forget my camera at home smile.gif

    I do not know if someone is interested but I have one extra unpopulated board and maybe an extra 68008 (that seem not that easy to find :-( ). The boards (2) cost 50 € so 1 will be 25 €, I know is quite a bit but I need it to offset the cost of the next one smile.gif
  • AleAle Posts: 2,363
    edited 2009-04-20 10:31
    heater:

    That OMU was something I was looking for. Thanks!

    Porting it to the pPropQL presents some challenges: change all asm to use gcc syntax. (I think this will be the best) and to reduce the amount of used memory to 128 k instead of 256k. But we have the advantage of some 64 extra kbytes of Flash (or maybe SRAM) to place the kernel there. I'll have to investigate a bit more. How to load binaries into memory once OMU is loaded will be an interesting challenge in itself smile.gif I'll see what I can do!
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-04-20 11:55
    Ale: If I can help in any way as to how I did things in the TriBladeProp·and getting it to run ZiCog or the SD card, please call out. I learnt a lot about ways of how not to do things shakehead.gif· A lot of fun, but lots of wasted time.cool.gif

    I noted you have 2 ram/rom spaces. Your notes and the schematics indicate 1 x 128KB Ram and 1 x 128KB (possible 512KB) Eprom. You·could use the 512KB Ram AS6C4008 that I use which would give you more memory. Also, maybe you could use·another Ram instead of Eprom and block/gate the write pin to simulate rom, and load from SD card on the prop. Maybe this is a function of the Sinclair that you are emulating - I am not familiar with it.



    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index)
    · Search the Propeller forums (via Google)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm

    Post Edited (Cluso99) : 4/20/2009 12:01:14 PM GMT
  • LeonLeon Posts: 7,620
    edited 2009-04-20 12:00
    Ale:

    I was responsible for forming the QL Users Group (QUANTA) which is still in existence and was invited to their 21st anniversary meeting a couple of years ago. I no longer have anything to do with it, but I'm sure that your emulation will be of interest to them.

    I'll let Tony Tebby know about it, he designed the QL and wrote QDOS.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
    Suzuki SV1000S motorcycle

    Post Edited (Leon) : 4/20/2009 1:14:32 PM GMT
  • heaterheater Posts: 3,370
    edited 2009-04-20 12:07
    What no takers ? Ale I'd love to have one and a 68008 if possible.

    How big is that board?

    Is there any way to butcher it around a bit to replace the ROM with another 128K RAM ?

    What I'm thinking is that with SD card there is no need for for FLASH ROM just load up the RAM from a ROM image on SD card at start up. That's what Cluso is doing for the CP/M boot loader ROM on TriBlade. Have to study your schematic some more.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-04-20 13:16
    Heater: Since the pcb is thru hole, most likely you could just fit one 512KB Sram in the ram socket and a few wires to make it work. The Sram we use is 2.7-5V so it is compatible to both the 5V 68008 and the 3V3 Prop. I have the code to read the SD FAT16 file system (using fsrwFemto and spsdiFemto - latest version includes a fix from me) and load up a ram, provided the correct pins are available on the board - may need a latch (haven't studied Ale's schematic closely yet) - I just posted the latest ZiCog/TriBladeProp demo code which includes the SD to Ram loading. The tbp2 driver and Femto drivers were published on the ZiCog thread a week or two ago.

    Ale: What I have working is another version (previously published) which loads a modified PropDos/PropCMD routine which displays the files on the SD card (FAT16) and can boot a prop binary which can be (it works) the ZiCog emulator. So you could just put the binary in there to load your code into the 68008 ram (rom section). And you could use the prop as a disk controller to access the SD card as a disk(s) for the 68008 (in case that isn't already your thoughts).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index)
    · Search the Propeller forums (via Google)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • AleAle Posts: 2,363
    edited 2009-04-20 13:28
    There is no need to butcher anything smile.gif. You can fit another 128K/512K SRAM easily. The extra SRAM can be accessed at 0x80000. You may need a double socket to re-map the W* line.
    The lower 128 K SRAM @ 0x20000 is sort of fixed because the decoding logic, and so is the PROMCS* line.

    Loading the RAM with a SD image has to go via 68k because the props can not access the SRAM directly, they where wired as peripherals (No control over RD*/WE*)

    heater: send me a PM if you are interested in a board/68k8 combo smile.gif. And I put the rest to design/buil/test a 68k20 version (I have loads _loads_ of 68EC020 and 15 ns 5V 512Kbytes SRAMs, and 29F040s)..The glue logic is going to be done with a CPLD, I have also a couple smile.gif


    Edit: porting OMU got just complicated: some headers are sort of _missing_ smile.gif. The four asm files compile without problems after some tweaking.

    Post Edited (Ale) : 4/20/2009 1:36:39 PM GMT
  • AleAle Posts: 2,363
    edited 2009-04-20 13:47
    Cluso: I have to make the SD card working now. I just compiled gcc for 68k target so I can get some firmware done, better than using the opcode table [noparse]:freak:[/noparse]. btw: I'll use as much from propCMD/ZiCOG etc as possible lol.gif
  • BamseBamse Posts: 561
    edited 2009-04-20 14:13
    Nice project...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

    Experience level:
    [noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
    [noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
    [noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
    [noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
    [noparse][[/noparse] ] I dream in SX28 assembler...

    /Bamse
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-04-20 15:05
    Ale: I found fsrwFemto and sdspiFemto easy to use with·PropDos/PropCMD on top. Beware that femto checks to see you have an eeprom fitted.

    To load a binary file from the SD card in FAT16 format
    SD:>SPIN xxxxxxxx····· where xxxxxxxx = xxxxxxxxx.BIN prop binary file (or you can setup AUTOEXEC.BAT to autoboot)

    Fixed missing command above :-(




    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index)
    · Search the Propeller forums (via Google)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm

    Post Edited (Cluso99) : 4/21/2009 8:10:05 AM GMT
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2009-04-20 15:10
    Wow! I have no clue to what a "Sincla1r QL" is but the board itself looks interesting! I have been looking for an affordible Tri-prop board and I have not found one. All the SRAM looks like it could be great for anything that needs a lot of memory. Is it possible to route the video buffer space straight to the SRAM? This would free up a lot of space for video enabled projects.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Toys are microcontroled.
    Robots are microcontroled.
    I am microcontrolled.
  • AleAle Posts: 2,363
    edited 2009-04-20 16:23
    The Sincla1r QL was a home computer developed by Sinclair Research between 1982 and 1984. It used a 68008 as main processor and had 128 K RAM, 256x256 8 color or 512x256 4 color graphics display and 2 microdrives. it was compared to the Amiga and Atari ST way cheaper but it did not achieve anything the other two could do without some improvements. I've chosen it because its hardware was quite simple and I wanted a PRopeller-68k merge smile.gif.
    The board is 100x160 mm two sides.
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-04-20 16:51
    microcontrolled: (OT)·Look at my TriBladeProp pcb (thread link in my signature). Two of the props have sram - one is for video ram, the other is for emulations such as ZiCog or processes needing 1MB of ram.

    Ale: I presume it had an operating system so what was it called? Must have been out just before the Lisa and Mac. Certainly your pcb is simple (except for the glue which you have said will be in a CPLD next time). In those days, the video and disk controller would have been fairly complex. The video on the prop solves that and the SD card solves the disk.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index)
    · Search the Propeller forums (via Google)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm

    Post Edited (Cluso99) : 4/20/2009 4:59:26 PM GMT
  • AleAle Posts: 2,363
    edited 2009-04-20 18:47
    It was called QDOS. There are several "spin-offs" and ROM replacements like Minerva and SMSQ. I was launched a bit before the Lisa and a good year before the Amiga and Atari ST.

    Leon: Thanks ! I have to work on the video portion smile.gif.
  • Toby SeckshundToby Seckshund Posts: 2,027
    edited 2009-04-20 20:29
    I was weakening, I thought that perhaps I should stop trying to attach old CPUs to props rather than emulation within the prop. It is good to see that others are doing it as well. (I spent the last couple of days modifying my Z80 driver board to take a sort of Blade2)
  • AleAle Posts: 2,363
    edited 2009-04-20 21:05
    Emulation is one way, the other way is... why not a real CPU ?
  • Toby SeckshundToby Seckshund Posts: 2,027
    edited 2009-04-20 21:35
    At least your effort will bag out MIPs. Many moons ago, I moded the disk prog for the Nascom to allow the new fangled 3.5" drives, 80KB/160KB on one disk! local hero, for a bit. Called it qdos just to be a showoff, lucky nobody sued!!
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2009-04-20 21:43
    @Ale: That computer was a little before my time; I had never before heard of it. It is still a cool design and a good idea.

    @Cluso99: Yes, about 5 seconds after submitting my post I looked at your signature and clicked the link to your site. It is a more like what I have been wanting so I might just get one of those boards. How much does it cost to get the SMD parts soldered?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Toys are microcontroled.
    Robots are microcontroled.
    I am microcontrolled.
  • AleAle Posts: 2,363
    edited 2009-04-21 05:13
    Well you can say that it was also before mine, because I was 9 when it came out...

    I added a couple of photos. There are some wires because you know you always forget something. The two '157 have some addresses reversed (can also be corrected in software!).

    Any takers ? I can also make the pcb/sch in eagle format available if you want.
  • AleAle Posts: 2,363
    edited 2009-04-22 06:30
    On designing the 68020 board I have already:

    4 MB SRAM (3 cycle access, fastest)
    2 Propellers, one video one extra: SD, PS/2 kbd, audio, serial port, rtc.
    Glue logic was replaced by 3 small CPLDs (I have them lying around).

    It will not have an expansion port (boomer :-D).

    Any wishes (that can be done in a small piece of PCB) ?
  • Chris MicroChris Micro Posts: 160
    edited 2009-04-22 06:44
    Hi Ale,

    very good. You didn't say, that your board will become a real computer wink.gif

    For those who don't know the sinclair QL: it's quite simple to find out smile.gif
    en.wikipedia.org/wiki/Sinclair_QL

    chris

    Post Edited (Chris Micro) : 4/22/2009 11:32:16 AM GMT
  • ImageCraftImageCraft Posts: 348
    edited 2009-04-22 06:46
    Next someone will tie the DTACK* to ground....

    bonus point for those old timers who get it without googling.
  • AleAle Posts: 2,363
    edited 2009-04-22 12:59
    Richard: It runs with DTACK* grounded smile.gif, you can also push it to VCC (using one of the props) to trace. Nowadays SRAMs and Flash are fast enough smile.gif.

    Chris: I thought it was clear wink.gif
  • AleAle Posts: 2,363
    edited 2009-07-21 09:54
    The new pPropQL020 has been assembled and works. I'm building a second prototype (In the first one I only soldered 2 MB RAM) with the full 4 MB. I wonder if it is not better to use some old DRAMs extracted from SIMMs, there are some 2Mx16 floating around. That would make the board smaller and simpler without sacrificing any speed. We have some 100 ns to access external memory. Plenty for 60ns DRAMs. Glue is quite easy and CAS-before RAS or self-refresh can be used.

    Well in my sig are the updates to the wikis.

    ps: If someone want to build their own, I have spare 68EC020s and 512kx8 (SOJ) SRAMs so just ask.

    Have fun.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Visit some of my articles at Propeller Wiki:
    MATH on the propeller propeller.wikispaces.com/MATH
    pPropQL: propeller.wikispaces.com/pPropQL
    pPropQL020: propeller.wikispaces.com/pPropQL020
    OMU for the pPropQL/020 propeller.wikispaces.com/OMU
  • AleAle Posts: 2,363
    edited 2009-08-11 08:38
    Quick update:

    - I found that I reversed WE3..0 so only long writes/reads were working, enough for the stack as addresses are 32 bits as long as the stack remained aligned. Now it works correctly.
    - The IO propeller now serves serial port, keyboard and SD. The SD card interface is 6 bytes, one for command/status, one for data buffer (512 writes or reads with autozero when 512 accesses have been performed.

    I was thinking in the next step after OMU runs. A Coldfire could be used but I think an AVR32 would be a better option. I feel Coldfires are just old-tech. I still have plenty EC020s, do someone need some 300 of them ? lol.gif
    Now I think an AVR32 together with a XMOS chip would be the panacea, almost wink.gif.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Visit some of my articles at Propeller Wiki:
    MATH on the propeller propeller.wikispaces.com/MATH
    pPropQL: propeller.wikispaces.com/pPropQL
    pPropQL020: propeller.wikispaces.com/pPropQL020
    OMU for the pPropQL/020 propeller.wikispaces.com/OMU

    Post Edited (Ale) : 8/11/2009 3:44:13 PM GMT
  • hinvhinv Posts: 1,255
    edited 2009-08-11 15:24
    Hi Ale,

    Great job on your board! I too would like to design my own computer from scratch. It sound's like a lot of fun and challenges.

    I, for one, would be very interested in the eagle files. I need some examples in eagle, especially with the propeller. I am experiencing a slow learning curve.

    I don't know about an AVR32, but I was thinking more in lines with an ARM because they are built for low power also. Or maybe MIPS. I sure have plenty of them arround.

    Doug

    Post Edited (hinv) : 8/11/2009 3:37:32 PM GMT
Sign In or Register to comment.