29
R E L A T Ó R I O BETA IDS2001 ne – V1.0 Jorge Braga da Silva (  [email protected] ) 1 Revisado em outubro de 2005    F   o    t   o   :    J   o   r   g   e    B   r   a   g   a     o   u    t    2    0    0    5

RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

Embed Size (px)

Citation preview

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 1/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 1

Revisado em outubro de 2005

   F  o   t  o  :   J  o  r  g  e

   B  r  a  g  a

  –

  o  u   t   2   0   0   5

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 2/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 2

I – GENERALIDADES=================

1 - MAPA DE MEMÓRIA GENERALIZADO E AS MEMÓRIAS DA IDS2001 ne 

   N    Ã   O   I   M   P   L   E   M   E   N   T   A   D   A   N   O   T

   K   9   0   X

DD...DD BLOCO Bn

16 KBytesRAM

HH...HH

DD...DD+1-16K HH...HH+1-16K

DD...DD-16K BLOCO Bn-116 KBytes

RAM

HH...HH

DD...DD+1-32K HH...HH+1-32K

.

.

.

.

.

.

.

.

.73.327 BLOCO 5

16 KBytesRAM

11FFF

69.632 1100069.631 BLOCO 4

16 KBytesRAM

10FFF

65.536 10000

   M   E   M

    Ó   R   I   A   O   N  -   B

   O   A   R   D   D   O   T   K   9   0   X

65.535 BLOCO 316 KBytes

RAM

FFFF

49.152 C00049.151 BLOCO 2

16 KBytesRAM

BFFF

32.768 800032.767 BLOCO 1

16 KBytesRAM

7FFF

16.384 4000 MEMÓRIAS DA IDS2001ne16.383

BLOCO 0

16 KBytesROM-BASIC

3FFF 16.383d

BLOCO 0.116 KBytes

(ROM-DOS naBETA)

3FFF

00000 0000 00000d 0000Figura 1 - Mapa de memória generalizado e as memórias da IDS2001ne. Os quatro primeiros blocos existemfisicamente no TK90X e seus endereços têm uma correspondência biunívoca com os endereços das páginas de memória do Z80. OBloco 0.1 é acrescentado com a inclusão da IDS2001ne e o circuito chaveia a página 0 do Z80 entre os Blocos 0 e 0.1. Os Blocosde 4 a Bn representam genericamente possíveis ampliações de memória física, como por exemplo os Spectrum 128 e Spectrum +3,nos quais se implementou circuitos para que as quatros páginas do Z80 sejam chaveadas em 12 blocos de memória física.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 3/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 3

2 – DEFINIÇÕES E CONVENÇÕES:

Âmbito deste relatório: Em princípio, as definições e terminologias usadas a seguir sãoaplicáveis somente aos relatórios e outros documentos elaborados pela Snchron. O sentido dos termospodem estar de acordo com o uso corrente ou não, mas todo esforço foi feito para que refletissemexatamente o sentido já consagrado no meio técnico.

Bases numéricas: Todos os números neste relatório estão na base dez exceto quandoespecificado ao contrário. Ex: 123o (octal), 123d (decimal), 0101b (binário), 1234h (hexadecimal). Osnúmeros representados em decimal não terão indicador. Ex: 1234 é um decimal.

Memória física: Toda memória contida em circuitos integrados.

Memória primária: Memória física instalada na motherboard do TK90X. Os 64 K bytes do TK90Xsão uma memória primária.

Bloco: 16 K bytes contínuos e lineares de memória física. Vários blocos podem ser concatenados para formar um banco de memória física, por exemplo, no Spectrum 128K existem 12blocos, perfazendo um total de 192 KB de memórias RAM e ROM.

Página: Faixa de 16 K bytes contínuos e lineares dentro da qual o microprocessador pode gerar endereços. O Z80 pode endereçar numa faixa de endereços lineares de 0 a 65.535. Diz-se, então, paraefeitos desse relatório, que sua capacidade de endereçamento é de 4 páginas. Já o 8088 tem capacidadepara endereçar 64 páginas.

Paginar um bloco: No TK90X, um modo comum do sistema operacional (SO) vencer os limitesde endereçamento do seu microprocessador é fazendo paginação em um conjunto de blocos com maisde 64 KB de memória. Para isso o SO manipula um circuito eletrônico do hardware para desviar a páginaendereçada pelo microprocessador para um dos n blocos de modo que o processamento não sofradescontinuidade nem perdas de informações. No caso objeto desse relatório, no qual se considera a IDS2001ne nectada, temos normalmente o TK90X operando sobre cinco blocos de memórias, quatro dopróprio micro e um da interface, totalizando 5 x 16K = 80K total de memória física. Portanto, um circuitoeletrônico terá a incumbência de chavear ou paginar a ROM BETA no lugar da ROM BASIC, e vice-versa,

conforme seja adequado em cada momento. É obvio que as memórias físicas estão presas na placa e,portanto, não irão se mover para ocupar uma o lugar da outra. Na verdade a página 0 (veja figura 1) doZ80 é que é desviada pelo circuito, a comando do SO, para ser acessada no bloco físico correto. Nestecaso a ROM BETA no interior da interface.

Banco de memórias: Toda a memória de um sistema, por exemplo, o banco de memória doTK90X é de 64 K bytes (16 K bytes de ROM e 48 K bytes de RAM) e da IDS2001ne é 16 K bytes deROM.

Banco de memória RAM: Toda a RAM de um sistema.

Banco de memória ROM: Toda a ROM de um sistema.

 _ ABCD: Sinal qualquer ativo em nível lógico zero.

ABCD: Sinal qualquer ativo em nível lógico um.

SODIS BETA: Sistema Operacional de Disco da BETA.

PONTE: Faixa de endereços de memória na página 0 (no caso da IDS 2001ne, os endereços de3C00h a 3CFFh) que, através de mecanismos de hardware de paginação de memórias físicas, permiteao SODIS BETA acessar rotinas na ROM BASIC e até mesmo na RAM do micro. Quando o Z80 acessa apágina 0 nesta faixa, estando o SODIS BETA no MODO PONTE e com a ponte não bloqueada, é a ROMBETA que estará visível ao Z80. Rotinas aí contidas preparam o ambiente para o acesso à ROM BASIC eposterior retorno ao ponto original do programa. Se o Z80 endereçar fora dessa faixa, mesmo que seja na

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 4/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 4

