Páginas

Mostrar mensagens com a etiqueta RS232. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta RS232. Mostrar todas as mensagens

sábado, 4 de março de 2023

sábado, 4 de março de 2023

Type-in: Gráficos em 3D (1990)


Na edição nº27 da revista RS232 encontramos uma listagem de código de Fernando Preces para o QuickBASIC, a qual fez parte de uma sequência de artigos sobre gráficos em 3D. 


Este programa apresenta uma animação simples da rotação de um objeto em 3D (wireframe) em torno do seu eixo vertical. Cada frame de animação objeto é pré-desenhado e armazenado em memória. A animação, relativamente fluída, é conseguida com a troca das páginas 0 e 1 no modo gráfico 9. Quando um passo da animação é exibido numa das páginas, na outra é guardado o passo seguinte.

A listagem dispõe de dados para duas figuras, sendo só apresentada uma deles. Basta trocar as labels "dados" e "dados1" para mudarmos a silhueta apresentada. Também há código comentado para a inserção manual das silhuetas pelo utilizador.

Segue a listagem:

'F.A.Preces - Fev 90
'Gráficos em 3D

CONST pi = 3.1416   'Valor aproximado de PI

w = 5500: ap% = 1: vp% = 0

'Espaço para as 6 figuras do movimento rotativo
DIM cubo1(w), cubo2(w), cubo3(w)
DIM cubo4(w), cubo5(w), cubo6(w)

'Reserva de espaço para os valores dos 3 eixos
DIM x(17, 8), y(17, 8), z(17, 8)

'Porçao da figura a rodar
seno = SIN(pi / 4): coseno = COS(pi / 4)

aa = 320: bb = 50   'Coordenadas de arranque

'Coordenada do Ecran em EGA
SCREEN 9: WINDOW (0, 0)-(640, 350): COLOR 6, 1: CLS

RESTORE dados
READ x: x(15, 1) = x: READ y: y(1, 1) = y: z(1, 1) = 0

'leitura dos dados da Silhueta
FOR c = 2 TO 16
    READ x: 'ou por GOSUB limpa: INPUT "Comprimento "; x
    x(c, 1) = x
    READ y: 'ou por GOSUB limpa: INPUT "Altura "; y
    y(c, 1) = y
    z(c, 1) = 0
    x1 = x(c - 1, 1) + aa: y1 = y(c - 1, 1) + bb
    x2 = aa + x(c, 1): y2 = bb + y(c, 1)
    LINE (x1, y1)-(x2, y2) 'Desenha a silhueta
NEXT c

'Prepara a figura em 3D
FOR q = 1 TO 6
    FOR B = 2 TO 8
        FOR a = 1 TO c - 1
            x(a, B) = x(a, B - 1) * coseno - z(a, B - 1) * seno
            z(a, B) = z(a, B - 1) * coseno + x(a, B - 1) * seno
            y(a, B) = y(a, B - 1)
        NEXT a
    NEXT B
    CLS
    'Desenha as seis imagens para a rotaç?o
    FOR B = 1 TO 7
        FOR a = 1 TO c - 1
            x1 = aa + x(a, B): y1 = bb + (y(a, B) - .5 * z(a, B))
            x2 = x1 + x(a, B + 1) - x(a, B)
            y2 = y1 + (y(a, B + 1) - .5 * z(a, B + 1)) - (y(a, B) - .5 * z(a, B))
            LINE (x1, y1)-(x2, y2), 6
            x1 = x2: y1 = y2
            x2 = x1 + x(a + 1, B + 1) - x(a, B + 1)
            y = y1 + y(a + 1, B + 1) - .5 * z(a + 1, B + 1)
            y2 = y - (y(a, B + 1) - .5 * z(a, B + 1))
            LINE (x1, y1)-(x2, y2), 5
        NEXT a
    NEXT B
    FOR a = 1 TO c - 1
        x1 = aa + x(a, 8): y1 = bb + (y(a, 8) - .5 * z(a, 8))
        x2 = x1 + x(a, 1) - x(a, 8)
        y2 = y1 + (y(a, 1) - .5 * z(a, 1)) - (y(a, 8) - .5 * z(a, 8))
        LINE (x1, y1)-(x2, y2), 6
        x1 = x2: y1 = y2
        x2 = x1 + x(a + 1, 1) - x(a, 1)
        y2 = y1 + (y(a + 1, 1) - .5 * z(a + 1, 1)) - (y(a, 1) - .5 * z(a, 1))
        LINE (x1, y1)-(x2, y2), 5
    NEXT a

    'Memoriza as 6 imagens
    IF q = 1 THEN GET (220, 42)-(440, 235), cubo1
    IF q = 2 THEN GET (220, 42)-(440, 235), cubo2
    IF q = 3 THEN GET (220, 42)-(440, 235), cubo3
    IF q = 4 THEN GET (220, 42)-(440, 235), cubo4
    IF q = 5 THEN GET (220, 42)-(440, 235), cubo5
    IF q = 6 THEN GET (220, 42)-(440, 235), cubo6

    'Prepara o desfazamento entre imagens
    FOR a = 1 TO c - 1
        xn = x(a, 1) * COS(pi / 24) - z(a, 1) * SIN(pi / 24)
        zn = z(a, 1) * COS(pi / 24) + x(a, 1) * SIN(pi / 24)
        x(a, 1) = xn: z(a, 1) = zn
    NEXT a
