• Please review our updated Terms and Rules here

your largest application

High Speed Pascal ... more than 2000, maybe 3000 ... maybe a week except that I spent a whole summer modifying it ... one. Well, stable, yes, but finished, no: far, far from it.

The trouble is, that was only the main file; there were half a dozen include files. I've done much larger projects that were comprised of many more smaller code fragments, and I never really kept track of how big most of them were.
 
I guess it'd have to be this: https://int10h.org/blog/2019/05/fontraption-vga-text-mode-font-editor/

Written in fasm; everything included, it's (...*counts*...) 7334 lines of code, 66 different revisions. :lol: Must've worked on it for 3-4 months on and off.

Professionally? Probably some kind of PDF catalogue generator with Excel sheets as input, written in VBA, but that was years ago so I don't really recall or have the stats anymore.
 
Looking at some of my 10k+ lines programs, and knowing that my previous post refers to my largest project ever, I'm guessing that my estimate isn't even remotely close. Of course, "lines" isn't really an ideal comparison.
 
What language/vendor was it written in ... how many lines of code ... how long did it take you'll ... how many cycles of revision before it was stable.

I'll stick strictly to vintage stuff... I've written several modern applications in the last ten years that easily exceed 50k lines each.

C64 - Circa 1984, wrote my own BBS software that could not fit another scrap of BASIC code... Literally, maxxed out what you could hold, though I don't remember how many lines/bytes that works out to be. I do remember that a really important key to max out what you could store was stacking multiple statements on one line with : characters, in addition to cheating the 80 column limit by using every BASIC abbreviation (? instead of PRINT), since that counted as 1 instead of 5 bytes on the lines

Circa 1986/1987, PC XT (DOS) and simultaneously, DEC Rainbow (C/PM) using Turbo Pascal - Library catalog and purchase order processing system, where I am very proud to say that I independently worked out how to do binary tree data structures and disk based merge sorting about five years before I ever took a data structures course (and two years before my first programming class!). Thousands of lines, though I can't recall how many. I have often reflected that, aside from a few things that I did in college, I wish that I had a copy of that particular piece of code. In 1987 I was contracted by a nearby school district to create a similar system to manage their parochial school books program.. That's another piece of code that I wish I still had!
 
I guess it'd have to be this: https://int10h.org/blog/2019/05/fontraption-vga-text-mode-font-editor/

Written in fasm; everything included, it's (...*counts*...) 7334 lines of code, 66 different revisions. :lol: Must've worked on it for 3-4 months on and off.

Professionally? Probably some kind of PDF catalogue generator with Excel sheets as input, written in VBA, but that was years ago so I don't really recall or have the stats anymore.

Many years ago I started an assembler program for the Tandy 2000 that was a game character editor in a similar fashion to yours. I didn't get far enough :(.
 
The bbs software in basic ... that impresses me especially somehow :). How did it run?

Probably pretty well. A modem forgives a lot of processing speed.

I can certainly relate to making the most of C64 BASIC limitations. I've written numerous applications for it that which really pushed the limits. I've even gotten as crazy as disk-based program overlays, with BASIC code. I'm far from the only one; I might have even learnt how to do it from a magazine article. I even wrote a program, in BASIC, that could make minor program optimisations to other BASIC programs, out of necessity. You can imagine why I went through the trouble to develop my own assembler solution.

That BBS must have been quite the undertaking.
 
The only program I wrote in the 70s that used more than a few thousand lines of code was a word processor done in Wang BASIC. The result was slow.

I miss writing applications that use DDE under Windows 2. My performance metrics as measured in lines of code per day were amazing.
 
File commander, like a Norton Commander. Written in Borland Pascal/assembler, so main executable file < 64Kb with powerful Editor (copy+paste, clipboard, some other features), internal disk formatter and disk utilites and killer feature - snake game -) I don't calculate how many string it has, if someone can - there we are: http://old-dos.ru/index.php?page=files&mode=files&do=show&id=2796

b1bbcc7936d6b1ba9bee693b041f314d.png


We wrote it together with a friend in the last grades of the school. None of us have studied as programmers yet, so there is code like this:
Code:
if Length(PP.curdir)<36 then
   pt:=' '+PP.curdir+' '
   else pt:=' \...'+Copy(PP.curdir,Length(PP.curdir)-30,31)+' ';