página 0 e respeitadas as demais condições, é a ROM BASIC ou a RAM que estará visível. Neste casoisso ocorre nos acessos entre 0000h a 3BFFh, entre 3D00h a 3FFFh e de 4000h a FFFFh.

JET SKI: Faixa de endereços de memória de 0000h a 3FFFh que, através de mecanismos dehardware de paginação de memórias físicas, permite ao SODIS BETA acessar rotinas em toda aextensão de sua própria memória. Neste caso está ativado o MODO JET SKI e somente ROM BETAestará visível ao Z80 na página 0. O fluxograma da figura 2 detalha melhor o que foi considerado parasos modos JET SKI e PONTE.

3 – FLUXOGRAMA DO FUNCIONAMENTO GERAL DA IDS2001ne 

Figura 2 - Fluxograma do funcionamento geral Da IDS2001ne. Trata apenas da lógica do circuito elétrico quecompatibiliza os demais circuitos (impressora e FDC) às características do hardware do TK90X.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 5/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 5

4 – DIAGRAMA EM BLOCOS DA IDS2001ne 

Figura 3 – Diagrama em blocos da IDS2001ne.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 6/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 6

II – CIRCUITOS DE APOIO DA IDS2001ne=================================

1 – CIRCUITO DE PAGINAÇÃO NO POWER-ON E RESET:

Figura 4 – Circuito de paginação ao ligar e ao resetar o micro.

 A - NO POWER ON (AO LIGAR O MICRO):

1 – Se a IDS2001ne estiver ligada a um TK90X/95, LCK17 = 1 é invisível para ocircuito, ou seja, não produz qualquer alteração no funcionamento padrão da IDS. Neste caso os itens 2 e3 abaixo descrevem o comportamento inicial da interface. Porém o mesmo não é verdadeiro se noPOWER ON a IDS estiver conectada ao TK128. Neste caso o sinal LCK vai para nível lógico 0 devido aoprocesso interno de inicialização do TK128 e, como conseqüência, a IDS fica adormecida enquanto ousuário não acessar o MODO 48 K do TK128. Quando isso ocorre LCK vai para nível lógico 1 e a IDSacorda ocorrendo o processo descrito em 2 e 3. Para a IDS é como se acabasse de ocorrer o POWERON num TK90X/95 comum (Figura 4).

2 - O circuito dos monoestáveis (veja Figura 4) produz o pulso negativo _CLR quelimpa (configura para "0") os flip-flops do BLOQUEADOR DA PONTE, do BLOQUEADOR DO SELETORe também todos os flip-flops do CONFIG CCT.

2.1 - A saída _BLOQPONTE do BLOQUEADOR DA PONTE vai para "1"deixando a PONTE (faixa de endereços de 3C00h a 3CFFh na ROM BETA) desbloqueada.

2.2 – A saída BLOQSEL do BLOQUEADOR DO SELETOR vai para "0",desbloqueando o SELETOR.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 7/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 7

2.3 – Todas as saídas do 74LS273, no CONFIG CCT, vão para "0". Então _JET SKI / PONTE = "0" implicando que o MUX seleciona as linhas de endereço A15 e A14 paraacessarem a saída _TK90XROMCS. Com isso todo acesso do Z80 endereçado para memória entre0000h e 3FFFh irá colocar a ROM BETA visível (paginada, chaveada) na PÁGINA 0 domicroprocessador. Este é o chamado MODO JET SKI de operação da IDS2001ne. Veja abaixo o mapade endereços do MODO JET SKI no POWER ON.

HEX DEC

BINÁRIO

   /_   J   E   T   S   K   I   /   P   O   N   T   E

   B   L   O   Q   S   E   L

   /_   B   L   O   Q   P   O   N   T   E

   A   1   5

   A   1   4

   A   1   3

   A   1   2

   A   1   1

   A   1   0

   A   9

   A   8

   A   7

   A   6

   A   5

   A   4

   A   3

   A   2

   A   1

   A   0

0000 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 • •

3FFF 16383 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 • •

LEGENDA:Sinal decodificado fisicamente no circuito

• Nível lógico do sinal é logicamente irrelevante

Figura 5 - MODO JET SKI no POWER ON e RESET de hardware.

3 – O SODIS BETA será executado e fará o papel do BASIC na configuração einicialização do ambiente. Entre outras atividades, fará o teste de RAM disponível e incializará asvariáveis de sistema do BASIC, da BETA e da microdrive, se estiver presente.

3.1 – Como _IOREQ' = "1" porque o flip-flop do BLOQUEADOR DOSELETOR foi resetado, não será possível o I/O com as interfaces plugadas no conector de expansão daIDS2001ne. Quando o SODIS BETA não necessitar de I/O com a IDS2001ne, deixará o SELETORdesbloqueado, permitindo que as interfaces sejam reconhecidas pelo TK90X, como veremos maisadiante.

B - NO RESET DE HARDWARE DO Z80:

1 – Idem acima para o POWER ON.

C - OBSERVAÇÕES:

1 – Como visto acima, no POWER ON ou no caso de RESET de hardware nocaso do micro ser um TK90X/95 ou na entrada do MODO 48K se for um TK128, a IDS entra no modoJET SKI, no qual toda ROM BETA ficará visível para a PÁGINA 0 do Z80. Pela Figura 5 observa-se quepara manter-se neste modo basta que /_JET SKI / PONTE = "0", não influindo se o SELETOR estábloqueado ou não ou se a PONTE está bloqueada ou não. O SELETOR e a PONTE estarãodesbloqueados obrigatoriamente na ocorrência de POWER ON e RESET de hardware. Podemos ver,pela Figura 2, que no MODO JET SKI não é relevante o bloqueio ou não da PONTE.

2 - Mas o desbloqueio do SELETOR implica na impossibilidade de I/O com outrasinterfaces (desde que conectadas no barramento de expansão da IDS). Já o bloqueio do SELETORimpede que se troque o modo (no caso, de JET SKI para PONTE) porém não impede o funcionamentonormal do MODO JET SKI que está ativado; impede também o I/O com a IDS (impressora e FDC) maslibera I/O com outras interfaces ligadas à IDS.

2 – CIRCUITO DE PAGINAÇÃO COM RAND USR 15360 E RAND USR 15363:

 A - COM RAND USR 15360:

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 8/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 8

1 – O TK90X está no modo imediato (não está rodando programas do usuário).

2 – O ambiente do SODIS BETA já foi inicializado, embora o TK90X esteja nomodo BASIC (está com um dos cursores do BASIC na tela).

