|You found me! Hi, my
name is Tony. I worked as a
hardware/software Programmer for many years. I
started programming in basic on the Vic20. Spent
a dozen years programming the Amiga in C/68k
Assembler. I do low level firmware and
program at the chip level. I do Unix
sockets/Linux/Windows device drivers. I do
debugging down to the Kernel.
Aug 7 2022:
Niko was talking about generating randoms. This
is my java 64bit random # generator.
It is based of a 32 bit version written my Leo
Schwab back around 1986.
We used to have a saying "Thank God for Leo
Schwab and all the little Swabbies!"
Aug 7 2022:
Added these control bits for HyperView3.0
// HyperView main
enable bits. Some of these are deprecated
= BIT1 // before we overflow
= BIT2 // will split some of
= BIT4 // Enable stdin
= BIT5 // Enable System Text
= BIT6 // Enable Bittable
= BIT7 // Enable System lines
= BIT8 // Enable X style pop
= BIT9 // draw outline in
current FG Color
= BIT10 // enable Component
= BIT11 // Asynchronons non blocking
quit signal bit.
= BIT12 // Enable background image
= BIT13 // Enable running under
= BIT14 // render pop up menu.
= BIT15 // Oh Oh! Trigger exception
#define int BACKGROUND_LOADING =
BIT16 // Background Image is still
= BIT17 // Will do extra rendering
= BIT18 // It bounced, invoke
Spline momentum/direction instructions if
= BIT19 // Enable the titlebar at
= BIT20 // -- You are
connected to a server.
= BIT21 // you are in the process.
= BIT22 // How long to run the
display at this display stack.
= BIT23 // OH OH! someting failed.
= BIT24 // Redraw the "Connect Gem"
color on the titlebar when connection state
= BIT25 // print all Image Obeserver
messages to stdout.
= BIT27 // flag a 1 display frame
#define int PARENT_IS_HYPERFRAME =
BIT28 // If I know the parent
Component is a HyperFrame, I can call it's
// Note: HyperFrame is deprecated for java 12.
// Wait for text to time out. Note this will run
// If the text does not actually time out and
does not cancel
// a regular runView timeout
// A note on USE_BLIT_OPTIMIZE.
// This controls how the background clip
restore blit is done.
// 1) Restore only the damaged part of the
display caused by component moves and layer
// 2) Stamp the entire display in one blit and
then do the component render.
// #1 is generally faster as blits are small
things like sprites so you are restore
// #2 However, if you have a LARGE number of
gobs, it will be quicker to stamp the whole
// than to loop through and restore a pile of
// FTM:You will have to determine which is
better for you.
// TODO: Make this automatic via time
// Main View Flags 2
#define int BACKGROUND_UNDERLAP = BIT1
#define int BACKGROUND_STRETCH =
#define int EXTERNAL_SERVER_ENA = BIT3
#define int SERVER_SPAWNED_VIEW = BIT4
#define int GEM_UPDATE_OVERRIDE = BIT5
= BIT6 // Erase signal
USE_BLIT_OPTMIZE = BIT7
// Blit clip only bit (as opposed to whole
display) What you are
#define int INITIALIZE_REFRESH =
32022 Latest structures for the
struct Color foreground_color;
struct Color select_color;
struct ColorOperation *color;
struct Point point;
struct ColorOperation *color;
struct Linkable node;
struct SDL_Rect rectangle;
struct Linkable node;
struct HyperLinkedList blitterList;
July 30 2022
Uploaded these albeit sad docs :O
ContainerChannel A Container is a
displayable area of video RAM that you can put
various displayable Components into.
struct Channel base;
Still working through the Channel
Added a pile of new structures many of which are
Color, Palette, Graphics2D, Point, Clip,
CarteaseanPoint, Image, TitleBar, Gadget, Dispatch,GraphPoint,
Buffer (as in NIO),
// latest Base Channel structure
struct HyperLinkedList channel_link; //-----
struct HyperLinkedList io_list;
void (*paint)(struct Graphics2D); // The
lone function pointer
Programming groups I am in.
Direct Media Layer
including ones I my follow. Everything I use I
have compiled including the compiler.
ATM I am using version 12. I was patched up
to 13.03, but there was serious issues.
Tons of changes.
Made several big changes to the IOBLock
I am right at the point where I am trying to
Fixing invalid offsets and dangling references.
What are they?? SystemChannels are the basic
that give you direct access to the underlying
Any Channel you create you will assemble out of
Together all system channels combined give
you access to 100% of the
allowable underlying device control. There
are at this juncture 17 SystemChannels.
NetXecChannel. Process/Thread/RunInfo monitor
Open and control underlying hardware drivers.
types of memory Heap,Stack,GPU,IPC,Cloud, and
Creates/dispatches thread on CPU or GPU.
Creation & assignment of hardware bases
Audio mp3/wav/Blit Video/VLC
Asynchronous 1 second clock & timer
Screen/Window graphics/svg load &
Non blocking single process select socket
Background number crunching.
allocation and control
command line interface
Multi language compile/link
I am an NVIDIA
developer. I spent many weeks going over
windows/posix threads and the signals
incongruities. I had designed an interface
that had 15 bits of resolution compressed to 8
But when I start working on CUDA,
I realize it had over 1000 in GPU threads!!!
That requires a hell of a lot more signals
So 32 system signals at the operating
Many of these are already reserved for
Will have to test how many are left over.
1 is enough.
512 extended signals via a SignaGroup.
This is a compromise as opposed to always
#define SIGNALGROUP_BLOCK 0x000000ff;
struct Signal *next_signal;
struct Signal *signal[SIGNALGROUP_BLOCK];
struct SignalGroup *next_signal_group;
ATM Mashing/compiling/linking :)
Babble.Sat June 11 2022
have done a pile of work this week. Went
through every single library I am using
one by one
and there are many. Made a test
program and one by one linked/tested and
dumped the ones that didn't work.
plus weeded out all yet to to be
documented deprecated functions in SLD and
have all the latest defs patched in. Spent
much effort with SDL_Video. Not
ready yet as most code is
transitioning from Version 1.
Spend much of yesterday working on
ContainerChannel and ThreadChannel.
There are now
> 4 < Channel types for > Web
All Channels encapsulate a base
SystemChannel There are 32 System
These Channels are generally Singletons.
(but don't have to be)
After much time mulling over
everything, I have decide to limit
New 32 bit Signal structure
//-- Drastically increase the amount
of signals for SignalGroup to accomodate
struct Signal *signal[0xff];
This is how the runtime stack layer
init() wraps the SLD thread creation call
and pause() states. This
hopefully will tie up the loose ends of
the Posix committee relevant to signal
dispatch on concurrent waiting
threads. Right now they all wake up.
I started working with CUDA and have
the latest tools and libraries. Going to
map out a common interface
with ARM8/Adreno. Have that all
installed. Got VLCChannel linked and
compiled. Recompiled vcl.
failed. Still running in 32
bit mode. Can't afford the
time to port over the thousands of object
necessary. Will continue to drive
VLC as a process in 32 bit till the 64 bit
libVLC upgrade is stable.
specific function pointer code
// tVoid is an
integer pointer for 32 bit signals
int function1(void *tVoid)
int pid =getpid();
tVoid =(void *)&tFlag;
%08x SDL_ThreadID %08x
int (*function1)(void *);
static int ThreadNexus(void
int_void_FunctionPointer ivfp =
We have 2 types of
1)An unprocessed main memory raster
comprised of 32 bit ARGB data.
"This is the analogue
to a java MemoryImageSource."
2)A copy of this data in GPU memory that
has been scaled according
to the width/height resolution/color model
and pixels per inch of the
target display. These are your accelerated
The function of the
GPUChannel is to allow access to the concurrent
capabilities of the GPU.
Off to work on ThreadChannel more.
My latest NVIDEA Developer upgrades have
wiped out my shadowplay so no more video till I
get a new machine.
Machine is available. I just have to go
get it from my Engineer. I also need
a new monitor for my ARM8/SnapDragon box
but that's another story :)
What is the Channel Paradigm and why.
The Channel Paradigm is an abstraction that
homogenizes all hardware and software.
It is in this regard like a device.
All Channels have these capabilities.
1) Any Channel can join any other Channel
2) Any Channel can listen to any other Channel.
3) Any Channel can write to any other Channel.
3) All Channels are Non blocking and reentrant
and can never deadlock.
4) Channels are only written in C or Assembler.
5) All Channels extend the BaseChannel
6) When complete Channels will be completely
7) Final stage the AI will create Channels on
that the hardware/software runs at its
maximum unencumbered capacity for the
new AI revolution.
we finally have "Write once and run
This is my social interaction/media
site. I am one person plugging away
at this. This is going to be my OWN Social
interaction/media site. I am writing
the back end in C language and assembler.
I also have written a substantial
java API. I have been working
on it since Java versions
little java et al group on FB. Here are
have been working on this and the back end for
over a year.
I work full time in the operating room of the
cardiac ICU of the 2nd largest Hospital in N.A.;
I do this when I am not working.
The back end is written in C and utilizes the Common
Gateway Interface. On Facebook
everyone gets a timeline. On MultiverseSocial,
you get 3D fractal Planet located in a section
of the Milky Way.
I am working primarily on 5 things.
1) Java 12 upgrade for java HyperView &
Component based Applet replacement classes.
2) Tony's Channel Paradigm and >
Web 4 <
3) BML based Web browser & concurrent Apache
mod written in C/Assembler.
4) BQL data base.
5) HTML5 HyperView interface in C driven
5) Mongoose-C Python
Orthographic random planet
Made with HyperView2.99
been cobbling the Channels
together and I am right at the
point where I am ready to
allocate and start the main
IOBlock. This is comprised of 4
1) NetXecChannel System thread
2) Join/Leave. Channel thread
3) IO ProcessChannel thread
4) Exception Thread
Yesterday I was working out the details of my "Mongoose-C" version of Python List.
HyperLInkedList.c is a doubly linked list which is WAY more flexible that Python List Traversing a List would be quicker I think if Python wasn't 45K slower than C and loosely cast. This is what I came up with so far.
// Mongoose-C List by Tony Swain
struct HyperLinkedList *hyperlinkedlist;
struct Linkable node;
union DataList *data_list;
Blather of the day for
Just for the
sake of doing something
working on GPSCHannel
Added great circle, ReadGPS
(stdin, and parse out NMEA
record into relevant structure.
Blather of the day for
After 2 days got MemoryChannel
and ThreadChannel to link.
Wrote a new CompressionChannel which
does LZ77 compression.
It it is a hack of filgrim which is
a hack of pix.c which doesn't exist
anymore. This was originally part of
the PNG image compression methods. I
intend to use it to compress the BLM
data and pack it all into one
I inadvertently also added the PNG
save function, a polynomial plot
function, and some raster draw
Will move these over to the
ContainerChannel which already has
SVG save/load routines.
Integrated antlr lib for lexical
speech parsing for the
Nimosini is the AI that will drive
I only have speech working in Edge
hmm have to get to work....
> Web 4 <
Because Tony clings
to the heretical view that:
Web 3 is a Corporate
Neutered Sandbox that is not
different and why is it better?
- Binary BML/BQL
- Non blocking
- AI driven.
- Open Source. Not
open source? Not > Web 4
- 100% C or Assembler
- Machine generated
rest in hammock ;)
It has been a good week. Piles of
things done from recompiling gcc to
sorting out the nauseatingly massive
pile of dependencies to getting X64
working with the latest SDL
libraries. Re compiled those fresh
off the debug queue.
Have these Channels in various
stages of assembly....