11 $printf "label manager size: %d", csizeend-csizestart
16 $printf "ouput system size: %d", csizeend-csizestart
19 ;include "output_driver_std.zas"
20 include "output_driver_4x8.zas"
22 $printf "printing driver size: %d", csizeend-csizestart
24 ; so they won't clutter symbol table
34 ld (BZ80ASM.EXPR_ERROR_CB),hl
36 ld hl,expr_error_jrfar_cb
37 ld (BZ80ASM.ASM_JR_TOO_FAR_CB),hl
44 ; print line to assemble
63 push ix ; save code destination
64 push iy ; we'll need it for listing
66 ;call EXPR_STACK_RESET
95 ; if terminator, don't try to assemble more
101 jr list_and_error_no_label_check
106 ld a,(BZ80ASM.ASM_BAD_B)
110 list_and_error_no_label_check:
114 pop hl ; current position in text buffer
115 pop de ; initial position
120 ; de: print from here
155 errline: defx "---------"
162 defm "label cp 69",13
163 defm "call 0BEEFh",13
169 defm "ld e,427%10",13
170 defm "ld bc,2+3*5",13
171 defm "ld bc,0+(2+3)*5",13
172 defm "ld bc,[2+3]*5",13
173 defm "ld bc,(2+3)*5",13
174 defm "ld hl,16384",13
175 defm "ld hl,#4001",13
176 defm "ld a,(ix-2)",13
178 defm "ld de,$1234",13
179 defm "ld bc,0x5b02",13
180 defm "ld a,0b1001",13
182 defm "ld ix,-1234",13
183 defm "ld iy,-0x602a",13
187 defm "defb 7&$c,1|2,1|(3^1),1<<15",13
189 defm "defm '012','34'",13
195 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
198 ;; extracted from assembler code, because we don't need it there
201 ;; IY: current position in text buffer
202 ;; IX: current position in code buffer
203 ;; BC: starting position in text buffer
204 ;; DE: starting position in code buffer
209 ;COUNT: defb 0 ;PRINT POSITION
211 ; calculate code length
221 ; calculate original PC
234 ; print code bytes (if there are any)
239 ; do not print code if more than 4 bytes (long strings and dbs)
242 ; do not print code if more than 4 bytes (long strings and dbs)
272 ; print source line, from BC to IY (exclusive)
273 ; calculate string length
299 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
301 ;; print byte in hex with the trailing space
309 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;