NEXT q: CLS

'As 6 imagens s?o memorizadas no Buffer de Imagens gradualmente,
'em 2 páginas sucessivas de ecran (apresenta uma e grava outra)

ciclo:
FOR q% = 1 TO 6
    SCREEN 9, , ap%, vp%
    CLS 1
    IF q% = 1 THEN PUT (220, 42), cubo1
    IF q% = 2 THEN PUT (220, 42), cubo2
    IF q% = 3 THEN PUT (220, 42), cubo3
    IF q% = 4 THEN PUT (220, 42), cubo4
    IF q% = 5 THEN PUT (220, 42), cubo5
    IF q% = 6 THEN PUT (220, 42), cubo6

    SWAP ap%, vp%   'Troca de página

NEXT q%

IF INKEY$ <> "" THEN END
GOTO ciclo
END

limpa:
    LOCATE 1, 1: PRINT STRING$(79, " "): LOCATE 1, 1
    RETURN

dados1:  'Silhueta de reserva
DATA 40, 40, 40, 40, 80, 40, 85, 45, 85, 100, 80, 100, 60, 100, 80, 100, 80, 125
DATA 40, 125, 40, 125, 55, 125, 55, 125, 40, 125, 40, 40, 0, 40

dados:    'Silhueta apresentada
DATA 0, 0, 25, 5, 35, 20, 80, 30, 80, 80, 30, 120, 30, 150, 45, 160, 20, 160
DATA 20, 110, 70, 70, 70, 35, 0, 20, 0, 20, 0, 20, 0, 20

sábado, 25 de fevereiro de 2023

sábado, 25 de fevereiro de 2023

Type-in: Efeitos sonoros (1989)

Ao longo da sua existência, a revista portuguesa RS232 publicou inúmeros type-ins de pequenos programas e jogos. Apresentamos um desses type-ins, enviado por Fernando Preces para RS232 nº14, que demonstra alguns efeitos sonoros obtidos a partir da instrução SOUND. A listagem pode ser inserida no GW-BASIC original, e também no PC-BASIC, um interpretador moderno que emula o GW-BASIC e o BASICA.

Segue a listagem:

5 DEFINT A-Z
10 ' Programa demonstraçao dos Efeitos Sonoros
12 ' PLANETA MS-DOS: Type-in de Fernando Preces na RS232 #14
15 ' GWBASIC/BASICA
20 ' Menu de efeitos de som
25 Q = 2: a$ = "Prima uma tecla para terminar"
30 WHILE Q >= 1
35      CLS
40      PRINT "Efeitos sonoros": PRINT
45      COLOR 15, 0: PRINT "  C"; : COLOR 7, 0: PRINT "rescente"
50      COLOR 15, 0: PRINT "  D"; : COLOR 7, 0: PRINT "ecrescente"
55      COLOR 15, 0: PRINT "  B"; : COLOR 7, 0: PRINT "uzina"
60      COLOR 15, 0: PRINT "  S"; : COLOR 7, 0: PRINT "irene"
65      COLOR 15, 0: PRINT "  Q"; : COLOR 7, 0: PRINT "uit"
70      PRINT : PRINT "Select: ";
75      Q$ = INPUT$(1): Q = INSTR ("CDBSQcdbsq", Q$) ' Dá uma tecla válida
80      IF Q = 0 GOTO 75
85      CLS     ' Mostra a acçao baseada na tecla
90      ON Q GOSUB 100, 200, 300, 400, 500, 100, 200, 300, 400, 500
95 WEND
100 ' Crescente com dois sons decrementando o intervalo de tempo
105     HTONE = 32767: LTONE = 246
110     PRINT "Crescente . . ."
111     PRINT : PRINT a$
112     WHILE INKEY$ = ""
115         FOR COUNT = 60 TO 1 STEP -2
120             SOUND LTONE - COUNT / 2, COUNT / 20
125             SOUND HTONE, COUNT / 15
130         NEXT COUNT
131         FOR n = 1 to 5000: NEXT n
132     WEND
135 RETURN
200 ' Decrescente - de tom agudo para tom baixo
205     HTONE = 2000: LTONE = 550: DELAY = 500
210     PRINT "Decrescente . . ."
211     PRINT: PRINT a$
212     WHILE INKEY$ = ""
215         FOR COUNT = HTONE TO LTONE STEP -10
220             SOUND COUNT, DELAY / COUNT
225         NEXT COUNT
226         FOR n = 1 to 5000: NEXT n
227     WEND
230 RETURN
300 ' Buzina - dois sons alternados até tecla premida
305     HTONE = 987: LTONE = 329
310     PRINT "Buzinando . . ."
315     PRINT: PRINT a$
320     WHILE INKEY$ = ""
325         SOUND HTONE, 5: SOUND LTONE, 5
330     WEND
335 RETURN
400 ' Sirene - dois sons até tecla premida
405     HTONE = 780: RANGE = 650
410     PRINT "Sirenando . . ."
415     PRINT: PRINT a$
420     WHILE INKEY$ = ""
425         FOR COUNT = RANGE TO -RANGE STEP -4
430             SOUND HTONE - ABS(COUNT), .3
435             COUNT = COUNT - 2 / RANGE
440         NEXT COUNT
445     WEND
450 RETURN
500 ' Terminar
505 END

