changed tables to UrAsm syntax (we have DEFX exactly for such cases)
[bz80asm.git] / output.zas
blob8571ebf81f3b02b2a9da5cd7c842cc1e1741324a
1 WIDTH: defb  30  ;PRINT WIDTH
4 ; A: code
5 ; should preserve registers (except A and F)
6 ;OSWRCH:
9 ;OUT - SEND CHARACTER OR KEYWORD
10 ;   Inputs: A = character (>=10, <128)
11 ;           A = Token (<10, >=128)
12 ;  Destroys: A,F
14 EMIT:
15   cp    10
16   ret   z
17   push  af
18   call  OSWRCH
19   pop   af
20   cp    13
21   ld    a,0
22   jr    z,.cr
23   ld    a,(COUNT)
24   inc   a
25 .cr:
26   ld    (COUNT),a
27   ret
29 CRLF:
30   ld    a,13
31   call  EMIT
32   ret
35 ; A: position to move to
36 ; if current output is further than that, go to the new line
37 ; should preserve registers (except A and F)
38 TABIT:
39   ld      hl,COUNT
40   cp      (hl)
41   ret     z
42   push    af
43   call    c,CRLF
44   pop     af
45   sub     (hl)
46 FILL:
47   or      a
48   ret     z
49   push    bc
50   ld      b,a
51 FILL1:
52   ld      a,' '
53   call    EMIT
54   djnz    FILL1
55   pop     bc
56   xor     a
57   ret
60 printstr:
61   dec   hl
62 .loop:
63   inc   hl
64   ld    a,(hl)
65   and   #7f
66   call  EMIT
67   bit   7,(hl)
68   jr    z,.loop
69   ret
71 printstrnl:
72   call  printstr
73   ld    a,13
74   jp    EMIT
77 errmsg_identifier_expected:
78   defx  "identifier expected"
79 errmsg_integer_expected:
80   defx  "integer expected"
81 errmsg_out_of_range:
82   defx  "out of range"
83 errmsg_string_expected:
84   defx  "string expected"
85 errmsg_syntax:
86   defx  "syntax error"
88 error_identifier_expected:
89   ld    hl,errmsg_identifier_expected
90   jp    error_common
91 error_integer_expected:
92   ld    hl,errmsg_integer_expected
93   jp    error_common
94 error_out_of_range:
95   ld    hl,errmsg_out_of_range
96   jp    error_common
97 error_string_expected:
98   ld    hl,errmsg_string_expected
99   jp    error_common
100 error_syntax:
101   ld    hl,errmsg_syntax
102   jp    error_common
104 error_common:
105   call  printstrnl
107   ld    a,2
108   out   (#fe),a
109   jr    $