вернул стек к 128,128,128.
убрал строчку с фусибитами, вообщем просто привел конфиги к вашей ver2, разве что буфер по усарту побольше и скорость поменьше. убрал лишние дебаг строки. добавил нехилое ожидание между двумя символами. чуток изменил процедуру ввода команды.
здесь он принимает символ:
- Код: Выделить всё • Развернуть
Do
Gbinp = Waitkey() ' get user input
If Gbinp <> 0 Then ' something typed in?
If Gbinp = 27 Then ' use ESC for exit from interpreter
Exit Do
End If
Waitms 500
Print "get symbol:" ; Gbinp
Waitms 500
Getinput Gbinp ' give input to interpreter
End If
Loop
здесь он обрабатывает символы и составляет из них большую строку Gspcinput:
- Код: Выделить всё • Развернуть
Sub Getinput(pbbyte As Byte)
' stores bytes from user and wait for CR (&H13)
Select Case Pbbyte
Case &H0A ' do nothing
Case &H0D ' Line-end?
Print Chr(&H0d) ; Chr(&H0a) ;
Print "GOTCHA! You have entered string:" ; Gspcinput
Docommand ' analyse command and execute
Gbpcinputpointer = 1 ' reset for new user-input
Gspcinput = ""
Printprompt
Case &H08 ' backspace ?
If Gbpcinputpointer > 1 Then
Print Chr(&H08);
Decr Gbpcinputpointer
End If
Case Else ' store user-input
If Gbpcinputpointer <= Cpcinput_len Then
Mid(gspcinput , Gbpcinputpointer , 1) = Pbbyte
Incr Gbpcinputpointer
Mid(gspcinput , Gbpcinputpointer , 1) = &H00 ' string-terminator
Print Chr(pbbyte); ' echo back to user
End If
End Select
End Sub
где-то в этих процедурах происходит ошибка. об этом можно судить по тому что у вас в терминале
EdGull писал(а):GOTCHA! You have entered string:AVR-DOS: Ready f0>m0>AVR-DOS: Ready f0>m0>AVR-DOS: Ready f0>m0>AVR-DOS: Ready f0
это строка пользовательского ввода
, что очень странно, поскольку эхо работает(или нет? среда должна получится такая же как и в виндоус командной строке (пуск, выполнить, cmd))
если этот тест не пройдет, то просто перепишу пользовательский ввод(например, команда Input должна работать как раз так же, как и эти две процедуры, только бэкспейс и ескейп поддерживаться не будут)