dec c\r
jp p,c$init$loop\r
\r
- ld hl,1100000000000000b ; assign console to HOST and ASCI1\r
+ ld hl,1000000000000000b ; assign console to HOST\r
ld (@civec),hl\r
ld (@covec),hl\r
ld hl,0000000000000000b ; assign auxiliary to nothing\r
ret\r
\r
DELL:\r
- ld a,b ;081b\r
- or a ;081c\r
- ret z ;081d\r
- call DELC ;081e\r
- jr DELL ;0821\r
+ ld a,b ;\r
+ or a ;\r
+ ret z ;\r
+ call DELC ;\r
+ jr DELL ;\r
\r
INLINE:\r
- push hl ;0823\r
- ld hl,CI.BUF ;0824\r
- ld c,(hl) ;0827\r
- inc hl ;0828\r
- ld b,000h ;0829\r
- inc hl ;082b\r
+ push hl ;\r
+ ld hl,CI.BUF ;\r
+ ld c,(hl) ;\r
+ inc hl ;\r
+ ld b,000h ;\r
+ inc hl ;\r
inlnxtch:\r
- ld a,c ;082c\r
- or a ;082d\r
- jr z,inl_e ;082e\r
- call $ci ;0830\r
- cp CR ;0833\r
- jr z,inl_e ;0835\r
- cp LF ;0837\r
- jr z,inl_e ;0839\r
- cp BS ;083b\r
- jr nz,l0844h ;083d\r
- call DELC ;083f\r
- jr inlnxtch ;0842\r
+ ld a,c ;\r
+ or a ;\r
+ jr z,inl_e ;\r
+ call $ci ;\r
+ cp CR ;\r
+ jr z,inl_e ;Accept line\r
+ cp LF ;\r
+ jr z,inl_e ;Accept line\r
+ cp BS ;\r
+ jr nz,l0844h ;\r
+ call DELC ;Delete Char\r
+ jr inlnxtch ;\r
l0844h:\r
- cp DEL ;0844\r
- jr nz,l084dh ;0846\r
- call DELC ;0848\r
- jr inlnxtch ;084b\r
+ cp DEL ;\r
+ jr nz,l084dh ;\r
+ call DELC ;Delete Char\r
+ jr inlnxtch ;\r
l084dh:\r
- cp CNTRX ;084d\r
- jr nz,l0856h ;084f\r
- call DELL ;0851\r
- jr inlnxtch ;0854\r
+ cp CNTRX ;\r
+ jr nz,l0856h ;\r
+ call DELL ;Delete Line\r
+ jr inlnxtch ;\r
l0856h:\r
- cp TAB ;0856\r
- jr nz,l085ch ;0858\r
- ld a,' ' ;085a\r
+ cp TAB ;\r
+ jr nz,l085ch ;\r
+ ld a,' ' ;\r
l085ch:\r
- ld (hl),a ;085c\r
- cp ' ' ;085d\r
- jr nc,l0869h ;085f\r
- ld a,'^' ;0861\r
- call $co ;0863\r
- ld a,(hl) ;0866\r
- add a,'@' ;0867\r
+ ld (hl),a ;\r
+ cp ' ' ;\r
+ jr nc,l0869h ;\r
+ ld a,'^' ;Controle characters\r
+ call $co ;\r
+ ld a,(hl) ;\r
+ add a,'@' ;\r
l0869h:\r
- call $co ;0869\r
- inc hl ;086c\r
- inc b ;086d\r
- dec c ;086e\r
- jr inlnxtch ;086f\r
+ call $co ;\r
+ inc hl ;\r
+ inc b ;\r
+ dec c ;\r
+ jr inlnxtch ;\r
\r
inl_e:\r
- ld hl,ci.buf+1 ;0871\r
- ld (hl),b ;0874\r
- call CRLF ;0875\r
- ld de,ci.buf+1 ;0878\r
- ld a,(de) ;087b\r
- ld b,a ;087c\r
- ld c,000h ;087d\r
- inc b ;087f\r
+ ld hl,ci.buf+1 ;\r
+ ld (hl),b ;\r
+ call CRLF ;\r
+ ld de,ci.buf+1 ;\r
+ ld a,(de) ;\r
+ ld b,a ;\r
+ ld c,000h ;\r
+ inc b ;\r
l0880h:\r
- inc de ;0880\r
- dec b ;0881\r
- jr z,l08b2h ;0882\r
- ld a,(de) ;0884\r
- bit 0,c ;0885\r
- call z,UPCASE ;0887\r
- ld (de),a ;088a\r
- cp '''' ;088b\r
- jr nz,l0880h ;088d\r
- push de ;088f\r
- dec de ;0890\r
- ld a,(de) ;0891\r
- cp '''' ;0892\r
- jr z,l08aeh ;0894\r
- dec de ;0896\r
- ld a,(de) ;0897\r
- cp '^' ;0898\r
- jr z,l08a2h ;089a\r
- dec de ;089c\r
- ld a,(de) ;089d\r
- cp '^' ;089e\r
- jr nz,l08aeh ;08a0\r
+ inc de ;\r
+ dec b ;\r
+ jr z,l08b2h ;\r
+ ld a,(de) ;\r
+ bit 0,c ;\r
+ call z,UPCASE ;\r
+ ld (de),a ;\r
+ cp '''' ;\r
+ jr nz,l0880h ;\r
+ push de ;\r
+ dec de ;\r
+ ld a,(de) ;\r
+ cp '''' ;\r
+ jr z,l08aeh ;\r
+ dec de ;\r
+ ld a,(de) ;\r
+ cp '^' ;\r
+ jr z,l08a2h ;\r
+ dec de ;\r
+ ld a,(de) ;\r
+ cp '^' ;\r
+ jr nz,l08aeh ;\r
l08a2h:\r
- inc de ;08a2\r
- push bc ;08a3\r
- call sub_0a0eh ;08a4\r
- pop bc ;08a7\r
- dec de ;08a8\r
- ld a,(de) ;08a9\r
- cp '''' ;08aa\r
- jr z,l08afh ;08ac\r
+ inc de ;\r
+ push bc ;\r
+ call sub_0a0eh ;\r
+ pop bc ;\r
+ dec de ;\r
+ ld a,(de) ;\r
+ cp '''' ;\r
+ jr z,l08afh ;\r
l08aeh:\r
- inc c ;08ae\r
+ inc c ;\r
l08afh:\r
- pop de ;08af\r
- jr l0880h ;08b0\r
+ pop de ;\r
+ jr l0880h ;\r
l08b2h:\r
- xor a ;08b2\r
- ld (de),a ;08b3\r
- ld de,ci.buf+2 ;08b4\r
- pop hl ;08b7\r
- ret ;08b8\r
+ xor a ;\r
+ ld (de),a ;\r
+ ld de,ci.buf+2 ;\r
+ pop hl ;\r
+ ret ;\r
\r
UPCASE:\r
- cp 'a' ;08b9\r
- ret c ;08bb\r
- cp 'z'+1 ;08bc\r
- ret nc ;08be\r
- and 05fh ;08bf\r
- ret ;08c1\r
+ cp 'a' ;\r
+ ret c ;\r
+ cp 'z'+1 ;\r
+ ret nc ;\r
+ and 05fh ;\r
+ ret ;\r
\r
out.hl.@:\r
- call out.hl ;08c2\r
- push de ;08c5\r
- push hl ;08c6\r
- ld de,(offs.@) ;08c7\r
- ld a,d ;08cb\r
- or e ;08cc\r
- jr z,l08ddh ;08cd\r
- call OUTBL ;08cf\r
- ld a,'@' ;08d2\r
- call OUTCHAR ;08d4\r
- and a ;08d7\r
- sbc hl,de ;08d8\r
- call out.hl ;08da\r
+ call out.hl ;\r
+ push de ;\r
+ push hl ;\r
+ ld de,(offs.@) ;\r
+ ld a,d ;\r
+ or e ;\r
+ jr z,l08ddh ;\r
+ call OUTBL ;\r
+ ld a,'@' ;\r
+ call OUTCHAR ;\r
+ and a ;\r
+ sbc hl,de ;\r
+ call out.hl ;\r
l08ddh:\r
- pop hl ;08dd\r
- pop de ;08de\r
- ret ;08df\r
+ pop hl ;\r
+ pop de ;\r
+ ret ;\r
\r
out.bin.w:\r
- ld a,h ;08e0\r
- call out.bin.b ;08e1\r
- ld a,l ;08e4\r
+ ld a,h ;\r
+ call out.bin.b ;\r
+ ld a,l ;\r
out.bin.b:\r
- ld b,008h ;08e5\r
+ ld b,008h ;\r
l08e7h:\r
- add a,a ;08e7\r
- push af ;08e8\r
- ld a,0 ;08e9\r
- adc a,a ;08eb\r
- call out.digit ;08ec\r
- pop af ;08ef\r
- djnz l08e7h ;08f0\r
- ld a,'"' ;08f2\r
- jp OUTCHAR ;08f4\r
+ add a,a ;\r
+ push af ;\r
+ ld a,0 ;\r
+ adc a,a ;\r
+ call out.digit ;\r
+ pop af ;\r
+ djnz l08e7h ;\r
+ ld a,'"' ;\r
+ jp OUTCHAR ;\r
\r
sub_08f7h:\r
- ld a,'-' ;08f7\r
- call OUTCHAR ;08f9\r
- dec hl ;08fc\r
- jp cpl.hl ;08fd\r
+ ld a,'-' ;\r
+ call OUTCHAR ;\r
+ dec hl ;\r
+ jp cpl.hl ;\r
\r
out.hl.decm:\r
- push hl ;0900\r
- call sub_08f7h ;0901\r
- db 3eh ;0904 ld a,0E5h\r
+ push hl ;\r
+ call sub_08f7h ;\r
+ db 3eh ; ld a,0E5h\r
out.hl.dec:\r
push hl\r
- ld b,6 ;0906\r
- call sub_0917h ;0908\r
- pop hl ;090b\r
- ld a,'.' ;090c\r
- call OUTCHAR ;090e\r
+ ld b,6 ;\r
+ call sub_0917h ;\r
+ pop hl ;\r
+ ld a,'.' ;\r
+ call OUTCHAR ;\r
l0911h:\r
- call OUTBL ;0911\r
- djnz l0911h ;0914\r
- ret ;0916\r
+ call OUTBL ;\r
+ djnz l0911h ;\r
+ ret ;\r
\r
\r
sub_0917h:\r
ret ;169a\r
\r
; Read Intel Hex File from console.\r
-\r
CMD.R:\r
ld hl,0 ;169b\r
- call get_lastarg_def ;169e\r
+ call get_lastarg_def ;169e get offset from command line\r
push hl ;16a1\r
ld hl,0 ;16a2\r
ld (HILOD),hl ;16a5\r
jr z,l16deh ;16c4\r
l16c6h:\r
call i.gethexbyte ;16c6\r
- pop de ;16c9\r
+ pop de ;16c9 offset\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
+ djnz l16c6h ;16d2 repeat for record len\r
+ call i.gethexbyte ;16d4 checksum\r
ld a,c ;16d7\r
and a ;16d8\r
jp nz,ERROR ;16d9 exit if checksum error\r
i.storebyte:\r
push af ;1708\r
push de ;1709\r
- ld de,TPA ;170a\r
+ ld de,TPA ;170a lowest allowed load address\r
call CP.HL.DE ;170d\r
jp c,ERROR ;1710\r
- ld de,$stcka ;1713\r
+ ld de,$stcka ;1713 highest allowed load address\r
call CP.HL.DE ;1716\r
jp nc,ERROR ;1719\r
ld de,(HILOD) ;171c\r
pop de ;1734\r
pop af ;1735\r
comst ;1736\r
- ld (hl),a ;173a\r
+ ld (hl),a ;173a store byte\r
comend\r
ret ;173b\r
\r
\r
buf:\r
db buf_end - $ - 1 ;output string length\r
- db 081h ; message start token\r
+ db 0AEh ; message start token\r
db buf_end - $ - 1 ; message length\r
db 1 ; command\r
db 1 ; subcommand\r
buf:\r
db buf_end - $ - 2 ;output string length\r
db PMSG ;output port\r
- db 081h ; message start token\r
+ db 0AEh ; message start token\r
db buf_end - $ - 1 ; message length\r
db 1 ; command\r
db 1 ; subcommand\r