quarta-feira, 18 de maio de 2022

quarta-feira, 18 de maio de 2022

RS232 n.º6

A edição n.º 6 da revista portuguesa RS232, dedicada à informática, foi publicada em Junho de 1988. Destacamos o espaço dado às novas ofertas de modelos de PC da Olivetti (marca italiana bem conhecida dos portugueses) como o M290M380-XP1.

O post original do Planeta Sinclair com esta edição encontra-se neste link, e o ficheiro PDF pode ser obtido neste link.

quarta-feira, 11 de maio de 2022

quarta-feira, 11 de maio de 2022

RS232 n.º5

Em Maio de 1988 era publicada a edição n.º 5 da RS232, uma revista portuguesa dedicada à informática.

Encontramos dois pontos de interesse neste número. O primeiro é a análise ao WYSE PC 386, um equipamento da americana WYSE, bem conhecida no início dos anos 80 pelos seus terminais de texto, antes de se aventurar no mercado dos computadores pessoais.

O segundo ponto de interesse é uma adaptação de um programa de BIORRITMO (no ZX Spectrum) para os Amstrad PC1512 e PC1640, realizada por Fernando Preces em Locomotive BASIC 2.

O post original do Planeta Sinclair com esta edição encontra-se neste link, e o ficheiro PDF pode ser obtido neste link.

quinta-feira, 5 de maio de 2022

quinta-feira, 5 de maio de 2022

RS232 n.º4

 

A edição nº4 da revista RS232 contém uma breve análise a dois equipamentos da Compaq: o Deskpro 386/20 e o Portable 386. Uma leitura interessante para recordar estas máquinas que fizeram sucesso na época do seu lançamento, especialmente, o Portable que inovou no segmento de computadores portáteis.

A edição preservada pelo nosso blogue irmão Planeta Sinclair encontra-se neste link.

quarta-feira, 8 de dezembro de 2021

quarta-feira, 8 de dezembro de 2021

RS232 n.º3


Quem consultar a edição n.º3 da Revista RS232 referente ao mês de Março de 1988, irá relembrar-se de duas referências bem conhecidas nessa época em Portugal. A primeira é a americana Zenith, por muitos relembrada pelos seus portáteis. Aliás já aqui referimos um deles (o Z-Note 325LC) precisamente neste recorte.

A outra referencia é o NMS 9100, o desktop da holandesa Philips que vários portugueses terão usado nos seus escritórios. Nada como visitar o site holandês Home Computer Museum para conhecer um pouco mais sobre este computador. A digitalização pode ser consultada neste link, e o post original do Planeta Sinclair encontra-se neste link.

quarta-feira, 1 de dezembro de 2021

quarta-feira, 1 de dezembro de 2021

RS232 n.º2

Na edição n.º2 da revista RS232 de Fevereiro de 1988 destacamos a publicidade a uma máquina curiosa: ETV 260 da Olivetti - vendida como um sistema para serviço de secretariado, ou seja, uma máquina de escrever. De facto, não mais é que um PC especializado com uma impressora de margarida embutida. Curiosamente, na sequência temos o anúncio a outro equipamento, esse sim, uma máquina electrónica de escrever: a 6746-2 da IBM