Figura 5 – Circuito de paginação com RAND USR 15360 e RAND USR 15363.

3 – Para que o RAND USR 15360 seja corretamente executado, em algummomento anterior o SODIS BETA fez o seguinte (acompanhe pela Figura 5):

3.1 – Escreveu um dado na PORTA FCh, com a seguinte configuraçãopara os bits D7 e D6:

D7 = "0": leva BLOQSEL a "0", cujo efeito é desbloquear oSELETOR. O I/O com periféricos do TK90X, plugados noconector de expansão da IDS2001ne, fica bloqueado.

D6 = "0": leva /_BLOQPONTE a "1", cujo efeito é desbloquear aPONTE.

3.2 – Escreveu um dado na PORTA FFh, com o bit D7 = "1", alterandoem CONFIG CCT somente a saída /_JET SKI / PONTE para nível "1", cujo efeito é fazer o MUXselecionar o MODO PONTE.

3.3 – Escreveu um dado na PORTA FCh, com a seguinte configuraçãopara os bits D7 e D6:

D7 = "1": leva BLOQSEL a "1", cujo efeito é bloquear o SELETOR.O I/O com periféricos do TK90X, plugados no conector deexpansão da IDS2001ne, fica desbloqueado.

D6 = "0": mantém /_BLOQPONTE em "1", cujo efeito é manter desbloqueada a PONTE.

4 – Após a seqüência acima, o circuito da IDS2001ne termina no MODO PONTEcom a PONTE desbloqueada. Todo acesso do Z80 à sua PÁGINA 0 terá a seguinte visibilidade dememórias:

ENDEREÇOS VISIBILIDADEDe 0000h a 3BFFh ROM DO TK90XDe 3C00h a 3CFFh ROM DA IDS2001neDe 3D00h a 3FFFh ROM DO TK90X

5 – O usuário digita RAND USR 15360 no teclado do TK90X. Ao apertar a teclaENTER, o fluxo do BASIC se desvia para o endereço solicitado, que está dentro da área de endereços daPONTE. Quem está visível é a ROM BETA. Rotinas na PONTE vão dar o devido tratamento ao comandodo usuário. O cursor muda para o cursor do SODIS BETA, A>, B>, C> ou D>, conforme o drive defaut.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 9/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 9

 Agora o TK90X só reconhecerá os comandos do SODIS BETA. Um deles é justamente o RETURN, quefará o micro retornar ao ambiente nativo do BASIC. Veja abaixo o mapa de decodificação dos endereçosde memória para o MODO PONTE.

HEX DEC

BINÁRIO

_   J   E   T   S   K   I   /   P

   O   N   T   E

   B   L   O   Q   S   E   L

_   B   L   O   Q   P   O

   N   T   E

   A   1   5

   A   1   4

   A   1   3

   A   1   2

   A   1   1

   A   1   0

   A   9

   A   8

   A   7

   A   6

   A   5

   A   4

   A   3

   A   2

   A   1

   A   0

3C00 15360 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 • 1

3CFF 15615 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 • 1

Figura 6 - MODO PONTE – Decodificação dos endereços de memória. Sinais que são decodificados

fisicamente no circuito: A15 a A8, _JET SKI / PONTE e _BLOQPONTE.

B - COM RAND USR 15363:

1 – O TK90X poderá estar rodando um programa do usuário (modo programado)ou estar no modo imediato. A diferença é que RAND USR 15363 retorna o controle para o BASIC nomodo imediato ou no programado. Isto é útil para permitir o acesso dos programas do usuário aoscomandos do SODIS BETA.

2 – São válidas todas as considerações dos itens 3 e 4 anteriores.

3 – No modo imediato, o usuário digita RAND USR 15363 no teclado do TK90X. Ao apertar a tecla ENTER, o fluxo do BASIC se desvia para o endereço solicitado, que está dentro daárea de endereços da PONTE. Quem está visível é a ROM BETA. Rotinas na PONTE vão dar o devidotratamento ao comando do usuário. Como não há um programa do usuário sendo executado,automaticamente o SODIS BETA faz um RETURN, o que trará o micro de volta ao ambiente nativo doBASIC.

4 - No modo programado, o BASIC executa RAND USR 15363, seguido de umREM para dar tempo ao chaveamento dos circuitos da IDS, o fluxo do BASIC se desvia para o endereçosolicitado, que está dentro da área de endereços da PONTE. Quem está visível é a ROM BETA. Rotinasna PONTE vão dar o devido tratamento ao comando de disco que se segue. Como há um programa dousuário sendo executado, o SODIS BETA faz um RETURN ao ponto seguinte no BASIC de onde seoriginou a chamada ao DOS.

C - OBSERVAÇÕES:

1 – Se no MODO PONTE (_JET SKI / PONTE = "1") esta for bloqueada(_BLOQPONTE = "0"), todo acesso do Z80 à sua PÁGINA 0 terá visibilidade para a ROM do TK90X.Portanto, uma vez inicializado o SODIS BETA, a PONTE deverá ficar sempre desbloqueada, de modo

que tanto o usuário quanto seus programas possam acessar os recursos da BETA.2 – Quanto ao SELETOR, aqui também valem as observações 2 para o MODO

JET SKI, o desbloqueio do SELETOR implica na impossibilidade de I/O com outras interfaces (desde queconectadas no barramento de expansão da IDS). Já o bloqueio do SELETOR impede que se troque omodo (no caso, de PONTE para JET SKI) porém não impede o funcionamento normal do MODO PONTEque está ativado; impede também o I/O com a IDS (impressora e FDC) mas libera I/O com outrasinterfaces ligadas à IDS.

3 – Na ROM BETA, os 256 bytes de 3C00h a 3CFFh que constituem a ponteentre o SODIS e o usuário e seus programas, contêm programas de controle dos circuitos da IDS para

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 10/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 10

permitir o acesso de que trata o item anterior, sem que ocorram perdas de dados ou travamentos dossoftwares. Já na ROMBASIC, os bytes correspondentes na mesma área de endereços são todos FFs -parte de uma área livre um pouco maior.

3 – CIRCUITOS DE CONTROLE E DE CONFIGURAÇÃO

 A – BLOQUEADOR DO SELETOR E DA PONTE

 A Figura 5 mostra os blocos que representam os circuitos do BLOQUEADOR doSELETOR e da PONTE.

O BLOQUEADOR utiliza a porta de I/O FCh (SAÍDA) da IDS conforme o seguintemapa de decodificação do endereço:

