12 July 2013, 10:49 | #21 |
www.majsta.com
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
|
@lukassid I m not familiar with anything I am learning and solving problems in process of creation. Vampire 600 is finished 99% but it is not stable, and this part of the design is almost the same like on Vampire500 so there is no harm done trying to work on this design because i will end up with same problems with stability. I know what I m doing don't worry
|
12 July 2013, 13:24 | #22 | |
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,858
|
Quote:
He doing me favour - i have no A600 (working yet) but i have A500 [sarcasm mode off] - there is no difference between A600 and A500 - so familiarity more or less for Majsta project is related to difference between PLCC and DIP sockets (ok this is also not fully true as Gayle in A600 is more advanced than Gary in A500). http://eab.abime.net/735470-post90.html Thank You zefrench! |
|
12 July 2013, 14:04 | #23 | ||
www.majsta.com
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
|
I have gayle documentations but this doesn't help me because of my code. It could be easy if I m working with real CPU but working with TG68 takes different approach. So there is not much I can do until I found information's I need. I need Toni or someone else who understand all of this better than me to explain to me what needs to be done. TG68 somehow blocks that specific space so that is why I need more information's. It is not because something is wrong in TG68 it is because something else.
For example when you detect DE1000 space what happens next based on read and writes cycles of CPU. Those are the parts of the code for IDE Quote:
Quote:
"Never argue with an idiot he will bring you down to his level and win from experience" |
||
12 July 2013, 14:58 | #24 | |
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,858
|
Quote:
http://www.devili.iki.fi/mirrors/hay.../docs/gary.txt Code:
.sh 2 "Data Transfer Acknowledge (/DTACK)" .pp This signal is logically associated with the 68000's Data Transfer Acknowledge input. Normally in the Amiga system, Amiga system logic creates /DTACK for a simple, no-wait state cycle (this may be varied by the custom chips). Therefore, this signal is treated as an output to the Expansion and Coprocessor Slots, for most situations. Any slow device on the bus that needs to control /DTACK may do so by negating XRDY to hold off /DTACK or asserting /OVR very quickly to tri-state /DTACK. Note that depending upon when /AS is asserted by a bus master when accessing the CHIP memory, one of two possible cycles may result. If /AS is asserted during C1 low, C3 low, the bus cycle is considered "in-sync", and will proceed, with /DTACK driven as for a normal, 4 tick clock cycle. If instead, /AS is asserted during C1 high , C3 high, the bus cycle is considered "out of sync" and the internally generated /DTACK will be held off, causing a wait state that's designed to "sync-up" the DMA cycle with the custom chip's memory cycle. This signal is on pin 66. Last edited by pandy71; 12 July 2013 at 15:10. |
|
12 July 2013, 17:52 | #25 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,546
|
|
12 July 2013, 19:36 | #26 | ||||||
Registered User
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,157
|
A few comments off the top of my head - I don't have time to read up on Gayle right now, unfortunately.
Quote:
Quote:
i.e.: when cpu_addr(23 downto 16)=X"DA"; (You need to have a multiple of 8 bits in the comparison, though.) Quote:
Quote:
Quote:
Quote:
|
||||||
12 July 2013, 20:00 | #27 | |
www.majsta.com
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
|
Hi
With iASn I wanted to make sure that CS1 and CS2 will be executed in read/write state machine, without that CS1 and CS2 will not be in synch with 7Mhz state machine. Actually CS1 and CS2 should start little earlier than AS is driven low so this is not quite correct but it is easy to fix. Better choice and then everything in order will be like this. Quote:
If I don't assert /OVR like this Gary prohibits decoding so TG68 can't read or write on that address, instead Tg68 detects "01" state. Those hex or bin settings all was in hex but since I was thinking that something is wrong I have changed them for better visual understanding and maybe I didn't set them all correctly but I have changed so many things to discover problem. And I can't threat Gayle like fast mem access because like I said TG68 doesn't see that space. Last edited by majsta; 18 September 2014 at 21:53. |
|
13 July 2013, 12:46 | #28 |
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,858
|
This is strange - Gary documentation says that all access are seen by Gary as FastMem Access and Gary provide full bus cycle termination except few mentioned areas which are different (mostly CHIP ram and RGA).
|
13 July 2013, 13:32 | #29 | ||
www.majsta.com
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
|
Yes strange situation but I m getting somewhere, it is easy for real CPU but in my codes is much harder because TG68 is paused most of the time. So basically I need to create some counters and according to them insert appropriate instruction.
Parts of the code looks like this now and i think that this could work with minor tweaks. Quote:
So according to that counter D0 instruction should be executed and it goes something like this. Quote:
|
||
13 July 2013, 16:35 | #30 | |
Registered User
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,157
|
Quote:
Also, you should write the data to cpu_datain, not ioTG68Data. It's the CPU that reads the ID, not the motherboard. The simplest way to implement Gayle ID would be as a serial shift register, something like this: Code:
signal gayle_id_reg : std_logic_vector(7 downto 0); .... if gayle_id='1' then if cpu_r_w='0' then -- Write cycle, so reset the ID gayle_id_reg<=X"d0"; else cpu_datain(15)<=gayle_id_reg(7); gayle_id_reg<=gayle_id_reg(6 downto 0)&'0'; -- Shift register contents one bit to the left end if; mystate<=delay1; end if; |
|
13 July 2013, 19:35 | #31 | ||
www.majsta.com
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
|
I did it few hours ago and those are those "few tweaks". I think that this is working now.
Code looks like this now. Counter. Quote:
Quote:
Last edited by majsta; 13 July 2013 at 21:13. |
||
16 June 2014, 07:15 | #32 |
Registered User
Join Date: May 2014
Location: Malaysia
Posts: 115
|
Any updates on the Vampire 500?
|
16 June 2014, 11:11 | #33 |
Registered User
Join Date: Aug 2007
Location: berlin/germany
Posts: 1,054
|
|
20 June 2014, 12:38 | #34 |
www.majsta.com
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
|
project was put on hold since imagine I didn't had A500 keyboard to perform some tests I wanted
Problem was with IDE controller and it seems to me that I didn't design it properly in hardware part |
20 June 2014, 13:36 | #35 |
Registered User
Join Date: Aug 2012
Location: Australia
Posts: 651
|
Are you guys working on 020+ compatibility. Im drooling waiting for an a1200 version.
|
29 June 2014, 17:05 | #36 |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 56
Posts: 2,024
|
Here is doc for Gayle A600/A1200"
https://raw.githubusercontent.com/rk...inimig/Gayle.v |
06 July 2014, 23:00 | #37 |
www.majsta.com
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
|
I know about that Gayle.v but like I said I designed hardware part wrong, my code works but until I found a A500 keyboard and redesign complete accelerator nothing can be done.
|
13 July 2014, 16:51 | #38 | |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 56
Posts: 2,024
|
Quote:
; A4000 Gayle version AT_Data EQU $00 ; 16/32 bit wide port AT_Error EQU $06 ; error register AT_SectorCnt EQU $0a ; # of sectors, 0 = 256 AT_SectorNum EQU $0e ; sector to start (1-based!) AT_CylLow EQU $12 ; low byte of Cylinder number AT_CylHigh EQU $16 ; high byte AT_DriveHead EQU $1a ; Drive and head number | $A0 AT_Status EQU $1e ; (read) status reg, clears interrupt AT_Command EQU $1e ; (write) command value, starts it AT_AltStatus EQU $101a ; (read) alt status, doesn't clear int AT_DeviceCtrl EQU $101a ; (write) device control - int/reset AT_DriveAddress EQU $101e ; not used (pc-ish) AT_IntStatus EQU $1000 ; interrupt status bit, active HIGH ; LONGWORD, in bit 31 AT_ModeReg0 EQU -$1000 ; Mode register 0 (bit 31!?) AT_ModeReg1 EQU (-$1000)+2 ; Mode register 1 (bit 31!?) |
|
19 September 2014, 22:09 | #39 |
www.majsta.com
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
|
|
20 September 2014, 11:38 | #40 |
Registered User
Join Date: Feb 2012
Location: Sweden
Posts: 43
|
Fantastic! This is excellent news, I really want one of those in my A500.
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Black Amiga 500 project | TjLaZer | Hardware mods | 60 | 14 March 2015 03:52 |
Vampire game | Amiga1992 | Looking for a game name ? | 5 | 12 November 2012 13:05 |
Project 500 starts... | Paul_s | Hardware pics | 34 | 03 July 2008 01:01 |
New Bounty-Project started for AROS: Kickstart replacement | Paul | News | 0 | 26 December 2004 12:12 |
Vampire's Empire | enigma | support.Games | 5 | 04 February 2002 21:04 |
|
|