O KiddieOS é um sistema operacional open-source básico em desenvolvimento pelo curso gratuito D.S.O.S [Desenvolvendo Sistemas Operacionais Simples]. A intenção deste sistema será: Criar, editar ou excluir arquivos, codificar em uma linguagem própria do sistema, criar objetos visuais e automatizados (desenhos) através desta linguagem, utilizar uma interface simples e intuitiva, criar novas interfaces gráficas, como: Janelas, botões, campos, etc... e estimular crianças, jovens e adultos a programar numa linguagem simples dentro do sistema operacional KiddieOS. A intenção do curso D.S.O.S é dá início ao desenvolvimento de sistemas operacionais utilizando a linguagem Assembly e entender a fundo sobre diversos conceitos internos deste tipo de sistema. Aqui neste repositório serão armazenados arquivos de APIs do KiddieOS, a imagem de disco para teste e futuramente - todo o sistema operacional completo. Visite o link abaixo para nos acompanhar no curso do Youtube, se inscreva neste canal para se manter atualizado e siga-me no GitHub. Vejo vocês lá:
MIT License
46
stars
5
forks
source link
Próximos bugs a serem resolvidos no KiddieOS: DEL, WRITE, Janelas e modo gráfico & PCI na máquina real #17
Em seguida serão listados os atuais bugs identificados em testes do KiddieOS:
[x] 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.
[x] 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.
[x] 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.
Em seguida serão listados os atuais bugs identificados em testes do KiddieOS:
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.