Ptr:=PP.f_ptr;
if PP.vol='' then PP.vol:='No Label';
WriteString(1,cc+(40-length(pt)) div 2,pt,Pal[8]);
WriteString(22,cc+1+(cc*(34-length(PP.vol))) div 40,'['+PP.vol+']',Pal[7]);
if PP.vol='No Label' then  PP.vol:='';
{if PP.empty then exit;}
inc(ptr,sizeof(filrec)*row);
for i:=row to n+row do begin
    if (i <PP.files) and (not PP.empty) then 
       begin fname:=ptr^.filename;
       {if (ptr^.fileattr and 16) = 0 then StrLwr(fname);}
       if (Ptr^.fileattr and 2) <> 0 
          then fname[1]:=upcase(fname[1]);
       if ((Ptr^.fileattr and Hidden) <> 0) and (Pos('.',Fname)>0) 
          then fname[Pos('.',Fname)+1]:=upcase(fname[Pos('.',Fname)+1]);
       SortFIle(fname);
       for a := length(fname) to 11 do fname:=fname+' ';
       fname:=fname+'│';
       if (Ptr^.fileattr and 16) = 0
          then Str(Ptr^.filesize:10,pt)
          else if fname[1]='.' 
                  then pt:='�UP──-DIR�'
                  else pt:='�SUB─-DIR�';
       fname:=fname+pt+'│';
       DateTimeCnv(pt,Ptr^.filedttm);
       fname:=fname+pt;     {SetFattr}
       if Ptr^.selected then WriteString(2+i-row,cc,fname,Pal[1]) else
       WriteString(2+i-row,cc,fname,Pal[2]);
       inc(ptr,sizeof(filrec));
       end
       else WriteString(2+i-row,cc,'            │          │        │     ',Pal[1]);
      end;
    end;
procedure Put_File(PP:Panel;cc,row,x:word;active:boolean);
var
fname,pt:string;
{ptr:P_filrec;}
begin
if PP.empty then exit;
ptr:=PP.F_ptr;
inc(ptr,sizeof(filrec)*(row+x));
fname:=ptr^.filename;
{if (ptr^.fileattr and 16) = 0 then StrLwr(fname);}
if (Ptr^.fileattr and 2) <> 0 then fname[1]:=upcase(fname[1]);
if ((Ptr^.fileattr and Hidden) <> 0) and (Pos('.',Fname)>0) then fname[Pos('.',Fname)+1]:=upcase(fname[Pos('.',Fname)+1]);
SortFile(fname);
for a := length(fname) to 11 do fname:=fname+' ';
fname:=fname+'│';
if (Ptr^.fileattr and 16) = 0 then Str(Ptr^.filesize:10,pt)
else if fname[1]='.' then pt:='�UP──-DIR�'
     else pt:='�SUB─-DIR�';
fname:=fname+pt+'│';
DateTimeCnv(pt,Ptr^.filedttm);
fname:=fname+pt;
if active
   then If Ptr^.selected 
        then WriteString(2+x,cc,fname,Pal[3])
        else WriteString(2+x,cc,fname,Pal[4])
   else if Ptr^.selected
        then WriteString(2+x,cc,fname,Pal[1])
        else WriteString(2+x,cc,fname,Pal[2])

But nonetheless, it worked. :p Later we realized that this code is unsupported, we started developing from scratch a new file manager for os/2 on Virtual Pascal 2.0. Making the first prototype displaying files in panels, the project was finally abandoned and the source codes were lost along with the disk in the HPFS file system.
 
Last edited:
The bbs software in basic ... that impresses me especially somehow :). How did it run?

Pretty well! When I closed up shop in 1988, one of the members took it over. He was extremely surprised to find that the entire BBS ran off of 4 floppies. He thought for sure I had a rear admiral (which I desperately wanted at the time but could not afford. ) :)
 
Pretty well! When I closed up shop in 1988, one of the members took it over. He was extremely surprised to find that the entire BBS ran off of 4 floppies. He thought for sure I had a rear admiral (which I desperately wanted at the time but could not afford. ) :)

That's pretty awesome. :)
 
I took a quick look in my source code folders and I was somewhat surprised to find that most of my 'big' programs tend to be around the same size, 5000-6000 lines or so (excluding blank lines). At the very high end of this range is a 7182 line program written for my employer. Among my personal projects, I think my VT05 emulator (which I've posted about elsewhere on this forum) is the largest at 6764 lines although I expect FSX to easily surpass it when I get more time to work on it. All of these are written in C#, and all of them were 'stable' during most of their development because my usual approach is to add features incrementally. I've also written fairly large programs in VB6, and even VBScript. I found a VBScript program in my archives that was 5133 lines, and a VB6 program that was 5940 lines. The VBScript one was personal, the VB6 one was for work.

But the absolute largest single application I found in my archives (so far) weighs in at 14236 lines of VB.NET code. This was basically a protocol decoder/analyzer that examined network traffic (captured live, or via a dump file) for another program. This was a personal project, not something for my job.
 
Some numbers for the current mTCP source code. (These are just raw line counts, which include comments.)

  • The TCP library: 11907 (Includes ARP, IP, UDP, TCP and utility functions like trace support and parsing config files)
  • DHCP client: 1116
  • FTP Client: 3582
  • FTP Server: 5341
  • HTGet: 1587
  • HTTP Server: 7221
  • IRCjr: 4590
  • Netcat: 1256
  • Ping: 596
  • PktTool: 1295
  • SNTP: 651
  • Telnet: 6688

The surprise here is that Telnet is such a beast. ANSI terminal emulation, Telnet options negotiation, X/Ymodem upload and download all take up a bit of code. (X/Ymodem specifically are around 2400 lines of that.)
 
I never brag about lines of code I've written. I do brag about how few lines I've written though. There is a point though where the code is optimal. Any smaller and it would be inefficient speed wise, any longer and it would be unmaintainable garbage.
Dwight
 
Back
Top