#assembly programming
Explore tagged Tumblr posts
techav · 1 year ago
Text
More Speed, More Power, Pretty Pictures
I added some crude functions to the ROM monitor on my Wrap030 project to read the root directory of a FAT16-fomatted disk and load binary files into memory to execute. This opens up a new option for developing programs and running them on the computer, and makes it easier to keep programs on-hand for loading when I demonstrate the computer.
So what new program do I build first for running from disk? The same Mandelbrot renderer I've been using all along, of course! All I needed to do to get it running from disk was adjust a few load instructions to use PC-relative addressing and then change the vasm output to raw binary.
It ran without issue ... mostly. I had been noticing some instability with the system in general. It's not really related to the programming work I've been doing, it just tended to show itself more when doing the kind of FPU-intensive processing required for the Mandelbrot program. Sometimes the system wouldn't boot at all, sometimes it would continually reset. Other times it would run fine for a while, but randomly throw a coprocessor protocol exception (especially when using double- or extended-precision floating point values).
I had a pretty good idea of where this instability was coming from ...
Tumblr media
As someone on Discord put it, that's a pretty little antenna I've got there.
High speed computers don't like excessively-long wiring between components. I made the ribbon cables long because there were other boards I developed for this system. But, I'm only using the CPU board, the FPU + IDE mezzanine board, and the video generator board. All that extra wire is just making things more difficult.
A year ago, when I first put these three boards together, I had to bump the bus speed down to 25MHz to get it to run. I could run the CPU board up to 56MHz by itself, and I could get it to run with one expansion board or the other up to 40MHz, but with all three boards, 25MHz was the best I could do (out of the oscillators I had on hand). I have some 33MHz oscillators now, and while I could get it to run sometimes, it was obviously far more unstable.
It was time to trim those pretty little antennas.
Tumblr media
I left room for one more card, in case I can get my DRAM card working later, but trimmed a few inches off. The result? Rock solid at 25MHz now.
... and at 32MHz.
... but 40MHz still doesn't run.
I am quite pleased with that result. My target for this system in the beginning was 25MHz. That extra 30% speed increase is very noticeable, especially when running a program like the Mandelbrot renderer.
But I had a thought.
My FPU is rated for 25MHz, and here it's running solid at 32MHz along with the rest of the system. But my FPU board was designed to support the FPU running at a separate clock speed from the rest of the system (the 68881/68882 FPU is actually designed to support this, so I implemented it when I built my mezzanine board).
What would happen if I tried running the FPU even faster? Perhaps using that 40MHz oscillator that I couldn't use for the complete system?
Surprisingly, not a problem running the CPU at 32MHz and the FPU at 40MHz.
... or 50MHz
... or 55MHz
... or 67MHz!
Once again, I've run out of faster oscillators. This computer is running stable with its FPU clocked at over two and a half times its rated speed.
The video above is a real-time capture of the VGA output of this machine running that Mandelbrot renderer (now modified to use 96-bit extended-precision floating-point arithmetic!) with the CPU & main bus clocked at 32MHz and the FPU clocked at 67MHz. Some frames take minutes to render. Some complete in as little as seven seconds.
I am in awe. While I had big dreams when I first started working on this project six years ago, I never could have imagined it running this well at that kind of speed. I am very happy with how this project has turned out so far, and can't quite believe I actually built something like this.
I typically wrap up these posts with a plan of where to take the project next, but the project has already exceeded my expectations. There is so much it is already capable of now that I have a permanent storage option available. I guess I could try getting that DRAM card running to expand the main memory beyond 2MB, or try adding a keyboard and some text routines to complement the video card. Both are good options towards getting a proper operating system running, which has always been a goal of the project.
Either way, I'm sure I'll have fun with it.
Tumblr media
18 notes · View notes
7bits · 2 years ago
Text
guys i got 100% on my x86 assembly programming course :DD all that effort paid up
33 notes · View notes
zipp-os-official · 1 year ago
Text
Starting Production🎉🥂
ZippOS is an alternate operating system for stand alone “spacial computing” devices. The goal of this project is to provide end users, who at their own discression, void their warranties to replace pre-packaged software bundled with their hardware. As the lead developer of ZippOS, and as an end user of a “spacial computer”, I am displeased with the current operating software, and the decisions of parent companies that distribute these products are inheriently unstable, brown-nosing share holders and consumers, and completely unaligned with the end users. As these devices are marketed as computers, I want to provide software for said computers as a choice for the end-users who feel the same as I do.
ZippOS will be a lighter(get it?), faster booting operating system built from scratch with Rust-Lang and some ARM/RISC-V assembly code to replace both the BIOS (ZIOS) and the operating system. The operating system’s goal is to have the same user functionality and multimedia multi-instancing in a mixed reality setting, citing BeOS/HaikuOS as inspiration. This operating system will have security and graceful degradation as the main focus for user safety because the main enemy for ZippOS is the companies who made the stock software it replaces on the end-user’s spacial computer. Users can also enjoy various stimulating options for navigating the software (i.e. “rolodex” style hub menus, table-top program/application storefront, “grabbing” and “throwing” programs/screens to be cast/mirrored to and from realspace and cyberspace, etc). ZippOS is a project software operating system under development, and currently has no plans to publicly publish to the open net, nor are there any current plans to open-source the software.
8 notes · View notes
assembly-official · 1 month ago
Text
Two's complement or something, idk
Tumblr media
145 notes · View notes
piratesexmachine420 · 10 months ago
Text
x86_64 assembly is a kind of high-level language
191 notes · View notes
lonestarflight · 7 months ago
Text
Tumblr media
Interior view of the Manned Spacecraft Operations Building, Kennedy Space Center, during the move of Apollo 9 Command and Service Module (CSM-104) Gumdrop from workstand to transfer stand prior to mating to Spacecraft Lunar Module Adapter (SLA-12A).
Date: November 30, 1968
NASA ID: S68-55032
93 notes · View notes
gemini-enthusiast · 3 months ago
Text
Tumblr media Tumblr media Tumblr media
Beautiful sight, isn't it? The @nasa Vehicle Assembly Building with the Artemis II SLS under construction inside. The core stage in the blue scaffolding will carry liquid fuel for the rocket, and the solid rocket boosters utilize solid fuel to push the rocket into orbit.
On the Artemis II mission, humans will orbit the moon for the first time since the end of the Apollo program. This rocket will help get them there. Literally the coolest thing ever.
33 notes · View notes
notaplaceofhonour · 4 months ago
Text
Tumblr media
holy shit, I didn’t know it was just one guy rawdogging it in assembly
22 notes · View notes
forever-stuck-on-java-8 · 5 months ago
Text
I was forced to use python at work today.
It actually wasn't terrible but damn do I miss types
figuring out what what I thought was a string is actually a dictionary AT RUNTIME is SO FUCKING ANNOYING because I forgot a .values() somewhere
18 notes · View notes
verilog-official · 3 months ago
Text
huh. just found out that the 6502 doesnt have an indexed jump instruction.
couldve sworn it did??? i see jump tables mentioned a lot in NES development.
oh well, no big deal. i can just implement it using indirect jumping which it does have.
Tumblr media
13 notes · View notes
7bits · 2 years ago
Text
besties i cannot understand the floating point unit
12 notes · View notes
whats-in-a-sentence · 1 year ago
Text
In his How To, he lists the skills hackers should acquire first:
Learn C.²²
Learn just a little bit of x86 assembler.²³ You don't have to be great at this at first, but you need to sort of kind of know what the fuck is going on.
Work through Hacking: The Art of Exploitation by Erickson.
Learn JavaScript.
Go through the big exploit archives. Star in the 1990s. Look through exploits. Figure out how they worked. Turn the clock forward to the modern era, so you slowly accustom yourself to newer exploitation techniques.
Get really good at x86 assembler, and learn IDA Pro and OllyDbg.
22. C is a general-purpose, machine-independent programming language that was used to write a range of well-known applications – from Windows operating systems to Oracle databases.
23. x86 assembler is a programming language used for time-sensitive applications and detailed software systems.
"Going Dark: The Secret Social Lives of Extremists" - Julia Ebner
58 notes · View notes
assembly-official · 1 month ago
Note
I love you
if only you were more portable :(
I love you too!
Don't even think about using me if you don't know exactly how and where you want to use me. And the same goes for assembly programming.
68 notes · View notes
cerulity · 11 months ago
Text
About Me
thought i would make this post because why not
My online pseudonym is Cerulity32K, casually Cerulity. Though, my preferred name is Kali, and my alternate username is Kali the Catgirl.
Though my mental conditions are mild, I do have ADHD (inattentive) and am seeking an autism evaluation. I am also trans (she/they).
But let's get to the good stuff. I excel in computing, especially low-level stuff and graphics (webdev scares me) and math, advanced functions, calculus and linear algebra being the most useful to me. I like to intersect math and computing, and it leads to some pretty fun results, especially when dealing with graphics. My main languages are Rust, C, C++, CUDA, C#, and Python, though I am trying to understand Assembly for a few systems (my laptop [x86_64], NES [6502], and the Atari 2600 [6507]). The main libraries I go to are Raylib and Macroquad for 2D games, and for 3D I go for wgpu, Vulkan, or OpenGL, though wgpu may be the main one I use from now on.
I also do music. My favourite types of music are either loud, distorted songs (FREE.99), literally noise (Portal 2 OST), or electronic-jazz fusion (Creo). I also sometimes make music. It's usually remixes or covers, as I suck at melody crafting, but I have made a couple original songs. I specialize in industrial chiptune and what I like to call "rustcore". My two music environments are LMMS and Furnace, though the latter is the main one I use nowadays.
My favourite game genres are automation, puzzle, and platformer. Factorio, Exapunks, and Celeste are my favourites in those genres respectively.
Other than that, I like to do procedural or subdiv modelling in Blender.
All in all, I'm just a software catgirl :3
45 notes · View notes
lonestarflight · 4 months ago
Text
Tumblr media Tumblr media
STS-115 "Space Shuttle Atlantis rolls away from Bay 3 in the Vehicle Assembly Building to move it to Bay 1. There Atlantis will be demated with the external tank and solid rocket boosters in anticipation of its transfer to the Orbiter Processing Facility."
Date: February 25, 2003
NASA ID: KSC-03PD-0571, KSC-03PD-0573
57 notes · View notes
paradoxinabottle · 1 month ago
Text
youtube
Everyday i discover a niche that i didn't believe existed.
Also, here's a comment i found really interesting:
Tumblr media
6 notes · View notes