HEX DEC

BINÁRIO

_   I   O   R   E   Q

_   W   R

   D   7

   D   6

   A   1   5

   A   1   4

   A   1   3

   A   1   2

   A   1   1

   A   1   0

   A   9

   A   8

   A   7

   A   6

   A   5

   A   4

   A   3

   A   2

   A   1

   A   0

FC 252 • • • • • • • • 1 1 1 1 1 1 0 0 0 0 0/1 0/1

Figura 7 - PORTA DE I/O FCh – BLOQUEADOR do SELETOR e da PONTE.

Esta é a única porta de I/O da IDS2001ne que não pode ser bloqueada. Os sinais A1, A0, /_IOREQ, /_WR, D7 e D6 são decodificados fisicamente no circuito, enquanto para os sinais de A7 a A2 ocorre decodificação lógica, ou seja são decodificados fisicamente em outros circuitos, obrigandoseus valores lógicos na porta FCh, mesmo não participando da decodificação física, para evitar conflitoscom os referidos outros circuitos.

OUT (FC) bloqueia e desbloqueia os circuitos do SELETOR e da PONTEconforme D7 e D6 sejam 0 ou 1 (veja FIGURA 7).

BITS DO DADO STATUS RESULTANTED7 D6 SELETOR PONTE

0 0 DESBLOQUEADO DESBLOQUEADO0 1 DESBLOQUEADO BLOQUEADO1 0 BLOQUEADO DESBLOQUEADO1 1 BLOQUEADO BLOQUEADO

Figura 8 – Como o BLOQ CCT bloqueia e desbloqueia os circuitos do SELETOR e PONTE.

D7 é usado no bloqueio do SELETOR e D6 no bloqueio da PONTE. Os estadosde bloqueios são armazenados em dois flip-flops e permanecem atuando até que novos estado sejamestabelecidos mediante um outro OUT (FC). Como já visto, no POWER ON e no RESET de hardware,os flip-flops são limpos pelo circuito e assumem a condição inicial de desbloqueio tanto do SELETORquanto da PONTE.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 11/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 11

 Além das funções acima, BLOQ CCT, por usar uma porta par, também aciona aULA do TK90X/95 da seguinte forma:

BITS DO DADO ENVIADO EFEITO0

Cor da borda da tela1

23  Aciona a saída de som padrão do TK90X/954  Aciona a saída MIC5 Não usado6

Conforme Figura 8.7

B – SELETOR & CONFIG CCT:

O SELETOR usa seis portas de I/O da IDS, que podem ser bloqueadas pelocircuito BLOQUEADOR. São as portas 1Fh, 3Fh, 5Fh, 7Fh, F7h e FFh.

O SELETOR, como diz o próprio nome, seleciona qual circuito será ativado para

I/O na IDS. Sempre que o SELETOR for desbloqueado significa que o SODIS BETA irá acessar uma dasportas de I/O da IDS, conseqüentemente, e automaticamente, o sinal /_IOREQ do bus do Z80 ébloqueado no circuito e, em seu lugar, vai para o conector de expansão da BETA o sinal /_IOREQ' igual a"1". Para as outras interfaces do TK plugadas na IDS tudo se passa como se não houvesse requisiçãode I/O.

 A Figura 8, abaixo, mostra o mapa dos endereços para as sete portas doSELETOR.

HEX DEC

BINÁRIO

   B   L   O   Q   S   E   L

_   I   O   R   E   Q

_   R   D

_   W   R

   A   1   5

   A   1   4

   A   1   3

   A   1   2

   A   1   1

   A   1   0

   A   9

   A   8

   A   7

   A   6

   A   5

   A   4

   A   3

   A   2

   A   1

   A   0

1F 31 • • • • • • • • 0 0 0 1 1 1 1 1 0 0 1/0 0/13F 63 • • • • • • • • 0 0 1 1 1 1 1 1 0 0 1/0 0/1

5F 95 • • • • • • • • 0 1 0 1 1 1 1 1 0 0 1/0 0/1

7F 127 • • • • • • • • 0 1 1 1 1 1 1 1 0 0 1/0 0/1

F7 247 • • • • • • • • 1 1 1 1 1 1 1 1 0 0 0 1

FF 255 • • • • • • • • 1 1 1 1 1 1 1 1 0 0 1 0

FB 251 • • • • • • • • 1 1 1 1 1 0 1 1 0 0 1 0

Figura 9 – Mapa de decodificação dos endereços das portas dos dispositivos de I/O da IDS2001neselecionáveis pelo SELETOR. Note que _WR participa fisicamente da decodificação, conforme detalhamento na Figura 9.Os outros sinais que participam da decodificação física no circuito são A7, A2, A1, A0, BLOQSEL e _IOREQ. Já A6, A5, A4, A3 e

 _RD têm atuação lógica para evitarem conflito com outros circuitos.

Os sinais A7, A2, A1, A0, BLOQSEL, _IOREQ, e _WR são decodificadosfisicamente no circuito para o acesso às portas do SELETOR. Os sinais A6, A5, A4, A3 e _RD participamlogicamente da decodificação para evitar conflitos com outros circuitos.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 12/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 12

 A tabela a seguir mostra quais são os dispositivos de I/O selecionáveis peloSELETOR, conforme seja feita uma leitura ou uma escrita de dado.

CÓDIGO DESELEÇÃO

INou

OUT ?PORTA DISPOSITIVO SELECIONADO

A7 _WR

0 0 OUT 1F Registro de COMANDO do FDC

0 0 OUT 3F Registro de TRILHA do FDC

0 0 OUT 5F Registro de SETOR do FDC

0 0 OUT 7F Registro de DADOS do FDC

0 1 IN 1F Registro de COMANDO do FDC

0 1 IN 3F Registro de TRILHA do FDC

0 1 IN 5F Registro de SETOR do FDC

0 1 IN 7F Registro de DADOS do FDC

1 0 OUT FF Registrador do CONFIG CCT

1 0 OUT FB Buffer do dado para a impressora.

1 1 IN F7 Status do FDC e da impressora

Figura 10 – Identificação dos dispositivos de I/O da IDS2001ne selecionáveis pelo SELETOR.

C – O CONFIG CCT:

O CONFIG CCT é um dos dispositivos de I/O controlados pelo SELETOR.Portanto, qualquer acesso a esse dispositivo depende do prévio desbloqueio do SELETOR. Trata-se deum registro de 8 bits que armazena diversas configurações para o FDC, o circuito de seleção de drives, o

