Список токенов ZX Basic

 

Вчера мне понадобился список токенов Basic. Ничего путного я не нашел, поэтому пришлось быстро написать код и получить список для 48. Кажется, был эмулятор, способный перехватить вывод на печать, но подходящего не нашел. Код на ужасме:

device zxspectrum48
        ORG #6000
begin
ld a,$a5,(tn),a
ld ix,$8000
ld hl,$96
; jr $
toklp:
ld a,(tn)
call putd
ld (ix+0),$20:inc ix
putt:
ld a,(hl):and 127
ld (ix+0),a:inc ix
ld a,(hl)
inc hl
add a,a
jr nc,putt
ld (ix+0),$0D:inc ix
ld (ix+0),$0A:inc ix
ld a,(tn)
inc a
ld (tn),a
jr nz,toklp
jr $
putd:
ld b,100:call subn
ld b,10:call subn
add a,$30
ld (ix+0),a:inc ix
ret
subn:
ld c,$2f
snl:
inc c
sub b
jr nc,snl
add a,b
ld (ix+0),c:inc ix
ret
tn: db $a5
end
display /d,end-begin
savesna "!void.sna",begin

Осталось вычесть $8000 из значения регистра IX и сохранить кодовый блок из Spectaculator:

165 RND
166 INKEY$
167 PI
168 FN
169 POINT
170 SCREEN$
171 ATTR
172 AT
173 TAB
174 VAL$
175 CODE
176 VAL
177 LEN
178 SIN
179 COS
180 TAN
181 ASN
182 ACS
183 ATN
184 LN
185 EXP
186 INT
187 SQR
188 SGN
189 ABS
190 PEEK
191 IN
192 USR
193 STR$
194 CHR$
195 NOT
196 BIN
197 OR
198 AND
199 <=
200 >=
201 <>
202 LINE
203 THEN
204 TO
205 STEP
206 DEF FN
207 CAT
208 FORMAT
209 MOVE
210 ERASE
211 OPEN #
212 CLOSE #
213 MERGE
214 VERIFY
215 BEEP
216 CIRCLE
217 INK
218 PAPER
219 FLASH
220 BRIGHT
221 INVERSE
222 OVER
223 OUT
224 LPRINT
225 LLIST
226 STOP
227 READ
228 DATA
229 RESTORE
230 NEW
231 BORDER
232 CONTINUE
233 DIM
234 REM
235 FOR
236 GO TO
237 GO SUB
238 INPUT
239 LOAD
240 LIST
241 LET
242 PAUSE
243 NEXT
244 POKE
245 PRINT
246 PLOT
247 RUN
248 SAVE
249 RANDOMIZE
250 IF
251 CLS
252 DRAW
253 CLEAR
254 RETURN
255 COPY

Недостающие значения Basic128 на картинке.

Комментарии