home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.sys.tandy      Life is dandy cuz you're gettin a Tandy!      5,684 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 3,960 of 5,684   
   Frank Durda IV to Kelly Leavitt   
   Re: Model 2000 boot and BIOS   
   28 Feb 06 04:28:41   
   
   From: uhclemLOSE.mar06@nemesis.lonestar.org   
      
   Kelly Leavitt  wrote:   
   : OK, does the Model 2000 have BIOS in ROM, or does it have a bootloader   
   : that loads the BIOS from the boot diskette?   
      
   It has a boot loader in ROM.  The equivalent of a BIOS call layer is   
   loaded from the boot diskette.  The actual physical ROM is tiny, far too   
   small for a PC-compatible BIOS.   
      
      
   : Anybody have any references for this other than "that's what I was   
   : told"?   
      
   Yeah, I wrote some of the code in the 2000 BIOS, and didn't enjoy most   
   of it, mainly because I got sucked involuntarily into the project when   
   seven of the eight system programmers on the project quit.  Being one   
   if not the most recent hires into the Systems department, I didn't   
   have adequate traction to prevent the group transfer.   
      
   The original task was to write the BIOS calls that hadn't been written at   
   all (those BIOS functions were simply not present in the DOS releases that   
   went with first months worth of system shipments), but this quickly grew   
   into having to fix bugs that the others left behind.   
      
   The video piece was the most incomplete when I got there, and the video   
   hardware was the least PC compatible of anything on the 2000.   
   To make the task more challenging, I had to learn the 80186 instruction   
   set and its evil segment register scheme*.  Then to troubleshoot   
   third-party apps that didn't work, I had to also learn the 8086/8088   
   instruction set in fine detail, so as to discover the subtle   
   differences between it and the 80186 that were breaking these existing   
   applications (SuperCalc 4, Lumena and Lotus spring to mind as   
   "important" packages that broke on the 2000), and I was supposed to   
   somehow compensate for these problems within the application.  Plus,   
   I had to learn the wacky Intel "Blue Box" cross-assembler, linker and   
   emulator system pretty much on my own - everyone else who knew much   
   about the OS writing side of using this thing had quit.  Fortunately   
   some of the application writers also used the box and helped me get   
   going, but then they sucked up lots of hours I needed using the box on   
   their development projects.  We only had one Intellic (I think that was   
   the name of the blue box) and we could have used two or three.  The   
   emulator cost a fortune and was extremely finicky.  One day management   
   decided to move where it was located (because it was too close to the   
   elevator lobby) and it didn't work for a week or more after that.   
      
   I eventually had to completely re-write a number of existing BIOS or   
   pseudo-BIOS algorithms that didn't work right or ran "too slowly".   
   Most of this performance problem centered on the 2000s' multi-plane   
   video scheme (BAD IDEA, NO BISCUIT), so the BASIC pseudo-BIOS function   
   "PAINT" had horrific performance on the 2000 when coded in a way   
   that probably had worked well on a CGA video card.  Of course, the   
   Model 2000 store demo (which was written in BASIC an was already in   
   the field) used PAINT extensively.   
      
   The monochrome video side actually had a lot of neat capabilities,   
   virtually none of which were made available because the IBM BIOS   
   didn't have them.  A few Tandy-specific extensions were done, but   
   with so many pieces of the BIOS not written at all or not working,   
   the extra features largely got lost and those that did work don't   
   seem to have been used in any popular applications.  Reason:  those   
   features weren't available on the IBM and the software vendors   
   didn't want to have to code and manufacture two versions.   
      
   Meanwhile, management did their part to maintain my morale by constantly   
   yelling to hurry up and complaining that I wasn't working on this   
   90+ hours a week.  (Tandy defintely did not pay overtime.)   
      
   I probably assembled, linked and relinked that BIOS layer several hundred   
   times over the six or seven month period while trying to get all of the   
   documented BIOS calls actually implemented and then running fast enough   
   to make people stop whining as much about the machine.   
      
   It really was a no-win situation, because graphics were one of its   
   saving points that were constantly touted for the 2000, but the machine   
   would never be fast in the graphics department.  The color graphics   
   hardware design on the 2000 conspired against fast graphic operations for   
   all but a few area filling tasks, which could be done extremely fast but   
   also had enough highly visible video flicker artifacts that those   
   techniques were objected to and could not be used in most situations.   
      
   About five months along into this nightmare, Tandy obtained development   
   software from somewhere that would run on the 2000 themselves (I don't   
   believe it was MASM as I recall MASM couldn't generate the needed   
   output) and could dispense with the Intel blue box for 80186   
   assembly/linking, but I only worked on the 2000 for another couple of   
   months.  Work on the 2000 BIOS ended at the start of August 1984.  I was   
   the last one doing anything to the machine BIOS/OS and had been since   
   January or February of 1984.   
      
   I then went out to SCO at Santa Cruz and wrote the serial port bootstrap   
   loader for XENIX-186 during the week of August 5th, 1984 (that date   
   is permanently recorded in my memory).  (The 2000s incompatible disk   
   controller meant they had to download a XENIX kernel via the serial port   
   until they got custom-written floppy disk controller drivers working.)   
      
   After I returned to Fort Worth a few weeks later, I got sucked into   
   working simmering problems that had finally boiled up to crisis level   
   on the Model 16 XENIX OS.  I never returned to doing work for the 2000,   
   other than the occasional consultation.   
      
      
   * Having been introduced at the 80186 and 80286 points in the Intel line,   
     it helped solidify my dislike for Intel, who just seemed to have   
     everything backwards, but back then backwards was apparently okay if   
     IBM bought it.  At least Intel had a real stack pointer, something most   
     of IBMs mainframes of the day lacked, so I guess it could have been   
     worse.  (Branch And Link Register opcode indeed.)   
      
      
   Frank Durda IV - only this address works:|"The Knights who say "LETNi"   
     | demand... A SEGMENT REGISTER!!!"   
   You must remove the "LOSE" to mail me.   |"A what?"   
   	http://nemesis.lonestar.org      |"LETNi! LETNi! LETNi!" - 1983   
   Copr. 2006, ask before reprinting.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca