#ide interface
Explore tagged Tumblr posts
techav · 1 year ago
Text
Revisiting Wrap030 Disk Access
Tumblr media
I have more ideas for projects than time or budget to work on them. Already this year I've gone completely through the design process for two new large homebrew projects that are currently too large for my project budget, plus a few small ones I never got around to ordering. So rather than spend more than I should taking on a new project, I decided to revisit an existing one.
It's been over a year since I last worked on the original Wrap030 project — my old stack-of-boards MC68030 system. Its current configuration includes the main board with CPU, ROM, RAM, UART, & glue logic; a hand-wired breakout board to add a second UART; a custom video output board; and a mezzanine board with FPU and provision for an IDE disk that is not yet working. It has been functional in this configuration since last February.
My goal for this project from the beginning was to build something capable of running a proper operating system, like Unix System V or Linux. To do that though, I'm going to need to get disk access working.
I had started on disk access, but didn't quite have it functional when I turned my focus to integrating all of boards into the single Wrap030-ATX motherboard. I had added IDE cycles to the CPLD on the mezzanine board, and had added a few rough drafts of disk functions to my ROM. I set the project aside when I realized my function for checking dish presence was reporting a disk was present when there wasn't one.
I have worked with IDE before — my original 68000 project had an IDE port on it. I had gotten that project to the point where I could read a sector of data from the disk, but never could wrap my head around how to actually navigate even a simple file system like FAT16. It was this code that I had adapted for Wrap030, so when it didn't work, I assumed it was a problem with my logic.
Turns out I had just inadvertently clobbered a register in the disk check function. The logic worked just fine. I was able to write a couple quick BASIC programs to read a sector of data and even run code from the boot sector.
Tumblr media Tumblr media
My assembly function for reading data from disk however was still not working.
I tried rewriting it.
I tried rewriting it in C instead of assembly.
I tried again, and again, and again. I added delays and loops and print statements and everything I could think of. I scoured datasheets, read though all the different release versions of the ATA specification, ported code from other projects, looked at every example of reading from an IDE disk I could find.
No matter what I did, I always got the same result.
Tumblr media
This did not make any sense. Reading from an IDE disk involves setting up the sector address, the number of sectors to transfer, sending a read command, and then reading the IDE data port 256 times per sector. Each time the data port is read, the disk will give another 16-bit word of data. But for some reason, all I was getting was the first word of data returned 256 times.
There is nothing in the specification to explain this.
I knew there was nothing wrong with my logic, because I could read the data just fine with my BASIC program or by manually poking the right addresses using the monitor. Maybe there was some edge case affecting timing when running in assembly, but even adding delay loops and print statements didn't have any effect.
I reached out for help. I got great feedback on my read functions and my timing and how IDE and CompactFlash cards worked, but still could not solve this problem.
But then @ZephyrZ80 noticed something —
Tumblr media
I had shared my code and was explaining that I had added some extra NOP instructions to enforce minimum time between IDE access cycles in PIO-0 mode. At 25MHz with cache enabled, the 68030 can complete an instruction in as little as 80ns, so a few NOPs would ensure enough time elapsed between cycles.
With cache enabled.
… cache enabled.
… cache.
The 68030 has 256 bytes of data cache. My disk read function is running in a tight loop that only really hits a few addresses; not nearly enough to invalidate and flush the entire 256 bytes of cache. The CPU does have a cache inhibit signal to use with peripherals that return new data on subsequent access to the same address, but it turns out I was only asserting it when accessing the UART on the main board.
It's a simple enough hypothesis to test. When I initially added support in my ROM for enabling cache at startup, I included user functions for enabling and disabling cache.
Tumblr media
… It was cache all along.
Now I need to add some way to inhibit cache while accessing the IDE port, and then I can move on to trying to use the disk for loading programs.
41 notes · View notes
kaiserouo · 5 months ago
Text
Tumblr media Tumblr media Tumblr media Tumblr media
let them use social media
317 notes · View notes
catinflight · 10 months ago
Text
Recently I learned that my computer does not render scenes very well
Even though I'm not very happy with how it turned out, I figured I might aswell share since it took me about two and a half days just to render the thing,
(it was supposed to be a simple looping animation, and I wanted to focus more on the background, but apparently, my computer doesn't handle that stuff well)
I am very tired right now, if it wasn't already obvious, lol
35 notes · View notes
t-tomuras · 27 days ago
Text
My AO3 is linked to my pinned by my bsky is just ttomuras.bsky.com if u wanna follow < 3
9 notes · View notes
113457 · 4 months ago
Text
i've seen people say that the Blood Tree used to have tire swings on it, rather than the square "talismans" that it currently has, which i don't specifically remember seeing... after finding them in older gameplay videos, the truth is stranger.
here's a screenshot of an apparent tire swing in the tundra (from this video, from early 2020):
Tumblr media
here's my own screenshot from the same place in emuFer.al, you can see how this was replaced with the more regular rectangular talismans:
Tumblr media
however that round thing is certainly not a tire swing, it has six spokes along the side, just like the statues seen in Lakeroot Valley:
Tumblr media Tumblr media
this further draws ties between the Tundra and Lakeroot, both of whose endemic species are Kobolds. (For extratextual info, the lore document states that the Tundra used to be a city connected to Lakeroot, but was severed from the land in order to prevent its curse from spreading.)
(here's another screenshot from another video, showing more round structures with spokes:)
Tumblr media
EDIT: I forgot but those statues are found in Mugmyre as well.
Tumblr media Tumblr media
8 notes · View notes
sevicia · 1 year ago
Text
I wanted to make a cleaner summary of last week's classes and also review the classes I have this week since the material is already uploaded beforehand but I was feeling so horrible throughout the day that when I sat down I was just gonna look at the ones for tomorrow but I think I'm just gonna go to bed because I just gave my little numbers game a few tries and not even the joy of tribial elementary school-level math games is bringing my brain cells and/or full sentience back
#diary#accessing it through the CMD thing and not just running it from the IDE made me realize a few things about it though so I'll hav#I'll have to maybe jot them down somewhere when I'd normally just be rly excited and try to fix them straight away like I am truly fucked r#I do wanna make an eng version of it sometime soon so I can share it even tho it's literally the simplest little thing. it's fun if you're#an easily amused nerd that loves playing with numbers in a truly useless manner. if that makes sense#also very obviously text-only I am NOT torturing myself with any graphics of ANY kind rn#it closes immediatly as they do and also when it comes to having double/triple digit starting numbers it becomes a lot less fun I think tho#though I haven't used it much with those yet#I still wanna figure out a way of making it better when it comes to 2/3 digit starters. and my original idea included maybe keeping track#keeping track of how many steps you took even between different rounds but I made the simplest version for now. I also think making like a#''this was the least amount of steps possible!'' type thing would be very very cool but that is FAR too big brained for me rn#cause I can figure out how to do the record keeping thing but that last one is like. let's stop talking for a little while.................#oh but adding an actual interface sounds so fun even though I have very little clue on how to do that rn I could probably STOP typing becau#because I can feel my stupid ass self start getting excited about this which will make it so I start working on it instead of going to bed#NO. DOWN !!!!!!!!!!!!!! auhgh............ oh man I had a lame joke to make but I completely forgot what it was#I have coding class tomorrow in which I normally just do the exercises as fast as possible before playing around but the only Python editor#I could find installed on the school computers was Visual Studio Code and I have no clue how to use that shit like I don't need so many#so many buttons. probz. OKAY GOODNIGHT
3 notes · View notes
yatiso · 2 years ago
Text
yesterday i put an acoustic guitar on layaway and today my monies came thru so i bought it.. then after… i got a call from the only other job id ever quit this one for to schedule an interview… the world is such a strange and beautiful place
7 notes · View notes
intervalart · 2 years ago
Text
what do you mean tumblr won't let you copy/paste ALT text on mobile
2 notes · View notes
beneaththebloodylake · 9 days ago
Text
if my computer cathes fire cause of a badly confugured version of a bloody pirated video game im going to fucking kill someone
0 notes
idsmartcards · 1 month ago
Text
Dual Interface Cards: The Future of Smart Transactions
Tumblr media
Dual Interface Cards are revolutionizing the way we make digital transactions by combining both contact and contactless technologies in a single smart card. These advanced cards allow users to either tap or insert them, making payments and data transfers more convenient, secure, and flexible. Whether for banking, access control, or transport systems, Dual Interface Cards provide seamless integration and enhanced security, ensuring smooth operations in various environments. For further details, visit https://www.id-smartcards.com/
0 notes
vulgaralien · 2 months ago
Text
I keep thinking about that witch hat pattern,,,, only $8,,,, I have $8,,, but I need to save money
0 notes
passionfruitmango · 3 months ago
Text
Ughhh first it was tumblr live being forcefed to us, now it's tumblr communities???
I don't want discord on tumblr just want to scroll
0 notes
relto · 3 months ago
Text
WHAT is wrong with this database. stop hiding columns from me. grrrrrr
0 notes
happywitch416 · 11 months ago
Text
Don't need a knight to guard the cave
Can't count the dragons that I've slayed
You can give it all you got
'Cause love is running through my veins
Oh, this lion can't be tamed
There's fire in my blood
- Burn by 2WEI and Edda Hayes
1 note · View note
jackalsraised · 1 year ago
Text
sometimes i see ppl talk abt movies and im just mentally like ‘omg!!!! i dont watch movies!!!’
1 note · View note
open-observatory · 1 year ago
Text
Tumblr media
Shoe Interface… Wearable, rubber soled shoes also function as a local Digital ID, for privacy. Historical references used to generate design. Handshake Booklet.
0 notes