modo de operação para acesso as memórias da BETA e do TK90X (_JET SKI / PONTE) e o controle daimpressora (STROBE). O registro do CONFIG CCT não pode ser lido, apenas escrito. Por isso o SODISBETA armazena seu conteúdo em SAVE_FF_5D16h, uma das variáveis de sistema da BETA.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 13/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 13

 A porta de acesso do SELETOR para o registro de configurações, como vimosacima, é a FFh, somente no modo escrita. A tabela a seguir demonstra para cada valor dos bits do dadoenviado ao registro qual a configuração final resultante.

SINAL BIT DO DADO CONFIGURAÇÃO

 _JET SKI / PONTE D7= "0" Modo JET SKI

= "1" Modo PONTE _DEDENS D6

= "0" Dupla densidade (MFM)= "1" Densidade simples (FM)

 _STROBE D5= "0" Controla o envio de dados para a impressora através

de um pulso negativo de duração adequada.= "1"

SIDE D4= "0" Lado zero do disco= "1" Lado 1 do disco

HLTFDC D3= "0"  A cabeça do drive não está posicionada= "1"  A cabeça do drive está posicionada

 _RESFDC D2= "0" Reseta o FDC= "1" Não reseta o FDC

D1 D0 SELECIONA O DRIVE:

ADRV1 D1 0 0 DRIVE A0 1 DRIVE B

ADRV0 D01 0 DRIVE C1 1 DRIVE D

Figura 11 – Configuração do registro de CONFIG CCT.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 14/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 14

III – CIRCUITOS OPERACIONAIS DA IDS2001ne=======================================

1 – IMPRESSORA

 A porta de saída FBh é utilizada para envio de caracteres imprimíveis e de controle daimpressora. O SELETOR deverá estar desbloqueado (BLOQSEL = "0"). Veja abaixo o mapa de

decodificação do endereço da porta da impressora :

HEX DEC

BINÁRIO

   B   L   O   Q   S   E   L

   /_   I   O   R   E   Q

   /_   R   D

   /_   W   R

   A   1   5

   A   1   4

   A   1   3

   A   1   2

   A   1   1

   A   1   0

   A   9

   A   8

   A   7

   A   6

   A   5

   A   4

   A   3

   A   2

   A   1

   A   0

FB 251 • • • • • • • • 1 1 1 1 1 0 1 1 0 0 1 0Figura 12 – Mapa de decodificação do endereço da porta da impressora.

Na Figura 11 vemos que apenas os sinais A2, BLOQUESEL, /_IOREQ, e /_WR sãofisicamente usados na decodificação do endereço da porta de saída da impressora. Os sinais /_RD, e A7a A4 são usados logicamente para não causar interferências em outros circuitos. O sinal BLOQSELdeverá ser posto em "0" numa etapa anterior (desbloqueio do SELETOR), caso contrário não será

possível acessar a impressora.

O circuito elétrico está representado na Figura 12 de forma simplificada. Na incializaçãodo sistema o SODIS BETA identificou o padrão de impressora (ABICOMP ou MSX 1.1) fazendo umacesso em IN F7h. Para escrever um dado na impressora, seja para controle ou para impressão, deve-seproceder como se segue:

1 – Desbloquear o SELETOR (fazer um OUT FCh, dado, onde dado tem o bit D7= "0").

2 – Verificar se a impressora está desocupada (fazer IN F7h e verificar se o bit D4do dado é "0"). Se a impressora estiver ocupada fazer pooling nesta porta até a liberação da impressora.

3 – Escrever o dado no registrador da impressora (REG_IMP) acessando aportaFBh (OUT FBh, dado).

4 – Escrever o dado na impressora da seguinte forma:

a – Ler a variável de sistema SAVE_FF_5D16 (área de variáveis daBETA), cujo conteúdo representa a configuração do circuito presente em CONFIG CCT.

b – Alterar o bit D5 (/_STROB_IMP) do dado lido em SAVE_FF_5D16 de"1" para "0".

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 15/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 15

c - Escrever o dado na porta FFh, o registro de configuração do circuito.

d - Aguardar o tempo de strobe previsto para a norma da porta paralela.

e – Alterar o bit D5 de "0" para "1" e escrevê-lo novamente na porta FFh.O dado existente no registro da impressora terá sido transmitido para a impressora.

Figura 13 – Diagrama em blocos do circuito da impressora.

2 – FLOPPY DISK CONTROL (FDC)

 As portas de saída e entrada (registros do FDC) 1Fh, 3Fh, 5Fh e 7Fh são utilizadas parao controle do FDC. O SELETOR deverá estar desbloqueado (BLOQSEL = "0"). Veja abaixo o mapa dedecodificação dos endereços do FDC :

HEX DEC

BINÁRIO

   B   L   O   Q   S   E   L

   /_   I   O   R   E   Q

   /_   R   D

   /_   W   R

   A   1   5

   A   1   4

   A   1   3

   A   1   2

   A   1   1

   A   1   0

   A   9

   A   8

   A   7

   A   6

   A   5

   A   4

   A   3

   A   2

   A   1

   A   0

1F 31• • • • • • • • 0 0 0 1 1 1 1 1 0 0 0 1

• • • • • • • • 0 0 0 1 1 1 1 1 0 0 1 0

3F 63• • • • • • • • 0 0 1 1 1 1 1 1 0 0 0 1

• • • • • • • • 0 0 1 1 1 1 1 1 0 0 1 0

5F 95• • • • • • • • 0 1 0 1 1 1 1 1 0 0 0 1

• • • • • • • • 0 1 0 1 1 1 1 1 0 0 1 0

7F 127• • • • • • • • 0 1 1 1 1 1 1 1 0 0 0 1

• • • • • • • • 0 1 1 1 1 1 1 1 0 0 1 0Figura 14 – Mapa de decodificação dos endereços do FDC.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 16/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 16

Figura 15 – Diagrama em blocos do circuito do FDC (floppy disk control). Não estão sendomostrados alguns circuitos auxiliares do FDC.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 17/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 17

IV – DETALHES DO SODIS BETA DA IDS2001ne:========================================

1- INTRODUÇÃO

Entre os diversos circuitos integrados (CI) existentes na IDS-2001ne, dois são os principais: Ocontrolador de disco flexível (FDC) WD2793 e uma EPROM 27128 (16 Kbytes) contendo o D.O.S.

