]> cloudbase.mooo.com Git - ddt180.git/blobdiff - ddt180.z80
Don't convert whole command line buffer to uppercase to allow case sensitive symbols.
[ddt180.git] / ddt180.z80
index 8418907917a7244d237b2c63f368f5d87d549fe9..f9a4014ec879b171d5eeba3262ed79abac590d82 100644 (file)
@@ -472,55 +472,19 @@ get_line:
        ld c,BDOS_CBUF\r
        call ddtz_bdos\r
        call crlf\r
-       ld de,conbuf+1\r
-       ld a,(de)\r
-       ld b,a\r
-       ld c,0\r
-       inc b\r
-l0162h:\r
-       inc de\r
-       dec b\r
-       jr z,l0194h\r
-       ld a,(de)\r
-       bit 0,c\r
-       call z,toupper\r
-       ld (de),a\r
-       cp ''''\r
-       jr nz,l0162h\r
-       push de\r
-       dec de\r
-       ld a,(de)\r
-       cp ''''\r
-       jr z,l0190h\r
-       dec de\r
-       ld a,(de)\r
-       cp '^'\r
-       jr z,l0184h\r
-       dec de\r
-       ld a,(de)\r
-       cp '^'\r
-       jr nz,l0190h\r
-l0184h:\r
-       inc de\r
-       push bc\r
-       call sub_0303h\r
-       pop bc\r
-       dec de\r
-       ld a,(de)\r
-       cp ''''\r
-       jr z,l0191h\r
-l0190h:\r
-       inc c\r
-l0191h:\r
-       pop de\r
-       jr l0162h\r
-l0194h:\r
-       xor a\r
-       ld (de),a\r
-       ld de,conbuf+2\r
+       ld hl,conbuf+1\r
+       ld      e,(hl)\r
+       xor     a\r
+       ld      d,a\r
+       inc     hl\r
+       ex      de,hl\r
+       add     hl,de\r
+       ld      (hl),a\r
        pop hl\r
        ret\r
 \r
+get_char_upper:\r
+       ld a,(de)\r
 toupper:\r
        cp 'a'\r
        ret c\r
@@ -532,7 +496,7 @@ toupper:
 skipbl0:\r
        inc de\r
 skipbl:\r
-       ld a,(de)\r
+       call get_char_upper\r
        call test_whitespace\r
        jr z,skipbl0\r
        or a\r
@@ -661,7 +625,7 @@ l02f5h:
        ld a,(hl)\r
        and a\r
        ret z\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp (hl)\r
        jr z,l0300h\r
        inc hl\r
@@ -692,12 +656,12 @@ l030ch:
 sub_0318h:\r
        push bc\r
        res 7,b\r
-       defb 03eh\r
+       defb 03eh               ;ld a,nn\r
 sub_031ch:\r
        push bc\r
        push de\r
 l031eh:\r
-       ld a,(de)\r
+       call get_char_upper\r
        xor (hl)\r
        and 07fh\r
        jr nz,l0336h\r
@@ -1345,13 +1309,14 @@ decnum_done:
        jp ERROR\r
 \r
 sub_060ch:\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp '['\r
        jr l0614h\r
 \r
 get.hexdigit:\r
        ld a,(de)\r
 hex_digit:\r
+       call toupper\r
        cp 'F'+1\r
 l0614h:\r
        ccf\r
@@ -1362,13 +1327,13 @@ l0614h:
        ret\r
 \r
 get.decdigit:\r
-       ld a,(de)\r
+       call get_char_upper\r
 l061eh:\r
        cp '9'+1\r
        jr l0625h\r
 \r
 get.bindigit:\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp '1'+1\r
 l0625h:\r
        ccf\r
@@ -2311,7 +2276,7 @@ l0d60h:
        inc de\r
        cp '.'\r
        jr      nz,cmds_dash\r
-       ld      a,(de)\r
+       call get_char_upper\r
        or      a\r
        jr      nz,l0d8ah\r
        ret\r
@@ -2319,7 +2284,7 @@ cmds_dash:
        jp z,assert_eol\r
        cp '-'\r
        jr nz,l0d8ah\r
-       ld a,(de)\r
+       call get_char_upper\r
        or a\r
        dec hl\r
        jr z,l0d60h\r
@@ -2405,7 +2370,7 @@ l0e10h:
        ret\r
 \r
 cmd_M:\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp 'V'\r
        jr nz,l0e1fh\r
        inc de\r
@@ -2435,7 +2400,7 @@ cmdm_up:
        ret\r
 \r
 cmd_H:\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp 'S'\r
        jr z,p_sym_list\r
 \r
@@ -2519,7 +2484,7 @@ psym_e:
 \r
 \r
 cmd_Q:\r
-       ld a,(de)\r
+       call get_char_upper\r
        sub 'J'\r
        ld (cmd_Q_jopt),a\r
        jr nz,l0e8dh\r
@@ -2584,7 +2549,7 @@ sub_0ed7h:
        push    de\r
        push bc\r
 l0edah:\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp (hl)\r
        jr nz,l0ee2h\r
        inc de\r
@@ -2744,7 +2709,7 @@ cmd_F:
        ld (hl),' '\r
        inc hl\r
 l0fb6h:\r
-       ld a,(de)\r
+       call get_char_upper\r
        ld (hl),a\r
        inc hl\r
        inc de\r
@@ -3354,7 +3319,7 @@ asemble_line:
        call skipbl\r
        ld hl,t_MNEMONICS\r
        call sub_030ah\r
-       jp nc,ERROR\r
+       jr nc,error4\r
        call skipbl\r
        push de\r
        ld a,b\r
@@ -3599,13 +3564,13 @@ as.LD:
        jp c,l149ch\r
        call arg.IX_IY\r
        jp c,l14f5h\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp 'I'\r
        jp z,l1511h\r
        cp 'R'\r
        jp z,l1519h\r
        cp '('\r
-       jp nz,ERROR\r
+       jr nz,error5\r
        inc de\r
        call arg.ww\r
        jp c,l1528h\r
@@ -3627,12 +3592,14 @@ l139bh:
        ld (iy+003h),h\r
        ld c,004h\r
        ret\r
+\r
 l13aah:\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp 'A'\r
-       jp nz,ERROR\r
+       jr nz,error5\r
        inc de\r
        ld b,032h\r
+\r
 as.store_3:\r
        call assert_eol\r
        ld (iy+000h),b\r
@@ -3640,6 +3607,7 @@ as.store_3:
        ld (iy+002h),h\r
        ld c,003h\r
        ret\r
+\r
 l13c2h:\r
        cp 020h\r
        jr z,l13d0h\r
@@ -3652,6 +3620,7 @@ l13c9h:
 l13d0h:\r
        ld b,022h\r
        jr as.store_3\r
+\r
 l13d4h:\r
        ld b,a\r
        call assert_comma\r
@@ -3667,10 +3636,11 @@ l13d4h:
        add a,b\r
        add a,040h\r
        cp 076h\r
-       jp z,ERROR\r
+       jr z,error60\r
 l13ech:\r
        ld b,a\r
        jp as.opc.noarg\r
+\r
 l13f0h:\r
        call arg.IDX_displcmnt\r
        jr nc,l1413h\r
@@ -3680,7 +3650,7 @@ l13f0h:
        rlca\r
        add a,046h\r
        cp 076h\r
-       jp z,ERROR\r
+       jr z,error60\r
 \r
 l1400h:\r
        ld b,a\r
@@ -3691,21 +3661,23 @@ l1400h:
        ld (iy+000h),a\r
        ld c,003h\r
        ret\r
+\r
 l1413h:\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp 'I'\r
        jr z,l1426h\r
        cp 'R'\r
        jr nz,l1432h\r
        ld a,b\r
        cp 007h\r
-       jp nz,ERROR\r
+       jr nz,error60\r
        ld b,05fh\r
        jr l142eh\r
+\r
 l1426h:\r
        ld a,b\r
        cp 007h\r
-       jp nz,ERROR\r
+       jr nz,error60\r
        ld b,057h\r
 l142eh:\r
        inc de\r
@@ -3731,15 +3703,19 @@ l144ch:
        inc de\r
        ld a,b\r
        cp 007h\r
-       jp nz,ERROR\r
+       jr nz,error60\r
        call arg.ww\r
        jr nc,l1466h\r
        cp 030h\r
-       jp nc,ERROR\r
+       jr nc,error60\r
        add a,00ah\r
        ld b,a\r
        call test_paren_close\r
        jp as.opc.noarg\r
+\r
+error60:\r
+       jp error\r
+\r
 l1466h:\r
        call test_expr\r
        call test_paren_close\r
@@ -3751,7 +3727,7 @@ l1471h:
        call arg.r_HL_A\r
        jr nc,l1483h\r
        cp 006h\r
-       jp z,ERROR\r
+       jr z,error60\r
        add a,070h\r
        jp l1400h\r
 \r
@@ -3784,14 +3760,16 @@ l14b4h:
        ld (iy+001h),b\r
        ld c,002h\r
        ret\r
+\r
 l14c3h:\r
        ld a,b\r
        cp 030h\r
        jr nz,error6\r
        ld b,0f9h\r
        jr as.opc.noarg ;14ca\r
+\r
 l14cch:\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp '('\r
        jr nz,l14e8h\r
        inc de\r
@@ -3803,9 +3781,11 @@ l14cch:
        add a,04bh\r
        ld b,a\r
        jp l13c9h\r
+\r
 l14e3h:\r
        ld b,02ah\r
        jp as.store_3\r
+\r
 l14e8h:\r
        call test_expr\r
        call assert_eol\r
@@ -3815,7 +3795,7 @@ l14e8h:
        jp as.store_3\r
 l14f5h:\r
        call assert_comma\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp '('\r
        jr nz,l1509h\r
        inc de\r
@@ -3823,21 +3803,24 @@ l14f5h:
        call test_paren_close\r
        ld b,02ah\r
        jp l1395h\r
+\r
 l1509h:\r
        call test_expr\r
        ld b,021h\r
        jp l1395h\r
+\r
 l1511h:\r
        inc de\r
        call assert_comma\r
        ld b,047h\r
        jr l151fh\r
+\r
 l1519h:\r
        inc de\r
        call assert_comma\r
        ld b,04fh\r
 l151fh:\r
-       ld a,(de)\r
+       call get_char_upper\r
        inc de\r
        cp 'A'\r
        jr z,gen.opc.ED2\r
@@ -3851,7 +3834,7 @@ l1528h:
        ld b,a\r
        call test_paren_close\r
        call assert_comma\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp 'A'\r
        jr nz,error6\r
        inc de\r
@@ -3874,7 +3857,7 @@ as.ADC_SBC:
        jr nc,as.AND_CP_OR_SUB_XOR\r
        call assert_comma\r
        call arg.ww\r
-       jp nc,ERROR\r
+       jr nc,error6\r
        push af\r
        ld a,b\r
        cp 088h\r
@@ -3887,6 +3870,7 @@ l156ch:
 l156eh:\r
        ld b,a\r
        jr gen.opc.ED2\r
+\r
 as.ADD:\r
        ld hl,t_HL.AF\r
        call sub_0318h\r
@@ -3901,7 +3885,7 @@ as.ADD:
        ld hl,t_BC.DE.IY.SP\r
 l158eh:\r
        call arg.reg_16bit\r
-       jp nc,ERROR\r
+       jr nc,error6\r
        add a,009h\r
 l1596h:\r
        ld b,a\r
@@ -3909,11 +3893,12 @@ l1596h:
 l159ah:\r
        call assert_comma\r
        call arg.ww\r
-       jp nc,ERROR\r
+error61nc:\r
+       jr nc,error6\r
        add a,009h\r
        jp l13ech\r
 as.AND_CP_OR_SUB_XOR:\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp 'A'\r
        jr nz,l15b8h\r
        push de\r
@@ -3945,7 +3930,7 @@ as.SHIFTOP:
        call arg.r_HL_A\r
        jr c,l15fah\r
        call arg.IDX_displcmnt\r
-       jp nc,ERROR\r
+       jr nc,error61nc\r
        ld a,b\r
        add a,006h\r
        ld b,a\r
@@ -3975,7 +3960,7 @@ as.BITOP:
        call arg.r_HL_A\r
        jr c,l1624h\r
        call arg.IDX_displcmnt\r
-       jp nc,ERROR\r
+       jr nc,error61nc\r
        ld a,l\r
        rlca\r
        rlca\r
@@ -4175,7 +4160,7 @@ l1739h:
 as.EX:\r
        ld hl,b_176d_start\r
        call sub_030ah\r
-       jp nc,ERROR\r
+       jr nc,error7\r
        ld c,b\r
        call assert_eol\r
        ld b,000h\r
@@ -4216,7 +4201,7 @@ as.DEC_INC:
        call arg.r_HL_A\r
        jr c,l17cch\r
        call arg.IDX_displcmnt\r
-       jp nc,ERROR\r
+       jr nc,error8\r
        ld a,b\r
        add a,030h\r
        jp l1400h\r
@@ -4271,7 +4256,7 @@ arg.j_displ:
        ret\r
 \r
 arg.addr_8bit:\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp '('\r
        jr nz,arg.imm_8bit\r
        inc de\r
@@ -4355,7 +4340,7 @@ l1852h:
 arg.IDX_displcmnt:\r
        push hl\r
        push bc\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp '('\r
        jr nz,l18a1h\r
        push de\r
@@ -4370,14 +4355,14 @@ arg.IDX_displcmnt:
        ld a,0fdh\r
 l186eh:\r
        ld (prefix_ixiy),a\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp '+'\r
        jr z,l1882h\r
        cp ')'\r
        ld hl,0\r
        jr z,l189ah\r
        cp '-'\r
-       jp nz,ERROR\r
+       jr nz,error9\r
 l1882h:\r
        push af\r
        inc de\r
@@ -4391,9 +4376,9 @@ l1882h:
        and a\r
        sbc hl,bc\r
 l1894h:\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp ')'\r
-       jp nz,ERROR\r
+       jr nz,error9\r
 l189ah:\r
        inc de\r
        pop bc\r
@@ -4433,13 +4418,13 @@ l18b1h:
 assert_comma:\r
        call next_arg\r
        ret z\r
-l18c2h:\r
+error9:\r
        jp ERROR\r
 \r
 test_paren_close:\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp ')'\r
-       jr nz,l18c2h\r
+       jr nz,error9\r
        inc de\r
        ret\r
 \r
@@ -5678,13 +5663,13 @@ cmd_T:
 l2122h:\r
        ld (cmd_rpt),hl\r
        ld (trace_call_flag),a\r
-       ld a,(de)\r
+       call get_char_upper\r
        sub 'N'\r
        jr nz,l212eh\r
        inc de\r
 l212eh:\r
        ld (trace_N_flag),a\r
-       ld a,(de)\r
+       call get_char_upper\r
        sub 'J'\r
        jr nz,l2137h\r
        inc de\r
@@ -5751,7 +5736,7 @@ sub_21a6h:
        call skipbl\r
        xor a\r
        ld (trace_UW_flag),a\r
-       ld a,(de)\r
+       call get_char_upper\r
        cp 'U'\r
        jr z,l21b5h\r
        cp 'W'\r