ACCESS databases using PC ASSEMBLER language code

G

Guest

Please advise me if there is a better forum to address my issues below (possibly an [OT] message board, but related to ACCESS).



As a "newbie" to MS ACCESS 2000 (9.0.6926 SP-3) I have:

* been lurking on this board for several weeks now and have managed to pick up alot of very valuable information, tips, tricks for the "bag of tricks" and WEB LINKS etc. from all of the great expertise given by all of you very patient people here, ... my sincere thanks to ALL OF YOU!!

* not wanted to take up the valuable time of the many members on this list to answer my specific questions

* finally reached my "level of frustration" with all of the "WIZZARDs", "GIZZARDs", "OGARs" etc. that are helping(?) me. I am doing most things from scratch WITHOUT the help of any of the wizzards

* decided that VBA is not for me. I want to code strictly in PC ASSEMBLY language instead of VBA or any other "high level" language. My reason being, if I can write ASSEMBLY CODE, I can do anything and everything I want to in ONE language (plus things the high level languages can't even dream of doing).

My background is almost 40 years of large mainframe experience as an MVS Systems Programmer (for those who don't know, MVS is an OPERATING SYSTEM for mainframes, just like WINDOWs 9x and WINDOWs XP are for PCs). Systems programmers are basically the people who WRITE, SUPPORT and FULLY understand the OPERATING SYSTEM and all of the HARDWARE being used at the LOWEST LEVEL of CODE available, ie. in PURE ASSEMBLY language code (no fancy "high level" stuff like C, C++, VB, COBOL, FORTRAN etc.). Programming in assembly language is sometimes referred to as "programming right down to the "bare metal"" of the hardware because the code written can do ANYTHING and EVERYTHING that the hardware and/or the operating system can do, including TOTALLY destroying both, believe me, I've done it by accident :)-( ... most SPs "worth their salt" have also, ... by "pushing the envelope"!!


I would like to do ON EVENT??? ... load some ASSEMBLY LANGUAGE CODE.


I have "goggled" and many other searches for things like comp.lang.*, PC assembly language etc. and have not found any useful SITES or message boards from writing PC ASSEMBLY CODE.


Could someone please point me to some good PC assembly links, products, etc.

Please excuse my long winded post, and MANY THANKS in ADVANCE from an "ol' bit-twiddling dinosaur" for any help.


TIA,

jwc
 
C

Chris

In a prior life, I was an operator on MVS/JES2 systems.
BAH.

You would have a hard time using Assembly to manipulate
Access databases. You would have to use ADO or DAO to
connect to the database itself, and I'm not sure you can
do that from Assembly.

I hate to say it, but you will need to go down the VB/C
route (high level fancy stuff). But, you're learning
curve could be rough due to the difference in thinking
between the two.

Chris.

-----Original Message-----
Please advise me if there is a better forum to address my
issues below (possibly an [OT] message board, but related
to ACCESS).
As a "newbie" to MS ACCESS 2000 (9.0.6926 SP-3) I have:

* been lurking on this board for several weeks now and
have managed to pick up alot of very valuable information,
tips, tricks for the "bag of tricks" and WEB LINKS etc.
from all of the great expertise given by all of you very
patient people here, ... my sincere thanks to ALL OF YOU!!
* not wanted to take up the valuable time of the many
members on this list to answer my specific questions
* finally reached my "level of frustration" with all of
the "WIZZARDs", "GIZZARDs", "OGARs" etc. that are helping
(?) me. I am doing most things from scratch WITHOUT the
help of any of the wizzards
* decided that VBA is not for me. I want to code
strictly in PC ASSEMBLY language instead of VBA or any
other "high level" language. My reason being, if I can
write ASSEMBLY CODE, I can do anything and everything I
want to in ONE language (plus things the high level
languages can't even dream of doing).
My background is almost 40 years of large mainframe
experience as an MVS Systems Programmer (for those who
don't know, MVS is an OPERATING SYSTEM for mainframes,
just like WINDOWs 9x and WINDOWs XP are for PCs). Systems
programmers are basically the people who WRITE, SUPPORT
and FULLY understand the OPERATING SYSTEM and all of the
HARDWARE being used at the LOWEST LEVEL of CODE available,
ie. in PURE ASSEMBLY language code (no fancy "high level"
stuff like C, C++, VB, COBOL, FORTRAN etc.). Programming
in assembly language is sometimes referred to
as "programming right down to the "bare metal"" of the
hardware because the code written can do ANYTHING and
EVERYTHING that the hardware and/or the operating system
can do, including TOTALLY destroying both, believe me,
I've done it by accident :)-( ... most SPs "worth
their salt" have also, ... by "pushing the envelope"!!
I would like to do ON EVENT??? ... load some ASSEMBLY LANGUAGE CODE.


I have "goggled" and many other searches for things like
comp.lang.*, PC assembly language etc. and have not found
any useful SITES or message boards from writing PC
ASSEMBLY CODE.
Could someone please point me to some good PC assembly links, products, etc.

Please excuse my long winded post, and MANY THANKS in
ADVANCE from an "ol' bit-twiddling dinosaur" for any
help.
 
P

Pavel Romashkin

My guess would be, you will have to write 50 pages of assembly code to
just open a database. LAcking your level of expertise, I'd say that high
level language is what's needed to accomplish high level tasks, such as
record editing, user interface programming etc. Are you planning to
write Windows interface features in Assembler? It would be an incredible
redundant effort, becasue all of this is available in existing libraries.
I hope you reconsider and use VBA - a well-suited tool for rapid
application development.
To avoid frustration, I'd recommend gutting some sample database to see
how it is put together, and reading a good book that will cover
programming tricks.

Pavel

ALC_dinosaur said:
Please advise me if there is a better forum to address my issues below (possibly an [OT] message board, but related to ACCESS).

As a "newbie" to MS ACCESS 2000 (9.0.6926 SP-3) I have:

* been lurking on this board for several weeks now and have managed to pick up alot of very valuable information, tips, tricks for the "bag of tricks" and WEB LINKS etc. from all of the great expertise given by all of you very patient people here, ... my sincere thanks to ALL OF YOU!!

* not wanted to take up the valuable time of the many members on this list to answer my specific questions

* finally reached my "level of frustration" with all of the "WIZZARDs", "GIZZARDs", "OGARs" etc. that are helping(?) me. I am doing most things from scratch WITHOUT the help of any of the wizzards

* decided that VBA is not for me. I want to code strictly in PC ASSEMBLY language instead of VBA or any other "high level" language. My reason being, if I can write ASSEMBLY CODE, I can do anything and everything I want to in ONE language (plus things the high level languages can't even dream of doing).

My background is almost 40 years of large mainframe experience as an MVS Systems Programmer (for those who don't know, MVS is an OPERATING SYSTEM for mainframes, just like WINDOWs 9x and WINDOWs XP are for PCs). Systems programmers are basically the people who WRITE, SUPPORT and FULLY understand the OPERATING SYSTEM and all of the HARDWARE being used at the LOWEST LEVEL of CODE available, ie. in PURE ASSEMBLY language code (no fancy "high level" stuff like C, C++, VB, COBOL, FORTRAN etc.). Programming in assembly language is sometimes referred to as "programming right down to the "bare metal"" of the hardware because the code written can do ANYTHING and EVERYTHING that the hardware and/or the operating system can do, including TOTALLY destroying both, believe me, I've done it by accident :)-( ... most SPs "worth their salt" have also, ... by "pushing the envelope"!!

I would like to do ON EVENT??? ... load some ASSEMBLY LANGUAGE CODE.

I have "goggled" and many other searches for things like comp.lang.*, PC assembly language etc. and have not found any useful SITES or message boards from writing PC ASSEMBLY CODE.

Could someone please point me to some good PC assembly links, products, etc.

Please excuse my long winded post, and MANY THANKS in ADVANCE from an "ol' bit-twiddling dinosaur" for any help.

TIA,

jwc
 
G

Guest

Chris,

Many thanks for your reply. Please don't take the following as a negative reply!! Thanks again for taking the time to read and reply to my post!!

I think that one thing programmers using high level languages miss is that ANY and EVERY thing that happens on a computer, be it a PC or on a mainframe, "happens" at the "machine language level". Anything that the computer does is done as ZEROS or ONES.

A computer (of any kind) dosen't have a clue what SELECT ( ...

or have a clue what

ON EVENT ...

means. The above statements are turned into machine langauge code by a COMPLIER or an ASSEMBLER. It would be something like what follows.



Set rs = Me.Recordset.Clone
rs.FindFirst "[tbl_Location_Alias] = '" & Me![lbl_Loc_Alias] & "'"
Me.Bookmark = rs.Bookmark
Me!lbl_Loc_Alias = ""



.... Excuse me while I revert back to IBM Mainframe stuff ... Machine Language OP Cd Operands

Set rs = Me.Recordset.Clone would be something like D2F0 30AD B4DC MVC rs,Me.Recordset.Clone

rs.FindFirst _
"[tbl_Location_Alias] =_
'" & Me![lbl_Loc_Alias] & "'" would be something like I've forgotten the OP Code BXLE Register/Routine stuff



I feel very sure that ADO and DAO work at the above level also. It is all 0's and 1's and machine level OP Codes and OPerands.



Thanks again for your reply.

I'm sure that you know ALOT more about ACCESS than I do ... but I'm still trying to learn.


jwc

----- Chris wrote: -----

In a prior life, I was an operator on MVS/JES2 systems.
BAH.

You would have a hard time using Assembly to manipulate
Access databases. You would have to use ADO or DAO to
connect to the database itself, and I'm not sure you can
do that from Assembly.

I hate to say it, but you will need to go down the VB/C
route (high level fancy stuff). But, you're learning
curve could be rough due to the difference in thinking
between the two.

Chris.

-----Original Message-----
Please advise me if there is a better forum to address my
issues below (possibly an [OT] message board, but related
to ACCESS).have managed to pick up alot of very valuable information,
tips, tricks for the "bag of tricks" and WEB LINKS etc.
from all of the great expertise given by all of you very
patient people here, ... my sincere thanks to ALL OF YOU!!the "WIZZARDs", "GIZZARDs", "OGARs" etc. that are helping
(?) me. I am doing most things from scratch WITHOUT the
help of any of the wizzardsstrictly in PC ASSEMBLY language instead of VBA or any
other "high level" language. My reason being, if I can
write ASSEMBLY CODE, I can do anything and everything I
want to in ONE language (plus things the high level
languages can't even dream of doing).experience as an MVS Systems Programmer (for those who
don't know, MVS is an OPERATING SYSTEM for mainframes,
just like WINDOWs 9x and WINDOWs XP are for PCs). Systems
programmers are basically the people who WRITE, SUPPORT
and FULLY understand the OPERATING SYSTEM and all of the
HARDWARE being used at the LOWEST LEVEL of CODE available,
ie. in PURE ASSEMBLY language code (no fancy "high level"
stuff like C, C++, VB, COBOL, FORTRAN etc.). Programming
in assembly language is sometimes referred to
as "programming right down to the "bare metal"" of the
hardware because the code written can do ANYTHING and
EVERYTHING that the hardware and/or the operating system
can do, including TOTALLY destroying both, believe me,
I've done it by accident :)-( ... most SPs "worth
their salt" have also, ... by "pushing the envelope"!!comp.lang.*, PC assembly language etc. and have not found
any useful SITES or message boards from writing PC
ASSEMBLY CODE.ADVANCE from an "ol' bit-twiddling dinosaur" for any
help.
 
G

Guest

Pavel,

Thank you for your reply. And, just like the response to Chris' reply, ... please don't take it as negative.

After 40 years of writing assembler language code, I don't mind coding 50 pages of code. Howerver, let me say this; I have "de-bugged" thousands of high level language programs with application programmers and have always been amazed at the code "generated" by the high level language compilers. An example follows (in "IBM'ezz", of course, using a language named COBOL). The response of the application programmer to me was usually something like, "I only have ONE INSTRUCTION" in this routine, why does it take so long to run my program??). The "one instruction" might be something like:

IF A > B
THEN COMPUTE
C = D / E ROUNDED.


After turning on "OPTION PMAP" for the COMPILE, there would be several BRANCHS to routines which contisted of several THOUSAND lines of code for EACH of the BRANCHS.


Back to to 50 pages of code "just to open the database", using ASSEMBLY language, I could ALWAYS replace the several THOUSAND lines of code generated by the high level language compiler with LESS than 50 lines of assembler language code.


Thanks again from a newbie.



jwc
 
P

Pavel Romashkin

I agree with you that there is a lot of overhead in using high level languages.
However, this tradeoff allows not to worry about processor upgrades,
bridge updates and all other hadrware dependencies, which have to be
accounted for when writing processor instructions.
Development speed and portability, along with high processor speeds are
the way industry has taken. Should you choose to optimize Windows and
Access and re-write it in assembler, I will wish you luck but I may not
be able to live long enough to see the outcome. And by the time you are
finished, new processors will be out that will render your instruction
sets obsolete.

Good luck,
Pavel
 
A

Albert D. Kallal

* finally reached my "level of frustration" with all of the "WIZZARDs",
"GIZZARDs", "OGARs" etc. that are helping(?) me. I am doing most things
from scratch WITHOUT the help of any of the wizzards

some of the wizards are still very useful. The combo box wizard is great
example of this. Further, once you use a wizard, the results can be modified
by you. So, the listbox,and combo box wizard are great tools, and will save
the most experienced developers time. I coded in just about every platform
and language available out there, and it would be silly not to use some of
the wizards. It would be like saying you don't want to use computers
anymore...and might as well do all data processing by hand!

In fact, the concept of data processing and assembler don't belong in the
same sentence! I have to question the motives here?

So, the most experienced ms-access developers don't use the wizards for
everything ...but most will still use wizards for combo/list box. I mean,
you are not going to typing in byte-codes by hand, but at least use a
assembler..right? I mean, why use a assembler to save time..why not just
type in byte codes? So, I just want to point out that wizards can save
time...just like using a decent assembler can save time. So, lets not be
silly here and state that wizards are of no used to experienced access
developers. It would be also silly to state that using a assembler in place
of entering byte codes is silly also.
* decided that VBA is not for me. I want to code strictly in PC
ASSEMBLY language instead of VBA or any other "high level" language. My
reason being, if I can write ASSEMBLY CODE, I can do anything and everything
I want to in ONE language (plus things the high level languages can't even
dream of doing).

Well, unless you mention what is you can't do, then the above is a VERY
hollow statement. I can't think of any one thing that you would need to do
concerning ms-access and needing to use assembler. In fact, I might have to
ask if this whole post is a joke, or a troll (I checked the calendar..and it
was not April 1st!).

Further, you do realize that using assembler, or c++ is not going to speed
up data operations by any noticeable amount..right? (and do you realize why
this is so? Given your experience, the reason for this answer should be
very simple and easy for you).
Programming in assembly language is sometimes referred to as "programming
right down to the "bare metal"" of the hardware because the code written can
do ANYTHING and EVERYTHING that the hardware and/or the operating system can
do, including TOTALLY destroying both, believe me, I've done it by accident

Actually, that depends on the os, and in some protected mode environments
even using assembly does not get you around the OS's ability to restrict or
protect certain parts of memory from you asm code. Unless you are writing
the OS, then no..you don't have control over everything when writing
assembler, and you can't necessary crash the system at all. Also, if you
are looking to make things easy and more reliable, then again assembler will
not increase the reliability of the system. Further, you can't really do
anything you want, since any interface from the screen or mouse means you
have to interact with the OS.

You also have to remember that using assembler is not hard, but tedious.
There is a big difference between hard, and tedious. It is tedious to cut
the grass with a pair of scissors then with a lawn mower. However, either
task does not take more or less skill.

There is often this idea that using assembler is more difficult, or takes
more skill, or somehow allows one more freedom. This is not so. Using
assembler is FAR FAR easier to learn then learn then most high level
languages. Just looking at the temp staff and un-computer educated people
around the office, most seem to know, or use assembler more then anything
else. I am of course referring to a programmable calculators. If you look at
the sequences they type in when using those calculators, it reads almost
exactly like assembler.

So, the real problem here is that you need to interface with a windows
operating system, and that is one huge system.
I would like to do ON EVENT??? ... load some ASSEMBLY LANGUAGE CODE.

To do the above you will have to use the standard windows API. That means
you will write your assembler code (easy), BUT that code will have to be
designed to accept some parameters and follow the windows development guide
lines (harder). Assuming you spend the time to do this, then once you
create a standard dll (dynamilce link library) with you asm code, then you
can call that code. You should also note that if you launch the dos window
and type in debug, you are now able to type in assembler code. Just type in
a ? for a list of commands. However, learning and using the windows API is
way beyond a newsgroup post.

For example, to call the code to play a wav sound in ms-access, we would
use:

'Sound APIs
Private Declare Function apiPlaySound Lib "Winmm.dll" Alias "sndPlaySoundA"
_
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

The above assembler code is in the file winmm.dll. I believe in the above
example, "c:\windows\system is where the file resides if the full path name
is not supplied.

So, the code in ms-access behind a button call the above assembler code
would be:

Private Sub Command1_Click()

apiPlaySound("c:\sounds\hello.wav",1)

end sub

You also have to note that when developing windows appcltions, you are now
using what is called event driven programming. That means your code is not
written to run in a linear fashion as we used to do. This perhaps is on of
the largest pyridine changes you have to make when coming from a non event
driven environment. This simply means you need to change your approach to
how software is developed compared to those older systems.
I have "goggled" and many other searches for things like comp.lang.*, PC
assembly language etc. and have not found any useful SITES or message boards
from writing PC ASSEMBLY CODE.

Well, as mentioned, you got the wrong newsgroup. Further, any references to
calling code from any programming language in windows will work using
declarations as above. The above code call for the sound api can be used
from c++, or any windows development system. In the above example, that api
call was ms-access code, but once the api's are known, you can call them
from any language.

The problem is not finding a assembler to write code! (there is one with
every copy of windows anyway). Lets at least make some effort here!......you
can't possibility be that bad with a search engine..are you? How can you
being to think about developing in assembler when you can't use a search
engine? I am really missing something here, and am at a loss for words.

Heck, why not browse over to Intel's site who makes most processors for PC's
today. I don't know if they have any assembler tools, but I would bet that
their c++ compiler also allow you to insert, or write assembler code. The
first place I would look is the manufacture for the chip set. Did you look
at Intel's stuff yet?

Anyway, lets try a search engine:......hum...lets see...ah here is a ok
link:

http://www.programmersheaven.com/zone5/mh2.htm

Another form the same yahoo page:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html
/vcoriMicrosoftAssemblerMacroLanguage.asp

However, at the end of the day...I don't see any ONE THING of ANY value that
you will gain by using assembler. In fact, you are going to be interfacing
with parts of windows anyway. You code will not run faster...and
really...your code spends 90% of its time in supervisor mode (window os
code) anyway.
 
G

Guest

Pavel

Thanks again for following along with me. I got a BIG <g> out of your last reply

I know that keeping up with changing technologies can be problematic, but when I got out of the mainframe business in 2002, I had assembly code (operating system level) that I had written in the 1960's (on an operating system named MFT) that was still running on on IBM's lastest and still current operating system named z/OS. Sure, I had to modify my code from time to time, but NOT NEARLY as often as one would think. One of the keys to not having to modify one's code (and I'm sure that you know this) is writing very flexable code from the start ... and NEVER, NEVER, NEVER ... "HARD CODE" anything!

When I get my BETA version of WINDOZE and AXE_CCESS ready, I'll send you a free copy. <g> ... should be by the end of this week

enjoyed talkin' you, and thanks for the "good luck wish" ... I need it

jw
 
D

david epsom dot com dot au

1) Find an Assembler that works with Windows
2) Build a DLL (dynamic link library)
3) Declare the dynamic link library in your Access/VB project
4) Use On Event to call the DLL.

