FrancisBFTC / KiddieOS_Development

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

KiddieOS_v1.3.11: Atualizações do comando WRITE - Estruturação e deslocamento de textos [setas e backspace] + Resolução de bugs #16

Closed FrancisBFTC closed 7 months ago

FrancisBFTC commented 7 months ago

Bug fixes

Features

Novas rotinas implementadas

CheckToOffsetChars: Rotina que verifica se o caractere está no meio do texto, caso tiver ela fará os processamentos adequados de deslocamento textual, incluindo para quebras de linhas.

FillZeroTextMemory: Serve para preencher a memória de texto com Zeros, limpando os bytes restante debaixo do texto antes do deslocamento. Sua responsabilidade é evitar que caracteres de sobra ainda fiquem em outras partes do editor.

CheckCharBack: Verifica inicialmente se o caractere anterior é uma quebra de linha no BackSpace, se for, ele toma uma ação pra zerar este caractere e depois executar EraseCharBack para apagar o caractere 0x0D, ou apagar o último caractere.

SearchPositionBack: Rotina que identifica a coluna exata da linha anterior no momento que um backspace é digitado na 1ª coluna da linha atual, ou no momento da tecla arrow left, posicionando o cursor (podendo ser na coluna final ou não).

WriteEditor.ArrowLeft: Processa o deslocamento do cursor pro lado esquerdo, no buffer e na tela.

WriteEditor.ArrowRight: Processa o deslocamento do cursor pro lado direito, no buffer e na tela.

WriteEditor.ArrowUp: Processa o deslocamento do cursor para cima, no buffer e na tela. Esta rotina precisa executar de forma mais rígida em cálculos, usando a função citada logo abaixo.

GetZeroTextMemory: Contabiliza a quantidade de caracteres da linha anterior no editor a partir da memória de texto com byte nulo no final da String (este byte é colocado pelo próprio código, pois por padrão não são zerados).

PutZeroTextMemory: Código que coloca o byte nulo no final de Strings de cada linha do editor na memória de texto. Isto significa que qualquer quebra de linha no editor, seja ela proposital ou não, terá um byte nulo substituído na memória de texto.

Observações: Todas estas atualizações não estão 100% estáveis, pois nem todas as situações poderá funcionar da forma correta, então mais algumas atualizações para correções ainda serão feitas.