SRC = r3init.180
SRC += ddtz.180
-SRC += fifoio.180 msgbuf.180 ser1-i.180 console.180
+#SRC += fifoio.180 msgbuf.180 ser1-i.180 console.180
+SRC += ser1-i.180 console.180
SRC += romend.180
LN_DATA = C000
-DEFS = -DSTM32F1 -DBAUD=115200
-
###############################################################################
# Executables
global $co\r
\r
\r
- extrn f.init,f.in,f.out,f.i.st\r
extrn ser.init,ser.instat,ser.in,ser.out\r
- extrn msg.co\r
+; extrn f.init,f.in,f.out,f.i.st\r
+; extrn msg.co\r
\r
\r
include config.inc\r
;\r
\r
$coninit:\r
- call f.init\r
+; call f.init\r
call ser.init\r
ret\r
\r
$cists:\r
- call f.i.st\r
- ret nz\r
+; call f.i.st\r
+; ret nz\r
call ser.instat\r
ret\r
\r
$ci:\r
- call f.i.st\r
- jp nz,f.in\r
+; call f.i.st\r
+; jp nz,f.in\r
call ser.instat\r
jp nz,ser.in\r
jr $ci\r
; jp f.o.st\r
\r
$co:\r
- call msg.co\r
+; call msg.co\r
jp ser.out\r
\r
end\r
dseg\r
ddtram: \r
;todo:\r
-; The following 2 params are chageable by user.\r
+; The following 2 params are changeable by user.\r
; Should these moved to top ram?\r
;\r
ddtrst: inidat ;\r
call prt0_init\r
\r
\r
- call bufferinit\r
+;;; call bufferinit\r
\r
\r
call $coninit\r
;----------------------------------------------------------------------\r
;\r
\r
- extrn msginit,msg.sout,msg_fifo\r
- extrn tx.buf,rx.buf\r
-\r
-\r
;TODO: Make a ringbuffer module.\r
\r
global buf.init\r
\r
;----------------------------------------------------------------------\r
\r
+.comment *\r
+\r
+ extrn msginit,msg.sout,msg_fifo\r
+ extrn tx.buf,rx.buf\r
+\r
+\r
bufferinit:\r
call msginit\r
\r
db 0\r
inimsg_e:\r
\r
+ *\r
+\r
;\r
;----------------------------------------------------------------------\r
;\r
djnz ivt_i1\r
ret\r
\r
+;----------------------------------------------------------------------\r
\r
prt0_init:\r
ld a,i\r
db M_TIE0+M_TDE0 ;enable timer 0 interrupt and down count.\r
prt0it_e:\r
\r
+\r
;\r
;----------------------------------------------------------------------\r
;\r
pop hl ;041e\r
ret ;041f\r
\r
+;----------------------------------------------------------------------\r
+\r
;\r
; alloc\r
;\r
;\r
; OP: ahl = (a<<12) + (d<<8) + e\r
;\r
-;out ehl: Phys. (linear) Address\r
+;out ahl: Phys. (linear) Address\r
\r
\r
log2phys:\r
\r
; ---------------------------------------------------------\r
\r
+\r
iprt0:\r
push af\r
push hl\r
cp (hl) ; 6 while (out_idx==in_idx) \r
jr z,bg.wait ; 6 (/8) ;\r
\r
- inc a ; 4\r
ld e,a ; 4 \r
- inc e ; 4\r
ld d,0 ; 6\r
+ inc de\r
+ inc de\r
\r
ex de,hl ; 3\r
add hl,de ;10\r
ld l,(hl) ; 6\r
ex de,hl ; 3 \r
- \r
+\r
+ inc a ; 4\r
dec hl ; 4\r
and (hl) ; 6 \r
inc hl ; 4\r
ld c,(ix+o.in_idx) ;\r
ld b,0\r
add hl,bc\r
- ld b,a\r
+ ld (hl),a\r
\r
ld a,c ;\r
inc a\r
bp.wait:\r
cp (ix+o.out_idx) ;\r
jr z,bp.wait\r
- ld (hl),b\r
ld (ix+o.in_idx),a\r
\r
di ;036f\r