home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / os / os9 / 1145 < prev    next >
Encoding:
Internet Message Format  |  1992-08-21  |  4.3 KB

  1. Path: sparky!uunet!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!ames!agate!stanford.edu!rutgers!bobsbox.rent.com!s4mjs!kc2wz!bob
  2. From: bob@kc2wz.bubble.org (Bob Billson)
  3. Newsgroups: comp.os.os9
  4. Subject: Weird problem with OS-9 ASM -- help?
  5. Summary: what did I do wrong
  6. Keywords: asm bug os9 help
  7. Message-ID: <115@kc2wz.bubble.org>
  8. Date: 22 Aug 92 03:42:10 GMT
  9. Distribution: na
  10. Organization: Color Computer 3: Tandy's 'game' machine
  11. Lines: 111
  12.  
  13. Question for the net.  I am using the OS-9 Level I assember ASM in the Motorola
  14. compatible mode.  The code will eventually be burned into an EPROM to run on a
  15. single board 6809 computer.
  16.  
  17. For some reason the RMB pseudo-op is not reserving a block of empty bytes
  18. at the end of the code.  Here is the editted output of ASM.  The deleted
  19. code is unimportant as far as the problem goes.
  20.  
  21.  
  22. Microware OS-9 Assembler RS Version 01.00.00    08/21/92 23:18:54                 Page 001
  23.  - 
  24.  
  25. 00012                            opt   m               motorola compatible mode
  26. 00013                            opt   w91 
  27. 00014                            opt   d87 
  28. 00015                            opt   s 
  29. 00016        
  30. 00017 D 0000                     setdp 0 
  31. 00018        
  32. 00019   2000            epromsiz equ   8192             eprom size
  33. 00020        
  34.  
  35. [stuff deleted]
  36.  
  37. 00042        *
  38. 00043        * Part      Initialize System
  39. 00044        * Notes     System & User Stacks, Direct Page Pointer
  40. 00045        *
  41.  
  42. 00047   0000                     org   $0 
  43. 00048        
  44. 00049   0000            start    equ   * 
  45. 00050        
  46.  
  47. [much more stuff deleted]
  48.  
  49. 00574   043C 0D0A                fcb   $0d,$0a 
  50. 00575   043E 0000                fcb   $00,$00 
  51. 00576        
  52. 00577   0440            endprgm  equ   * 
  53. 00578        
  54.  
  55.  
  56. Ok here is where the problem starts.  The last 8 addresses (16 bytes) of
  57. the code has to be $E000.  The space inbetween the end above and the last
  58. 16 bytes will be left unprogrammed for now.  So I try to reserve bytes,
  59. but it doesn't work.  Why not?
  60.  
  61.  
  62. 00579        *
  63. 00580        * last 16 bytes in EPROM have to be $E000
  64. 00581        *
  65. 00582        
  66. 00583   0440                     rmb   epromsiz-(endprgm-start)-16 
  67. 00584        
  68.  
  69. Notice bytes seem to have been reserved as the address counter is incremented
  70. properly.  However, dump the resulting file shows this is not the case.
  71.  
  72. 00585   1FF0 E000                fdb   $e000 
  73. 00586   1FF2 E000                fdb   $e000 
  74. 00587   1FF4 E000                fdb   $e000 
  75. 00588   1FF6 E000                fdb   $e000 
  76. 00589   1FF8 E000                fdb   $e000 
  77. 00590   1FFA E000                fdb   $e000 
  78. 00591   1FFC E000                fdb   $e000 
  79. 00592   1FFE E000                fdb   $e000 
  80. 00593                            end
  81.  
  82. 00000 error(s)
  83. 00000 warning(s)
  84. $0450 01104 program bytes generated
  85. $1BB0 07088 data bytes allocated
  86. $04A8 01192 bytes used for symbols
  87.  
  88.  
  89. In line 583 I could have just as easily said 'rmb epromsiz-*-16'.  The result
  90. is the same.  
  91.  
  92. This is an edited output of the OS-9 DUMP utility.
  93.  
  94.  
  95. Addr   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0 2 4 6 8 A C E
  96. ----  ---- ---- ---- ---- ---- ---- ---- ----  ----------------
  97. 0000  10CE 1FFF CE0F FF4F 1F8B 4FA7 9D02 51A7  .N..N..O..O'..Q'
  98. 0010  9D02 4986 FFA7 9D02 41A7 9D02 4186 04A7  ..I..'..A'..A..'
  99.  
  100. [stuff deleted]
  101.  
  102. Addr   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0 2 4 6 8 A C E
  103. ----  ---- ---- ---- ---- ---- ---- ---- ----  ----------------
  104. 0400  6564 0D0A 4E6F 7465 2D20 3C77 3E20 7265  ed..Note- <w> re
  105. 0410  7072 6573 656E 7473 2077 6869 7465 7370  presents whitesp
  106. 0420  6163 6520 6368 6172 6163 7465 7273 203C  ace characters <
  107. 0430  7370 6163 653E 2C20 3C63 723E 0D0A 0000  space>, <cr>....
  108. 0440  E000 E000 E000 E000 E000 E000 E000 E000  `.`.`.`.`.`.`.`.
  109. 0450                                                           
  110.  
  111. Starting at $043E, there should be a large chuck of reserved bytes.  Instead
  112. there are two bytes immediately followed by the $E000 bytes.  Why isn't the 
  113. assembler reserved the block of bytes?
  114.  
  115. Anyone point out what I am doing wrong?  Thanks for the help.
  116.  
  117.       Bob
  118.  
  119. -- 
  120.   Bob Billson, KC2WZ                          | internet: bob@kc2wz.bubble.org
  121.                                               |           kc2wz@amsat.org
  122.   $nail:  21 Bates Way,  Westfield, NJ 07090  | uucp:     ...!uunet!kc2wz!bob
  123.                   C code.  C code run.  Run code run...<please!>
  124.