home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / open / protect.lzh / SARGON.UNP < prev    next >
Text File  |  1986-06-30  |  21KB  |  461 lines

  1.       SARGON3.UNP    Version 4.3        July 1, 1986
  2.  
  3. This file describes a method of allowing SARGON III to be run on a RAM disk.
  4. Familiarity with the DOS utility DEBUG.COM is assumed.
  5.  
  6. When I bought SARGON III, I was very disappointed to find out that
  7.     (a) the    diskette was copy-protected, and
  8.     (b) I couldn't put the program on my hard disk.
  9.  
  10. The following modification overcomes both of these difficulties.  However, a
  11. compromise is necessary.  You will not be able to use the LIGHT PEN mode.
  12. All the    other features seem to work, though.
  13.  
  14.     This is the place to mention all the usual caveats regarding disk 
  15.     modifications.  This procedure works for me, and I'm glad to share it.
  16.     However, by using it, you agree to assume all risks.  I accept no 
  17.     responsibility for any damage to your disks, your computer, your
  18.     love life, or anything else which may go wrong as a result of your 
  19.     using this file.
  20.  
  21. The program, as    originally furnished, uses BIOS    call INT 13H to    read sector
  22. numbers    from the 8 track, single-sided diskette, and those sector numbers are
  23. hard-coded into    the program.  By eliminating the INT 13H instructions and
  24. replacing them with DOS    call 25H, we will accomplish the same thing with one
  25. important addition - INT 13H only works with floppy diskettes; INT 25H will
  26. also work with a RAM disk.
  27.  
  28. As furnished, the program reads    the diskette directory (located    at sector 4 of
  29. the diskette), finds the starting cluster number of B000.BOK, and calculates
  30. the appropriate    sector to be read from that information.  This occurs in three
  31. different places during the running of the program:
  32.  
  33.     1.  At the very    start of the program, the initial Book is set up.
  34.     2.  After the first (or    second)    White move, the    game position is
  35.         compared against the Book opening, and strategy is set from    there.
  36.     3.  Each time a    move is    taken back (Ctrl-B), the Book opening is
  37.         reviewed.
  38.  
  39. Rather than find the directory entry for B000.BOK on my    hard disk, I opted to
  40. always run the game from a RAM disk on my machine. By taking this approach, I 
  41. have hard coded DRIVE D and the sector location of the drive D directory into 
  42. my modifications.
  43.  
  44. Finally, since I found the black on blue color hard to see on my color monitor,
  45. I have indicated the locations which contain the board color attributes.  I
  46. changed    the bytes at these locations from 70 or    10 (black foreground on
  47. blue or    white background) to 7A    or 1E (intense green foreground    on blue    or
  48. white background).  This modification is, of course, optional.
  49.  
  50. The changes indicated below will allow SARGON to
  51.  
  52.     (a) Be run on a    RAM disk (I used DOS 3.1 VDISK as drive    D with 512
  53.         bytes per sector).    Changes    may be required    if another RAM disk is
  54.         used.  Changes in debug addresses 60A6 and 60C0 should be made if
  55.         the    RAM disk is installed as a different drive letter.
  56.     (b) Return to DOS when exiting SARGON, instead of rebooting.
  57.  
  58. The first step is to run DEBUG against SARGON.III and check out    that the
  59. code indicated in File 2 is correct.  If there are ANY differences, you
  60. probably have a    different version of SARGON, and this modification won't
  61. work.  However,    my comments might help you to figure out what to change    in
  62. your version.
  63.  
  64. The next step is to confirm that the file directory on your ram    disk appears
  65. in the same place as in    my ram disk.  I've hard-coded that address into the
  66. modifications which appear below.  You can confirm the address as follows:
  67.  
  68. 1.  Starting with a clear ram disk, copy SARGON.III and B000.BOK from your
  69.     SARGON diskette to your ram disk.
  70. 2.  Enter DEBUG.
  71. 3.  Enter the following    DEBUG commands:
  72.     -L CS:0100 3,3,1    (Assuming your ram disk    is drive D. If not
  73.                  change    the first 3 to the appropriate number)
  74.     -D CS:100        Your file directory should appear on the
  75.                 screen.     If not, try changing the second 3
  76.                 to various numbers.  This second three appears
  77.                 at DEBUG address 60AB in the modifications.
  78.  
  79. Next, use CHKDSK to confirm that all sectors are contiguous. (CHKDSK *.*).  If
  80. not, the best thing to do is re-boot and start again.  If there are 
  81. non-contiguous sectors, you're asking for trouble.
  82.  
  83. Finally, rename SARGON.III to SARGON.COM, enter DEBUG SARGON.COM and make the
  84. following changes (The original    SARGON3.COM is no longer necessary).  These
  85. changes    may be made by use of either the "E" or    "A" DEBUG commands.
  86.  
  87. After these changes have been made, SARGON.COM, B000.BOK and any saved games
  88. (but not the GREAT GAMES file - for some reason, this file doesn't seem to
  89. work, and I'm not interested enough to find out why) may be kept on your hard
  90. disk, to be copied over to your RAM disk when you want to play chess.
  91. However, the program may not be run from your hard disk without    additional
  92. modifications.  Additionally, before running SARGON, make sure that all
  93. sectors are contiguous through the use of CHKDSK.
  94.  
  95.  
  96. File 1:  Modified File =  SARGON.COM 
  97. File 2:  Original File =  SARGON.III
  98.  
  99.      DEBUG                  FILE 1          FILE 2
  100.     ADDRESS
  101.  
  102.   1   5FE6  File 1 = EB  File 2 = 75    JMP 603C        JNZ 603C
  103.       5FE7  File 1 = 54  File 2 = 54
  104.   2   5FE8  File 1 = 80  File 2 = E8    CMP BYTE PTR [5DDA],0    CALL 5D69
  105.   3   5FE9  File 1 = 3E  File 2 = 7E
  106.   4   5FEA  File 1 = DA  File 2 = FD
  107.   5   5FEB  File 1 = 5D  File 2 = E8                CALL 3CFB
  108.   6   5FEC  File 1 = 00  File 2 = 0D
  109.   7   5FED  File 1 = 75  File 2 = DD    JNZ 5FFB
  110.   8   5FEE  File 1 = 0C  File 2 = BE    MOV AX,0200        MOV SI,6BF5
  111.   9   5FEF  File 1 = B8  File 2 = F5
  112.  10   5FF0  File 1 = 00  File 2 = 6B
  113.  11   5FF1  File 1 = 02  File 2 = BF                MOV DI,0D20
  114.  12   5FF2  File 1 = F9  File 2 = 20    STC
  115.  13   5FF3  File 1 = FE  File 2 = 0D    INC BYTE PTR [5DDA]
  116.  14   5FF4  File 1 = 06  File 2 = 8A                MOV AL,[SI]
  117.  15   5FF5  File 1 = DA  File 2 = 04
  118.  16   5FF6  File 1 = 5D  File 2 = 3C                CMP AL,24
  119.  17   5FF7  File 1 = C3  File 2 = 24    RET
  120.  18   5FF8  File 1 = 90  File 2 = 74                JZ 6002
  121.  19   5FF9  File 1 = 90  File 2 = 08
  122.  20   5FFA  File 1 = 90  File 2 = 26
  123.  21   5FFB  File 1 = 80  File 2 = 88    CMP BYTE PTR [5DDA],1    MOV [DI],AL
  124.  22   5FFC  File 1 = 3E  File 2 = 05
  125.  23   5FFD  File 1 = DA  File 2 = 47                INC DI
  126.  24   5FFE  File 1 = 5D  File 2 = 47                INC DI
  127.  25   5FFF  File 1 = 01  File 2 = 46                INC SI
  128.  26   6000  File 1 = 75  File 2 = EB    JNZ 600F        JMP 5FF4
  129.  27   6001  File 1 = 0D  File 2 = F2    MOV AX,0400        
  130.  28   6002  File 1 = B8  File 2 = C6                MOV BYTE PTR [4E09],FF
  131.  29   6003  File 1 = 00  File 2 = 06
  132.  30   6004  File 1 = 04  File 2 = 09
  133.  31   6005  File 1 = F8  File 2 = 4E    CLC
  134.  32   6006  File 1 = FE  File 2 = FF    INC BYTE PTR [5DDA]
  135.  33   6007  File 1 = 06  File 2 = B4                MOV AH,4
  136.  34   6008  File 1 = DA  File 2 = 04
  137.  35   6009  File 1 = 5D  File 2 = CD                INT 10
  138.  36   600A  File 1 = C3  File 2 = 10    RET
  139.  37   600B  File 1 = 90  File 2 = 22                AND AH,AH
  140.  38   600C  File 1 = 90  File 2 = E4
  141.  39   600D  File 1 = 90  File 2 = 75                JNZ 601F
  142.  40   600E  File 1 = 90  File 2 = 10
  143.  41   600F  File 1 = 80  File 2 = B4    CMP BYTE PTR [5DDA],2    MOV AH,1
  144.  42   6010  File 1 = 3E  File 2 = 01
  145.  43   6011  File 1 = DA  File 2 = CD                INT 16
  146.  44   6012  File 1 = 5D  File 2 = 16
  147.  45   6013  File 1 = 02  File 2 = 74                JZ 6007
  148.  46   6014  File 1 = 75  File 2 = F2    JNZ 6020
  149.  47   6015  File 1 = 0A  File 2 = B4                MOV AH,0
  150.  48   6016  File 1 = B8  File 2 = 00    MOV AX,0400
  151.  49   6017  File 1 = 00  File 2 = CD                INT 16
  152.  50   6018  File 1 = 04  File 2 = 16
  153.  51   6019  File 1 = F8  File 2 = 3C    CLC            CMP AL,1B
  154.  52   601A  File 1 = FE  File 2 = 1B    INC BYTE PTR [5DDA]
  155.  53   601B  File 1 = 06  File 2 = 74                JZ 602F
  156.  54   601C  File 1 = DA  File 2 = 12
  157.  55   601D  File 1 = 5D  File 2 = EB                JMP 6007
  158.  56   601E  File 1 = C3  File 2 = E8    RET
  159.  57   601F  File 1 = 90  File 2 = 33                XOR BX,BX
  160.  58   6020  File 1 = 80  File 2 = DB    CMP BYTE PTR [5DDA],3
  161.  59   6021  File 1 = 3E  File 2 = 80                SUB DL,17
  162.  60   6022  File 1 = DA  File 2 = EA
  163.  61   6023  File 1 = 5D  File 2 = 17
  164.  62   6024  File 1 = 03  File 2 = 88                MOV [6C0F],DL
  165.  63   6025  File 1 = 75  File 2 = 16    JNZ 6030
  166.  64   6026  File 1 = 09  File 2 = 0F
  167.  65   6027  File 1 = B8  File 2 = 6C    MOV AX,0200
  168.  66   6028  File 1 = 00  File 2 = 80                SUB DH,15
  169.  67   6029  File 1 = 02  File 2 = EE
  170.  68   602A  File 1 = F9  File 2 = 15    STC
  171.  69   602B  File 1 = C6  File 2 = 88    MOV BYTE PTR [5DDA],0    MOV [6C0E],DH
  172.  70   602C  File 1 = 06  File 2 = 36
  173.  71   602D  File 1 = DA  File 2 = 0E
  174.  72   602E  File 1 = 5D  File 2 = 6C
  175.  73   602F  File 1 = 00  File 2 = E8                CALL 3CFB
  176.  74   6030  File 1 = C3  File 2 = C9    RET
  177.  75   6031  File 1 = 90  File 2 = DC
  178.  76   6032  File 1 = 90  File 2 = C6                MOV BYTE PTR [4E09],0
  179.  77   6033  File 1 = 90  File 2 = 06
  180.  78   6034  File 1 = 90  File 2 = 09
  181.  79   6035  File 1 = 90  File 2 = 4E
  182.  80   6036  File 1 = 90  File 2 = 00
  183.  81   6037  File 1 = 90  File 2 = 33                XOR AX,AX
  184.  82   6038  File 1 = 90  File 2 = C0
  185.  83   6039  File 1 = 90  File 2 = 32                XOR BH,BH
  186.  84   603A  File 1 = 90  File 2 = FF
  187.  85   603B  File 1 = 90  File 2 = C3                RET
  188.     This area originally contained the code for Light Pen use.  We have
  189.     replaced that code with the simulated response for INT 13 when
  190.     saving a game to ram disk or loading a saved game from ram disk.
  191.  
  192.  
  193.  86   609D  File 1 = 31  File 2 = 75    XOR AX,AX        JNZ 60DD
  194.  87   609E  File 1 = C0  File 2 = 3E
  195.  88   609F  File 1 = C3  File 2 = BF    RET            MOV DI,0EED
  196.  89   60A0  File 1 = 83  File 2 = ED    CMP CX,4
  197.  90   60A1  File 1 = F9  File 2 = 0E
  198.  91   60A2  File 1 = 04  File 2 = F6                TEST BYTE PTR [5DDA],FF
  199.  92   60A3  File 1 = 75  File 2 = 06    JNZ 60B1
  200.  93   60A4  File 1 = 0C  File 2 = DA
  201.  94   60A5  File 1 = B0  File 2 = 5D    MOV AL,3
  202.  95   60A6  File 1 = 03  File 2 = FF     ** Change if other than Drive D (D=03) **
  203.  96   60A7  File 1 = B9  File 2 = C6    MOV CX,1        MOV BYTE PTR [5DDA],FF
  204.  97   60A8  File 1 = 01  File 2 = 06
  205.  98   60A9  File 1 = 00  File 2 = DA
  206.  99   60AA  File 1 = BA  File 2 = 5D    MOV DX,3
  207. 100   60AB  File 1 = 03  File 2 = FF
  208. 101   60AC  File 1 = 00  File 2 = 74                JZ 60B8
  209. 102   60AD  File 1 = CD  File 2 = 0A    INT 25
  210. 103   60AE  File 1 = 25  File 2 = C6                MOV BYTE PTR [5DDA],0
  211. 104   60AF  File 1 = 5A  File 2 = 06    POP DX
  212. 105   60B0  File 1 = C3  File 2 = DA    RET
  213. 106   60B1  File 1 = B0  File 2 = 5D    MOV AL,8
  214. 107   60B2  File 1 = 08  File 2 = 00
  215. 108   60B3  File 1 = F6  File 2 = E8    MUL CH            CALL 3D2B
  216. 109   60B4  File 1 = E5  File 2 = 75    
  217. 110   60B5  File 1 = 00  File 2 = DC    ADD CL,AL
  218. 111   60B6  File 1 = C1  File 2 = EB                JMP 60CD
  219. 112   60B7  File 1 = 49  File 2 = 15    DEC CX
  220. 113   60B8  File 1 = 30  File 2 = E8    XOR CH,CH        CALL 4B97
  221. 114   60B9  File 1 = ED  File 2 = DC
  222. 115   60BA  File 1 = 89  File 2 = EA    MOV DX,CX
  223. 116   60BB  File 1 = CA  File 2 = BE                MOV SI,6D2C
  224. 117   60BC  File 1 = B9  File 2 = 2C    MOV CX,1
  225. 118   60BD  File 1 = 01  File 2 = 6D
  226. 119   60BE  File 1 = 00  File 2 = BF                MOV DI,070C
  227. 120   60BF  File 1 = B8  File 2 = 0C    MOV AX,3
  228. 121   60C0  File 1 = 03  File 2 = 07     ** Change if other than drive D. (D=03) **
  229. 122   60C1  File 1 = 00  File 2 = E8                CALL 4BA1
  230. 123   60C2  File 1 = EB  File 2 = DD    JMP 60AD
  231. 124   60C3  File 1 = E9  File 2 = EA
  232. 125   60C4  File 1 = 90  File 2 = BF                MOV DI,07AC
  233. 126   60C5  File 1 = 90  File 2 = AC
  234. 127   60C6  File 1 = 90  File 2 = 07
  235. 128   60C7  File 1 = 90  File 2 = BE                MOV SI,6D32
  236. 129   60C8  File 1 = 90  File 2 = 32
  237. 130   60C9  File 1 = 90  File 2 = 6D
  238. 131   60CA  File 1 = 90  File 2 = E8                CALL 4BA1
  239. 132   60CB  File 1 = 90  File 2 = D4
  240. 133   60CC  File 1 = 90  File 2 = EA
  241. 134   60CD  File 1 = 90  File 2 = E8                CALL 4166
  242. 135   60CE  File 1 = 90  File 2 = 96
  243. 136   60CF  File 1 = 90  File 2 = E0
  244. 137   60D0  File 1 = 90  File 2 = 33                XOR AX,AX
  245. 138   60D1  File 1 = 90  File 2 = C0
  246. 139   60D2  File 1 = 90  File 2 = C3                RET
  247. 140   60D3  File 1 = 90  File 2 = 4C                DEC SP
  248. 141   60D4  File 1 = 90  File 2 = 49                DEC CX
  249. 142   60D5  File 1 = 90  File 2 = 47                INC DI
  250. 143   60D6  File 1 = 90  File 2 = 48                DEC AX
  251. 144   60D7  File 1 = 90  File 2 = 54                PUSH SP
  252. 145   60D8  File 1 = 90  File 2 = 24                AND AL,50
  253. 146   60D9  File 1 = 90  File 2 = 50                
  254. 147   60DA  File 1 = 90  File 2 = 45                INC BP
  255. 148   60DB  File 1 = 90  File 2 = 4E                DEC SI
  256. 149   60DC  File 1 = 90  File 2 = 24                AND AL,33
  257. 150   60DD  File 1 = 90  File 2 = 33
  258. 151   60DE  File 1 = 90  File 2 = C0                DB C0
  259. 152   60DF  File 1 = 90  File 2 = C3                RET
  260.     This section originally contained the code for calibrating the Light
  261.     Pen. We have replaced that code with code for reading a disk sector
  262.     using INT 25.
  263.  
  264.  
  265.       63E3  File 1 = CD  File 2 = CD    INT 19            INT 20
  266. 153   63E4  File 1 = 19  File 2 = 20
  267.     Change from - REBOOT - to - RETURN TO DOS - when exiting SARGON.
  268.  
  269.  
  270.       7B6C  File 1 = 76  File 2 = 76    R            R
  271. 154   7B6D  File 1 = 65  File 2 = 45    e            E
  272. 155   7B6E  File 1 = 74  File 2 = 4D    t            M
  273. 156   7B6F  File 1 = 75  File 2 = 4F    u            O
  274. 157   7B70  File 1 = 72  File 2 = 56    r            V
  275. 158   7B71  File 1 = 6E  File 2 = 45    n            E
  276. 159   7B72  File 1 = 69  File 2 = 20    i
  277. 160   7B73  File 1 = 6E  File 2 = 47    n            G
  278. 161   7B74  File 1 = 67  File 2 = 41    g            A
  279. 162   7B75  File 1 = 20  File 2 = 4D                M
  280. 163   7B76  File 1 = 74  File 2 = 45    t            E
  281. 164   7B77  File 1 = 6F  File 2 = 20    o
  282. 165   7B78  File 1 = 20  File 2 = 44                D
  283. 166   7B79  File 1 = 53  File 2 = 49    S            I
  284. 167   7B7A  File 1 = 41  File 2 = 53    A            S
  285. 168   7B7B  File 1 = 52  File 2 = 4B    R            K
  286. 169   7B7C  File 1 = 47  File 2 = 0D    G            CR
  287. 170   7B7D  File 1 = 4F  File 2 = 0A    O            LF
  288. 171   7B7E  File 1 = 4E  File 2 = 49    N            I
  289. 172   7B7F  File 1 = 20  File 2 = 4E                N
  290. 173   7B80  File 1 = 49  File 2 = 53    I            S
  291. 174   7B81  File 1 = 49  File 2 = 45    I            E
  292. 175   7B82  File 1 = 49  File 2 = 52    I            R
  293. 176   7B83  File 1 = 2E  File 2 = 54    .            T
  294. 177   7B84  File 1 = 0D  File 2 = 20    CR
  295. 178   7B85  File 1 = 0A  File 2 = 50    LF            P
  296. 179   7B86  File 1 = 50  File 2 = 52    P            R
  297. 180   7B87  File 1 = 72  File 2 = 4F    r            O
  298. 181   7B88  File 1 = 65  File 2 = 47    e            G
  299. 182   7B89  File 1 = 73  File 2 = 52    s            R
  300. 183   7B8A  File 1 = 73  File 2 = 41    s            A
  301. 184   7B8B  File 1 = 20  File 2 = 4D                M
  302. 185   7B8C  File 1 = 61  File 2 = 20    a
  303. 186   7B8D  File 1 = 6E  File 2 = 44    n            D
  304. 187   7B8E  File 1 = 79  File 2 = 49    y            I
  305. 188   7B8F  File 1 = 20  File 2 = 53                S
  306. 189   7B90  File 1 = 6B  File 2 = 4B    k            K
  307. 190   7B91  File 1 = 65  File 2 = 0D    e            CR
  308. 191   7B92  File 1 = 79  File 2 = 0A    y            LF
  309. 192   7B93  File 1 = 20  File 2 = 0A                LF
  310. 193   7B94  File 1 = 74  File 2 = 50    t            P
  311. 194   7B95  File 1 = 6F  File 2 = 52    o            R
  312. 195   7B96  File 1 = 20  File 2 = 45                E
  313. 196   7B97  File 1 = 63  File 2 = 53    c            S
  314. 197   7B98  File 1 = 6F  File 2 = 53    o            S
  315. 198   7B99  File 1 = 6E  File 2 = 20    n            
  316. 199   7B9A  File 1 = 74  File 2 = 41    t            A
  317. 200   7B9B  File 1 = 69  File 2 = 4E    i            N
  318. 201   7B9C  File 1 = 6E  File 2 = 59    n            Y
  319. 202   7B9D  File 1 = 75  File 2 = 20    u
  320. 203   7B9E  File 1 = 65  File 2 = 4B    e            K
  321. 204   7B9F  File 1 = 2E  File 2 = 45    .            E
  322. 205   7BA0  File 1 = 0D  File 2 = 59    CR            Y
  323. 206   7BA1  File 1 = 0A  File 2 = 20    LF
  324. 207   7BA2  File 1 = 0A  File 2 = 57    LF            W
  325. 208   7BA3  File 1 = 20  File 2 = 48                H
  326. 209   7BA4  File 1 = 20  File 2 = 45                E
  327. 210   7BA5  File 1 = 20  File 2 = 4E                N
  328.       7BA6  File 1 = 20  File 2 = 20
  329. 211   7BA7  File 1 = 20  File 2 = 52                R
  330. 212   7BA8  File 1 = 20  File 2 = 45                E
  331. 213   7BA9  File 1 = 20  File 2 = 41                A
  332. 214   7BAA  File 1 = 20  File 2 = 44                D
  333. 215   7BAB  File 1 = 20  File 2 = 59                Y
  334. 216   7BAC  File 1 = 20  File 2 = 2E                .
  335. 217   7BAE  File 1 = 43  File 2 = 52    C            R
  336. 218   7BAF  File 1 = 68  File 2 = 45    h            E
  337. 219   7BB0  File 1 = 65  File 2 = 4D    e            M
  338. 220   7BB1  File 1 = 63  File 2 = 4F    c            O
  339. 221   7BB2  File 1 = 6B  File 2 = 56    k            V
  340. 222   7BB3  File 1 = 69  File 2 = 45    i            E
  341. 223   7BB4  File 1 = 6E  File 2 = 20    n
  342. 224   7BB5  File 1 = 67  File 2 = 50    g            P
  343. 225   7BB6  File 1 = 20  File 2 = 52                R
  344. 226   7BB7  File 1 = 67  File 2 = 4F    g            O
  345. 227   7BB8  File 1 = 61  File 2 = 47    a            G
  346. 228   7BB9  File 1 = 6D  File 2 = 52    m            R
  347. 229   7BBA  File 1 = 65  File 2 = 41    e            A
  348. 230   7BBB  File 1 = 20  File 2 = 4D                M
  349. 231   7BBC  File 1 = 61  File 2 = 20    a
  350. 232   7BBD  File 1 = 72  File 2 = 44    r            D
  351. 233   7BBE  File 1 = 65  File 2 = 49    e            I
  352. 234   7BBF  File 1 = 61  File 2 = 53    a            S
  353. 235   7BC0  File 1 = 2E  File 2 = 4B    .            K
  354. 236   7BC3  File 1 = 50  File 2 = 49    P            I
  355. 237   7BC4  File 1 = 72  File 2 = 4E    r            N
  356. 238   7BC5  File 1 = 65  File 2 = 53    e            S
  357. 239   7BC6  File 1 = 73  File 2 = 45    s            E
  358. 240   7BC7  File 1 = 73  File 2 = 52    s            R
  359. 241   7BC8  File 1 = 20  File 2 = 54                T
  360. 242   7BC9  File 1 = 61  File 2 = 20    a
  361. 243   7BCA  File 1 = 6E  File 2 = 47    n            G
  362. 244   7BCB  File 1 = 79  File 2 = 41    y            A
  363. 245   7BCC  File 1 = 20  File 2 = 4D                M
  364. 246   7BCD  File 1 = 6B  File 2 = 45    k            E
  365. 247   7BCE  File 1 = 65  File 2 = 20    e
  366. 248   7BCF  File 1 = 79  File 2 = 44    y            D
  367. 249   7BD0  File 1 = 20  File 2 = 49                I
  368. 250   7BD1  File 1 = 74  File 2 = 53    t            S
  369. 251   7BD2  File 1 = 6F  File 2 = 4B    o            K
  370. 252   7BD3  File 1 = 20  File 2 = 0D                CR
  371. 253   7BD4  File 1 = 63  File 2 = 0A    c            LF
  372. 254   7BD5  File 1 = 6F  File 2 = 0A    o            LF
  373. 255   7BD6  File 1 = 6E  File 2 = 50    n            P
  374. 256   7BD7  File 1 = 74  File 2 = 52    t            R
  375. 257   7BD8  File 1 = 69  File 2 = 45    i            E
  376. 258   7BD9  File 1 = 6E  File 2 = 53    n            S
  377. 259   7BDA  File 1 = 75  File 2 = 53    u            S
  378. 260   7BDB  File 1 = 65  File 2 = 20    e
  379. 261   7BDC  File 1 = 2E  File 2 = 41    .            A
  380. 262   7BDD  File 1 = 0D  File 2 = 4E    CR            N
  381. 263   7BDE  File 1 = 0A  File 2 = 59    LF            Y
  382. 264   7BE0  File 1 = 20  File 2 = 4B                K
  383. 265   7BE1  File 1 = 20  File 2 = 45                E
  384. 266   7BE2  File 1 = 20  File 2 = 59                Y
  385. 267   7BE4  File 1 = 20  File 2 = 57                W
  386. 268   7BE5  File 1 = 20  File 2 = 48                H
  387. 269   7BE6  File 1 = 20  File 2 = 45                E
  388. 270   7BE7  File 1 = 20  File 2 = 4E                N
  389. 271   7BE9  File 1 = 20  File 2 = 52                R
  390. 272   7BEA  File 1 = 20  File 2 = 45                E
  391. 273   7BEB  File 1 = 20  File 2 = 41                A
  392. 274   7BEC  File 1 = 20  File 2 = 44                D
  393. 275   7BED  File 1 = 20  File 2 = 59                Y
  394. 276   7BEE  File 1 = 20  File 2 = 2E                .
  395.     These changes are purely cosmetic, and replaces the screen instructions
  396.     when saving a game to ram disk or loading a game from ram disk.
  397.  
  398.  
  399. 277   80BA  File 1 = E8  File 2 = B8    CALL 5E6D        MOV AX,0201
  400. 278   80BB  File 1 = B0  File 2 = 01
  401. 279   80BC  File 1 = DD  File 2 = 02
  402. 280   80BD  File 1 = 90  File 2 = CD                INT 13
  403. 281   80BE  File 1 = 90  File 2 = 13
  404.     When actually run, 5E6D will be replaced by 60A0.  The original BIOS
  405.     INT 13 call will be replaced by a DOS INT 25 call in order to read
  406.     various disk sectors.
  407.  
  408. 282   8314  File 1 = 90  File 2 = CD                INT 13
  409. 283   8315  File 1 = 90  File 2 = 13
  410. 284   8316  File 1 = 90  File 2 = 73                JNB 8310
  411. 285   8317  File 1 = 90  File 2 = 05
  412. 286   8318  File 1 = 90  File 2 = 80                CMP AH,10
  413. 287   8319  File 1 = 90  File 2 = FC
  414. 288   831A  File 1 = 90  File 2 = 10
  415. 289   831B  File 1 = EB  File 2 = 74    JMP 8330        JNZ 8330
  416.       831C  File 1 = 13  File 2 = 13
  417.     By-pass INT 13 instruction
  418.  
  419. 290   83EE  File 1 = 90  File 2 = E8                CALL 86FF
  420. 291   83EF  File 1 = 90  File 2 = 0E
  421. 292   83F0  File 1 = 90  File 2 = 03
  422.     By-pass this call.  The procedure at 86FF contains an INT 13 call (at
  423.     8711) which checks the diskette and terminates the program if it gets
  424.     the wrong answers.  We want to avoid that section in all cases except
  425.     when we are loading or saving a game.
  426.  
  427.  
  428. 293   870E  File 1 = E8  File 2 = B8    CALL 5DB2        MOV AX,0401
  429. 294   870F  File 1 = A1  File 2 = 01
  430. 295   8710  File 1 = D6  File 2 = 04
  431. 296   8711  File 1 = 90  File 2 = CD                INT 13
  432. 297   8712  File 1 = 90  File 2 = 13
  433.     When actually run, 5DB2 will be replaced by 5FE8.  The original BIOS
  434.     INT 13 call will be simulated by the code at that address.  Although
  435.     the original program gets to this point many times, the only time which
  436.     we will reach it is when we are either saving a game to disk or loading
  437.     an already saved game.
  438.  
  439.  
  440.       87DA  File 1 = B9  File 2 = B9    MOV CX,0        MOV CX,0AF1
  441. 298   87DB  File 1 = 00  File 2 = F1
  442. 299   87DC  File 1 = 00  File 2 = 0A
  443. 300   87DD  File 1 = 90  File 2 = E2                LOOP 87DD
  444. 301   87DE  File 1 = 90  File 2 = FE
  445.     I don't know the purpose of this code in the original SARGON.III file.
  446.     The looping takes up a lot of time, so I eliminated it.  There doesn't
  447.     seem to be any ill effects.
  448.  
  449.  
  450. OPTIONAL MODIFICATIONS FOR USE WITH A COLOR MONITOR
  451.  
  452. 302-319     Changed every second byte beginning at    address    0547 and continuing
  453.      to 0569 (0547,0549,054A,....0563,0567,0569) from screen attribute
  454.      byte 70 to 7A.
  455. 320-337     Changed every second byte beginning at    address    056C and continuing
  456.      to 058E (056C,056E,0570,....058A,058C,058E) from screen attribute
  457.      byte 10 to 1A.
  458.  
  459.                             Les Moskowitz
  460.  
  461.