O SODIS BETA comunica-se com o FDC através das portas de entrada e saída de numero 31 (1F), 63(3F), 95 (5F) e 127 (7F).

No modo PONTE a EPROM é acessada através da faixa de endereço de 256 bytes entre 15360 e 15615 (3C00e 3CFF), ou seja, neste modo de operação do circuito somente esta faixa de 256 bytes é visível para oZ80. Já no modo JET SKI o microprocessador "encherga" toda a EPROM (16 KB) na sua PÁGINA 0, ouseja, de 0 a 16383 (0000h a 3FFFh). Esta situação ocorre quando o usuário liga o micro.

 A IDS2001ne utiliza 7 portas de I/O e isso pode, ocasionalmente, resultar em conflito com outro periféricoligado ao edge conector, que também pode utilizar uma destas portas. Para evitar tal problema o sinalIOREQ passa por um mecanismo de bloqueio que desativa o barramento de expansão nas operações deI/O da IDS2001ne e "desativa a IDS2001ne" nas operações de I/O com outros periféricos. Por estemotivo recomenda-se que periféricos sejam conectados a IDS2001ne e esta ao micro.

Como foi dito acima, existe um revezamento entre a EPROM da IDS e a ROM do micro, não acontecendonunca das duas estarem ativas ao mesmo tempo. Para a implementação deste revezamento existe um

mecanismo de paginação das EPROMs. Contudo, para que o BASIC possa acessar o DOS é reservadaa área de memória a que referimos no inicio (modo PONTE), e que é sempre vista pelo Z80. Alguns jogospodem se incompatibilizar com este mecanismo e, para isto, foi prevista a porta 252 (FC) de I/O, que fazcom que a EPROM do SODIS BETA fique desabilitada mesmo naquela área dos 256 Bytes.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 18/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 18

2. PRINCIPAIS ENTRADAS PARA O SODIS BETA:

DEC HEX DESCRIÇÃO

15360 3C00Chamada ao SODIS BETA pelo usuário. Permite a execução dos comandosem modo imediato

15363 3C03Chamada ao SODIS BETA pelo BASIC-TK, permite o acesso ao drive pelo

programa através do comando já visto.15484 3C7C

Ponto de entrada para despaginar a EPROM do SODIS BETA, preservatodos os registradores e reabilita as interrupções.

15467 3C6BPonto de entrada para paginar o restante da EPROM do SODIS BETA,preserva todos os registradores, mas deixa as interrupções desabilitadas.

15511 3C97Ponto de entrada para habilitar I/O com a IDS2001ne e desabilitar o conector de expansão. Podemos acessar o FDC diretamente.

15517 3C9D Executa a operação anterior de modo inverso.

15605 3CF5Ponto de entrada para enviar à impressora paralela o caractere cujo códigoesteja no registrador A. Não preserva nenhum registrador e deixa asinterrupções habilitadas.

16321 3FC1Início da tabela que contém os 21 códigos dos comandos do SODIS BETA,

um byte por comando.

16342 3FD6Início da tabela que contém os endereços de execução dos 21 comandos doSODIS BETA, dois bytes para cada comando, na mesma ordem que a tabelaanterior.

3. ALGUMAS ROTINAS DO SODIS BETA:

 Após uma chamada a 15467 (3C6B), ponto de entrada para a rotina que pagina a EPROM do DOS nomodo Jet Ski, todos os controles de acesso ao disco poderão ser usados pelo SODIS BETA.

Nome FunçãoEndereço

ObsHEX DEC

RDCFIGDISK

Lê o setor de configuração

do disco na área do buffer da impressora (23296 a23551) e ajusta as variáveisdo sistema para o tipo dedisco.

2371 9073

Dependendo do conteúdo davariável em 5D17 (23831),salva, antes, o conteúdo dobuffer da impressora no setor 9, da trilha 0.

RDNRTRILHA Aciona o drive corrente e lêo número da trilha sob acabeça, guardando-o.

2ECF 11983Na entrada:reg. B = 0

RDSET Lê setores do disco 2ED6 11990

Chamar RDNRTRILHA antesdesta rotinaNa entrada:HL = endereço na RAM paraonde serão lidos os setores

D = trilha inicial de onde serálido o setor E = número do setor inicial aser lido.B = número de setores aserem lidos

WRSET Escreve setores no disco 2EFB 12027 Chamar RDNRTRILHA antesdesta rotinaNa entrada:HL = endereço na RAM ondeestão os setores a serem

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 19/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 19

escritos no discoD = trilha inicial de onde seráescrito o setor E = número do setor inicial aser escrito.B = número de setores aserem escritos.

SS0 Seleciona o lado 0 do disco 308D 12429SS1 Seleciona o lado 1 do disco 3098 12440

FMTTRILHAFormata a trilha ondeestiver a cabeça do drive

309F 12447

Usa as rotinas SS0 e SS1Na entrada:E = número com o qual atrilha será formatada, mesmoque a cabeça não estejaposicionada nela.Variáveis de sistema 23768(5CD8) e 23769 (5CD9)devem conter 0.

SELDRIVE

Seleciona o drive cujonúmero (0 a 3) estiver noregistrador A. Se A =conteúdo da variável desistema 23833 (5D19) seráselecionado o drive default,isto é, o drive cuja letraaparece quando o DOS échamado.

3D70 15728Na entrada:

 A = número do drive a ser selecionado (de 0 a 3)

GODOS

Entra no modo DOS cujoprompt (>) fica presente nocanto inferior esquerdo datela. O controle do ambientepassa a ser compartilhadocom o DOS

3C00 15360

Estando no modo imediato doBASIC, o usuário digita:RAND USR 15360<ENTER>

CALLDOS

Chamada ao DOS pelo

BASIC dentro de umprograma ou em modoimediato. Neste caso ocontrole do ambiente voltaintegralmente para o BASIC

3C03 15363RAND USR 15363:REM:(comando do DOS), na linhade um programa BASIC ouno modo imediato

ROMBTIN Pagina a ROM BETA 3C6B 15467

Na saída:Preserva todos osregistradores e deixa asinterrupções desabilitadas

ENTRAMDPT

Entra no MODO PONTE.Neste modo a faixa deendereços de 3C00h a3CFFh (256 bytes), na

PÁGINA 0 do Z80,denomina-se PONTE. Todoacesso do Z80 à PÁGINA 0,através da PONTE, recaifisicamente na ROM BETA,enquanto todo acesso doZ80 à PÁGINA 0, que nãoseja pela PONTE, recaifisicamente na ROM BASIC.

