Mirror of CollapseOS
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

84 行
1.5KB

  1. ; RAMSTART is a label at the end of the file
  2. .equ RAMEND 0xcfff
  3. ; Free memory in TRSDOS starts at 0x3000
  4. .org 0x3000
  5. jp init
  6. .inc "err.h"
  7. .inc "blkdev.h"
  8. .inc "ascii.h"
  9. .inc "core.asm"
  10. .inc "str.asm"
  11. .inc "trs80/kbd.asm"
  12. .inc "trs80/vid.asm"
  13. .equ FLOPPY_RAMSTART RAMSTART
  14. .inc "trs80/floppy.asm"
  15. .equ BLOCKDEV_RAMSTART FLOPPY_RAMEND
  16. .equ BLOCKDEV_COUNT 1
  17. .inc "blockdev.asm"
  18. ; List of devices
  19. .dw floppyGetB, floppyPutB
  20. .equ STDIO_RAMSTART BLOCKDEV_RAMEND
  21. .equ STDIO_GETC trs80GetC
  22. .equ STDIO_PUTC trs80PutC
  23. .inc "stdio.asm"
  24. ; The TRS-80 generates a double line feed if we give it both CR and LF.
  25. .equ printcrlf printcr
  26. ; *** BASIC ***
  27. ; RAM space used in different routines for short term processing.
  28. .equ SCRATCHPAD_SIZE STDIO_BUFSIZE
  29. .equ SCRATCHPAD STDIO_RAMEND
  30. .inc "lib/util.asm"
  31. .inc "lib/ari.asm"
  32. .inc "lib/parse.asm"
  33. .inc "lib/fmt.asm"
  34. .equ EXPR_PARSE parseLiteralOrVar
  35. .inc "lib/expr.asm"
  36. .inc "basic/util.asm"
  37. .inc "basic/parse.asm"
  38. .inc "basic/tok.asm"
  39. .equ VAR_RAMSTART SCRATCHPAD+SCRATCHPAD_SIZE
  40. .inc "basic/var.asm"
  41. .equ BUF_RAMSTART VAR_RAMEND
  42. .inc "basic/buf.asm"
  43. .inc "basic/blk.asm"
  44. .inc "basic/floppy.asm"
  45. .equ BAS_RAMSTART BUF_RAMEND
  46. .inc "basic/main.asm"
  47. init:
  48. ld sp, RAMEND
  49. call floppyInit
  50. call basInit
  51. ld hl, basFindCmdExtra
  52. ld (BAS_FINDHOOK), hl
  53. xor a
  54. ld de, BLOCKDEV_SEL
  55. call blkSel
  56. jp basStart
  57. printcr:
  58. push af
  59. ld a, CR
  60. call STDIO_PUTC
  61. pop af
  62. ret
  63. basFindCmdExtra:
  64. ld hl, basFloppyCmds
  65. call basFindCmd
  66. ret z
  67. ld hl, basBLKCmds
  68. jp basFindCmd
  69. RAMSTART: