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:
- Comandos da impressora
- Entrada da mensagem
- 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
Listagem | Arquivo |
---|---|
Listagem Única | rotula.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 1then330>1>1orgd>1ortm>
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
Listagem | Arquivo |
---|---|
Listagem Única | estati.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
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
Listagem | Arquivo |
---|---|
Listagem BASIC | renew.bas |
Listagem Assembly | renew.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
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
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
Listagem | Arquivo |
---|---|
Shark Hunter | year1.bas |
Track & Field II | roller.bas |
Nenhum comentário:
Postar um comentário