flat assembler
Message board for the users of flat assembler.

Index > MenuetOS > General question about asm no-OS programming

Thread Post new topic Reply to topic

Joined: 13 Mar 2005
Posts: 1
I'm thinking about using some old 486 or Pentium I (generally Intel x86) processor based machines as programmable FFT analyser, for my amateur radio station.
My idea is to use already existing boards (processor, memory, other hardware) instead of asembling my own hardware using embedded devices (like PIC or Atmel microcontrolers).

This is why I'm asking about help or guide, where can I find resources about assembler (or other language) programming, but not based on any OS. I call it "pure assembler" or "hardware assembler" (perhaps this name may be wrong :))

What I want to achieve is direct control of hardware, without dealing with any unecessary higher layers.

Maybe it's easier to use some embedded Linux distro? Or MenuetOS is best candidate?

I have experience in C, C++ and assembler, but rather for embedded devices (microcontrollers).

I would be very grateful for any "direction".

Thanks in advance

Post 13 Mar 2005, 11:50
View user's profile Send private message Reply with quote

Joined: 21 Feb 2004
Posts: 109
Location: East Tennessee U.S.A.
KG4NXC here or GridWorks or BlogLite depending on the board.

ASM code has to be "positioned" before being run it can get there by a bootloader or an OS. DOS or other OS's can be used to set the entry point to the code or you can can have it burned to NV Ram on a network card which will run the bootcode/program..if the PC's BIOS will allow it.

You could also write your code into the BIOS of the PC. (not easy)

Anyway I think you may have found the right OS for your needs.
It is extremely stable and we've had servers and dedicated processes running for months now.

We use MenuetOS for motor control / entry system / serving map data and much more.

Using the LPT Port alone you can control 8-11 devices easily.

Use of a solid state switch (Radio Shack 3 lead 3Amp) works like a dream))
Monitor LED's on the channels can be mounted in blank drive bays.

Click on the link at the end of this post for more info.

set up a P1 or better with at least 32MB and a supported vid card
(we have some tested PCI cards if you need one) .
An old CDROM and a 1.44 Floppy will do fine.

Sending TTL data is simple with MeOS

serial communication example= rtdata.asm

Download the recent GridWorks "EZ" Distro and check out the ANIMATE SECTION.

Welcome to MenuetOS !

G'day Mark


edit 8:43 EST 3/13

Software FFT Analyser.

trial PC software @

Post 13 Mar 2005, 13:24
View user's profile Send private message Visit poster's website Reply with quote

Joined: 25 Sep 2003
Posts: 2139
Location: Estonia
What about that FFT - have you got some device to retrieve the data from ie with COM/LPT connectability?

I think these ports would be the easiest way to transfer data to analyse, but you could also write your own program that reads raw from any port that supports upstream to computer ^o)

Why do you so desperately need non-OS assembly (I think there isn't any as bloglite well explained). Maybe we didn't understand you correctly but you really need to have at least a layer or two before accessing hardware unless writing you own OS, that deals only with the problem in question.
Post 13 Mar 2005, 20:40
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger Reply with quote

Joined: 31 Oct 2004
Posts: 557
Barry B. Brey's book The Intel Microprocessor has a lot of code specifically for what you're asking. It doesn't have any code for an FFT, but it shows you how to 'plug-in' addressable devices. There is a lot of MS code there, which is useable outside of an OS. I would also recommend that you, if you haven't already, take a basic digital course, and then a microprocessor course. For the FFT I assume you've had some calculus and are aware of the different algorythms available based on the number of points you want to reference.

Can you say anything about the specifics? Are you dealing with RF?
Post 18 Mar 2005, 01:02
View user's profile Send private message Reply with quote
tom tobias

Joined: 09 Sep 2003
Posts: 1320
Location: usa
tom tobias
lukki wrote:

What I want to achieve is direct control of hardware, without dealing with any unecessary higher layers.

Good project, I have some experience, write to me via private message. In general, you need to manage interrupts, timer, and chipset, unfortunately, different for each motherboard. The rationale for using OLDER motherboards is NOT FINANCIAL, but rather, the fact that the older boards and components have MUCH BETTER DOCUMENTATION, than contemporary products. In particular, recent devices guard jealously the addresses of internal memory and interrupt protocols. I use today for my own research, (real time spectral analysis of the human voice,) a board, obsolete for a few years now, the biostar M6VLR VIA PLE133T Socket 370, because it contains an integral TRIDENT video controller, and you will discover, when looking at more recent graphic controllers, for your intended display of the FFT, that the data needed to program the cpu is NOT PUBLISHED by ATI, or NVIDIA, or any of the others.... BREY's book is excellent, however, it will not assist you in solving this issue of documentation, unfortunately.....The best book available, in my opinion, is Ferraro's excellent description, NOW OBSOLETE, and out of print, AND VERY EXPENSIVE ($US 100, for a used copy!)
but this excellent book will only help you with the video controller--> for control of other devices, like the RF controller mentioned by Smiddy, GOOD LUCK!
The FFT is not a problem, there are many examples in the public domain, including one I published twelve years ago, based on the 80486. For that project, I built my own A/D board using the long since obsolete ISA bus (which however, with a 5 MHz bus refresh rate was still 100 times faster than the 12khz sampling rate that I employed), and so had control over the interrupts to access DMA controller, and transfer the data to RAM on the motherboard, i.e. the central focus of your question. My implementation of a 256 point FFT based on the split radix algorithm required less than 5% of the cpu, including the time needed to transfer the data from the peripheral board to RAM, so I am quite certain your project is readily accomplished, once you know the addresses of the devices, including any internal buffers, and interrupt generation protocols. Other books to consider, i.e. books I recommend include Detmer's excellent book, and Assembly language master class by Chebotko and a dozen other brilliant Russian programmers:
I am also fond of Kip Irvine's book, but it is not quite as detailed as Treibel's for I/O operations, though I am not sure whether Treibel's work is still up to date. My edition is 15 years old!
Speaking of NEW, Smiddy mentioned Brey, and he has a new edition coming out, I am going to order it, and will let you know in a month or so, when it arrives, how it looks:
Your project is worthwhile, keep at it, and keep us posted on your progress.
Regards, tom Smile
Post 19 Mar 2005, 11:42
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum

Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.

Website powered by rwasa.