Softspecialists - Hic Sunt Bytes
Please feel free to leave here any your feeback, suggestion and comment about this web site and the software found on it as well your "nice to have" utility.
I downloaded the latest release and tested it. Txtrowcount works perfectly. Thanks for incorporating the fixes so quickly. See happy results below:

TXTROWCOUNT Version 1.2 - Count the lines contained in a given text file.
Copyright MMXI-MMXVIII Roberto Bianchi -
Input file : 180803-HD01_FullFileListing.csv
Number of rows : 1678966
Minimum row length : 84
Maximum row length : 607
Medium row length : 211
Selected file type : ASCII
Detected file type : ASCII
File size (bytes) : 355835012
Hi John,
I just released a new version of the SmallUtilities Suite which corrected the problem you had in the TxtRowCount utility.
Thank you very much for your effort to help me.
Roberto, just found an issue with TxTRowCount. It is fails to read in a file name with specific characters in the example below:
txtrowcount /a 180803-HD01_FullFileListing.txt

If you provided it with:
txtrowcount /a indexfile.txt - this works

With further testing it seems that the "-" is not being seen as a valid character and fails then outputs the help information. The "_" is accepted when I shorted the name to 180803_HD01.txt. I'll let you know if I find anything else.
I'll give the SysTstPnt a go as you suggested. I have some other input which I'll post up later.

Appreciate all your work!!!
Hi John,

thank you for your help, I will add the corrections that you indicated to me in the next SmallUtilities release.

With SysRstPnt, the only way to not open a new window is to run the application (or the command prompt) as an administrator.

Series • Creates and displays some of well know numeric sequence.

While playing with this command I noticed that if you fail to add the CYCLES variable that it will run forever but the program while runing in a DOS window fails to respond to ^C command and I have to close the DOS windows. I'm not sure why this is but can you verify it on your end.

It would be nice to be able to abort the series generator. BTW, nice utility.

Last note:
Display the line number before the n-th value of serie.

The last words serie should be series.
RegError • Registry Error Helper.
I noticed in the help you use - commands but in the example you use / commands.

The - commands work so the example should be changed to avoid confusion.
SysRstPnt • System Restore Points Helper.
I noticed in the help you use -Q,-S,-T command but in the example you use /Q /S

You might want change the / to -. This will remove any confusion. Also I notice that it lanuches a separate DOS window instead of listing it in the current DOS window I am in. Is this supposed to happen?
Hi John,
thanks again for your suggestion and for the compliments, both are very appreciated!
I just downloaded the update and found the SSGO LIST command. Thanks for implementing it. This makes it so easy now to look up the names instead of DIR the home directory.

I appreciate that you have taken the time to implement user changes that make sense or add value. Kudos!

My name is Randy and I was looking at a few different sites online and came across your site I must say - your website is very impressive. I found your website on the first page of the Search Engine.

Have you noticed that 70 percent of visitors who leave your website will never return? In most cases, this means that 95 percent to 98 percent of your marketing efforts are going to waste, not to mention that you are losing more money in customer acquisition costs than you need to.

As a business person, the time and money you put into your marketing efforts is extremely valuable. So why let it go to waste? Our users have seen staggering improvements in conversions with insane growths of 150 percent going upwards of 785 percent. Are you ready to unlock the highest conversion revenue from each of your website visitors?

TalkWithLead is a widget which captures a website visitor’s Name, Email address and Phone Number and then calls you immediately, so that you can talk to the Lead exactly when they are live on your website — while they're hot!

Try the TalkWithLead Live Demo now to see exactly how it works. Visit:

When targeting leads, speed is essential - there is a 100x decrease in Leads when a Lead is contacted within 30 minutes vs being contacted within 5 minutes.

If you would like to talk to me about this service, please give me a call. We do offer a 30 days free trial.

Thanks and Best Regards,
It seems a great idea, I will try to do it as soon as possible.
Thank you.
Just had an idea that I say in another utility to add to ssgo.exe which is similar to HOME which is a list display of commands e.g.

