News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Hi, New member

Started by metron9, September 29, 2007, 09:55:09 PM

Previous topic - Next topic

metron9

I finally decided to go back to assembler, I am one of the old ones that started with commodore64 assembly langiage, I actually wrot an assembler caled IEA that I used to program games for commodore. When the first windoze came out I pretty much got discusted with it and stayed with DOS and clipper programming. I also made graphics librarys (some small ones) using Masm that linked with clipper through the blinker compiler. Of course I had a TRS80 ModelII with the Z80 and did assembler programming as well with it.  Now I program ATMEL chips in assembler and make things like DMX light controllers. I want to make a basic lighting controller package and control my device through the serial port or USB ports.

So far i am working with Easy Code and GoAsm. My old computer drives blew up a few weeks back so I built another computer that is about 8 times faster than the old one overall. I did go with Vista and i now have my main drive loaded with the programs I use about 60gig so far. Still have to install Visual Studio.

I am wondering is anyone here is using Easy Code with Vista. I do have one problem as it sometimes just gets an exception error and shuts down. Since i need to brush up, well actually completly learn assembly code for windows and the API functions I am going to make sure I just hit the save button while I add lines of code.

Also if anyone has any experience making a DLL and linking it to Java, My original idea was to use java to make the controller interface but if I can rely on the IDE for assembly language not blowing up i will just do the whole thing in assembler. Is there a different IDE I should look at for Vista?


Mark Jones

Hi Metron9, welcome to the forum. :U

Serial and parallel port access in 2k/xp/vista is limited in accuracy due to the multi-tasking nature of Windows. In these versions direct access to hardware is generally not allowed at the user-level, so all port I/O is buffered in software which can cause timing inconsistencies. Arguably a good way to get around this is by using a little kernel-mode driver which allows direct port access. See this thread for more info.

As for using the serial port, will that be fast enough for what you want to accomplish? The parallel port is another option, provided one is free.

Microchip(r) makes a series of microcontrollers with integrated USB drivers, check out these. I bet ATMEL provides a similar solution. Of course, you will have to make a driver to access an integrated USB controller, but this should not be too difficult for someone of your experience. Check out four-f's kernel-mode driver tutorial for the gist of it.

Questions surrounding this level of application complexity should probably be posted in the Workshop or Laboratory here, as those are generally where the more advanced topics are discussed.

Welcome back into the fold. :wink
"To deny our impulses... foolish; to revel in them, chaos." MCJ 2003.08

metron9

You are too kind,

Don't worry , I have plenty of noobe questions.

Even though I can do advanced programming on microchips it is still going to take me a while to get back on track with this environment.

The speed should be fine, I have a working java implimentation using code from icaste SerialPort package that I can run at 19,200kbs since the serial port is connected to a tiny45 that simply reads the output and buffers 511 bytes in a circlular  buffer, another tiny45 requests a single data byte sequentialy as it sends a continious data stream of 511 bytes at 250kbs to the network of receivers (individual DMX LED fixtures) Yes I would like to go faster if possible to allow strobe on off sequences but additional channels are used to send specific mode commands to the lights such as Strobe at x rate, or fade patterns etc.

So the connection is PC--->[2-tiny45's at 20mhz]->[receiver fixture]...[receiver fixture]....up to 511 fixtures if 1 channel each, typically 4 channels for each light is R/G/B and one for modes.

I also ordered an ethernet to serial modual for testing from lantronix, similar to their xport but only 24 bucks. It says it can do 250kbs we shall see.

I need some help still in documentation.

When Using WinAsm I find the Tools-Options-Keywords(tab) and catagory c7(Asm&Inc) has the Keyword for example .DATA and many others. Where is the definitions of these keywords? I remember my old Z80 Macro Assembler 3 ring binder had all the keywords in it. I actually had or may even have old books on MASM in the shed somewhere. But I need to see a full listing of these so I can recharge my brain cells so to speak. I am still quite lost. I can't just go ahead and program when i don't have a way to look up in a search for example '.DATA" or ".DATA?" because I don't know what the question mark is on that second one.

Typically on the AVR Freaks forum a question "How do i set up a timer?" one would say just read the data sheet, well I can't find the data sheet for the keywords used in the assemblers.


Ahhh i am such an idiot sometimes, I just looked in the MASM Help folder  :red  ok, now i just need another 12 hours or so to absorb some stuff. I can tell you this, i think this forum is going to be quite fun already.

One other thing I really adhear to when I start programming an any language, to learn it fully, I don't use one line of anybody elses code. I start with a blank page and start typing. Of course tons of code from libraries are used but the main program has to be all mine or I won't understand it fully.  If I don't understand every line I am not happy.