home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / gendoc / ucpm10.ark / PART1.STR next >
Encoding:
Text File  |  1988-02-01  |  19.8 KB  |  478 lines

  1. .hm 1
  2. .he 
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.                             THE UCPM MANUAL
  21.  
  22.  
  23.  
  24.                  General Information on CP/M Computers
  25.                             for Programmers
  26.  
  27.  
  28.  
  29.                               version 1.0
  30.                         released 1 February 1988
  31.  
  32.  
  33.  
  34.                               compiled by
  35.                             Ted A. Campbell
  36.  
  37.                          based on contributions
  38.                       from the CP/M user community
  39.  
  40.  
  41.  
  42.  
  43. .paè
  44.  
  45.  
  46.  
  47.                            Table of Contents
  48.  
  49.  
  50.  
  51. Part 1:  Introductory Materials 
  52.  
  53.      Preface
  54.      The Prospects for CP/M Software Development
  55.      Strategies for Overcoming Compatibility Problems
  56.  
  57. Part 2:  CPU Survey:  Information on Basic Computer Hardware
  58.  
  59. áááááAltai≥ 880░ (MITS)
  60. áááááAlto≤ 8000-10
  61. áááááAmstrad CPC 6128
  62. áááááApple ][ with PCPI Applicard
  63. áááááApple ][ with Microsoft Softcard I
  64. áááááBig Board I
  65. áááááCromemco Z2D
  66. áááááCompupro
  67. áááááEpson PX-8 "Geneva"
  68. áááááEpson QX-10
  69. áááááA Homemade System
  70. áááááKaypro II modified to Kaypro 8
  71. áááááMultiflex
  72. áááááNorthstar Advantage
  73. áááááOsborne 1
  74. áááááOsborne Executive
  75. áááááStride 440
  76. áááááSord M-68
  77. áááááTektronix 4132
  78. áááááTelevideo TS803
  79. áááááVisual Technology 1050
  80.  
  81.  
  82. Part 3:  Terminal Survey:  Information on Terminals and 
  83.          Video Displays
  84.  
  85. áááááAmstrad CPC 6128
  86. áááááApple ][
  87. áááááApple ][e with Microsoft Softcard I
  88. áááááDEC VT-220
  89. áááááEpson PX-8 "Geneva"
  90. áááááEpson QX-10
  91. áááááKaypro '83 series
  92.      Kaypro '84 series
  93. áááááKimtron (PC Shadow)
  94. áááááMultiflex Video Card
  95. áááááNorthstar Advantage
  96. áááááOsborne 1
  97. áááááOsborne ExecutiveèáááááTelevideo TS803 
  98. áááááVisual Technology 1050 = ANSI
  99. áááááZenith Z19
  100.  
  101.      Appendix to Part 3:  Comparative Table of Escape Sequences
  102.  
  103.  
  104. Part 4:  Disk Format Survey:  Information on Disk Formats
  105.  
  106. áááááAltos Double Density
  107. áááááAmstrad System Format
  108. áááááAtari CP/M Format
  109. áááááApple CP/M 
  110. áááááApplσ Disδ II
  111. áááááCromemco Z2D and Cromemco DSDD
  112. áááááEpson QX-10
  113. áááááGeneric CP/M (8")
  114. áááááExchange Format (8")
  115. áááááKaypro DSDD
  116. áááááMultiflex Format
  117. áááááNorthstar Format
  118. áááááOsborne SSSD
  119. áááááOsborne SSDD
  120. áááááStride 640K Format
  121. áááááSunswick Engineering 5-640
  122. áááááSord Format
  123. áááááTelevideo TS802/TS803/TPC
  124. áááááVisual Technology Proprietary Format
  125.  
  126.  
  127. Par⌠ 5║  Referencσ Material≤ fo≥ Genera∞ CP/═ Programming
  128.  
  129.      1«  CP/═ BDO╙ AN─ BIO╙ ENTR┘ POINTS
  130.  
  131.           BDOS
  132.           BIOS
  133.  
  134.      2«  Referencσ Informatioε fo≥ StandarΣ CP/═ Assembly
  135.          Languagσ Tools
  136.  
  137.           ASM
  138.           LOAD
  139.           DDT
  140.           MAC
  141.           LINK
  142.           SID
  143.  
  144.      3«  Referencσ Informatioε fo≥ Microsof⌠ BASIC
  145.  
  146.  
  147. .paè
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.                                 PART 1:
  168.  
  169.                          Introductory Materials
  170.  
  171.  
  172.  
  173. .paè.pn 1
  174. .op
  175.  
  176.  
  177.                                 Preface
  178.  
  179.  
  180.      Thσá UCP═ manua∞ attempt≤ t∩ providσ basiπ informatioε fo≥ programì
  181. mer≤ oε ß rangσ oµ CP/═ computers«á  Thi≤ i≤ it≤ firs⌠ release¼á anΣá wσ ì
  182. hopσá tha⌠á thi≤ releasσ wil∞ encouragσ other≤ t∩ completσ surve∙á form≤ ì
  183. and correct or complete information in the manual.  
  184.  
  185.      Thσá informatioε supplieΣ iε thσ manua∞ ha≤ beeε collecteΣá largel∙ ì
  186. froφá thσ comp.os.cpφ newsgrou≡ oµ Usenet¼á althougΦ somσá surve∙á form≤ ì
  187. werσ collecteΣ froφ othe≥ sources¼á sucΦ a≤ thσ CP/═ Foruφ oµ GENIE¼ anΣ ì
  188. local Bulletin Board Services.  
  189.  
  190.      T∩á m∙á knowledge¼á al∞ oµ thσ informatioε iε thσ manua∞ i≤ iεá thσ ì
  191. publiπ domain¼á anΣ ╔ hereb∙ releasσ thσ text¼á t∩ thσ exten⌠ tha⌠ i⌠ i≤ ì
  192. m∙á owεá work¼á int∩á thσ publiπ domain«á  Thi≤ mean≤ tha⌠á yo⌡á caεá d∩ ì
  193. anythinτ yo⌡ wan⌠ witΦ i⌠ excep⌠ sel∞ it«á  M∙ hopσ i≤ tha⌠ thσ completσ ì
  194. ucpm.arπ filσ wil∞ bσ uploadeΣ t∩ Bulletiε BoarΣ Services¼ networks¼ anΣ ì
  195. other repositories where it can be available to CP/M programmers.  
  196.  
  197.      ╔á wan⌠ t∩ thanδ al∞ oµ thσ CP/═ user≤ wh∩ havσ contributeΣá surve∙ ì
  198. forms«á  Thi≤ worδ i≤ possiblσ becausσ oµ thei≥ help«á  ╔ woulΣ likσá t∩ ì
  199. thanδ KeitΦ Petersoε fo≥ transferrinτ surve∙ form≤ froφ thσ GENI┼ systeφ ì
  200. t∩á Usene⌠á s∩ tha⌠ ╔ coulΣ acces≤ theφ withou⌠ runninτ u≡ m∙ owεá GENI┼ ì
  201. bill« á Thank≤ als∩ t∩ RicharΣ Conn¼ froφ whosσ HEL╨ file≤ mucΦ áoµ áthσ ì
  202. materia∞ iε Par⌠ ╡ oµ thi≤ worδ i≤ derived.
  203.  
  204.      Again¼á iµá yo⌡ havσ furthe≥ information¼á o≥á suggestions¼á pleasσ ì
  205. forwarΣ theφ t∩ me║  
  206.  
  207.           tcamp@dukeac.uucp
  208.  
  209. Happy computing!  
  210.  
  211.  
  212. - Ted A. Campbell
  213.   President, 
  214.   Raleigh Other Computer Club  
  215.  
  216. .paè
  217. .he UCPM Manual, Introductory Materials, Page #
  218.  
  219.               The Prospects for CP/M Software Development
  220.  
  221.  
  222.      Tw∩á o≥á threσ year≤ ag∩ CP/═ wa≤ describeΣ a≤ ßá "deadóá operatinτ ì
  223. system¼ anΣ i⌠ wa≤ laregl∙ presumeΣ tha⌠ furthe≥ developmen⌠ iε thσ CP/═ ì
  224. areßá haΣ o≥ woulΣ sooε cease«á  An∙ surve∙ oµ recen⌠ release≤á oµá CP/═ ì
  225. softwarσ wil∞ falsif∙ thi≤ presupposition«á  However¼á thσ prospect≤ fo≥ ì
  226. CP/═á developmen⌠á arσá changing¼á anΣ wσ shoulΣ takσá notσá oµá curren⌠ ì
  227. trends«  
  228.  
  229.      I⌠ ha≤ beeε estimateΣ tha⌠ therσ arσ betweeε onσ anΣ ß halµ anΣ tw∩ ì
  230. millioε CP/M-baseΣ computer≤ iε existence¼ roughl∙ divideΣ betweeε Applσ ì
  231. CP/═á anΣ othe≥ CP/═ system≤ (seσ Robiε Nelsoε anΣ DaviΣ Needle¼á "CP/M║  ì
  232. Stil∞á thσ Olº Workhorse,ó Persona∞ Computingé 9:╖ [Jul∙á 1985]║á 54-65)«  ì
  233. A⌠ leas⌠ threσ CP/═ compatiblσ system≤ arσ stil∞ iεá production¼á namel∙ ì
  234. thσ Micromin⌠ SB180¼á thσ Commodorσ 12╕ anΣ thσ AmstraΣ PC╫ series«  Onσ ì
  235. caεá arguσá that¼á sincσ CP/═ machine≤ arσ n∩ longe≥ beinτá produceΣá iε ì
  236. impressivσá numbers¼á thσ prospect≤ fo≥ softwarσ developmen⌠ mus⌠ no⌠ bσ ì
  237. good«á  Whilσ mos⌠ woulΣ admi⌠ thσ trutΦ iε this¼ thσ fac⌠ i≤ tha⌠ olde≥ ì
  238. CP/═ machine≤ arσ beinτ maintaineΣ anΣ passeΣ oε t∩ ne≈ users« Onσ woulΣ ì
  239. suspec⌠á tha⌠ a⌠ leas⌠ onσ halµ oµ thσ existinτ CP/═ machine≤ arσá stil∞ ì
  240. iε use«  
  241.  
  242.      ┴á bette≥á estimatσá oµ thσ curren⌠ marke⌠ migh⌠á bσá gleaneΣá froφ ì
  243. curren⌠ sale≤ oµ CP/═ relateΣ softwarσ products«á  Wheε MicroPr∩á Interì
  244. nationa∞ Corporatioε recentl∙ decideΣ t∩ marke⌠ aε upgradσ oµ thei≥ CP/═ ì
  245. Wordsta≥á (tm⌐ product¼á the∙ attempteΣ t∩ determinσ witΦ morσ precisioε ì
  246. thσ sizσ oµ thσ use≥ community¼ bu⌠ werσ unablσ t∩ d∩ so«  B∙ contactinτ ì
  247. thσá Firs⌠ Osbornσ Grou≡ (FOG⌐ anΣ othe≥ Use≥á Groups¼á the∙á determineΣ ì
  248. tha⌠ thσ projec⌠ woulΣ bσ feasible«  ┴ MicroPr∩ Marketinτ Communication≤ ì
  249. Manage≥á workinτ witΦ thσ CP/═ produc⌠ stateΣ iε ß lette≥ t∩ mσ tha⌠ thσ ì
  250. compan∙á solΣ 17,00░ CP/═ upgrade≤ betweeε Augus⌠ anΣ Novembe≥á oµá 198╖ ì
  251. (thσá produc⌠á wa≤ releaseΣ iε August)«á  MicroPr∩ expect≤á t∩á continuσ ì
  252. sellinτá upgrades¼á althougΦ the∙ arσ realistiπ iε projectinτ tha⌠ sale≤ ì
  253. oµá thσ CP/═ upgrade≤ wil∞ dro≡ ofµ afte≥ aε initia∞ surgσ oµá interest«  ì
  254. Sale≤á oµ othe≥ CP/M-relateΣ product≤ confirφ thi≤ pattern«á  ╔ recentl∙ ì
  255. spokσ b∙ telephonσ t∩ ß representativσ oµ Echelon¼á Inc.¼á whicΦ market≤ ì
  256. thσ ZCPR│ commanΣ processor¼á ZRDOS¼ anΣ othe≥ products«  The∙ explaineΣ ì
  257. tha⌠ afte≥ aε initia∞ surgσ oµ interest¼ sale≤ haΣ declineΣ slowly«  
  258.  
  259.      Wha⌠á thi≤ mean≤ i≤ tha⌠ therσ i≤ ß communit∙ oµ user≤ wh∩á welcomσ ì
  260. moderately-priceΣá ne≈á softwarσá tha⌠á wil∞á ruεá oεá thei≥áá machines«  ì
  261. MicroPr∩ correctl∙ identifieΣ use≥ group≤ a≤ thσ mos⌠ promisinτ mean≤ oµ ì
  262. gettinτá t∩ thσ use≥ community«á  Softwarσ developer≤ caε expec⌠ t∩ finΣ ì
  263. initia∞á interes⌠á higΦ iµ the∙ arσ ablσ t∩á publicizσá thei≥á products«  ì
  264. However¼á the∙á canno⌠ coun⌠ oε continuinτ interest«á  Onσ suspect≤ tha⌠ ì
  265. therσ arσ pricσ threshold≤ tha⌠ coulΣ bσ exploiteΣ (releasσ thσá produc⌠ ì
  266. a⌠ ß giveε price¼ theε wheε enthusiasφ flag≤ brinτ thσ pricσ dowε t∩ thσ ì
  267. point where another group of users might purchase it, etc.).  
  268.  
  269.      Giveε thi≤ genera∞ picture¼á onσ doe≤ no⌠ expec⌠ mucΦ iε thσ wa∙ oµ ì
  270. commercia∞ developmen⌠ iε thσ CP/═ area¼á howeve≥ thankfu∞ wσ arσ wheε ß ì
  271. produc⌠á likσ Wordsta≥ i≤ revised«á  Oε thσ othe≥ hand¼á privatσ public-ìèdomain¼ shareware¼ o≥ "use≥ supportedó softwarσ ha≤ alway≤ beeε prolifiπ ì
  272. iεá thσá CP/═á area¼á iε somσ case≤á positivel∙á hinderinτá attempt≤á a⌠ ì
  273. commercia∞á developmen⌠ (i.e.¼á wh∙ bu∙ ß modeφ prograφ wheε yo⌡ caε ge⌠ ì
  274. ME╪ o≥ IMP╗á wh∙ bu∙ ß tex⌠ edito≥ wheε yo⌡ caε ge⌠ VDE¼ etc.)«  A≤ lonτ ì
  275. a≤ person≤ witΦ programminτ interest≤ owε CP/═ computers¼ onσ caε expec⌠ ì
  276. a trickle if not a stream of new development.  
  277.  
  278.      Bu⌠á thi≤á raise≤ ß crucia∞ problem«á  CP/═á developer≤á arσá ofteε ì
  279. frustrateΣá becausσá timσ spen⌠ developinτ ß prograφ fo≥ onσ machinσá i≤ ì
  280. ofteεá no⌠ translatablσ int∩ workinτ version≤ oµ thσ softwarσ fo≥á othe≥ ì
  281. machines«á  Thσ UCP═ projec⌠ attempt≤ t∩ addres≤ thi≤ probleφ b∙á makinτ ì
  282. informatioεá oεá ßá widσ rangσ oµ CP/═ computer≤á available«á  Thσá nex⌠ ì
  283. articlσá wil∞ discus≤ somσ strategie≤ fo≥ gettinτá arounΣá compatibilit∙ ì
  284. problems on CP/M and other computers. 
  285.  
  286. .paè.he 
  287.  
  288. .he UCPM Manual, Introductory Materials, Page #
  289.  
  290.             Strategies for Overcoming Compatibility Problems
  291.  
  292.  
  293. A.  CP/M Compatibility Problems
  294.  
  295.      "He'≤á ßá COMPUTE╥á PROGRAMMER,ó m∙ grandmothe≥ saiΣ oµá ßá distan⌠ ì
  296. cousin¼ he≥ eye≤ bulging«  Wha⌠ thi≤ mean⌠ t∩ he≥ wa≤ tha⌠ m∙ cousiε wa≤ ì
  297. oε ß pa≥ witΦ braiε surgeon≤ anΣ Einsteins«á  Indeed¼á therσ wa≤ ßá timσ ì
  298. wheε programmer≤ haΣ t∩ bσ intelligent«  Iε thosσ days¼ iµ onσ wisheΣ t∩ ì
  299. writσá somethinτá t∩ ß screeε o≥ ß piecσ oµ magnetiπ tape¼á onσá haΣá t∩ ì
  300. writσ bottom-leve∞ routine≤ fo≥ eacΦ process«á  Programminτ wa≤ a⌠ leas⌠ ì
  301. aε arcanσ art¼ iµ no⌠ ß rigorou≤ science«  
  302.  
  303.      Wha⌠á openeΣ programminτ u≡ t∩ Bear≤ oµ Ver∙ Littlσ Braiε likσ PooΦ ì
  304. anΣ mσ wa≤ thσ developmen⌠ oµ OPERATIN╟ SYSTEM╙ whicΦ coulΣ handlσá low-ì
  305. leve∞ inpu⌠ anΣ outpu⌠ operations«á  Thesσ alloweΣ thσ programme≥ t∩ usσ ì
  306. ßá se⌠á oµ standarΣ "systeφ calls,ó whicΦ woulΣ worδ oε an∙ compute≥á oε ì
  307. whicΦ thσ operatinτ systeφ haΣ beeε implemented«  CP/M¼ developeΣ b∙ Dr« ì
  308. Gar∙á Kildal∞ wh∩ foundeΣ Digita∞ Research¼á Inc.¼á becamσ thσá standarΣ ì
  309. operatinτ systeφ oε 8-bi⌠ microcomputer≤ iε thσ latσá 1970s«á  Operatinτ ì
  310. system≤á likσ CP/═ wen⌠ ß lonτ wa∙ toward≤ solvinτ problem≤ oµá softwarσ ì
  311. anΣ hardwarσ compatibilit∙ fo≥ programmers«á  Bu⌠ threσ o≥ fou≥ critica∞ ì
  312. problem≤ remaineΣ iε thσ CP/═ world«  
  313.  
  314.      (a⌐á  Iε thσ firs⌠ place¼á therσ wa≤ n∩ standarΣ vide∩á systeφá fo≥ ì
  315. CP/═á computers«á  Earl∙á CP/═ machine≤ utilizeΣá commercially-availablσ ì
  316. datß terminals¼ eacΦ oµ whicΦ haΣ it≤ owε se⌠ oµ escapσ code≤ t∩ contro∞ ì
  317. thσ screen«  Wheε self-containeΣ CP/═ computer≤ werσ developeΣ (likσ thσ ì
  318. Northstar¼ Osborne¼ anΣ Kaypr∩ computers)¼ the∙ utilizeΣ termina∞ escapσ ì
  319. sequence≤ modeleΣ oε thosσ oµ earlie≥ datß terminals¼á bu⌠ addeΣá consiì
  320. derablσ capbilitie≤ beyonΣ them¼á sucΦ a≤ memory-mappeΣ video¼ ß variet∙ ì
  321. oµ vide∩ attributes¼ anΣ characte≥ o≥ pixe∞ graphics«  EacΦ CP/═ prograφ ì
  322. haΣá t∩á bσ adapteΣ t∩ thσ specifiπ compute≥ iµ i⌠ wa≤ t∩ utilizσá thei≥ ì
  323. more sophisticated features.  
  324.  
  325.      (b⌐ Iε thσ seconΣ place¼á therσ developeΣ problem≤ witΦ disk-forma⌠ ì
  326. compatibility«á  Therσ wa≤ ß generiπ CP/═ disδ format¼á bu⌠ i⌠ wa≤ aε 8ó ì
  327. format¼ anΣ i⌠ employeΣ single-densit∙ recordinτ techniques«  Wheε 5.25ó ì
  328. disδá drive≤ anΣ double-densit∙ (anΣ double-sided⌐ recordinτá technique≤ ì
  329. becamσ available¼á CP/═ hardwarσ manufacturer≤ developeΣ ß vas⌠ arra∙ oµ ì
  330. differen⌠ disδ formats¼ eacΦ incompatiblσ witΦ thσ other«  
  331.  
  332.      (c⌐á Iεá thσ thirΣ place¼á therσ werσ developinτá genera∞á hardwarσ ì
  333. incompatibilitie≤ betweeε thσ CP/═ computers«  Earlie≥ machine≤ useΣ thσ ì
  334. Inte∞ 808░ c.p.u«á chip¼á bu⌠ late≥ one≤ tooδ advantagσ oµ thσá extendeΣ ì
  335. instructioε set≤ oµ thσ 808╡ o≥ especiall∙ thσ Ziloτ Z8░ chip«  Softwarσ ì
  336. usinτá Z8░á instruction≤á coulΣá operatσ oεá memor∙á anΣá perforφá othe≥ ì
  337. function≤ mucΦ morσ quickly¼ bu⌠ coulΣ no⌠ bσ executeΣ oε thσ Inte∞ 808░ ì
  338. chip«á  Variou≤ chip≤ haΣ differen⌠ clocδ speeds«á  Differen⌠ computers¼ ì
  339. moreover¼á haΣ varyinτ inpu⌠ anΣ outpu⌠ capabilities«  Differen⌠ system≤ ì
  340. for serial communication posed very serious problems for programmers.  
  341.  
  342.      Part≤ 2¼á 3¼á anΣ ┤ oµ thσ UCP═ manua∞ givσ informatioε relevan⌠ t∩ ìèthesσá threσá areas¼á Par⌠ ▓ addressinτ genera∞á hardwarσá compatibilit∙ ì
  343. problems¼á Par⌠á │ addressinτ termina∞ anΣ vide∩ compatibilit∙ problems¼ ì
  344. and Part 4 addressing problems of disk format incompatibilities.  
  345.  
  346.      (d⌐ Therσ i≤ onσ furthe≥ areß oµ compatibilit∙ problem≤ tha⌠ shoulΣ ì
  347. bσá noted«á  Thσá CP/═ operatinτ systeφ itselµá passeΣá througΦá severa∞ ì
  348. generation≤á oµ development¼á anΣ companie≤ anΣ privatσ programmer≤ havσ ì
  349. madσ furthe≥ development≤ iε CP/═ compatiblσ software«  CP/═ versioε 2.▓ ì
  350. becamσ ß dσ factoé standard¼á althougΦ CP/═ versioε 3.░ (als∩ calleΣ CP/═ ì
  351. Plus⌐á madσ critica∞ improvement≤ anΣ wa≤ adopteΣ oε variou≤á computers«  ì
  352. Digita∞ ResearcΦ als∩ releaseΣ MP/M¼ ß multitaskinτ versioε oµ CP/M«  Iε ì
  353. thσ mid-1980≤ developmen⌠ oµ ne≈ Consolσ CommanΣ Processor≤ wen⌠ on¼ anΣ ì
  354. sincσá theε entirσ replacement≤ fo≥ CP/═ (sucΦ a≤ Echelon'≤ ZRDOS⌐á havσ ì
  355. beeε available«á  Par⌠ ▓ oµ thσ UCP═ manua∞ note≤ whicΦ version≤ oµ CP/═ ì
  356. or equivalent systems are implemented on various hadware.
  357.  
  358.  
  359. B.  Strategies for Overcoming CP/M System Incompatibilities
  360.  
  361.      1.  Strategy 1:  Revision of Source Code, Recompilation
  362.  
  363.      Giveεá thσ problem≤ outlineΣ above¼á ho≈ doe≤ onσ producσá program≤ ì
  364. tha⌠á caε bσ implementeΣ oε ß rangσ oµ CP/═ computers┐á  Thσ mos⌠á basiπ ì
  365. solutioεá woulΣ bσ t∩ revisσ thσ sourcσ codσ anΣ possibl∙ recompilσá thσ ì
  366. prograφá fo≥á eacΦ implementation«á  Thi≤ ha≤ thσ advantagσ oµá enablinτ ì
  367. eacΦá implementatioε t∩ takσ advantagσ oµ machine-specifiπá feature≤á t∩ ì
  368. thσá maximum¼á bu⌠á i⌠á ha≤ thσ disadvantagσ oµ requirinτ thσá step≤á oµ ì
  369. recompilatioεáá (anΣá possibl∙á reassembly⌐á fo≥á al∞á bu⌠áá interpreteΣ ì
  370. languages«á  WitΦ interpreteΣ languages¼á thi≤ strateg∙ i≤ usuall∙á preì
  371. ferred«á  I⌠á i≤á als∩ useΣ witΦ highl∙ machine-specifiπá program≤á (fo≥ ì
  372. instance¼á thσá ZCP╥ serie≤ oµ Consolσ CommanΣ Processors)«á  Iεá eithe≥ ì
  373. case¼á thi≤ strateg∙ require≤ carefu∞ modulizatioε oµ sourcσ code¼ ofteε ì
  374. witΦá machine-specifiπ codσ locateΣ a⌠ thσ beginninτ s∩ a≤ t∩ makσ reviì
  375. sioε anΣ recompilatioε morσ straightforward.
  376.  
  377.  
  378.      2.  Strategy 2:  Inserts
  379.  
  380.      Thσ usσ oµ insert≤ i≤ structurall∙ equivalen⌠ t∩ thσ firs⌠ strateg∙ ì
  381. above¼ bu⌠ ofteε involve≤ morσ carefu∞ specificatioε oµ thσ requirement≤ ì
  382. fo≥á aε inser⌠ (anΣ oµ coursσ carefu∞ modulizatioε oµ thσ sourcσá code)«  ì
  383. Oεá thi≤á strategy¼á thσá sourcσ codσ ha≤ ß poin⌠ a⌠á whicΦá ßá machine-ì
  384. specifiπ blocδ oµ codσ i≤ t∩ bσ inserted¼ anΣ insert≤ arσ supplieΣ fo≥ ß ì
  385. variet∙ oµ machines«á  Again¼ reassembl∙ anΣ recompilatioε arσ required«  ì
  386. Somσá user-supporteΣ program≤ tha⌠ requirσ ß higΦ degreσ oµ systeφá speì
  387. cifiπá codσá utilizσ inserts¼á mos⌠ notabl∙ thσ serie≤ oµá BY┼á program≤ ì
  388. whicΦ allow CP/M computers to be used remotely.  
  389.  
  390.  
  391.      3.  Strategy 3:  Overlays
  392.  
  393.      Overlay≤á arσá perhap≤á thσ mos⌠á commoεá strateg∙á fo≥á overcominτ ì
  394. incompatibilitie≤á fo≥ user-supporteΣ software«á  Aε overla∙ involve≤á ß ì
  395. se⌠á oµ codσ tha⌠ ha≤ beeε converteΣ (typically⌐ int∩ Inte∞ HEXá format¼ ì
  396. anΣá whicΦá ma∙á theεá bσ overlaiΣ oε aε existinτá prograφá a⌠á specifiπ ìèposition≤ specifieΣ iε thσ assembl∙ codσ anΣ theε iε thσ HE╪ file«  Thi≤ ì
  397. approacΦá doe≤á no⌠ requirσ recompilation¼á onl∙ thσá actua∞á overlayinτ ì
  398. accomplisheΣ typicall∙ b∙ thσ usσ oµ DDT¼á SID¼á o≥ MLOAD«á  ┴á possiblσ ì
  399. disadvantagσá oµ thi≤ strateg∙ i≤ tha⌠ ne≈ user≤ ma∙ no⌠ understanΣá thσ ì
  400. usσá oµ DDT¼á SID¼á o≥ MLOAD¼á anΣ thu≤ ma∙ finΣ installatioε fo≥á thei≥ ì
  401. computer≤ frustrating«  Oε thσ othe≥ hand¼ mos⌠ folk≤ wh∩ havσ useΣ CP/═ ì
  402. for very long have learned to do this.  
  403.  
  404.  
  405.      4.  Strategy 4:  Install Programs
  406.  
  407.      Thσá strateg∙á utilizeΣá iεá thσá mos⌠á sophisticateΣá commerciall∙ ì
  408. produceΣá program≤ (sucΦ a≤ Wordstar¼á SuperCalc¼á anΣ dBasσ II⌐ anΣá iε ì
  409. somσá user-supporteΣá softwarσá (sucΦ a≤ VDE⌐ i≤ t∩á suppl∙á ßá separatσ ì
  410. prograφá whicΦá lead≤ thσ use≥ througΦ thσ step≤á oµá installation«á  Aε ì
  411. instal∞á prograφ caε bσ ß ver∙ nicσ feature¼á bu⌠ somσ arσ a≤ comple° a≤ ì
  412. installinτ aε overlay¼ anΣ thσ productioε oµ aε instal∞ prograφ require≤ ì
  413. considerablσá worδá oεá thσ par⌠ oµá thσá programmer¼á anΣá considerablσ ì
  414. information on the variety of computers.
  415.  
  416.  
  417.      5«  Strateg∙ 5║  Autodetec⌠ Software
  418.  
  419.      Thi≤ shoulΣ bσ listeΣ a≤ ß logica∞ thougΦ no⌠ ß testeΣ possibility«  ì
  420. I⌠ áwoulΣ bσ possiblσ t∩ writσ CP/═ softwarσ iε sucΦ ß wa∙ tha⌠ áinitia∞ ì
  421. bit≤ áoµ codσ coulΣ detec⌠ whosσ BIO╙ i≤ presen⌠ (b∙ scanninτ thσ áfirs⌠ ì
  422. fe≈ ábytes¼ ásay¼ oµ thσ BIO╙ ColΣ Star⌠ routinσ t∩ seσ áwhat'≤ áthere)«  ì
  423. Thσ áprograφ ácoulΣ átheε utilizσ interna∞ sequence≤ áappropriatσ át∩ áß ì
  424. variet∙ oµ terminals«  Thi≤ approach¼ howeve≥ woulΣ requirσ ß gooΣ ádea∞ ì
  425. oµ worδ iε detectinτ differen⌠ BIO╙ signature≤ (ofteε morσ thaε onσ áfo≥ ì
  426. eacΦ CP/═ computer)¼ anΣ migh⌠ resul⌠ iε codσ s∩ bulk∙ tha⌠ i⌠ woulΣ ábσ ì
  427. impractica∞ oε existinτ CP/═-baseΣ computers.
  428.  
  429.  
  430. C.  Strategies for Compatibility Problems between Operating Systems
  431.  
  432.      Man∙á programmer≤ wil∞ bσ unwillinτ t∩ devotσ ß grea⌠ dea∞ oµá CP/═ ì
  433. programming¼á duσ t∩ thσ limitation≤ iε thσ marke⌠ indicateΣ above«á  I⌠ ì
  434. woulΣá bσá attractive¼á theεá t∩á develo≡á codσá tha⌠á coulΣá bσá easil∙ ì
  435. translated¼á no⌠ onl∙ t∩ othe≥ CP/═ systems¼á bu⌠ als∩ t∩ computer≤ witΦ ì
  436. othe≥ operatinτ systems¼á sucΦ a≤ thσ IB═ P├ serie≤ anΣ compatibles¼ thσ ì
  437. AtarΘ S╘ series¼á thσ Commodorσ Amigß series¼á anΣ UNIX-baseΣ computers«  ì
  438. Iε thi≤ case¼ thσ strategie≤ indicateΣ abovσ wil∞ no⌠ suffice¼ sincσ thσ ì
  439. wholl∙á incompatiblσ instructioε set≤ utilizeΣ oε othe≥ system≤á mandatσ ì
  440. tha⌠ ß completσ revisioε o≥ recompilatioε oµ thσ codσ necessary«  Neverì
  441. theless¼á therσ arσ a⌠ leas⌠ tw∩ strategie≤ fo≥ accomplishinτ thi≤ goal«  
  442.  
  443.  
  444.      1.  Strategy 1:  Code Translation
  445.  
  446.      I⌠ i≤ possible¼á utilizinτ specia∞ software¼ t∩ translatσ codσ froφ ì
  447. onσ processo≥ int∩ equivalen⌠ codσ fo≥ anothe≥ processor«á  Onσ suspect≤ ì
  448. tha⌠á thi≤á i≤á thσ techniquσ tha⌠ wa≤ useΣá wheεá CP/═á program≤á (likσ ì
  449. Wordsta≥á anΣá dBasσá II⌐á werσ firs⌠ porteΣ ove≥ t∩ thσá IB═á PC'≤á anΣ ì
  450. compatibles«  Nevertheless¼ thσ translatioε almos⌠ neve≥ take≤ advantagσ ìèoµá morσá sophisticateΣá operation≤ oε thσá targe⌠á processor¼á anΣá thσ ì
  451. translatioεá usuall∙ require≤ considerablσ effor⌠ t∩ interfacσ witΦá thσ ì
  452. operatinτá systeφá anΣá othe≥á input-outpu⌠á facilitie≤á oεá thσá targe⌠ ì
  453. computer¼á sincσ method≤ fo≥ interfacinτ diffe≥ greatl∙ froφ onσá systeφ ì
  454. t∩á another«á  (Thσ mos⌠ obviou≤ examplσ i≤ tha⌠ althougΦ MSDO╙ anΣá thσ ì
  455. IB═á P├á Disδá Operatinτ Systeφ utilizσ somσ oµ thσ samσ BDO╙á call≤á a≤ ì
  456. CP/M¼ thσ call≤ arσ madσ b∙ call≤ t∩ locatioε 0╡ unde≥ CP/═ anΣ arσ madσ ì
  457. b∙ ß cal∞ t∩ interrup⌠ 21Φ unde≥ MSDOS)«  
  458.  
  459.  
  460. .cp 6
  461.      2.  Strategy 2:  Higher Level Languages
  462.  
  463.      Mos⌠ programmer≤ intendinτ t∩ develo≡ softwarσ fo≥ highl∙ differen⌠ ì
  464. processor≤á anΣ operatinτ system≤ havσ turneΣ t∩ highle≥ leve∞ language≤ ì
  465. whicΦá havσ ß higΦ degreσ oµ systeφ independence«á  Aε examplσ woulΣá bσ ì
  466. thσ ├ programminτ language«  Therσ arσ a⌠ leas⌠ tw∩ problem≤ involveΣ iε ì
  467. thi≤ approach«á  Iε thσ firs⌠ place¼á thσ usσ oµ sucΦ ß languagσá almos⌠ ì
  468. alway≤ require≤ thσ threσ step≤ oµ compilation¼á assembly¼á anΣ linking«  ì
  469. Second¼á highe≥á leve∞á language≤á havσ stil∞á (largely⌐á no⌠á developeΣ ì
  470. specification≤á fo≥ usinτ morσ sophisticateΣ feature≤ sucΦ a≤á graphics¼ ì
  471. alternatσá characte≥á sets¼á pointe≥ device≤ ("mice")¼á o≥á asynchronou≤ ì
  472. communications«á  Thus¼á programmer≤ stil∞ tenΣ t∩ spenΣ ßá considerablσ ì
  473. amoun⌠á oµá timσá a⌠á thσá system≤á leve∞á developinτá high-speed¼á morσ ì
  474. sophisticateΣ systeφ interfaces«  Iε thi≤ regard¼ yo⌡ migh⌠ watcΦ fo≥ m∙ ì
  475. ALTI╧á package¼áá whicΦá offer≤á convention≤á o≥á specification≤á fo≥á ├ ì
  476. programming between different hardware configurations.  
  477.  
  478. .paè