ssgo list - this lists only .exe files for a quick look up.

the example program I mentioned is: GNU on Windows (GOW)
C:\Program Files (x86)\Softspecialists\SmallUtilities>gow -l
Available executables:

awk, basename, bash, bc, bison, bunzip2, bzip2, bzip2recover, cat,
chgrp, chmod, chown, chroot, cksum, clear, cp, csplit, curl, cut, dc, dd, df, diff, diff3, dirname, dos2unix, du, egrep, env, expand, expr, factor, fgrep, flex, fmt, fold, gawk, gfind, gow, grep, gsar, gsort, gzip, head, hostid, hostname, id, indent, install, join, jwhois, less, lesskey, ln, ls, m4, make, md5sum, mkdir, kfifo, mknod, mv, nano, ncftp, nl, od, pageant, paste, patch, pathchk, plink, pr, printenv, printf, pscp, psftp, putty, puttygen, pwd, rm, rmdir, scp, sdiff, sed, seq, sftp, sha1sum, shar, sleep, split, ssh, su, sum, sync, tac, tail, tar, tee, test, touch, tr, uname, unexpand, uniq, unix2dos, unlink, unrar, unshar, uudecode, uuencode, vim, wc, wget, whereis, which, whoami, xargs, yes, zip

What do you think?
Roberto, I have been playing with more of the utilities and I am really finding them useful. Look forward to to the update.
Hi John,
Thank you very much for choosing to use the Smallutilities and expecially for your help in reporting errors to be fixed.
I will release an update ASAP.
Best regards,
FYI, the help files for CCalc only shows the following for Usage:

usage: CCalc [MathExpression]

the mathematical expression to calculate.

Notice there are no other additional switch options noted as in the command line description.
Program CCalc is missing WHERE:, example:
CCalc version - Console Calculator.
USE: ccalc [MathExpression] | [/f:InputFile [/m]]

like you have in your ASK help;
ASK version 1.0 - Ask and quering for reply with a timeout.
Copyright 2009 Roberto Bianchi -
Ask.exe prompt [/a] [/t:timeout] [/d:default] [/? | /h]
prompt Message to be displayed.
/a Accept any key.
/t:timeout Time to wait in seconds before return the defaul answer.
/d:default Default replay to return when the timeout expires.
/? | /h Display this help.

where it explains the line input command. Also, I noticed in the example there is a /s that is used which is not an option in your help, see example:

ccalc /f:EachRowSingle.txt /s perfom an evaluation for each row of the file

This the last line displayed in help, note the /s command option. In your help for the /f: command you have a /m option only.

Just an FYI. Thanks!
Just downloaded your SmallUtilities Suite 7.3, looking for a Text Line Count utility. Your program has amazing features so thank you. I found a TYPO in the text output for TxtRowCount in the word "Lenght" see sample:
Input file : SK0102D-B22-N.txt
Number of rows : 899814
Minimum row lenght : 0
Maximum row lenght : 276
Medium row lenght : 180
Selected file type : ASCII
Detected file type : ASCII
File size (bytes) : 162859003

It should be "length". That is the only feature I have played with so I will look at all the other functions soon.

Thanks again!
Are you thinking of doing an update of Small Utilities?
In that case I shall highlight the Utilities in a topic on the site nsane.down
Hello Rick,

feel free to contact me by email:
birob [at] softspecialists [dot] com

Hello Roberto

I have been using the C Basic language since about 1980/1 originally on a Zilog Z80 single board computer through to the Minnow Bear MB86/Turbo C 16-bit versions of the 1990's. I continue to code using the later combination.

A couple of years ago I came across your work and downloaded your files, updating them each time you issued an update, but never having time to progress to your 32/64-bit opportunities.

Finally time permits me to make the transition and I am extremely pleased and grateful to say that I have a large MB86 coded program running on 32-bit XP with my intended target ultimately being Win7 64-bit.

To get this first program working I needed to make some minor changes/workarounds to my code which I would like to discuss with you. Is this Feedback section the best location to commence this discussion or would you like to direct me to an alternative?

