crt0.s 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. ;--------------------------------------------------------------------------
  2. ; crt0.s - Generic crt0.s for a Z80
  3. ;
  4. ; Copyright (C) 2000, Michael Hope
  5. ;
  6. ; This library is free software; you can redistribute it and/or modify it
  7. ; under the terms of the GNU General Public License as published by the
  8. ; Free Software Foundation; either version 2, or (at your option) any
  9. ; later version.
  10. ;
  11. ; This library is distributed in the hope that it will be useful,
  12. ; but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. ; GNU General Public License for more details.
  15. ;
  16. ; You should have received a copy of the GNU General Public License
  17. ; along with this library; see the file COPYING.GPL2. If not, write
  18. ; to the Free Software Foundation, 51 Franklin Street, Fifth Floor,
  19. ; Boston, MA 02110-1301, USA.
  20. ;
  21. ; As a special exception, if you link this library with other files,
  22. ; some of which are compiled with SDCC, to produce an executable,
  23. ; this library does not by itself cause the resulting executable to
  24. ; be covered by the GNU General Public License. This exception does
  25. ; not however invalidate any other reasons why the executable file
  26. ; might be covered by the GNU General Public License.
  27. ;--------------------------------------------------------------------------
  28. .module crt0
  29. .globl _main
  30. .area _HEADER (ABS)
  31. .org 0xA60B - 2
  32. .db 0xEF, 0x69
  33. init:
  34. call gsinit
  35. jp _main
  36. .org 0xA60B + 6
  37. .area _HOME
  38. .area _CODE
  39. .area _INITIALIZER
  40. .area _GSINIT
  41. .area _GSFINAL
  42. .area _DATA
  43. .area _INITIALIZED
  44. .area _BSEG
  45. .area _BSS
  46. .area _HEAP
  47. .area _CODE
  48. __clock::
  49. ld a,#2
  50. ret ; needed somewhere...
  51. .area _GSINIT
  52. gsinit::
  53. ld bc, #l__INITIALIZER
  54. ld a, b
  55. or a, c
  56. jr Z, gsinit_next
  57. ld de, #s__INITIALIZED
  58. ld hl, #s__INITIALIZER
  59. ldir
  60. gsinit_next:
  61. .area _GSFINAL
  62. ret