Advanced class:
5) Use a compiler to build an OLE DLL
6) Use the assembler to build an OLE DLL
7) Declare the DLL in your project.
8) Test the OLE interface to the DLL

Post graduate:
9) Build a DLL that dynamically uses another DLL
10) Build a DLL that dynamically uses an OLE interface on a DLL
11) Build a DLL that dynamically use an ADO/DAO object using standard calls
to the OLE interface.
12) Rebuild the DLL using assembler.

(david)

ALC_dinosaur said:
Please advise me if there is a better forum to address my issues below
(possibly an [OT] message board, but related to ACCESS).
As a "newbie" to MS ACCESS 2000 (9.0.6926 SP-3) I have:

* been lurking on this board for several weeks now and have managed to
pick up alot of very valuable information, tips, tricks for the "bag of
tricks" and WEB LINKS etc. from all of the great expertise given by all of
you very patient people here, ... my sincere thanks to ALL OF YOU!!
* not wanted to take up the valuable time of the many members on this
list to answer my specific questions
* finally reached my "level of frustration" with all of the "WIZZARDs",
"GIZZARDs", "OGARs" etc. that are helping(?) me. I am doing most things
from scratch WITHOUT the help of any of the wizzards
* decided that VBA is not for me. I want to code strictly in PC
ASSEMBLY language instead of VBA or any other "high level" language. My
reason being, if I can write ASSEMBLY CODE, I can do anything and everything
I want to in ONE language (plus things the high level languages can't even
dream of doing).
My background is almost 40 years of large mainframe experience as an MVS
Systems Programmer (for those who don't know, MVS is an OPERATING SYSTEM for
mainframes, just like WINDOWs 9x and WINDOWs XP are for PCs). Systems
programmers are basically the people who WRITE, SUPPORT and FULLY understand
the OPERATING SYSTEM and all of the HARDWARE being used at the LOWEST LEVEL
of CODE available, ie. in PURE ASSEMBLY language code (no fancy "high level"
stuff like C, C++, VB, COBOL, FORTRAN etc.). Programming in assembly
language is sometimes referred to as "programming right down to the "bare
metal"" of the hardware because the code written can do ANYTHING and
EVERYTHING that the hardware and/or the operating system can do, including
TOTALLY destroying both, believe me, I've done it by accident :)-( ...
most SPs "worth their salt" have also, ... by "pushing the envelope"!!
I would like to do ON EVENT??? ... load some ASSEMBLY LANGUAGE CODE.


I have "goggled" and many other searches for things like comp.lang.*, PC
assembly language etc. and have not found any useful SITES or message boards
from writing PC ASSEMBLY CODE.
Could someone please point me to some good PC assembly links, products, etc.

Please excuse my long winded post, and MANY THANKS in ADVANCE from an "ol'
bit-twiddling dinosaur" for any help.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top