3C7C 15484

Na saída:Preserva todos osregistradores e habilita asinterrupções

I/OFF Desabilita I/O comdispositivos plugados no

3C97 15511

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 20/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 20

conector de expansão daIDS. Habilita I/O com a IDS

I/ON

Habilita I/O com osdispositivos plugados noconector de expansão daIDS. Desabilita I/O com aIDS.

3C9D 15517

BYTE2PRINTER Envia o byte que estiver noregistrador A para aimpressora paralela

3CF5 15605

Na saída:Não preserva osregistradores e habilita asinterrupções

4. TABELA DOS COMANDOS DO SODIS BETA

CÓDIGOS COMANDOS

ObservaçõesEndereçosna

tabelaValor 

Endereçosna

tabela

Nome docoman

do

Endereços deexecução

3FD4 E0 3ffc 03F4 10123fd5 AB 3FFE 0448 1096

3fd0 FF 3ff4 04C7 12233fc1 CF 3fd6 239F 91193fc2 2A 3fd8 248E 93583fc5 E6 3FDD 24A4 93803FC6 D2 3fe0 2718 100083FC4 D1 3fdc 27EC 102203fc7 EF 3fe2 2939 105533FCA BE 3fe8 2A60 108483fcb F4 3FEA 2A64 108523FCC D5 3fec 2A6C 108603fc8 F8 3fe4 2B67 111113fc9 FE 3fe6 2D81 116493FCB

F73FEE

2DCC 117243FC3 D0 3fda 2F5B 121233fce D3 3ff0 3214 128203FCD D4 3FF2 36C8 140243fd1 34 3ff6 3942 146583FD3 38 3ffa 3959 146813fd2 EC 3ff8 3ACE 15054

5. ALGUMAS MENSAGENS, IMAGENS E END. LIVRES DA ROM DA IDS2001ne

Tipo Discriminação Endereço Obs

Mensagens

*BREAK*

RAM LotadaDiretorio lot.S/DiscoStream Aberto

 Arq. Invalido Arq. existeSubstituir ? (S/N)

37B1a

3814

14257a

14356

Mensagens *ERRO*Sem Esp.

 Arq. ExisteLivre

395Ea

39E5

14686a

14821

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 21/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 21

* PROTEGIDO ªErro DiscïO/F Reg®TituloºTenta,Aborta,Ignora¿Trk set Apagado(s)S/Arquivo

Mensagens Arquivo(s)59a64

89a

9A

Mensagens Livre(s)89a94

137a

148

Endereços livres 5646 bytes livres (5,5 KB) A0B

a2018

2571a

8216

Endereços livres 67 bytes livres398a

3DA

920a

986

6. ALGUMAS VARIÁVEIS DE SISTEMA IMPLANTADAS PELO SODIS BETA

DEC HEXExtensão

usadapelaBETA

Área normal de 23734 a 23845 de 5CB6 a 5D25 112 bytesÁrea de

armazenamentotemporário

de 23846 a 23903 de 5D26 a 5D60 58 bytes

TOTAL: 170 bytes

VARIÁVELNOME DESCRIÇÃO

DEC HEX

23734 5CB623735 5CB723736 5CB823737 5CB923738 5CC023739 5CC123740 5CC223741 5CC323742 5CC423743 5CC523744 5CC623745 5CC7

23746-23755 5CC8 – 5CCB DSK FLAGS Flags de configuração dos tipos de discos, umbyte para cada disco em cada drive.

23756 5CCC Uso geral.

23757 5CCD FDC STATUS Armazena o bit 7 do registrador de status do FDCe comanda ou não um atraso de 450 ms antes daleitura de um setor do disco.

23758 5CCE RDWR?

Flag00: LeituraFF: Escrita

 A rotina é comum a ambas.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 22/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 22

23759237602376123762237632376423765

2376623767 5CD7 NUMTRILHAS Número de trilhas do drive corrente

23768 – 23769 5CD8 – 5CD9 VERFMT?

Flag durante o comando FORMAT00 = verificaFF = não verificaUsada pela rotina FMTTRILHA.

5CDA FCSIM?Flag durante o comando FORMAT00 = Face simplesFF = Face dupla

5CDB – 5CDC Armazena resultados de expressões calculadaspelo avaliador do DOS

5CDD – 5CE4Espaço de trabalho usado para nomes de arquivos

ou de disco. (8 bytes)23781 5CE523782237832378423785237862378723788237892379023791

23792237942379523796 - 23797 5CF4 – 5CF5 SETRINIC Setor e tri lha iniciais a serem lidos

5CF6 Número do drive corrente selecionado5CF75CF85CF9

5CFA – 5CFD TDSRFlags do tipo de drive e step rate para cada drive:

 A, B, C, D.5CFE COMANDO Comando a ser enviado ao controlador 5CFF STINITEMP Armazenamento temporário do setor inicial

5D00 – 5D01  Armazenamento temporário do endereço decarga.

5D02 – 5D03 SAVE HL Armazenamento temporário do par HL emchamadas a ROM BASIC

5D04 – 5D05 SAVE DE Armazenamento temporário do par DE emchamadas a ROM BASIC

5D065D075D085D09

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 23/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 23

5D0A5D0B5D0C5D0D5D0E5D0F5D10

5D11 – 5D12 Endereço do início do comando do DOS apósREM ou diretamente do editor BASIC.

5D13 – 5D14 ERRSPSV Armazena a variável ERR_SP (23.613 – 23.614),cujo valor é alterado pelo DOS.

5D15 MODOSIN

Flag:00 = DOS foi chamado por RAND USR 15.360FF = DOS foi chamado por RAND USR 15.363Impede a emissão de mensagens de erros.

5D16 FFSALVO Cópia do dado enviado à PORTA FF

5D17 SAVEBUFIMP?

Flag:00 = Buffer da impressora não deve ser salvo nodiscoFF = O buffer deve ser salvo e recuperado após ocomando.

5D18 I1PRESENT?

Flag:00 = A INTERFACE 1 não está presenteFF = A INTERFACE 1 está presente e as variáveisda microdrive devem ser salvas

5D19 DDEFNRNúmero do drive default (cuja letra apareceseguida do sinal ">")

5D1A – 5D1B RETDOSCMDEndereço de retorno quando termina a execuçãode um comando do DOS.