Estes equipamentos não foram mais que o canto do cisne da tradicional máquina de escrever. Quem está na casa dos seus 40s ou 50s certamente ainda se lembrará da máquina usada pelos pais ou dos avós, em casa ou no trabalho. Mas chegados os anos 1990, os computadores pessoais e os processadores de texto empurraram a velha máquina de escrever para o esquecimento.

No espaço comercial da revista encontramos ainda o desktop WYSE PC 286. No Arvutimuuseum, o mais antigo museu de computadores da Estónia, temos as especificações dos vários modelos de motherboard deste equipamento. E no site The Computer Archive podemos ler uma brochura comercial descrevendo detalhadamente este AT.

E também podemos ler sobre o tema de capa: Ventura Publisher, software de paginação/diagramação, comercializado pela Xerox, mas que viria a ser adquirido pela Corel em 1993. E há muito mais para ler nesta edição, preservada pelo Planeta Sinclair, e cujo post original está neste link. A digitalização encontra-se neste link.

quarta-feira, 24 de novembro de 2021

quarta-feira, 24 de novembro de 2021

RS232 n.º1

Já há alguns meses que o Planeta Sinclair, o nosso blogue irmão, tem disponibilizado as digitalizações da RS232, uma revista portuguesa dedicada à micro-informática, cuja primeira edição foi em Janeiro de 1988, tendo publicado um total de 38 números até desaparecer. 

Foram vários os sistemas abordados pela RS232, sendo que o ZX Spectrum teve maior destaque, pelo menos, na fase inicial da revista; o motivo pelo qual a preservação foi realizada no contexto do Planeta Sinclair. Mais informação sobre esta revista e o trabalho de preservação realizado pode ser obtida aqui.

A RS232 foi evoluindo à medida que as várias edições foram sendo publicadas, reflectindo-se numa maior abrangência de sistemas e plataformas, incluíndo o IBM PC, com artigos sobre as novidades do mercado, além de inúmeras contribuições dos leitores na forma de listagens. Aliás, já aqui apresentamos uma listagem em GW-BASIC encontrada numa das edições da RS232.

Chegou a hora de mostrarmos a revista também ao nosso público, evidenciado factos e curiosidades encontrados nesta publicação que sejam relevantes para a temática do nosso blogue.

E para tal, começamos com um pequeno texto que podemos ler na RS232 n.º1 sobre o PAC 286 da fabricante Tandon, nome que muitos reconhecerão pelos discos que produziu - a sua área de expertise. O Virginia Computer Museum tem uma página dedicada a esta máquina 286 com placa gráfica Hercules, assente numa estrutura robusta em metal.

Obviamente, esta edição não vale apenas por isto. Os fãs da micro-computação dos anos 1980 vão deliciar-se com a abrangência desta revista. A digitalização pode ser obtida neste link. E o post original do Planeta Sinclair encontra-se neste link.

sexta-feira, 30 de julho de 2021

sexta-feira, 30 de julho de 2021

Type-in: Frère Jacques (1988)

O nosso blogue irmão tem publicado digitalizações de várias revistas portuguesas de informática que abordam essencialmente o ZX Spectrum, mas também outras plataformas como a do IBM PC. Uma revista em particular, a RS232, destaca-se pela quantidade de informação sobre os primódios dos computadores pessoais em Portugal.

Assim que o Planeta Sinclair terminar a publicação dos números que estão preservados, iremos destacar no nosso blogue alguns dos artigos mais relevantes desta revista. Mas não resistimos a publicar um type-in para o interpretador GW-BASIC, que saiu no nº 10 da RS232. Trata-se de uma pequena listagem que toca um trecho da famosa canção Frère Jacques.

Podemos digitar esta listagem no GW-BASIC original, e também no PC-BASIC, um interpretador moderno que emula alguns interpretadores clássicos como o GW-BASIC ou o BASICA.

Segue a curta listagem:

10 '------------------------------
15 '      O Som para os PC
20 '------------------------------
25 '
100 ' Trecho musical FRERE JACQUES
110 '
300 FOR N=1 TO 5
310 PLAY "T120"
320 PLAY "GABG"
330 PLAY "GABG"
340 PLAY "BO5CDD"
350 PLAY "O4"
360 PLAY "BO5CDD"
370 PLAY "L8DEDCL4O4BG"
380 PLAY "O5"
390 PLAY "L8DEDCL4O4BG"
400 PLAY "GDGG"
410 PLAY "GDGG"
420 FOR D=1 TO 5000
430 NEXT D
450 NEXT N
460 END