tokenhook.z80 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. TokenHook:
  2. .db $83
  3. inc b
  4. dec b
  5. ret nz
  6. push hl
  7. ld hl,(iMathPtr1)
  8. inc hl
  9. inc hl
  10. ld a,3Ah
  11. cp (hl)
  12. jr nz,tokenhook_pop1exit
  13. inc hl
  14. ld a,30h
  15. cp (hl)
  16. jr nz,tokenhook_pop1exit
  17. inc hl
  18. ld a,3Eh
  19. cp (hl)
  20. jr nz,tokenhook_pop1exit
  21. xor a
  22. ld b,a
  23. or d
  24. ld hl,TokenTable_0
  25. jr z,TokenSearchLoop
  26. ld hl,TokenTable_1
  27. dec a
  28. jr z,TokenSearchLoop
  29. ld hl,TokenTable_2
  30. TokenSearchLoop:
  31. ld a,(hl)
  32. and $FE
  33. ; ld a,e
  34. ; cp (hl)
  35. cp e
  36. inc hl
  37. jr z,ChkByte2
  38. NotTokenMatch:
  39. inc hl
  40. ld c,(hl)
  41. inc c
  42. add hl,bc
  43. ld a,(hl)
  44. or a
  45. jr nz,TokenSearchLoop
  46. tokenhook_pop1exit:
  47. pop hl
  48. ret
  49. ChkByte2:
  50. ld a,d
  51. cp (hl)
  52. jr nz,NotTokenMatch
  53. pop de
  54. ld de,OP1
  55. inc hl
  56. ld c,(hl)
  57. inc c
  58. ldir
  59. ld hl,OP1-1
  60. ret
  61. NoChange:
  62. TokenTable:
  63. TokenTable_0:
  64. ; .db $02,0,7,"module."
  65. .db $02,0,1,$F2 ;►DMS (turns into "$")
  66. .db $04,0,6,$05,"Float" ;►Dec
  67. .db $06,0,8,5,"lFactor" ;►Frac
  68. .db $28,0,4,"ins " ;augment(
  69. .db $32,0,4,"max " ;max(
  70. .db $34,0,4,"min " ;min(
  71. .db $36,0,7,"clrPart" ;R►Pr
  72. .db $38,0,7,"runPart" ;R►PΘ
  73. .db $3A,0,8,"addPart " ;P►Rx
  74. .db $3C,0,9,"partType " ;P►Ry
  75. .db $44,0,5,"misc " ;solve(
  76. .db $58,0,1,5Fh ;i (turns into "_")
  77. .db $BE,0,5,"call " ;prgm
  78. .db $E6,0,5,"Mode " ;Fix
  79. .db $EC,0,9,"setUpInt " ;Func
  80. .db $EE,0,8,"StackOp " ;Param
  81. .db 0 ;End of Table 0
  82. TokenTable_1:
  83. .db $26,1,5,"Text " ;Text(
  84. .db $38,1,5,"Rect " ;Line(
  85. .db $3C,1,5,"Tile " ;Pt-On(
  86. .db $3E,1,7,"Sprite " ;Pt-Off(
  87. .db $40,1,8,"TileMap " ;Pt-Change(
  88. .db $48,1,9,"Contrast " ;Shade(
  89. .db $4E,1,9,"shiftBuf " ;Tangent(
  90. .db $62,1,7,"WriteB " ;int(
  91. .db $70,1,4,"Inv " ;not(
  92. .db $72,1,7,"WriteW " ;iPart(
  93. .db $7C,1,4,"jmp " ;ln(
  94. ; .db $7E,1,2,"2^" ;e^(
  95. .db $A6,1,4,"For " ;For(
  96. .db $AA,1,8,"nextPntr" ;Return
  97. .db $B4,1,7,"GetInc " ;IS>(
  98. .db $B6,1,7,"GetDec " ;DS<(
  99. .db $BC,1,7,"setBuf " ;Disp
  100. .db $BE,1,7,"DispBuf" ;DispGraph
  101. .db $C0,1,8,"setFont " ;Output(
  102. .db $CE,1,8,"MakeVar " ;Send(
  103. .db $D0,1,8,"FindVar " ;Get(
  104. .db 0
  105. TokenTable_2:
  106. .db $B4,3,6,"Local " ;►Nom(
  107. .db $BE,3,8,"randInt " ;randInt(
  108. .db $C2,3,4,"del " ;sub(
  109. .db $C8,3,6,"inStr " ;inString(
  110. .db $F4,3,5,"Play " ;conj(
  111. .db $FE,3,5,"eval " ;expr(
  112. .db $01,4,7,"Search " ;length( ;use 01 instead of 00 (00 indicates the end of the table)
  113. .db $40,4,7,"StackE " ;Pmt_End
  114. .db $42,4,7,"StackS " ;Pmt_Bgn
  115. .db $72,4,4,"gbuf" ;G-T
  116. .db $7A,4,5,"Arch " ;Archive
  117. .db $7C,4,7,"UnArch " ;UnArchive
  118. .db $7E,4,4,"Asm " ;Asm(
  119. .db $82,4,7,"AsmHex " ;AsmPrgm
  120. .db 0 ;End of Table 1