- The reality. Was: Hardware and DLL interfacing in BlackBox

From: CFB Software <"CFB>
Date: Mon, 21 Feb 2005 11:09:17 +1030

----boundary-LibPST-iamunique-2038742564_-_-
Content-type: text/plain

>
> My programming aims are pretty simple. I want to
> read and write from files and the console and do some
> calculations. I need to be able to detect a pressed key so I
> can interrupt a process if necessary (and only if necessary).
> I might also need to do serial port I/O and graphics, but
> that's beyond this discussion. Notice I left out windows.
> Nice, but not always needed or even helpful.
>

Rex,

It sounds to me that BlackBox is not the tool that you should be using,
given your particular requirements. I'd recommend that you try
Queensland University's Gardens Point Component Pascal for the Windows
.NET platform - it seems to be just what you are looking for.

http://www.citi.qut.edu.au/members/research_areas/plas/projects/

The runtime system has these functions:

* Console writes strings and numbers to the console
* StdIn reads characters and whole lines from the console
* Error this library writes strings and number to the error stream
* ProgArgs provides access to the command line arguments, if any
* GPText a basic library for handling text formatting
* GPFiles defines the supertype of GPBinfFiles.FILE and GPTextFiles.FILE
* GPBinFiles reading and writing binary files
* GPTextFiles reading and writing text files
* RealStr formatting real numbers: based on the ISO-Modula-2 library
* RTS access to the facilities of the runtime system
* StringLib string library, based on the ISO-Modula-2 library

Using Microsoft's ILMerge utility you can build standalone executables.
These are typically about 50 - 100 Kbytes (YES - KILOBYTES) in size.
i.e. about 10% of the size of an equivalent Borland Delphi executable.

I'm more interested in GUI Windows programming so I rarely use these
libraries, but make use of the amazing range of functions available in
the .NET framework. It has taken some of the fun out of programming -
most of my programs these days seem to be just sequences of library
calls, but I do get the actual job (i.e. producing a program to perform
a particular task) much quicker.

One of the advantages for me using GPCP for .NET is that I can now reuse
my Component Pascal code for Desktop applications, handheld PCs and
server-side web programming.

Chris Burrows
CFB Software
http://www.cfbsoftware.com/gpcp

--- BlackBox
--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy



----boundary-LibPST-iamunique-2038742564_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwID4gXHBhcg0KPiAgICAgICAgIE15IHByb2dyYW1t
aW5nIGFpbXMgYXJlIHByZXR0eSBzaW1wbGUuICBJIHdhbnQgdG8gXHBhcg0KPiByZWFkIGFuZCB3
cml0ZSBmcm9tIGZpbGVzIGFuZCB0aGUgY29uc29sZSBhbmQgZG8gc29tZSBccGFyDQo+IGNhbGN1
bGF0aW9ucy4gIEkgbmVlZCB0byBiZSBhYmxlIHRvIGRldGVjdCBhIHByZXNzZWQga2V5IHNvIEkg
XHBhcg0KPiBjYW4gaW50ZXJydXB0IGEgcHJvY2VzcyBpZiBuZWNlc3NhcnkgKGFuZCBvbmx5IGlm
IG5lY2Vzc2FyeSkuIFxwYXINCj4gIEkgbWlnaHQgYWxzbyBuZWVkIHRvIGRvIHNlcmlhbCBwb3J0
IEkvTyBhbmQgZ3JhcGhpY3MsIGJ1dCBccGFyDQo+IHRoYXQncyBiZXlvbmQgdGhpcyBkaXNjdXNz
aW9uLiAgTm90aWNlIEkgbGVmdCBvdXQgd2luZG93cy4gIFxwYXINCj4gTmljZSwgYnV0IG5vdCBh
bHdheXMgbmVlZGVkIG9yIGV2ZW4gaGVscGZ1bC5ccGFyDQo+IFxwYXINClxwYXINClJleCxccGFy
DQpccGFyDQpJdCBzb3VuZHMgdG8gbWUgdGhhdCBCbGFja0JveCBpcyBub3QgdGhlIHRvb2wgdGhh
dCB5b3Ugc2hvdWxkIGJlIHVzaW5nLFxwYXINCmdpdmVuIHlvdXIgcGFydGljdWxhciByZXF1aXJl
bWVudHMuIEknZCByZWNvbW1lbmQgdGhhdCB5b3UgdHJ5XHBhcg0KUXVlZW5zbGFuZCBVbml2ZXJz
aXR5J3MgR2FyZGVucyBQb2ludCBDb21wb25lbnQgUGFzY2FsIGZvciB0aGUgV2luZG93c1xwYXIN
Ci5ORVQgcGxhdGZvcm0gLSBpdCBzZWVtcyB0byBiZSBqdXN0IHdoYXQgeW91IGFyZSBsb29raW5n
IGZvci4gXHBhcg0KXHBhcg0KaHR0cDovL3d3dy5jaXRpLnF1dC5lZHUuYXUvbWVtYmVycy9yZXNl
YXJjaF9hcmVhcy9wbGFzL3Byb2plY3RzL1xwYXINClxwYXINClRoZSBydW50aW1lIHN5c3RlbSBo
YXMgdGhlc2UgZnVuY3Rpb25zOlxwYXINClxwYXINCiogQ29uc29sZSB3cml0ZXMgc3RyaW5ncyBh
bmQgbnVtYmVycyB0byB0aGUgY29uc29sZVxwYXINCiogU3RkSW4gcmVhZHMgY2hhcmFjdGVycyBh
bmQgd2hvbGUgbGluZXMgZnJvbSB0aGUgY29uc29sZVxwYXINCiogRXJyb3IgdGhpcyBsaWJyYXJ5
IHdyaXRlcyBzdHJpbmdzIGFuZCBudW1iZXIgdG8gdGhlIGVycm9yIHN0cmVhbVxwYXINCiogUHJv
Z0FyZ3MgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzLCBpZiBh
bnlccGFyDQoqIEdQVGV4dCBhIGJhc2ljIGxpYnJhcnkgZm9yIGhhbmRsaW5nIHRleHQgZm9ybWF0
dGluZ1xwYXINCiogR1BGaWxlcyBkZWZpbmVzIHRoZSBzdXBlcnR5cGUgb2YgR1BCaW5mRmlsZXMu
RklMRSBhbmQgR1BUZXh0RmlsZXMuRklMRVxwYXINCiogR1BCaW5GaWxlcyByZWFkaW5nIGFuZCB3
cml0aW5nIGJpbmFyeSBmaWxlc1xwYXINCiogR1BUZXh0RmlsZXMgcmVhZGluZyBhbmQgd3JpdGlu
ZyB0ZXh0IGZpbGVzXHBhcg0KKiBSZWFsU3RyIGZvcm1hdHRpbmcgcmVhbCBudW1iZXJzOiBiYXNl
ZCBvbiB0aGUgSVNPLU1vZHVsYS0yIGxpYnJhcnlccGFyDQoqIFJUUyBhY2Nlc3MgdG8gdGhlIGZh
Y2lsaXRpZXMgb2YgdGhlIHJ1bnRpbWUgc3lzdGVtXHBhcg0KKiBTdHJpbmdMaWIgc3RyaW5nIGxp
YnJhcnksIGJhc2VkIG9uIHRoZSBJU08tTW9kdWxhLTIgbGlicmFyeVxwYXINClxwYXINClVzaW5n
IE1pY3Jvc29mdCdzIElMTWVyZ2UgdXRpbGl0eSB5b3UgY2FuIGJ1aWxkIHN0YW5kYWxvbmUgZXhl
Y3V0YWJsZXMuXHBhcg0KVGhlc2UgYXJlIHR5cGljYWxseSBhYm91dCA1MCAtIDEwMCBLYnl0ZXMg
KFlFUyAtIEtJTE9CWVRFUykgaW4gc2l6ZS5ccGFyDQppLmUuIGFib3V0IDEwJSBvZiB0aGUgc2l6
ZSBvZiBhbiBlcXVpdmFsZW50IEJvcmxhbmQgRGVscGhpIGV4ZWN1dGFibGUuXHBhcg0KXHBhcg0K
SSdtIG1vcmUgaW50ZXJlc3RlZCBpbiBHVUkgV2luZG93cyBwcm9ncmFtbWluZyBzbyBJIHJhcmVs
eSB1c2UgdGhlc2VccGFyDQpsaWJyYXJpZXMsIGJ1dCBtYWtlIHVzZSBvZiB0aGUgYW1hemluZyBy
YW5nZSBvZiBmdW5jdGlvbnMgYXZhaWxhYmxlIGluXHBhcg0KdGhlIC5ORVQgZnJhbWV3b3JrLiBJ
dCBoYXMgdGFrZW4gc29tZSBvZiB0aGUgZnVuIG91dCBvZiBwcm9ncmFtbWluZyAtXHBhcg0KbW9z
dCBvZiBteSBwcm9ncmFtcyB0aGVzZSBkYXlzIHNlZW0gdG8gYmUganVzdCBzZXF1ZW5jZXMgb2Yg
bGlicmFyeVxwYXINCmNhbGxzLCBidXQgSSBkbyBnZXQgdGhlIGFjdHVhbCBqb2IgKGkuZS4gcHJv
ZHVjaW5nIGEgcHJvZ3JhbSB0byBwZXJmb3JtXHBhcg0KYSBwYXJ0aWN1bGFyIHRhc2spIG11Y2gg
cXVpY2tlci4gXHBhcg0KXHBhcg0KT25lIG9mIHRoZSBhZHZhbnRhZ2VzIGZvciBtZSB1c2luZyBH
UENQIGZvciAuTkVUIGlzIHRoYXQgSSBjYW4gbm93IHJldXNlXHBhcg0KbXkgQ29tcG9uZW50IFBh
c2NhbCBjb2RlIGZvciBEZXNrdG9wIGFwcGxpY2F0aW9ucywgaGFuZGhlbGQgUENzIGFuZFxwYXIN
CnNlcnZlci1zaWRlIHdlYiBwcm9ncmFtbWluZy5ccGFyDQpccGFyDQpDaHJpcyBCdXJyb3dzXHBh
cg0KQ0ZCIFNvZnR3YXJlXHBhcg0KaHR0cDovL3d3dy5jZmJzb2Z0d2FyZS5jb20vZ3BjcFxwYXIN
ClxwYXINCi0tLSBCbGFja0JveFxwYXINCi0tLSBzZW5kIHN1YmplY3QgSEVMUCBvciBVTlNVQlND
UklCRSB0byBibGFja2JveEBvYmVyb24uY2hccGFyDQpccGFyDQp9


----boundary-LibPST-iamunique-2038742564_-_---
Received on Mon Feb 21 2005 - 01:39:17 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:23 UTC