- ld l,a ;16be\r
- call i.gethexbyte ;16bf record type (ignored)\r
- ld a,b ;16c2\r
- and a ;16c3 record len == 0?\r
- jr z,l16deh ;16c4\r
-l16c6h:\r
- call i.gethexbyte ;16c6\r
- pop de ;16c9\r
- push de ;16ca\r
- push hl ;16cb\r
- add hl,de ;16cc\r
- call i.storebyte ;16cd\r
- pop hl ;16d0\r
- inc hl ;16d1\r
- djnz l16c6h ;16d2\r
- call i.gethexbyte ;16d4\r
- ld a,c ;16d7\r
- and a ;16d8\r
- jp nz,ERROR ;16d9 exit if checksum error\r
- jr w_recstart ;16dc next record\r
-l16deh:\r
- pop hl ;16de\r
- call i.gethexbyte ;16df\r
- jp l173fh ;16e2\r
-\r
-i.gethexbyte:\r
- call sub_16f6h ;16e5\r
- rlca ;16e8\r
- rlca ;16e9\r
- rlca ;16ea\r
- rlca ;16eb\r
- ld d,a ;16ec\r
- call sub_16f6h ;16ed\r
- add a,d ;16f0\r
- ld d,a ;16f1\r
- add a,c ;16f2\r
- ld c,a ;16f3\r
- ld a,d ;16f4\r
- ret ;16f5\r
-\r
-sub_16f6h:\r
- call i.getchar ;16f6\r
- jr z,l16ffh ;16f9\r
- call sub_0d26h ;16fb\r
- ret nc ;16fe\r
-l16ffh:\r
- jp ERROR ;16ff\r
-\r
-i.getchar:\r
- call $ci ;1702\r
- cp 01ah ;1705\r
- ret ;1707\r
-\r
-i.storebyte:\r
- push af ;1708\r
- push de ;1709\r
- ld de,TPA ;170a\r
- call CP.HL.DE ;170d\r
- jp c,ERROR ;1710\r
- ld de,$stcka ;1713\r
- call CP.HL.DE ;1716\r
- jp nc,ERROR ;1719\r
- ld de,(HILOD) ;171c\r
- call CP.HL.DE ;1720\r
- jr c,l1728h ;1723\r
- ld (HILOD),hl ;1725\r
-l1728h:\r
- ld de,(MAXLOD) ;1728\r
- call CP.HL.DE ;172c\r
- jr c,l1734h ;172f\r
- ld (MAXLOD),hl ;1731\r
-l1734h:\r
- pop de ;1734\r
- pop af ;1735\r
- comst ;1736\r
- ld (hl),a ;173a\r
- comend\r
- ret ;173b\r
-\r
-l173ch:\r
- call assert_eol ;173c\r
-l173fh:\r
- ld hl,MSG_high ;173f\r
- call PSTR ;1742\r
- ld hl,(HILOD) ;1745\r
- call out.hl ;1748\r
- ld hl,MSG_max ;174b\r
- call PSTR ;174e\r
- ld hl,(MAXLOD) ;1751\r
- call out.hl ;1754\r
- jp CRLF ;1757\r
-\r
-MSG_high:\r
- DC 'High = '\r
-MSG_max:\r
- DC ' Max = '\r
-\r
-CMD.A:\r
- ld hl,(lst.A) ;1769\r
- call get_lastarg_def ;176c\r
- push hl ;176f\r
- pop iy ;1770\r
- ld hl,l17c4h ;1772\r
- ld (CMD_ERR),hl ;1775\r
- ld (XB068),sp ;1778\r
-l177ch:\r
- push iy ;177c\r
- pop hl ;177e\r
- ld (lst.A),hl ;177f\r
- ld (OFFS.pc),hl ;1782\r
- push hl ;1785\r
- call sub_1f3fh ;1786\r
- pop iy ;1789\r
- ld c,b ;178b\r
- ld de,(offs.@) ;178c\r
- ld a,d ;1790\r
- or e ;1791\r
- ld b,011h ;1792\r
- jr z,l1798h ;1794\r
- ld b,019h ;1796\r
-l1798h:\r
- call OUTBL ;1798\r
- ld a,(CON.COL) ;179b\r
- cp b ;179e\r
- jr c,l1798h ;179f\r
- push bc ;17a1\r
- call INLINE ;17a2\r
- pop bc ;17a5\r
- call SKIPBL ;17a6\r
- cp '.' ;17a9\r
- ret z ;17ab\r
- cp '-' ;17ac\r
- jr nz,l17b6h ;17ae\r
- ld iy,(XB06C) ;17b0\r
- jr l177ch ;17b4\r
-l17b6h:\r
- and a ;17b6\r
- call nz,sub_17cdh ;17b7\r
- ld (XB06C),iy ;17ba\r
- ld b,0 ;17be\r
- add iy,bc ;17c0\r
- jr l177ch ;17c2\r
-l17c4h:\r
- call l07eah ;17c4\r
- ld sp,(XB068) ;17c7\r
- jr l177ch ;17cb\r
-\r
-sub_17cdh:\r
- call SKIPBL ;17cd\r
- ld hl,t_MNEMONICS ;17d0\r
- call sub_0a15h ;17d3\r
- jp nc,ERROR ;17d6\r
- call SKIPBL ;17d9\r
- push de ;17dc\r
- ld a,b ;17dd\r
- add a,b ;17de\r
- add a,b ;17df\r
- ld hl,b_0x17EE_start ;17e0\r
- call ADD_HL_A ;17e3\r
- ld e,(hl) ;17e6\r
- inc hl ;17e7\r
- ld d,(hl) ;17e8\r
- inc hl ;17e9\r
- ld b,(hl) ;17ea\r
- ex de,hl ;17eb\r
- pop de ;17ec\r
- jp (hl) ;17ed\r
-\r
-b_0x17EE_start:\r
- defw l1b54h ;17ee\r
-\r
-b_0x17F0_start:\r
- defb 088h ;17f0\r
-\r
-b_0x17F1_start:\r
- defw l1b74h ;17f1\r
-\r
-b_0x17F3_start:\r
- defb 080h ;17f3\r
-\r
-b_0x17F4_start:\r
- defw l1babh ;17f4\r
-\r
-b_0x17F6_start:\r
- defb 0a0h ;17f6\r
-\r
-b_0x17F7_start:\r
- defw l1c14h ;17f7\r
-\r
-b_0x17F9_start:\r
- defb 040h ;17f9\r
-\r
-b_0x17FA_start:\r
- defw l1c38h ;17fa\r
-\r
-b_0x17FC_start:\r
- defb 0c4h ;17fc\r
-\r
-b_0x17FD_start:\r
- defw l1b36h ;17fd\r
-\r
-b_0x17FF_start:\r
- defb 03fh ;17ff\r
-\r
-b_0x1800_start:\r
- defw l1babh ;1800\r
-\r
-b_0x1802_start:\r
- defb 0b8h ;1802\r
-\r
-b_0x1803_start:\r
- defw gen.opc.ED2 ;1803\r
-\r
-b_0x1805_start:\r
- defb 0a9h ;1805\r
-\r
-b_0x1806_start:\r
- defw gen.opc.ED2 ;1806\r
-\r
-b_0x1808_start:\r
- defb 0b9h ;1808\r
-\r
-b_0x1809_start:\r
- defw gen.opc.ED2 ;1809\r
-\r
-b_0x180B_start:\r
- defb 0a1h ;180b\r
-\r
-b_0x180C_start:\r
- defw gen.opc.ED2 ;180c\r
-\r
-b_0x180E_start:\r
- defb 0b1h ;180e\r
-\r
-b_0x180F_start:\r
- defw l1b36h ;180f\r
-\r
-b_0x1811_start:\r
- defb 02fh ;1811\r
-\r
-b_0x1812_start:\r
- defw l1b36h ;1812\r
-\r
-b_0x1814_start:\r
- defb 027h ;1814\r
-\r
-b_0x1815_start:\r
- defw l1dabh ;1815\r
-\r
-b_0x1817_start:\r
- defb 005h ;1817\r
-\r
-b_0x1818_start:\r
- defw l1b36h ;1818\r
-\r
-b_0x181A_start:\r
- defb 0f3h ;181a\r
-\r
-b_0x181B_start:\r
- defw l1ca4h ;181b\r
-\r
-b_0x181D_start:\r
- defb 010h ;181d\r
-\r
-b_0x181E_start:\r
- defw l1b36h ;181e\r
-\r
-b_0x1820_start:\r
- defb 0fbh ;1820\r
-\r
-b_0x1821_start:\r
- defw l1d54h ;1821\r
-\r
-b_0x1823_start:\r
- defb 0e3h ;1823\r
-\r
-b_0x1824_start:\r
- defw l1b36h ;1824\r
-\r
-b_0x1826_start:\r
- defb 0d9h ;1826\r
-\r
-b_0x1827_start:\r
- defw l1b36h ;1827\r
-\r
-b_0x1829_start:\r
- defb 076h ;1829\r
-\r
-b_0x182A_start:\r
- defw l1cbfh ;182a\r
-\r
-b_0x182C_start:\r
- defb 046h ;182c\r
-\r
-b_0x182D_start:\r
- defw l1cf8h ;182d\r
-\r
-b_0x182F_start:\r
- defb 040h ;182f\r
-\r
-b_0x1830_start:\r
- defw l1dabh ;1830\r
-\r
-b_0x1832_start:\r
- defb 004h ;1832\r
-\r
-b_0x1833_start:\r
- defw gen.opc.ED2 ;1833\r
-\r
-b_0x1835_start:\r
- defb 0aah ;1835\r
-\r
-b_0x1836_start:\r
- defw gen.opc.ED2 ;1836\r
-\r
-b_0x1838_start:\r
- defb 0bah ;1838\r
-\r
-b_0x1839_start:\r
- defw gen.opc.ED2 ;1839\r
-\r
-b_0x183B_start:\r
- defb 0a2h ;183b\r
-\r
-b_0x183C_start:\r
- defw gen.opc.ED2 ;183c\r
-\r
-b_0x183E_start:\r
- defb 0b2h ;183e\r
-\r
-b_0x183F_start:\r
- defw l1c5eh ;183f\r
-\r
-b_0x1841_start:\r
- defb 0c2h ;1841\r
-\r
-b_0x1842_start:\r
- defw l1cabh ;1842\r
-\r
-b_0x1844_start:\r
- defb 020h ;1844\r
-\r
-b_0x1845_start:\r
- defw l1934h ;1845\r
-\r
-b_0x1847_start:\r
- defb 040h ;1847\r
-\r
-b_0x1848_start:\r
- defw gen.opc.ED2 ;1848\r
-\r
-b_0x184A_start:\r
- defb 0a8h ;184a\r
-\r
-b_0x184B_start:\r
- defw gen.opc.ED2 ;184b\r
-\r
-b_0x184D_start:\r
- defb 0b8h ;184d\r
-\r
-b_0x184E_start:\r
- defw gen.opc.ED2 ;184e\r
-\r
-b_0x1850_start:\r
- defb 0a0h ;1850\r
-\r
-b_0x1851_start:\r
- defw gen.opc.ED2 ;1851\r
-\r
-b_0x1853_start:\r
- defb 0b0h ;1853\r
-\r
-b_0x1854_start:\r
- defw gen.opc.ED2 ;1854\r
-\r
-b_0x1856_start:\r
- defb 044h ;1856\r
-\r
-b_0x1857_start:\r
- defw l1b36h ;1857\r
-\r
-b_0x1859_start:\r
- defb 000h ;1859\r
-\r
-b_0x185A_start:\r
- defw l1babh ;185a\r
-\r
-b_0x185C_start:\r
- defb 0b0h ;185c\r
-\r
-b_0x185D_start:\r
- defw gen.opc.ED2 ;185d\r
-\r
-b_0x185F_start:\r
- defb 0bbh ;185f\r
-\r
-b_0x1860_start:\r
- defw gen.opc.ED2 ;1860\r
-\r
-b_0x1862_start:\r
- defb 0b3h ;1862\r
-\r
-b_0x1863_start:\r
- defw l1d2ch ;1863\r
-\r
-b_0x1865_start:\r
- defb 041h ;1865\r
-\r
-b_0x1866_start:\r
- defw gen.opc.ED2 ;1866\r
-\r
-b_0x1868_start:\r
- defb 0abh ;1868\r
-\r
-b_0x1869_start:\r
- defw gen.opc.ED2 ;1869\r
-\r
-b_0x186B_start:\r
- defb 0a3h ;186b\r
-\r
-b_0x186C_start:\r
- defw l1ce4h ;186c\r
-\r
-b_0x186E_start:\r
- defb 0c1h ;186e\r
-\r
-b_0x186F_start:\r
- defw l1ce4h ;186f\r
-\r
-b_0x1871_start:\r
- defb 0c5h ;1871\r
-\r
-b_0x1872_start:\r
- defw l1c14h ;1872\r
-\r
-b_0x1874_start:\r
- defb 080h ;1874\r
-\r
-b_0x1875_start:\r
- defw l1c50h ;1875\r
-\r
-b_0x1877_start:\r
- defb 0c0h ;1877\r
-\r
-b_0x1878_start:\r
- defw gen.opc.ED2 ;1878\r
-\r
-b_0x187A_start:\r
- defb 04dh ;187a\r
-\r
-b_0x187B_start:\r
- defw gen.opc.ED2 ;187b\r
-\r
-b_0x187D_start:\r
- defb 045h ;187d\r
-\r
-b_0x187E_start:\r
- defw l1bd8h ;187e\r
-\r
-b_0x1880_start:\r
- defb 010h ;1880\r
-\r
-b_0x1881_start:\r
- defw l1b36h ;1881\r
-\r
-b_0x1883_start:\r
- defb 017h ;1883\r
-\r
-b_0x1884_start:\r
- defw l1bd8h ;1884\r
-\r
-b_0x1886_start:\r
- defb 000h ;1886\r
-\r
-b_0x1887_start:\r
- defw l1b36h ;1887\r
-\r
-b_0x1889_start:\r
- defb 007h ;1889\r
-\r
-b_0x188A_start:\r
- defw gen.opc.ED2 ;188a\r
-\r
-b_0x188C_start:\r
- defb 06fh ;188c\r
-\r
-b_0x188D_start:\r
- defw l1bd8h ;188d\r
-\r
-b_0x188F_start:\r
- defb 018h ;188f\r
-\r
-b_0x1890_start:\r
- defw l1b36h ;1890\r
-\r
-b_0x1892_start:\r
- defb 01fh ;1892\r
-\r
-b_0x1893_start:\r
- defw l1bd8h ;1893\r
-\r
-b_0x1895_start:\r
- defb 008h ;1895\r
-\r
-b_0x1896_start:\r
- defw l1b36h ;1896\r
-\r
-b_0x1898_start:\r
- defb 00fh ;1898\r
-\r
-b_0x1899_start:\r
- defw gen.opc.ED2 ;1899\r
-\r
-b_0x189B_start:\r
- defb 067h ;189b\r
-\r
-b_0x189C_start:\r
- defw l1cd5h ;189c\r
-\r
-b_0x189E_start:\r
- defb 0c7h ;189e\r
-\r
-b_0x189F_start:\r
- defw l1b54h ;189f\r
-\r
-b_0x18A1_start:\r
- defb 098h ;18a1\r
-\r
-b_0x18A2_start:\r
- defw l1b36h ;18a2\r
-\r
-b_0x18A4_start:\r
- defb 037h ;18a4\r
-\r
-b_0x18A5_start:\r
- defw l1c14h ;18a5\r
-\r
-b_0x18A7_start:\r
- defb 0c0h ;18a7\r
-\r
-b_0x18A8_start:\r
- defw l1bd8h ;18a8\r
-\r
-b_0x18AA_start:\r
- defb 020h ;18aa\r
-\r
-b_0x18AB_start:\r
- defw l1bd8h ;18ab\r
-\r
-b_0x18AD_start:\r
- defb 028h ;18ad\r
-\r
-b_0x18AE_start:\r
- defw l1bd8h ;18ae\r
-\r
-b_0x18B0_start:\r
- defb 038h ;18b0\r
-\r
-b_0x18B1_start:\r
- defw l1babh ;18b1\r
-\r
-b_0x18B3_start:\r
- defb 090h ;18b3\r
-\r
-b_0x18B4_start:\r
- defw l1babh ;18b4\r
-\r
-b_0x18B6_start:\r
- defb 0a8h ;18b6\r
-\r
-b_0x18B7_start:\r
- defw A.IN0 ;18b7\r
-\r
-b_0x18B9_start:\r
- defb 000h ;18b9\r
-\r
-b_0x18BA_start:\r
- defw A.MLT ;18ba\r
-\r
-b_0x18BC_start:\r
- defb 04ch ;18bc\r
- ld b,e ;18bd\r
- dec de ;18be\r
-\r
-b_0x18BF_start:\r
- defb 08bh ;18bf\r
-\r
-b_0x18C0_start:\r
- defw gen.opc.ED2 ;18c0\r
-\r
-b_0x18C2_start:\r
- defb 09bh ;18c2\r
-\r
-b_0x18C3_start:\r
- defw gen.opc.ED2 ;18c3\r
-\r
-b_0x18C5_start:\r
- defb 083h ;18c5\r
+ ld l,a\r
+ call i.gethexbyte ;16bf record type (ignored)\r
+ ld a,b\r
+ and a ;16c3 record len == 0?\r
+ jr z,l16deh\r
+l16c6h:\r
+ call i.gethexbyte\r
+ pop de ;16c9 offset\r
+ push de\r
+ push hl\r
+ add hl,de\r
+ call i.storebyte\r
+ pop hl\r
+ inc hl\r
+ djnz l16c6h ;16d2 repeat for record len\r
+ call i.gethexbyte ;16d4 checksum\r
+ ld a,c\r
+ and a\r
+ jp nz,ERROR ;16d9 exit if checksum error\r
+ jr w_recstart ;16dc next record\r
+l16deh:\r
+ pop hl\r
+ call i.gethexbyte\r
+ jp l173fh\r