It's quite amazing to see what you have done that potentially brings years of coding to life on a contemporary platform. I look forward to your reply.

Cheers from Sydney, Australia.
You are welcome!
4/1/2017Robert G.
Thanks Roberto, SysRstPnt 1.2 works perfectly.

Here's 2 screenshots:

Sorry for the delay, I'm very busy on workday.

Thanks yet and a good day!

Robert G.
Hi Robert,
the time stored within the "restore point entry" is UTC (GMT), thus in the latest version of SysRstPnt I retrieved the GMT bias from windows and then arranged the time according the bias, in the next version I should also consider to use the daylight saving time bias!
Thanks for your help.
3/25/2017Robert G.
Hi Roberto.

We have changed time (+1 hour) 2 weeks ago:

Is it possible to ajust time from Windows 10 clock and not in reference at GMT?


Robert G.
Hi Robert,
I'm sorry for the wrong result.
In fact Montreal is UTC/GMT -4 hours, I don't understand why 5 hours of difference. Do you have Daylight Savings Time Zone?

I'm happy that you use some of my utilities and don't worry for your requests.

3/25/2017Robert G.
Thanks Robert for SysRstPnt's update, but the difference is now 1 hour.

Here's 3 screenshots:

and my Restore Point Creator 6.0 Build 1's configuration:

FYI, I use at full time included in Small Utilities:

