Trying to mold a definition into reality.

Remind people what Brain Patchwork DX, LLC. did/does.
Post Reply
ONiX
Site Admin
Posts: 186
Joined: Tue Nov 18, 2025 1:27 am

Trying to mold a definition into reality.

Post by ONiX »

Many people have asked over the years, why "Brain Patchwork DX" (BPDX :mrgreen: ) for our business name.

* The original answer was my Partner at the time was from Italy, and he shared a name suggestion ~ when simplified to "What's that mean in English", he said "Brain" and "Patchwork, like networking". DX was my contribution, as in "Data Exchange". My background has always been in some form of Serial Communications. In the 80's after high school, I developed a product for IBM called "Relay". It was a script-running RS-232 program. Basically, I was tasked with writing a program that woke-up at certain times of the day, to "POLL our point of sale systems", after collecting the days transactions, and/or store to store transfers, or inventory received transactions ~ everything would be merged and processed in our "Back Office" accounting system. And then Relay would activate again, and "PUSH out inventory changes, store notifications, store transfers, etc.". And then Relay would shutdown ~ generating reports for corporate personnel to start their days with. That started in 1983, and by 1992 when I left and moved on to expand my career. (Spending 2 years of time working with Chad Hower, on our Winshoes (tm) communications components for Visual Basic, and later with George Lamber to build a pretty good suite for Borland Delphi). * Eventually ending with a misunderstanding between Chad and myself... and him crawling my ass in public Newsgroups ~ stating if I could have done better, then why don't I write my own to show it could be done. (So, I did!). DXSock from inception to production was re-written at least 9 times from scratch [March->Sept] I think 1994, but may have been 1995. I had over a decade of experience with RS-232 communications under my belt, and was currently developing for BP (British Petroleum) a earth->satellite->earth real-time communications suite called Tally. [In the 90's Satellite time was slow and *very* expensive, so there was NO ROOM for mistakes!]. So, I knew Winshoes could have been re-written to be a much better product. My Tally system had already proven it in my head.

* Post 2020, the answer was modified to reflect my recent battle with Brain Cancer. May 2027, I will be "Cancer Cured"! Now, some of you may be "Yikes! Brain Cancer ~ that had to suck!". However, I have to be honest, you don't realize it is there, except for all the damn Doctor visits, and Chemo (sucks!) and Radiation treatments. So, my last **serious** Doctor meeting, I was told, "Rely on those around you. You won't know if something has changed, but they will."... So, the only thing I noticed that changed, was my outgoingness. I lost it some time over the past 5 years.

I have always been known for being too blunt in my statements/opinions. That I think has not changed!

Now, 2026, the answer is being modified to reflect my years of 80x86 assembly for RS-232 communications. If you wanted to write data as fast as possible to the serial port:
In 8086 assembly, BP and DX are used in communications to manage data packets in memory and interface directly with hardware I/O ports.
Hardcoded I/O Port Addressing with DX in the 8086 architecture, the DX register has a hardcoded, exclusive role for serial or parallel network communications. While 8-bit port addresses can be hardcoded directly into instructions, any 16-bit hardware port address must be loaded into DX.

Code: Select all

MOV DX, 0x03F8   ; Load DX with the COM1 serial port address
MOV AL, 'A'      ; Load the ASCII character to send into AL
OUT DX, AL       ; Transmit the character 'A' out of the COM1 port
Stack Frame Parsing with BP.
When a communication interrupt or subroutine receives a packet of data (like an Ethernet or serial frame), it pushes the data onto the stack. BP (Base Pointer) is then used to read the header fields of that packet without destroying the stack layout.

Code: Select all

MOV BP, SP       ; Set BP to the top of the stack where the packet sits
MOV AX, [BP+4]   ; Extract the 16-bit packet length header
MOV CX, [BP+6]   ; Extract the destination ID header
and Lastly, Base-Index Buffer Traversal using [BP+DX].
When dynamic memory buffering is required, BP and DX combine into a base-index addressing pair ([BP+DX]) to step through communication arrays.

Code: Select all

; Sending a multi-byte string buffer from memory
MOV BP, OFFSET TxBuffer ; BP points to the start of the message
MOV DX, 0               ; DX starts at index 0

SendLoop:
MOV AL, [BP+DX]         ; Fetch the current character using BP + DX
CMP AL, 0               ; Check for null-terminator (end of message)
JE  Done                ; If zero, communication is finished
  
; (Code to send AL out to the hardware port would go here)

INC DX                  ; Increment the index to point to the next byte
JMP SendLoop            ; Repeat for the next character
Done:
Post Reply