home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / PROG / MISC / LOGOPAT1.ZIP / IBMLOGO.PAT next >
Encoding:
Text File  |  1990-12-26  |  4.7 KB  |  132 lines

  1.  
  2. These patches were provided by IBM.
  3.  
  4. With this patch, you should be able to get the IBM Logo package
  5. (in the bright yellow box) to work on *ALL* of the PC and PS/2
  6. computers.
  7.  
  8. There are two problems with Logo on VGA systems.
  9. The first, and most obvious, has to do with getting into and out of
  10. graphics mode.  This is because Logo improperly detects the presence
  11. of the EGA/VGA card, such that it only works on EGA but not VGA.
  12. Going into graphics mode on VGA results in a strange mode setting.
  13. The second, and most deadly, occurs when leaving Logo and returning
  14. to DOS using the '.DOS' command.  This bug is manifests itself on
  15. 80386 systems, and is due to some self-modifying code which the 80386
  16. prefetch queue prevents the modification from being recognised.
  17.  
  18. To apply the patches using DEBUG:
  19.  
  20. (1) From DOS, type 'DEBUG LOGO.COM', assuming DEBUG is in your path
  21. somewhere and LOGO.COM is in your current disk/subdirectory.
  22.  
  23. (2) Apply the VGA patch stating at offset C6B6.  Type  'E C6B6' and
  24. DEBUG will show you the old byte value followed by a period - You type
  25. in the new byte value followed by a space.  When all of the bytes have
  26. been patched, press Enter to get the DEBUG prompt (a dash) back again.
  27.  
  28.  Old  -> New            Starting at offset C6B6 of LOGO.COM
  29.  Value   Value          when loaded in under DEBUG.
  30.  =====   =====
  31.  
  32.   B9  ->  50
  33.   00  ->  B4
  34.   C0  ->  12
  35.   8E  ->  B3
  36.   D9  ->  10
  37.   81  ->  CD
  38.   3E  ->  10
  39.   00  ->  80
  40.   00  ->  FB
  41.   55  ->  10
  42.   AA  ->  58
  43.   75  ->  74
  44.  
  45. (3) Apply the 80386 patch starting at offset 7A4B, as in step 2.
  46.  
  47.  Old  -> New          Starting at offset 7A4B of LOGO.COM
  48.  Value   Value        when loaded in under DEBUG.
  49.  =====   =====
  50.  
  51.   2E  ->  E9
  52.   A3  ->  00
  53.   30  ->  00
  54.   17  ->  90
  55.  
  56. (4) Write the patch file back out to disk.  Type 'W' and Enter.
  57.  
  58. (5) Quit out of DEBUG.  Type 'Q' and Enter.
  59.  
  60. You now have a version of Logo ready to run on your VGA system!
  61.  
  62. For those of you interested in Logo Learner, the VGA patch is required,
  63. but the 80386 patch is not.  Follow the same steps as in the previous
  64. append, but the patch area in step 2 starts at offset 88BA of the file
  65. LEARNER.COM instead of offset C6B6 of LOGO.COM, but the old values
  66. you'll find there, and the new values to be put there are exactly the
  67. same.  And, you can skip the patch in step 3.
  68.  
  69. The patches above just allow CGA graphics to work on an IBM VGA
  70. system.  Since VGA wasn't available when LOGO came out in 1983, the
  71. display will still look like CGA.  Non-IBM VGA systems may display 
  72. snow with this patch.
  73.  
  74. As for the 'snow', I've got another patch for the technically
  75. inclined who are not faint at heart.  I haven't tested this
  76. myself, but someone else did it successfully.
  77.  
  78. Logo 'knew' where in the ROM the fonts were, so they
  79. hard-coded that info into the program.  Since BIOS did
  80. not (at that time) give you an API to determine where
  81. the font was, there was no better way to do it than to
  82. hardcode the address F000:FA6E into your program to
  83. find out what the lower 128 characters looked like.
  84. Today's video BIOS does provide a way to find the font
  85. table (often refered to as a "Character Table".)
  86. Logo uses BIOS to put the characters up on the screen,
  87. but when it scrolls, it erases the character based on
  88. the font at F000:FA6E; so if the font BIOS is using is
  89. different from the font at that spot in the ROM, then
  90. the differences will be highlighted by extra dots
  91. appearing on the screen.  
  92.  
  93. To fix it, you can patch Logo to use your font table
  94. instead.  This means hard-coding your font table to
  95. replace the hard-coded BIOS font table. The value
  96. appears hard-coded in two places in LOGO.COM.  Try
  97. this:  
  98.  
  99. First, determine the Segment:Offset of the Font Table
  100. your card is using.  This requires creating a program
  101. than uses function 11h of interupt 10h (INT 10h with
  102. AH = 11h, AL=30h, and BL=3 returns the Segment:offset
  103. in ES:BP).  
  104.  
  105.     Then get into DEBUG.
  106. DEBUG LOGO.COM
  107.     Look at the first section of code:
  108. U F6A F71
  109.     Then change the segment address at F6B from F000 to
  110.     your segment address. 
  111. E F6B   00.xx  F0.xx
  112.     And change the offset address at F70 from FA6E to  
  113.     your offset. 
  114. E F70   6E.xx  FA.xx
  115.     Now look at the second section of code:
  116. U C406 C416
  117.     Then change the segment address at C407 from F000  
  118.   to you segment address. 
  119. E C407  00.xx  F0.xx
  120.     And change the offset address at C415 from FA6E to
  121.     your offset. 
  122. E C415   6E.xx  FA.xx
  123.  
  124. Remember: when typing in those addresses to enter the
  125. low-order byte first.  
  126.  
  127. I have not tested this fix, since I don't have non-IBM
  128. hardware to test it on. The IBM font shape is the same
  129. on CGA and EGA. That's why this problem doesn't show up
  130. on IBM hardware.
  131.  
  132.