- wait (Ref.: Wait (52.0 KB)
- emptybin (Ref.: EmptyBin (41.2 KB).

TIA and sorry for my second request.

Have a good day!

Robert G.
Montreal, Canada
3/20/2017Robert G.
Hi again Roberto.

About SysRstPnt 1.0 (System Restore Point), the time isn't correct, the difference is 4 hours. My OS is Windows 10 64-bit.

Here's my batch file:

@echo off
sysrstpnt.exe list /q

Here's 2 screenshots (don't worry, I use a safe site):

TIA and have a good day!

Robert G.
Montreal, Canada
3/20/2017Robert G.
Hi Roberto.

Thanks very much for your tip, it works.

Have a good evening buddy!

Robert G.
Hi Robert,

thank you for your appreciation.

Try to include everything between double quote (both message text and caption text), like:
infobox "Hello world" "From Go Habs Go"

3/19/2017Robert G.

Congratulations for Small Utilities

I actually test Inbox, and when I use the option [Caption] that I replaced with [Go Habs Go], the spaces aren't respected.

TIA and have a good day!

Robert G.
Montreal, Canada
Hi Din Kicap,
thanks a lot for the suggestions which have now been added in the application.
1/26/2017Din Kicap
Hi, I have a suggestion for InfoBox...

1. have an option for custom size
example: /d:250x300

2. new line for text message
example: "Hello World!\nHello there\nBye"

3. set a positon anywhere
example: /p:100 150

Hello therube,
thanks for pointing it out.
The name is similar, but the content is quite different! 😄
Looks like you've got some competition - in the name category:


Maybe not a lot you can do, but at least be aware.
Hi Georgio,
Unfortunately the documentation is lacking because until now I haven't time to write it. Actually you could find a compiled HTML file derived from the first attempt the write the run time. I hope to do also this step.
There are a lots of objects like file control blocks that are gone away, bur the runtime has been replaced them under the wood, so your old MB86 code will be 100% compilable unless you use privileged instructions like INP or OUTP to read computer ROM.
Enjoy to rebuild your application into 32 or 64 bit executables and please let me know if you find any bugs.
Hi Roberto
On the question of documentation, I'm still working with Digital Research CB86 manuals. Are there any significant changes in the MB86 implementation? I know that MB86 uses handles rather than fcbs (so a filename can be a full path name) but are there other perhaps more subtle differences? Please keep up the good work!
I am sorry, it is not a bug. After linking with winspool.lib the code compiles, links and runs well!

And Roberto, if you have got the time, can you please provide short descriptions of the new CB functions and key words? Possibly with example code.
Hi Ad,
What kind of bug? Could you please give me more details?
Hello Roberto,

I think there is a bug in the new CB32.lib file, dated 05/07/2014.
Could you check it?
Hello Ad,

I am also surprised to find so many people interested in C BASIC. If things continue like this I think that we should do a "CB user group"!

I see there are a few more Italian guys, Claudio and Georgio, interested in CB!
Nice to know that there are some more 'hackers' following this. And thanks for testing. Maybe we can form a 'CB user group'?
Hi Georgio,

thank you for your help with testing the translator.

1. This wrong behaviour is due to the 64 bit OS, I'll fix the CB to handle it ASAP.
2. I'll add the choice to enable/disable the console (PRINT statement) redirection.

Main test are focused on 32 bit, however I'll check ASAP also the 64 bit build process.

Resource like icons, version string, ..., are optional, if you don't need them please use the Buil32NR.cmd script.

Hi Roberto

I have used the translator for a simple program. A couple of things I've noticed (compared with cb86 ver 2.0):

1. With the cb executable, the command line tail command$ starts with the space character that follows the name of the executable. This differs from the description of command$ given in the help file. It also differs from cb86 where command$ starts with the next character after the first space (or returns a null string if there was no argument). In the interests of backward compatibility, I would encourage you to preserve the original behaviour, and to provide a new reserved word to return the full command string (which I can see might at times be useful).

2. With cb86, using the print statement produces stdout from the executable which can be redircted to a file. Redirecting the output from the cb executable makes the console output disappear, but the file to which the ouput has been redirected contains nothing (size = 0).

For the above I was using win7 64-bit with dosbox to run the 16-bit stuff (but I do know that cb86 behaves the way I describe on XP).

When I attempted to link using c64.lib, I got 29 unresolved external symbols.

I'm unclear as to when .rc files are required and what should go in them. Is there some MB86 documentation that would help with this?

I think this is an inspired project and hope you have time and patience to continue with it!

Hi Georgio,
Please let me know it you can use the translator.
Silly me, I see it's there in your distro!
Hi Roberto

From your description it would seem that the only part of Minnow Bear basic required to use your cb32/64 libraries is the file MB86.EXE. Is this correct, and if so where can one find a copy? (It seems Minnow Bear no longer supply or support it.) Many thanks.
Thanks to the SendKeys update to fix the bug i reported some days ago!
But in the last version you have introduced a NEW bug. I am in a Spanish XP SP3 Professional and a spanish keyboard.

If you do this:

sendkeys /w:XXXX "{}"

that will make the program be in a infinite loop and looks it will never end.

And more critical, if you do this:

sendkeys /w:XXXX "a{}"

your sendkeys program will send "a}" infinitely all the time MAKING THE SYSTEM TOTALLY UNSTABLE (needing to hardware reset the system)

Please fix it if you can

Hi Marco,

thank you very much for your suggestions, that will be available in the next Small Utilities update (ASAP).

Your SendKeys application has a problem with the spaces in the keys param: it cannot send a spacebar key. The key {SPACEBAR} doesnt work, it sends an "S".

Also, you cannot send words containing spaces at the start or at the end, sendkeys will trim the sentence. Example:

SendKeys.exe /w:3670516 " HELLO "

It will send:

Instead of:

Please add the {SPACEBAR} support and make dont trim the sentence please.

Ciao Claudio,
Manda pure il file sorgente all'indirizzo birob"presso" che proverò a vedere qual'è il problema.
Grazie Roberto,
avrei un quesito:
compilando un mio sorgente, il compilatore C ( Visual Studio 2010 ) mi da:
c:\cb\tempcod.!!!(30) : error C2078: troppi inizializzatori,
se non è troppo disturbo potrei mandarti il sorgente ( è di poche decine di righe )
Hi Alejandro,

the SendKeys application sends keystroke to a window using the window handle that it should not be confused with the process identifier PID. Each window has one process ID but one process ID may have more windows tha belongs to it. The task manager simply doesn't show the window handle, this is why I also created the companion FindWindow app. I should consider to add the PID number to the FindWindow app.

Ciao Claudio,
per ora no, ma dato che Optech era abbastanza diffuso tra gli utenti di CBasic ho predisposto alcune funzioni specifiche per poterlo utilizzare. In settimana controllo se sono già incluse nell'ultima versione altrimenti ne rilascio una ad hoc. Ora sto lavorando per aggiungere al runtime alcune funzionalità base per la stampa.
I think there is a bug in SendKeys application.

You can get the window handles of the current running programs, executing the command:


At least in XP. It is shown in the column "PID" (Process ID).

I have my notepad program opened (only a single window). The PID it shows is 42204. Also, the well known program "Process Explorer" shows me the number 42204.

Ok, so i execute:

sendkeys /w:42204 "HELLO"

but it doesn't work. Using your FINDWINDOW application it tells me the window handle of the notepad is 1376558!

now if i type:

sendkeys /w:1376558 "HELLO"

it works, but this PID (or window handle) is not the one the operating system is showing to us: 42204.

Why the operating system tells me the window handle of the notepad is 42204 and your FINDWINDOW tells me it is 1376558???

Da poco ho scoperto il Tuo sito e ho avuto modo di apprezzare l'ottimo porting da CBasic/MB86 a Microsoft C++. Utilizzo CBasic assieme ad Access Manager 86 ed Optech-Sort, volevo chiedere se hai previsto anche l' implementazione di un 'File-Index' tipo quello di AM86 (è un BTree+ originariamente sviluppato da Faircom ), grazie per l'attenzione.
Hello George!

Thank you very much for your corrections and suggestions.

1) I have been fixed the wrong download link for the XOR application.

2) Micry error 2 means input file not found, you should Always passa an input file.

3) I'll try to add this functionality ASAP.

Thank you very much and best regards,
Hello, Roberto!
First of all - thank you for these programs! Found many useful tools here! Pity they're not opensource, but that's alright, I'm glad they're freeware)

Just wanted to tell you a few things:
1) Tried to download your XOR program, but the site redirects me to "Xor[1].zip", that's missing. I found out that the "" exists. Please fix it, when you have time.
2) When I tested MiCry using GUI and tried to encrypt a file, I received a message "Error (2)". Could you please tell what it means? Running under Win7 x86, zlib1.dll and even micryc.exe are in the same dir. Algorithms sequence/Password are present and the file does exist. Can't figure out what's wrong...
3) Thought that sending a character to "Char2Code" through STDIN could be very useful sometimes.
Sorry if my english is too bad)
Hello Raldi,

you're right I really have to prepare something to fill the installer's lack of portability.

Thanks for the tip.

Utilities may be 'portable' but the installer is not. No option to not make start menu entry and install path is added to the system path variable. BETTER to offer a zip file for download, and include in it a setup.exe (in addition to the individual files) to set startmenu and path.
Ciao Roberto,
ho preso l'aggiornamento di TxtU2A ed ora funziona correttamente.
Grazie per l'ottimo lavoro che svolgi
Hi Markus,

I'm sorry but I forgot to update the single download.
Now it should be fine.

Thank you for you help.

Best wishes,
Hello Roberto,

I've read that you've updated the IsInUse application, but the single zip file download still seems to be the old one?

