Hi Tim!
You thought we were on the same page with regard to programming skill, based
on what you've seen me share. Or, something to that effect, right? Let's put
that misunderstanding on your end with some source code that's slightly
above crayon level, to out of the fucking ball park, not crayon level.
You clearly have issues with your bruised ego, and I don't know what I wrote
that set you off towards me, or made you decide to work with snit in calling
me a know it all, along with some follow up choice bullshit the two of you
have been writing about me. I have no control over the bullshit you write,
but, I am like SC and I'd say most people in telling you that it's my
option, my choice to ignore it and let you prance on, or, I can do what I've
done in this post instead. Share some source code, that actually is source
code in two different actual programming languages. I will defend myself,
Tim. I won't always remain silent or turn the other direction when you
assume things and go off based on those assumptions.
Now, for some not so crayon level code that I authored. This should put any
idea that you and I are on the same page concerning code, into the fucking
grave. We are not on the same page. You're still learning to color while you
practce staying in the lines.
First, a couple of links to software I've written that for various reasons
I'm not going to publish the source to.
https://www.f-secure.com/v-descs/toadie.shtml
https://www.f-secure.com/v-descs/irok.shtml
Here's one of my legit programs:
https://tinyapps.org/blog/200609140715_bughunter.html
http://mail.completelyfreesoftware.com/reviews/du_w31_BUGHUN.html
here's a couple of links to my mostly technical videos:
https://tinyurl.com/gremlinslab
https://www.tiktok.com/@gremlinhhi
And here's some source code to cmoscon. I've shared this before I think, but
I'll do so again.
rem Before we get any information, We need to define the legal"
rem keys. Define them like so: legal1 one value lower then
rem the lowest ASCII character allowed. legal2 one value higher then the one
rem want set as the highest allowable character.
main_start:
exitsys=1
while exitsys=1
gosub credits:
gosub main_menu:
legal1=64
legal2=70
gosub key_view:
if chose$="A" then
gosub cmos_copy:
endif
if chose$="B" then
gosub cmos_res:
endif
if chose$="C" then
gosub cmos_del:
endif
if chose$="D" then
gosub view_cmos:
gosub any_key:
endif
if chose$="E" then
exitsys=0
endif
wend
beep
gosub credits:
print"This program is distributed under the ShareWare concept."
print"If you use this program for more then 7 days, you are"
print"required to register. Please view CMOSCON.DOC for"
print"more information. This Program is not free software -"
print"Registration is required for continued use!"
beep
end
credits:
cls
print"CMOSCON - CMOS Data Deletion/Recovery Utility - Version 1.0"
print"Copyright 1997 by Dustin Cook. All Rights Reserved!"
print""
return
main_menu:
print"MAIN MENU:"
print""
print"[A] - Copy the CMOS information to a file"
print"[B] - Restore the CMOS information from a file"
print"[C] - Erase the information currently contained in the CMOS"
print"[D] - View the CMOS information as it currently is in memory"
print"[E] - Exit this program and return to your operating system"
print""
return
key_view:
print"Please select your choice by entering the corresponding letter shown"
print"in [], At the following prompt:";
exitflag=0
while exitflag=0
a$=inkey$
a$=ucase$(a$)
a=asc(a$)
if a>legal1 then
if a<legal2 then
exitflag=1
chose$=a$
endif
endif
wend
return
view_cmos:
print""
print""
print"CMOS contents listed below:"
print" "
for i=0 to 127
out &hex70,i
a=inp(&hex71)
a$=chr$(a)
if a$="" then
print " ";
else
print a$;
endif
next i
print""
return
any_key:
print""
print"Pressing ENTER now will return you to the Main Menu"
exitflag=0
while exitflag=0
a$=inkey$
a=asc(a$)
if a=13 then
exitflag=1
endif
wend
return
warning:
print""
print"[A] Yes - I want to continue and modify or erase my CMOS."
print"[B] No - I have changed my mind, I do not want to modify my CMOS."
print""
legal1=64
legal2=67
gosub key_view:
print""
return
cmos_del:
gosub credits:
print"WARNING: You are about to erase the contents of your CMOS memory."
print"doing so will cause your computer to forget about some or all"
print"of the hardware inside it. Such as, Your Hard Disk(s), Floppy Drives"
print"BIOS password(s) and various other setup information."
print""
print"If you have not copied your CMOS information to floppy disk, It is"
print"strongly recommended that you do so *BEFORE* erasing it. Should you"
print"decide you did not want the CMOS erased, you can Restore it from the"
print"file you previously created."
print""
gosub warning:
if chose$="A" then
rem Ok, proceed to erase the CMOS via this little routine:
for i=0 to 255
out &hex70,i
out &hex71,0
next i
print"The information contained in the CMOS has been erased."
endif
gosub any_key:
return
cmos_copy:
gosub credits:
print""
print"CMOS COPY:"
print""
print"Please enter the location and the filename for the CMOS information"
print"to be copied into. For example, to copy the information contained in"
print"the CMOS to a floppy disk (we are using drive A: as an example) with"
print"the filename of CMOS.BAK, Type the following: A:\CMOS.BAK and press"
print"your enter or return key at the prompt below."
print""
print">";
input temp$;
open"o",1,temp$
for i=0 to 127
out &hex70,i
a=inp(&hex71)
a$=chr$(a)
if a$="" then
print #1,a$
else
print #1,a$ NONULL
endif
next i
close 1
if error=0 then
print"The CMOS information has been copied as ";
print temp$;
print""
else
print"There was an error saving the CMOS information."
print"It is not recommended that you restore from this CMOS copy."
gosub any_key:
return
cmos_res:
gosub credits:
print""
print"CMOS RESTORE:"
print""
print"WARNING: You should only restore the CMOS information that was
previously"
print"created for this computer. Restoring the CMOS information from
another"
print"computer may corrupt the CMOS information for this one, Resulting in"
print"hardware mis-configuration and possibly being locked out of your
computer"
gosub warning:
if chose$="A" then
print""
print"Please enter the location and name of the file where you have
previously"
print"copied the CMOS information at the prompt shown below."
print""
print">";
input temp$;
open"i",1,temp$
for i=0 to 127
input #1,a$ BYTE
a=asc(a$)
out &hex70,i
out &hex71,a
next i
close 1
if error=0 then
print"CMOS information has been restored."
else
print"There was an error in reading the saved CMOS information."
endif
gosub any_key:
endif
endif
return
It's directly addressing hardware under the native OS it was written for,
too Tim. Specifically the cmos configuration storage.
Now, I mentioned writing a crypto app that used hash tables. Since you seem
to think I can't write a simple as fuck by comparison crypto quotes solving
assistance tool, rofl..not only does this use hash tables, it also uses
direct file io calls; I completely bypassed the languages built in file
routines and opted to talk to the OS myself to do it. Also, this language
doesn't have an xor function, so I talked to the cpu! yes, Tim the cpu
itself, os bypass to do the xor for me.
As I've written before about an important difference between a programmer
and a coder. A coder (that
's me) 0wns the language, the os, and the fuckin
hardware (as these sources all show you), a programmer and down does not.
dim hash1(4095)
dim work_buffer(8196)
call sub "Criterrhandler"
print"CRYPTX - Data Encryption Utility - Version 1.3"
print"Copyright 1996-2014 by Dustin Cook. All Rights Reserved!"
print" "
print"[E]ncrypt - [D]ecrypt: ";
while a$=""
a$=inkey$
a$=ucase$(a$)
if a$="E" then
i=2
stat$="Encrypting..."
print stat$
endif
if a$="D" then
i=2
stat$="Decrypting..."
print stat$
endif
if a$="" then
print"[ESC] pressed. program terminated."
end
endif
if i<>2 then
a$=""
endif
wend
print"Name of source file..: ";
input srcfile$;
print""
print"Name of target file..: ";
input dstfile$;
print""
print"Enter PassPhrase.....: ";
gosub get_pass:
pass1$=passget$
if pass1$="" then seya:
print""
print"Again to Verify......: ";
gosub get_pass:
pass2$=passget$
if pass1$<>pass2$ then
gosub done:
print""
print" "
beep
print"PassPhrases do not match! - For your safety, both passphrases must"
print"be an exact match for either encryption or decryption to continue."
end
endif
if srcfile$="" then seya:
if dstfile$="" then seya:
if srcfile$=dstfile$ then
gosub done:
beep
print" "
print" "
print"Source FileName cannot be the same as the Target FileName!"
end
endif
a$=b$
print""
call sub "CrcGen1" pass1$,b&,c&
ax=b&
bx=c&
gosub xor:
gosub init_hash:
oldvalue&=157
a$=""
y=0
print stat$;
row=csrlin
col=pos(0)
if c&<1 then badend:
if b&<1 then badend:
filename$=dstfile$
bytesize=4096
a&=filelen(srcfile$)
a&=abs(a&)
if a&<bytesize then
bytesize=a&
endif
if bytesize>0 then
gosub create_file:
gosub write_file:
gosub close_file:
else
err_write=1
endif
if file_handle<5 then
err_write=1
endif
if err_write=1 then
print"Stop!"
print"CRYPTX was unable to create the target file."
gosub done:
end
endif
readfile=1
gosub open_file:
dsthand=file_handle
rem --* At this point, source filename has been created; And data
rem --* can be written to it.
filename$=srcfile$
readfile=0
bytesize=4096
a&=filelen(srcfile$)
a&=abs(a&)
if a&<bytesize then
bytesize=a&
endif
if bytesize>0 then
gosub open_file:
gosub read_file:
gosub close_file:
else
err_read=1
endif
if file_handle<5 then
err_read=1
endif
if err_read=1 then
print"Stop!"
print"CRYPTX was unable to open the source file for reading."
file_handle=dsthand
gosub close_file:
gosub done:
kill dstfile$
end
else
gosub open_file:
srchand=file_handle
endif
rem Now the actual copy process...
rem Point DX to our work_space memory,
rem We deal with 16k of data at a time.
copy_done&=0&
srclength&=filelen(srcfile$)
rem Now we know how big this sucker is. :P
exitflag=0
while exitflag=0
bytesize=16384
file_handle=srchand
gosub read_file:
if err_read=1 then
exitflag=1
bytesize=bytesread
endif
file_handle=dsthand
gosub process_data:
gosub write_file:
if err_write=1 then
exitflag=1
endif
total&=byteswritten
copY_done&=copy_done&+total&
temp1@=copy_done&*100&
temp2@=temp1@/srclength&
locate row,col
star$=str$(temp2@)
star$=ltrim$(star$)
star$=rtrim$(star$)
period=instr(star$,".")
period=period-1
star$=left$(star$,period)
star$=star$+"%"
if oldstar$<>star$ then
print star$;
locate row,col
endif
oldstar$=star$
if exitflag=1 then
file_handle=dsthand
gosub close_file:
file_handle=srchand
gosub close_file:
endif
wend
if copy_done&=srclength& then
print"Done!"
else
gosub critmsg:
endif
end
xor:
SETREGS (AX,BX,NA,NA,NA,NA,NA,NA,NA)
CODE &HEX31, &HEXD8
GETREGS (AX,NA,NA,NA,NA,NA,NA,NA,NA)
return
adjust_hash_table:
for x=0 to 4095
a=rnd(0)
a=a mod oldvalue&
hash1(x)=a
next x
y=0
return
init_hash:
rem Initially sets up values for 1st hash table.
for x=0 to 4095
a=rnd(0)
a=a mod ax
hash1(x)=a
next x
return
rem ***Create/Open/Read/Write/Close
create_file:
rem Create filename specified in filename$, with normal attribute.
ax=&hex3c00
cx=0
dx=varptr(filename$)
int86(&hex21,ax,na,cx,dx,na,na,na,na,na)
file_handle=ax
return
rem open_file chart!
rem ax=&hex3d00
rem read-only
rem ax=&hex3d01
rem write only
rem ax=&hex3d02
rem read/write
open_file:
rem See chart for access mode used.
rem modification insert [08-13-01]
rem Routine specifies which mode to open the file
rem in. This should allow for an error condition to occur
rem should all of the requested data not be commited to the file.
if readfile=1 then
ax=&hex3d01
endif
if readfile=0 then
ax=&hex3d00
endif
DX = VARPTR(Filename$)
INT86(&HEX21,AX,NA,na,DX,NA,NA,NA,NA,NA)
file_handle=ax
return
write_file:
rem Writes bytes directly from memory (usually an array) to disk.
rem define dx register before calling this routine to point to the
rem memory address of the buffer area you want to write from. like so:
rem dx=varptr(buffer(0))
rem cx is how many bytes to write :)
if file_handle>4 then
err_write=0
ax=&hex4000
bx=file_handle
cx=bytesize
dx=varptr(work_buffer(0))
int86(&hex21,ax,bx,cx,dx,na,na,na,na,na)
byteswritten=ax
if bytesize<>byteswritten then
err_write=1
endif
endif
return
read_file:
rem as the name implies, it reads bytes into a buffer. :-)
rem as with write_file, you need to predefine the dx register for the
rem buffer where you want the info stored. Like so: dx=varptr(buffer(0))
rem if you don't, this routine will not work, or will overwrite some
rem other section of memory. cx register is how many bytes to read :)
if file_handle>4 then
err_read=0
ax=&hex3f00
bx=file_handle
cx=bytesize
dx=varptr(work_buffer(0))
int86(&hex21,ax,bx,cx,dx,na,na,na,na,na)
bytesread=ax
if bytesread<>bytesize then
err_read=1
endif
endif
return
close_file:
rem Close the file handle. If the file handle is less then 4, then
rem this routine will simply exit.
if file_handle>4 then
ax=&hex3e00
bx=file_handle
int86(&hex21,ax,bx,na,na,na,na,na,na,na)
endif
return
process_data:
data_start=varptr(work_buffer(0))
data_end=data_start+16384
for data_process=data_start to data_end
if y>4095 then
gosub adjust_hash_table:
rem It's time to change the table. :-)
endif
a=peek(data_process)
x&=rnd(0)
x&=x& mod b&
y&=rnd(0)
y&=y& mod c&
a&=a
if stat$="Encrypting..." then
ax=a&
bx=hash1(y)
gosub xor:
a&=ax
a&=a&+y&
a&=a&+x&
else
a&=a&-x&
a&=a&-y&
ax=a&
bx=hash1(y)
gosub xor:
a&=ax
endif
a$=chr$(a&)
a=asc(a$)
poke data_process,a
ax=oldvalue&
bx=c&+b&
gosub xor:
oldvalue&=oldvalue&+ax
y=y+1
next data_process
return
seya:
print""
print""
print"No filename(s) and/or Passphrase entered."
end
get_pass:
rem *** PASSPHRASE EXTRACTION CODE! ***
passget$=""
x=0
while x=0
a$=inkey$
a=asc(a$)
if a=13 then
a$=""
x=1
endif
if a<>0 then
PASSget$=PASSget$+a$
endif
wend
return
done:
c&=0
b&=0
x&=0
y&=0
a$=""
pass1$=""
pass2$=""
passget$=""
for x=0 to 4095
hash1(x)=0
next x
for x=0 to 8196
work_buffer(x)=0
next x
file_handle=srcfile
gosub close_file:
file_handle=dstfile
gosub close_file:
return
critmsg:
gosub done:
print"Stop!"
print""
print"Unable to continue processing your file. Do you have enough free
drive"
print"space for the target file? Is the media your source and target files
on"
print"free from defects (bad sectors)? If the file is over 2.1 gigabytes in"
print"size, You may ignore this error. Verification that the target file"
print"exists and is of the same size as the source file is recommended."
print""
print"FYI: CRYPTX failed to complete a ";
if err_write=1 then
print"write";
endif
if err_read=1 then
print"read";
endif
print" request."
return
badend:
gosub done:
print"Passphrase specified has caused invalid values for number sequence"
print"generation. Please enter another passphrase."
end
sub "Crcgen1" a$,b&,c&
b&=0&
c&=0&
rem Extract full calculation code!
masklen&=len(a$)
masklen&=masklen&+1&
num&=1&
print" "
while num&<masklen&
b$=mid$(a$,num&,1)
i=asc(b$)
a&=i
d&=d&+a&
d&=d&+oldvalue&
d&=d&+turn&
c&=c&+turn&
ax=d&
bx=c&
gosub xor:
d&=ax
c&=c&+a&
ax=c&
bx=a&
gosub xor:
c&=ax
c&=c&+oldvalue&
b&=b&+oldvalue&
ax=c&
bx=b&
gosub xor:
c&=ax
b&=b&+turn&
ax=c&
bx=b&
gosub xor:
b&=b&+a&
ax=b&
bx=turn&
gosub xor:
b&=ax
turn&=turn&+1&
oldvalue&=b&
num&=num&+1&
wend
ax=c&
bx=b&
gosub xor:
c&=ax
ax=b&
bx=d&
gosub xor:
b&=ax
ax=b&
bx=15738
gosub xor:
b&=ax
ax=c&
bx=29817
gosub xor:
c&=ax
IF b&<0& THEN
b&=65536&+b&
ENDIF
if c&<0& then
c&=65536&+c&
endif
a$=""
endsub a$,b&,c&
xor:
rem XOR AX, BX - result in AX
SETREGS (AX,BX,NA,NA,NA,NA,NA,NA,NA)
CODE &HEX31, &HEXD8
GETREGS (AX,NA,NA,NA,NA,NA,NA,NA,NA)
return
Okay, so that's some asic source. Not complex enough right? I got you.
Here's a little pure assembly. It's nasm native syntax.
segment code
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,stacktop
mov dx,hello
mov ah,9
int 0x21
mov ah,0x3c
mov cx,0
mov dx,files
int 0x21
mov [filehnd],ax
mov ah,0x40
mov bx, filehnd
mov cx,[msglength]
mov dx,hello
int 0x21
mov ah,0x3e
mov bx,filehnd
int 0x21
mov ax,0x4c00
int 0x21
segment data
hello: db 'Hi! Ray How did I get created Today?',13,10,'$'
files db 'ray.txt', 0
filehnd dw 1
msglength dw 38
segment stack stack
resb 64
stacktop:
**** end of source codes shared...
I wrote that assembler source years ago for ray lopez in alt.comp.virus off
the top of my head in notepad,
I was trying to teach him how code works at the lower levels. Yes, I tested
it by assembling and linking it. It works as I expected it to. That's pure
16bit assembler.
Like you and snit, the dude was writing pure bullshit about me, and for the
same reason as you did. He, just like you, had an inferiority complex from
hell, and like snit, claimed i was bsing about my programming skills. So, I
wrote the above in pure assembly to show him how wrong he actually was. When
I told you, long before I invited you to ask Apd to confirm, that I could
help you with your issues, I wasn't bsing you. I wrote that because I can.
You and I are not, even remotely, close, with regard to our ability to
program.
I'm not even sure at this point that your knowledge of electronics is
superior or otherwise, more complete than my own. I have no real way of
knowing at this point in time, since you opted to pull a snit and run from
the electrical motor conversation. Using the excuse that an electric motor
is a mystery to most people doesn't really make much sense to me. There's no
mystery about them. They can be complex, and sometimes, very difficult to
perform any sort of repair or modification, but the underlying principles
are still pretty much the same as they were nearly one hundred or so years
ago.
I was looking forward to a discussion on the controller options. I'm always
looking for ways to make my 'home made' as you put them once, circuits more
energy efficient. I can't very well do that though if your electronics
knowledge is actually that of a hobbyist? Serious and valid question at this
point time, when I wrote about the Hbridge control method for brushed DC
motors, did you understand what I was writing about? And by understand, I
mean, without using google. Also, did you understand what I meant by PWM
control for DC brushless? If you do, what's the typical frequency the
controllers run the attached motor at so they don't make an annoying sound
when you aren't actively using them, but the PWM controller does have power
and is waiting on you to hit the throttle? It's an almost magical number,
and you want to be as close to it for most motors as you can be; for what
specific reason, Tim?
To be clear, I am asking you specifically about DC brushed and brushless
motors.
In the meantime, enjoy the old source codes I've shared here. If you have
anything superior, feel free to share it for a discussion?
Maybe next time you opt to become a snarky wiseass, you'll pick better
targets for it. Ones perhaps that actually are below you? You know, so that
you have a fighting chance of scoring a win. Maybe you should spend more
time reading the room before you start running off at the mouth as you did
towards me in the future? I'm not the fucking idiot end user as you've
learned from Apds reply to my query concerning what I could/couldn't do for
you in terms of HA/ESP.
You've lane drifted so much with your shit talk, you're actually heading
towards oncoming traffic.
Did you know that when snit told you that I come up if you google
functionally illiterate fraud - he left out the part where he created the
label for me, in this very newsgroup and took advantage of the floodbot to
repeat it enough for google seeding. Snit is funny like that, omitting
details. Some consider that to be a dishonest move, but, others are fine
with it. I suspect you're in the latter camp? You seem to eat up everything
he writes about other posters without so much as a single question. There's
gullible, and then, there's you.
--
My entire life can be summed up in one sentence...
"Well, that didn't fucking go as planned."