Skip to content

Próximos bugs a serem resolvidos no KiddieOS: DEL, WRITE, Janelas e modo gráfico & PCI na máquina real #17

@FrancisBFTC

Description

@FrancisBFTC

Em seguida serão listados os atuais bugs identificados em testes do KiddieOS:

  • O comando DEL quando exclui um arquivo entre as entradas, zerando a entrada, o comando de listagem não apresenta mais entradas que estariam após esta que foi excluída, apesar de ainda o comando READ ou WRITE conseguir identificar as entradas posteriores.
    resolvido/solução: O problema não estava especificamente no comando DEL mas sim no comando LF. A listagem de arquivos lia até o próximo byte zerado. A solução foi adaptá-lo pra ler CX vezes, onde CX será a quantidade de entradas que poderá ser lida, quantidade esta calculada no retorno da rotina de leitura no FAT16.
  • Novo bug encontrado: O sistema apresenta comportamentos inadequados quando o comando DEL não encontra o arquivo, ao invés de simplesmente exibir a mensagem de erro.
    resolvido/solução: Na rotina DeleteThisFile do FAT16 não estava desempilhando ES e assim o código estava retornando em endereço errado. Também foi atribuído um código de erro para AL quando o arquivo não é encontrado no retorno da rotina e assim é chamado CheckErrorFile na rotina do comando DEL.

Outros bugs resolvidos: O comando ATTRIB em alguns casos, como no diretório users\bftc\images\ estava apresentando o mesmo comportamento do comando DEL mesmo encontrando arquivos. Então foi corrigido a falta de desempilhamento de ES e também atribuído a quantidade de entradas em CX, por meio de entries_count, tanto pro DEL como pro ATTRIB. A chamada da rotina Reload_Directory pra recarregar o diretório foi comentada/apagada do comando DEL, pois a rotina Load_File_Path que é chamada anteriormente já faz esse papel, como chamando o próprio Reload_Directory. Isso foi descoberto devido a falta de necessidade dessa chamada no próprio comando ATTRIB, pois umas das necessidades tanto do comando DEL, quanto ATTRIB, é obter a quantidade de entradas do diretório, vindo de entries_count para CX, que é processada pelo Reload_Directory, por sua vez chamado pelo Load_File_Path, em ambos os comandos. Em breve a estratégia de entries_count também será utilizado para LoadThisFile e OpenThisFile.

  • O comando WRITE ainda está incompleto devido a falta de processamento do Arrow Down, além da instabilidade de processamento de texto, como em casos de deslocamento de textos quando o "PrintData" resolve rolar a tela pra cima.
  • Apesar do modo gráfico estar sendo executado na máquina virtual, imprimindo imagens BMP, ela não está executando na máquina real e as janelas gráficas não estão sendo executadas, nem na máquina real nem virtual.
  • O Driver PCI na máquina real apresenta na tela caracteres resultantes de lixo de memória quando é executado na máquina real, ao invés de apresentar Strings de hardware como na máquina virtual.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions