quinta-feira, julho 07, 2022

MSX Programas: Revista MSX Micro 08

Revista MSX Micro 08

1987

Programas: Rotulador, Estatística, Classificador de Arquivos, Hot Calc

Jogos: River Raid, Pitfall II: Lost Caverns, Hyper Sports II.




Rotulador

Artigo Orignal: MSX Micro, Digitação: Wilson Pilon

Este programa tem a finalidade de criar rótulos utilizando caracteres gráficos de uma impressora.

São criadas linhas em bloco de caracteres numa máscara de 8"x11" centrados horizontalmente na página.

O conjunto de caracteres inclui 26 letras do alfabeto e os números de 0 a 9. O programa forma as letras com os caracteres ASCII disponíveis, à sua escolha.

No seu modo normal de operação serão impressos seis blocos de caracteres por linha de uma impressora de 80 colunas e 10 caracteres numa impressora de 132 colunas.

Se você tem uma impressora do tipo Epson com caracteres condensados, duplos, etc., as possibilidades são ilimitadas, com mais de 10 caracteres por linha em impressora de 80 colunas.

Veja como ele opera:

Quando o programa for carregado, aparecerá um menu com três opções:

  1. Comandos da impressora
  2. Entrada da mensagem
  3. Escolha do caractere

Comandos da Impressora

Se você tem uma impressora com características da Epson, há bárias opções com até 20 caracteres de controle em código ASCII, um de cada vez, digitando o código e [ENTER].

Quando terminar, digite simplesmente [ENTER]. O programa irá apresentar os caracteres que entraram na forma CHR$(X)CHR$(Y), etc. e perguntar se está tudo correto. Se estiver, coloque a impressora em linha e será descarregada a mensagem.

Coloque sempre como primeiro comando da string os códigos que façam a impressora retornar à condição inicial.

Na Epson, o retorno é feito com um caractere 27 seguido por um 64.

Por exemplo, para imprimir no modo condensado, entre com um 15. Consulte o manual de sua impressora.

Entrada da Mensagem

O programa perguntará se você deseja seis ou dez caracteres por l inha, conforme uma impressora de 80  ou 132 colunas (Digite no máximo 76 caracteres)

Você pode escolher também entrar com o texto no modo especial, com os blocos de caracteres, ou no modo normal (padrão). O programa aceita até 10 linhas de texto.

Centre o papel na impressora e pressione [ENTER] para obter a impressão.

Escolha o caractere

O default para caracteres é o  'X'. Isto significa que as letras do seu texto serão impressas com elementos 'X'.

Você pode mudar isto, consultando os valores ASCII de seu micro, escolhendo outros caracteres.

Por exemplo para usar blocos formados por caracteres 'Z' digite 90 [ENTER].

Agora que você viu como se opera este interessante programa, use a criatividade e faça letreiros, rótulos, indicadores, etc.. As aplicações são inúmeras, você verá.



Referência de Listagem

ListagemArquivo
Listagem Únicarotula.bas

Listagem

164 REM
165 REM
170 CLS:COLOR15,1,1:SCREEN0:WIDTH 40:KEY OFF:PRINT:PRINT"Deseja instrucoes  ";
180 INPUTOPCAO$
190 IFOPCAO$="S" OR OPCAO$="s" THEN GOSUB 10000:GOTO 200
195 IFOPCAO$<>"N" AND OPCAO$<>"n" THEN GOTO 170
200    CLEAR300:NC=36
210 FORI=1TO5:KEY(I)ON:NEXTI:ONKEYGOSUB230,240,250,260,270
220 FORI=1TO10:KEY(I)ON:NEXTI:GOTO290
230 KEY(1)OFF:KEY(1)ONRETURN
240 HC=2:RETURN
250 HC=3:RETURN
260 HC=300:RETURN
270 RUN
280 RETURN
290 REM *** Rotina Principal ***
295 COLOR15,1,1
300 REM *** Dados para Impressao ***
301 TI$="":M=M+1:SCREEN0:COLOR15,1,1:TM=1:PRINT"Linha: ";M:PRINT:PRINT"Tamanho 1,2,3,4 ou (N)ormal: ";:INPUTTM$:TM=VAL(TM$):IF(TM<1ortm>4)AND TM$<>"N" THENGOTO290ELSEIFTM$="N" THEN TI$="N"
305 IFTI$<>"N" THEN GD=1:PRINT"Espessura 1,2 ou 3: ";:INPUTGD:IFGD<1orgd>3 THENGOTO290
310 PRINT"Impressao comprimida S/N: ";:INPUTOP$:IFOP$="S" OR OP$="s" THEN LPRINTCHR$(27);CHR$(15) ELSE LPRINTCHR$(27);CHR$(64)
320 PRINT"Margem (1-40): ";:INPUTMG:IFMG<1 mg="" or="">40 THEN 320
330 IFTI$<>"N"THEN:PRINT"Digite caracter para a impressao: ";:INPUTCH$:IFLEN(CH$)>1ORLEN(CH$)<1then330 340="" 350="" 360="" 370="" a="" color1="" ecle="" ifti="" inputn="" mensagem="" print="" sua="" then="">"N" THENLPRINT:LPRINT:LPRINT:FORI=1TO1600:NEXTI
380 GOTO290
390 IF TI$="N" THEN LPRINTTAB(MG);N$:RETURN
400 REM *** Rotina de Impressao da Mensagem no Video e na Impressora ***
405 X1=1:X3=MG
410 FORSOMA=0TO7
420 FORGR=1TOGD:FORA=1TOLEN(N$)
430 C=&H1BBF+8*ASC(MID$(N$,A,1)):C=C+SOMA
440 X2=X3:X=X1
450 B$=BIN$(256+PEEK(C)):FORB=2 TO 9
460 IFVAL(MID$(B$,B,1))=1THENLINE(X,Y)-(X+6,Y+12),1,BF:LPRINTTAB(X2);STRING$(TM,CH$);
470 X2=X2+TM:X=X+6:NEXTB
480 X3=X2+INT(TM/2):X1=X1+43:NEXTA:X1=1:X3=MG:Y=Y+13:LPRINT::NEXTGR:NEXTSOMA:LPRINT CHR$(12):RETURN
10000 COLOR15,1,1:SCREEN0:CLS
10020 PRINT"O programa rotulador escreve  na impres-sora uma mensagem digitada  pelo usuariodo programa em  varios  tamanhos  possi-";
10065 PRINT"veis de acordo com as opcoes de espessu-ra escolihdas pelo usuario."
10075 PRINT
10080 PRINT"Se a sua impressora for de 80 colunas asmensagens nao devem  ser  muito  grandespara nao ultrapassar o maximo de 80  co-lunas."
10200 PRINT:PRINT:PRINT"                     Pressione uma tecla"
10210 A$=INKEY$:IF A$<>"" THEN 10210
10220 A$=INKEY$:IF A$="" THEN 10220
10500 RETURN
Única

Estatística

Artigo Original: MSX Micro, Digitação: Wilson Pilon

Existem problemas bastante comuns em estatística que podem ser resolvidos facilmente com este programa para o seu MSX.

Ele permite o cálculo de:

  • Média
  • Variância
  • Desvio Padrão
  • Mediana
  • Amplitude
  • Limite Inferior
  • Limite Superior

para uma determinada amostra de até 150 dados.

Caso exista uma entrada de dados incorreta, não se preocupe, haverá uma opção para conserar as entradas erradas, mesmo que você não se lembre do número do dado. Após as correções serão conhecidos os resultados estatísticos de sua amostra.


Referência de Listagem

ListagemArquivo
Listagem Únicaestati.bas

Listagem

10 REM ******************
20 REM **  Estatistica **
30 REM **              **
40 REM **   MSX-Micro  **
50 REM ******************
60 DIM A(150),A$(150)
70 CLS:PRINT:INPUT "Qual o tamanho da amostra";T$
80 T=VAL(T$)
90 IF(T<=1) OR (T>150) THEN 70
100 FOR K=1 TO T
110 A(K)=0
120 NEXT K
130 CLS
140 FOR K=1 TO T
150 PRINT "Amostra numero: ";K;
160 INPUT " ---> ";A$(K)
170 A(K)=VAL(A$(K))
180 NEXT K
190 PRINT:INPUT "Quer fazer alguma alteracao (S/N)";R$
200 IF R$="S" THEN GOSUB 690
210 PRINT:PRINT:PRINT "     ***********Calculando***********"
220 REM calculos
230 VA=0
240 BP=0
250 FOR K=1 TO T
260 BP=BP+A(K)
270 NEXT K
280 IF T>0 THEN MD=PB/T
290 FOR K=1 TO T
300 VA=VA+(A(K)-MD)^2
310 NEXT K
320 VC=VA/(T-1)
330 DP=SQR(VC)
340 FOR K=1 TO T-1
350 FOR J=K+1 TO T
360 IF A(K)<=A(J) THEN 400
370 B=A(K)
380 A(K)=A(J)
390 A(J)=B
400 NEXT J
410 NEXT K
420 IF T/2=INT(T/2) THEN 450
430 MA=A(INT(T/2+1))
440 GOTO 470
450 A=T/2
460 MA(A(A)+A(A+1))/2
470 LI=A(1)
480 LS=A(T)
490 AP=LS-LI
500 MD=INT(MD*1000+.5)/1000
510 DP=INT(DP*1000+.5)/1000
520 AP=INT(AP*1000+.5)/1000
530 MA=INT(MA*1000+.5)/1000
540 VC=INT(VC*1000+.5)/1000
550 CLS
560 PRINT:PRINT "*****************************"
570 PRINT "Tam. da Amostra";T
580 PRINT "Media          ";MD
590 PRINT "Variancia      ";VC
600 PRINT "Desvio Padrao  ";DP
610 PRINT "Mediana        ";MA
620 PRINT "Amplitude      ";AP
630 PRINT "Lim. Inferior  ";LI
640 PRINT "Lim. Superior  ";LS
650 PRINT:PRINT "*****************************"
660 PRINT : INPUT "Quer comecar novamente (S/N)";R$
670 IF R$="S" THEN RUN
680 END
690 CLS
700 PRINT : INPUT "Quer a listagem das amostras (S/N)";R$
710 IF R$="N" THEN 890
720 REM
730 P=1
740 FOR L=10 TO 150 STEP 10
750 REM
760 CLS
770 PRINT "Amostra      Valor"
780 PRINT
790 FOR K=P TO L
800 PRINT K;" ---> ";A(K)
810 REM
820 NEXT K
830 P=L+1
840 PRINT:PRINT "Pressione [RETURN] p/ continuar"
850 INPUT "ou [T] p/ terminar";R$
860 IF R$="T" THEN 890
870 REM
880 NEXT L
890 CLS
900 PRINT:PRINT:INPUT"Qual o numero da amostra ";N
910 IF (N>T) OR (N<1) THEN 890
920 PRINT:INPUT "Qual o valor: ";V
930 A(N)=V
940 CLS
950 PRINT:PRINT:INPUT "Mais alguma alteracao (S/N)";R$
960 IF R$="S" THEN 690
970 RETURN
Única

Classificador

Artigo Orignal: MSX Micro, Digitação: Wilson Pilon

O artigo destina-se aos possuidores de MSX com no mínimo uma unidade de disco.

Objetivo/Utilização

A finalidade é apresentar um programa que lê os nomes dos arquivos em um determinado disco e classifica-los em ordem alfabética, de modo que facilite a procura de arquivos com os comandos DIR, FILES ou LFILES.

Desenvolvimento

O MSX possui falta de documentação técnica de como podemos acessar e editar diretamente os setores dos discos através das sub-rotinas da BIOS/BDOS (na época, claro)


Referência de Listagem

ListagemArquivo
Listagem BASICrenew.bas
Listagem Assemblyrenew.asm

Listagem

