Mercurial > hg > Members > kono > os9 > sbc09
changeset 98:ba0af2b8836b
fix sbc09 echo problem
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 27 Dec 2018 08:23:42 +0900 (2018-12-26) |
parents | 5aeff8abca9c |
children | 92ed427b7f7d |
files | os9/level2/cmds/sbc09.asm |
diffstat | 1 files changed, 27 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/os9/level2/cmds/sbc09.asm Thu Dec 27 01:17:31 2018 +0900 +++ b/os9/level2/cmds/sbc09.asm Thu Dec 27 08:23:42 2018 +0900 @@ -41,13 +41,12 @@ name fcs /Sbc09/ fcb edition -start - clr <stdin +start clr <stdin stx <parmptr save parameter pointer stu <work save parameter pointer lda #READ. read access mode os9 I$Open open file - bcs L0049 branch if error + lbcs L0049 branch if error sta <filepath else save path to file stx <parmptr and updated parm pointer L001F lda <filepath get path @@ -88,9 +87,19 @@ puls x,y jmp $400 -Exit lbsr setecho - clrb - os9 F$Exit +Exit lbsr setecho +* ldx <work +* leax readbuff,x +* ldb #1 +* lbsr getline +* lbsr getpoll +* lda <stdin +* os9 I$Close + + clrb + os9 F$Exit +* no return + iotbl fdb getchar-iotbl ; 0 @@ -213,25 +222,20 @@ getline * Input line at address in X, length in B. PSHS A,B,X,Y + clr ,s GETLN0 - CLRA - TFR D,Y - LDA <stdin + ldy ,s + clra OS9 I$ReadLn BCS GETLN0 LEAY -1,Y - TFR Y,D -* LDA D,X -* CMPA #C$CR -* BNE GETLN1 -* LEAY -1,Y GETLN1 STY ,S PULS A,B,X,Y,PC putline * Output string at address in X, length in B. PSHS A,B,X,Y CLRA TFR D,Y - LDA <stdin + CLRA OS9 I$WritLn PULS A,B,X,Y,PC xopenin @@ -244,22 +248,23 @@ setecho lda #1 bra sss noecho clra -sss pshs a - sta ,s - LDA <stdin +sss leas -128,s + leax ,s + pshs a + clra ldb #SS.Opt - LDX <work - leax readbuff,X OS9 I$GetStt bcs err2 LDA ,s STA PD.EKO-PD.OPT,X setopts ldb #SS.Opt - lda <stdin + clra OS9 I$SetStt err2 - puls a,pc + puls a + leas 128,s + rts delay PSHS D,X * address **$21** @@ -269,10 +274,6 @@ OS9 F$Sleep PULS D,X,PC -exit bsr setecho - clrb - os9 F$Exit - emod eom equ *