Thank you and best wishes,
Ciao, ho scaricato l'ultima versione dal tuo sito, ma nonostante sia cambiata la descrizione, quando lancio l'eseguibile l'output prodotto è lo stesso. Se converto un file unicode con il tuo programma o se lo converto con il Type del DOS l'output è differente ed anche la dimensione del file (la metà circa con il type, il doppio circa con il tuo programma) rispetto all'originale.
Ciao gommacri, grazie per la segnalazione.
Prova a scaricare l'ultima versione perchè questo problema è già stato risolto.
Ciao, volevo utilizzare txt2U2A per convertire Unicode to Ascii ma sembra faccia il contrario.
Questo è l'output di quando lancio il programma:
TxtU2A Version 1.0 - Convert text file from ASCII to UNICODE.
Copyright 2011 Roberto Bianchi -
TxtU2A.exe InFile OutFile [/y] [/? | /h]
InFile Source ASCII text file to convert.
OutFile Destination file that will contains UNICODE.
/q Activate the quiet mode, that is perform a conversion without
display anything.
/y Do not ask for confirmation before overwriting an existing
destination file.
/? | /h Display this brief help.
If the program succeeds, the return value is zero otherwise the return
value is nonzero.
When you use the / q option without the / y if the destination file already
exists, the conversion will not be made.
TxtU2A /y ascii.txt unicode.txt
I like the "IsInUse" program, however, it doesn't seem to work with network mapped drive, can you test it, please?
This is only a hind, notthing else!!!
The new Ukash/BKA Virus includ the signatur of your Bootcopysetup:
C o m p a n y N a m e S o f t s p e c i a l i s t s
F i l e D e s c r i p t i o n I n s t a l l o r r e m o v e t h e B o o t C o p y u t i l i t y
F i l e V e r s i o n 1 . 0 . 0 . 3
I n t e r n a l N a m e B O O T C O P Y S E T U P
O r i g i n a l F i l e n a m e B O O T C O P Y S E T U P . e x e
L e g a l C o p y r i g h t C o p y r i g h t 2 0 1 0 S o f t s p e c i a l i s t s
P r o d u c t N a m e B O O T C O P Y S E T U P
P r o d u c t V e r s i o n 1 . 0 . 0 . 3
C o m m e n t s F o r o t h e r s u t i l i t i e s p l e a s e v i s i t t h e w e b s i t e : w w w . s o f t s p e c i a l i s t s . c o m
V a r F i l e I n f o T r a n s l a t i o n

It makes also an registry key with your name

If you are interested in this virus i can mail it to you, please mail me:
you know what to change
Please include an extended SET tool for manipulating environment.(IT LACKS)
XSET is an unbeatable tool, but damn not freeware... We need all its function in a freeware, like yours.
Bundle is a great program with a little deficiency.
Please add PASSWORD support. Thats all.

I was using WINRAR's SFX function earlier.
Still need it for PASSWORD.
7/6/2012Peter Lundkvist
Recently find your site and there is some wonderful tools. I do miss a function to msgbox.exe like ask.exe has.
I miss the ability to have a timeout, if the user hasn´t klicked until certain time then return default value.

Or perhaps a new app called infobox.exe that shows the text of your choice with
a timeout and the option to force to see the box without the ability to close the box.
6/26/2012Roberto (updated July 1, 2012)
* THIS ENTRY IS NO LONGER TRUE * Sorry, but the current version of eMail.exe app doesn't support SNMPv1 client authentication.
email.exe how to author/pwd
Yes, all programs are portable, you can copy the "C:\Program Files\Softspecialists" folder, paste it on USB drive and then run program from it (for example G:\Softspecialists\micry.exe).
3/29/2012Heinz Iten
I have a question:
Are the 'small utilities' portable? Can I copy the whole folder to an USB thumbdrive, and run them from there?

The MACAdr utility doesn't work with an wifi stick !
Can you update your utility please ?

Best regards
I am glad you changed the console version of MiCry for the suffix change. Now, please change the GUI version of MiCry as well? Thank you so much.
10/31/2010Bob Simmone
Clamwin scan finds trojan in "Bundle" zip file.. Shame, I really wanted it/needed it..
See scan details below:

Scan Started Sun Oct 31 02:23:17 2010

F:\Down 0\ Trojan.Buzus-8258 FOUND
----------- SCAN SUMMARY -----------
Known viruses: 847822
Engine version: 0.96.1
Scanned directories: 0
Scanned files: 1
Infected files: 1
Thanks Roberto for this freeware, I use it in some batch files. It's easy to configure and it's cute.

My OS is WinXP SP2 Pro.

Montreal, CANADA
Please change and update MiCry 1.0 to have an encrypted file's name amended to include a .MCY or some other suffux to identify the file as encrypted by MiCry 1.0.

Anti Bot Image