5D1C – 5D1D OLDSP Antigo valor do SP do Z80, alterado em duasposições pelo DOS.

23839 5D1F KILLPF

Indica que a forma de ponto flutuante, criada

durante a análise da sintaxe dos comandos, deveser eliminada antes da reapresentação docomando do usuário.

23840 5D2023841 5D2123842 5D2223843 5D2323844 5D2423845 5D2523846 - 23903 5D26 - 5D60 58 bytes para armazenamento temporário

7. MAPA PARCIAL DE MEMÓRIA DO TK90X/95 COM E SEM A IDS2001ne 

SEM A IDS2001ne COM A IDS2001ne(MEMAVLB) =

último byte físicodisponível

MEMAVLB Definição degráficos

UDG 0/1/2

(MEMAVLB) =último byte físicodisponível

MEMAVLB Definição degráficos

UDG 0/1/2UDG 0/1/2(RAMTOP) =último byte daárea do sistemaBASIC

RAMTOP 3E (62)

(RAMTOP) =último byte daárea do sistemaBASIC

RAMTOP 3E (62)

pilha de gosub pilha de gosub

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 24/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 24

pilha de máquina pilha de máquina

SP = Stackpointer do Z80 SP

 Área livre

SP = Stack pointer do Z80 SP

 Área livre(ADSPFREE) =endereço doprimeiro byte daárea livre

ADSPFREE

(ADSPFREE) =endereço doprimeiro byte daárea livre

ADSPFREE

Pilha de cálculo Pilha de cálculo

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 25/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 25

8. FORMATO DO DISCO:

Número de trilhas 40 ou 80 trilhasNúmero de setores por trilha 16 setoresNúmero de bytes por setor  256 bytesTrilha 0 Uso exclusivo do sistema (contém o diretório)

Capacidades dos discos TOTAL ÚTILCom 40 trilhas: 327.680 bytes(40 x 16 x 256 x 2)

323.584(327.680 – 4096*)

Com 80 trilhas 655.360 bytes(80 x 16 x 256 x 2)

651.246 bytes(655.360 – 4096)

* A trilha 0 do lado zero é o diretório do sistema. São 16 setores de256 bytes totalizando 4.096 bytes que não estão disponíveis paraarmazenar dados do usuário.

Seqüência dos setores dosarquivos de dados dousuário

Trilha Lado setores

↓0 1 1 9 2 10 3 11 4 12 5 13 6 14 7 15 8 161 0 1 9 2 10 3 11 4 12 5 13 6 14 7 15 8 161 1 1 9 2 10 3 11 4 12 5 13 6 14 7 15 8 1622

↓79 0 1 9 2 10 3 11 4 12 5 13 6 14 7 15 8 1679 1 1 9 2 10 3 11 4 12 5 13 6 14 7 15 8 16

Seqüência deentrelaçamento dos setoresnas trilhas

1 9 2 10 3 11 4 12 5 13 6 14 7 15 8 16O entrelaçamento permite que o sistema tenha tempo de ler /escrever um setor enquanto o seguinte se aproxima da cabeça dodrive.

Número limite de arquivospor disco

128 arquivos

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 26/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 26

9. FORMATO DA TRILHA DO SISTEMA (TRILHA 0):

SETOR CONTEÚDO0

D I R E T Ó R I O

Cada entrada de diretório contém 16 bytes. Cada setor contém 16 entradas (256 bytes por setor dividido por 16). Os oito setores do diretório podem ter até 128 entradas, daí alimitação de 128 arquivos por disco.

12

345678 Informações de configuração do disco

9 Armazena temporariamente o buffer da impressora. O buffer da impressora pode entãoser usado pelo SODIS BETA para descarregar seqüencialmente os setores do diretório

durante uma busca de arquivos.10 Usado pela rotina do Botão 48 K11

Não usados pelo SODIS BETA. Acessível somente por linguagem de máquina.1213

1415

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 27/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 27

10. FORMATO DAS ENTRADAS DE DIRETÓRIO

BYTE FUNÇÃO0 Nome do arquivo

BYTE 0:VALOR FUNÇÃO

0 Indica o fim do diretório1 O arquivo foi apagado pelo comando ERASE

12

34567

8

Letra correspondente ao tipo de arquivo:

LETRA TIPO DO ARQUIVOB BASICC Código de máquinaD Dados de matrizes# Dados seqüenciais e aleatórios

 

9 TIPO DOARQUIVO

FUNÇÃO DOS BYTES 9 E 10

BASIC Tamanho do arquivo em bytesCODE Endereço inicial do bloco de dados

 10

11 TIPO DOARQUIVO

FUNÇÃO DOS BYTES 11 E 12

B Tamanho do arquivo em bytesC Comprimento do blocoD

12

13 Número de setores ocupados pelo arquivo14 Setor inicial do arquivo15 Trilha inicial do arquivo

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 28/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 28

11. FORMATO DO SETOR DE CONFIGURAÇÃO DO DISCO (SETOR 8)

BYTE FUNÇÃO0 a 224 Vazios (contém 0)

225 Próximo setor livre no fim dos arquivos226 Trilha do próximo setor livre

227

Contém o tipo de formatação do disco:VALOR FORMATAÇÃO

16h 80 trilhas face dupla17h 40 trilhas face dupla18h 80 trilhas face simples19h 40 trilhas face simples

 228 Número total de arquivos no disco, incluindo os apagados.

229 e230

Número de setores livres no disco

231Contém o valor 16, indicando que o disco é padrão BETA. Este byte é verificado pela rotina2371h

232 e233

Não usados, contêm0

234 a242

Não usados, contêm espaços

243 Não usado244 Número de arquivos apagados no disco

245 a252

Nome do disco conforme definido pelo comando FORMAT. Se o nome tiver menos de oitocaracteres, os demais serão preenchidos com espaços.

253 a255

Não usados, contêm 0.

7/22/2019 RELATÓRIO BETA(BetaDisc48 ZXSpectrum)

http://slidepdf.com/reader/full/relatorio-betabetadisc48-zxspectrum 29/29

∗ R E L A T Ó R I O BETA IDS2001ne – V1.0 ∗ Jorge Braga da Silva (  [email protected] ) 29

V – A V I S O S============

 A Synchron não autoriza terceiros a fabricarem e/ou comercializarem a IDS2001ne ouseus circuitos.

Esperamos receber consultas, informações, sugestões e críticas a respeito destetrabalho.

Este relatório deverá passar por atualizações conforme novas informações ficaremdisponíveis.