10 CLEAR 255,&HF350
20 FOR I=0 TO 32
30 READ B$
40 POKE &HF350+I,VAL("&h"+B$)
50 NEXT I
60 DEFUSR=&HF350
70 END
80 DATA af
90 DATA 01,ff,ff
100 DATA 21,05,80
110 DATA ed,b1
120 DATA 22,01,80
130 DATA ed,b1
140 DATA be
150 DATA 20,fb
160 DATA 23
170 DATA 0b
180 DATA be
190 DATA 20,f6
200 DATA 23
210 DATA 22,c2,f6
220 DATA 22,c4,f6
230 DATA 22,c6,f6
240 DATA c9
Basic

Listagem

	.org 0EE80h - 7		;cabeçalho BLOAD
	db 0FEh
	dw inicio
	dw fim
	dw inicio
	
inicio:	xor a			;Zera acumulador (a <- MLF)
	ld bc,0FFFFh		;BC <- contador de bytes sem funcao especifica
	ld hl,08005h		;HL aponta para o primeiro TOKEN do programa
	cpir			;Compara byte a byte ate achar a MFL
	ld (08001h),hl		;Carrega em BOTTOM o endereco do 1. byte apos a MFL
va:	cpir			;Compara byte a byte ate achar a MFL seguinte
	cp (hl)			;Compara o byte seguinte a MFL (EB) para ver se e zero
	jr nz,va		;Se nao for, repete a busca pois ha mais linhas
	inc hl			;Incrementa o apontador do programa
	dec bc			;Decrementa o contador BC
	cp (hl)			;Compare o byte seguinte ao EB(EA) para ver se e zero
	jr nz,va		;Se nao for, repete a busca pois ha mais linhas
	inc hl			;HL aponta para o 1. byte apos o fim do programa
	ld (0F6C2h),hl		;Carrega o apontador em VARTAB
	ld (0F6C4h),hl		;Carrega o apontador em ARYTAB
	ld (0F6C6h),hl		;Carrega o apontador em STREND
	ret			;Volta ao BASIC
fim:	.end
Assembly

Games

Shark Hunter

Nota 4

Lute com mestres especialistas em campos específicos da arte do Kung Fu que atacam o nosso herói Lee usando bastões, fogo, correntes, estrelas mortais, etc.. Além dos duelos em que só haverá um único sobrevivente (que espera-se seja você), nosso herói deverá passar por diversos estágios nos quais enfrentará obstáculos como vasos, tijolos, tamancos atirados contra Lee.

Você também conhecerá o nome de seus oponentes que são Wang, Tao, Chen, Lang e Wu e, se não for ferido nenhuma vez receberá um bônus de 5000 pontos. Os gráficos, como é tradição da linha MSX, são excelentes eo som também é muito bom, apesar de que na segunda versão estes dois itens encontram seu auge. Este é mais um daqueles games que se recomenda aos aficcionados para terem em casa, sendo interessante, no entanto, a realização de uma pequena pesquisa, pois, já existem no país versões de alguns outros jogos como Yie-Ar Kung Fu II, Faixa Preta (J. Chan) e Kung Fu Master.

Dica: Para eliminar seus oponentes mantenha uma distância curta, mas, quanto ao Sr.Wu (o último mestre) mantenha-se distante e somente dê golpes aéreos (joystick para cima, com o botão sendo pressionado duas vezes).


Track & Filed II

Nota 4

O comedor insaciável de fichas dos fliperamas, agora na tela de sua televisão em uma versão especial de quatro andares, tendo como atração o caça-bônus, já que não oferece níqueis, mas, bonificações.

O objetivo deste jogo é fazer o máximo de pontos com uma única bola, escolhendo-se o nível de dificuldade, e ocasionando um aumento de velocidade. É um game inteligente e ativo, principalmente para os que querem jogar no nível "PRO" com a possibilidade de escolha do número de jogadores.

Em termos de gráficos, Rollerball é um dos melhores do gênero com ótimo acompanhamento sonoro, além de ser mais daqueles que não podem faltar na sua coleção.


Referência de Listagem

ListagemArquivo
Shark Hunteryear1.bas
Track & Field IIroller.bas



Nenhum comentário:

Postar um comentário