ZXTape! VIDEOBASIC>+ @(23613=\+256*23614>\),0:(23613=\+256*23614>\+1),0:   EDICOES LATINAS " *317997|:7:7:7: Mn=09 :n,0;" ":n Cn=16:n,4;" ":n (>n=35:n,10 ;" ":n 216,23;" ";17,21;" ";18,21;" ";19,20;" ";20,20;" " 3~ ? '#+563?`@###133~  qw{>~?  000000000000000000000000000000000000000000000000000000000000000000000000000100000001111022200000000000000211000000011112222000000000000002222200022222222220000000000000020200000002222222200000000000000000000000000000000000000666666666000000000066000000000006660088888888888888888880666660000000888===============8000000088888888?===============8888888888888888?<<<<<<<<<<<<<<<8888888888888888?;;;;;;;;;;;;;;;8888888888888888?;;;;;;;;;;;;;;;8888888888888888?:::::::::::::::8888888888888888?:::::::::::::::8888888888???888888888888888888:8888888888???8888????88?????::::8888888888???????889999999999:::888888888?88888888888888889999998888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888VIDEOLIST k  EDICOES LATINAS  f(23613=\+256*23614>\),0:(23613=\+256*23614>\+1),0 317997|:0:0:0:0:23658j\,8:236099\,20:20,0;:""318008|:236066\,86V:236077\,123{ 23675{\,88X:23676|\,127:7:7:1::#0;0,0; " PARA O GRAVADOR " (Cn=1502:.01z# =,*60<:n:490:600X F SUMARIO P,:AA=1:690:.6,21 Z3K=4:P$="VIDEOBASIC 18 ":710 d;K=6:p$="VIDEOHARDWARE: ":0710 n/p$="DENTRO DA CPU ":0710 x.p$="anatomia da Z80 A ":0710 =K=K+1:p$="VIDEOBASIC-A LINGUAGEM: ":0710 /p$="Do BASIC ":0710 .p$="a Linguagem Maquina ":0710 =K=K+1:p$="VIDEOBREAK: ":0710 /p$="Poesia ":0710 =K=K+1:p$="VIDEOBASIC-A PROGRAMACAO: ":0710 /p$="Programa em Linguagem ":0710 .p$="Maquina ":0710 90490::AA=2:0690:.6,18 :K=8:p$="VIDEOTEST: ":0710 .p$="jogo de adivinhas sobre ":0710 -p$="os temas da licao ":0710 <K=K+1:p$="VIDEOJOGO: ":0710 .p$="SIMULADOR DE VOO ":0710 <K=K+1:p$="VIDEONEXT: ":0710 .p$="no proximo numero... ":0710 #0490:1::0630v "  NOME , 612:AA,BB,CC,DD,EE:aa=-2330J @"AA,BB:CC-AA,DD-BB,EE:3106 J60<,65A:-30,-19:8,18:1:9 ,7;" ESCREVE O TEU NOME ";10 ,9 ;" NO TECLADO ";11 ,9 ;"E PRIME ":n$ Tn9 ,7;" ";10 ,9 ;" ";11 ,9 ;" " ^I10 ,7;" ESTA BEM ESCRITO, ";11 ,9 ;N$;" ? (S/N)" r="S"400 |b="N"10 ,7;" ";11 ,7;" ":330J  360h NN=1̱N$:N+23296[,N$(N):N:N+23296[,"":23296[,""  0530 38&,64@,38&,79O,-2,38&,79O,38&,100d,-1,38&,100d,44,,112p,-2,44,,112p,72H,114r,-1 72H,114r,94^,118v,-2,94^,118v,134,110n,-1,134,110n,165,116t,-2 165,116t,197,111o,-1,197,111o,222,107k,-2,222,107k,220,90Z,-1 Ž220,90Z,215,70F,-1,215,70F,190,63?,-2,190,63?,160,65A,-2 ̺160,65A,130,60<,-2,130,60<,115s,63?,-2,115s,63?,90Z,59;,-2,90Z,59;,60<,65A,-2 *-2,0,0,0,0 LETREIROS 3150:Y$="*PRIME UMA TECLA PARA CONTINUAR *" e#0;1,0;1;5;1;Y$(32 ):.001wn,30:"""": TY$=Y$(2)+Y$(1):.0004uQX,45-:.0006vIQ,557:495  TEXTO :0630v:13 ,13 :22,0:0,30:-22,0:0,-30:11 ,0;" Poe o gravador em marcha " I=116:.04|# =,36$-I:I:150:11 ,0;" ":10 ,0;" estou a carregar "''" VIDEOHARDWARE ":7:236066\,0:236077\,60<:0,0;"":"" NLE OS UDG X4:0610b:N=063?:A:"A"+N,A:N: b00,31,16,16,18,16,16,491,0,240,8,8,72H,8,8,204,80P,144,63?,32 ,63?,2,2,2,10 ,9 ,252,4,252,64@,64@,64@,2,4,4,8,8,568,121y,1,64@,64@,64@,64@,64@,64@,192,192,2,2,2,2,2,2,14,62>,64@,64@,124|,12 ,12 ,4,4,0 l HOMEM v&N=302-1:8 t(N/2)=(N/2)17,N;" ";18,N;" ";19,N;" ":.01z# =,30:N:0660 Z17,N;" ";18,N;" ";19,N;" ":.01z# =,40(:N:0660  1000:AA,BB;P$:AA=(21-AA)*8-2:BB=BB*8-2:CC=P$*8+4:BB,AA:CC,0:0,12 :-CC,0:0,-12 :BB+1,AA-1:CC,0:0,12 : +BB=11 :P$="VIDEOLIST":0680: ROTULOS ENTRANTES ON=1̱P$:K,31-N;P$(N):.002xn,K*N/8:N:K=K+1: a0,0:255,0:0,175:-255,0:0,-174: vaVLkPno proximo numero... Y!*PRIME UMA TECLA PARA CONTINUAR *CAR LIST 8| +"$$$~$$~$$$~$$~$~~bd&F(D(Zz  >>> @8Dp| |8H~|>@ƒB<" >\),0:(23613=\+256*23614>\+1),0 E"9999":ڰ"6":ٰ"6":ç::"":"9","7";ٰ"9";"DENTRO DA C.P.U."; K"23658","8":"23609",:9998':"31799":"""31800":ç:ç:ç On$="":a=23297[23317[:a127n$=n$+¾a:a:n$=".........." u="5000":z="7000" 'S$=" " 2"9998":S=ç:A=40(:S=S+254-191:0.002xn,A:9 ;1;10 ,0;" PARA O GRAVADOR ":A/502 <A:S>0502 FNڰ"4":A=ç21:A,ç;4*(A>11 );S$:10 :A15A HT15,0;9 ;" PRIME UMA TECLA PARA CONTINUAR ":A:1:0 P:ç:ç,80P:255,ç:ç,81Q:255,ç UQç:"":3,3:249,ç:ç,73I:-249,ç:ç,-73I dٰ"7":M=:u:AT=13 :P=:L$="A CPU (OU UNIDADE CENTRAL DEPROCESSO) E A PARTE MAIS SIG-NIFICATIVA DO COMPUTADOR:TEMA TAREFA DE ORGANIZAR E COOR-DENAR AS DEMAIS UNIDADES PRE-SENTES O TRAJETO E NO RESTODOS DISPOSITIVOS EXTERNOS." nbZ:"9999":A=ç9 :A,16;4;S$("17");4,22;"CPU":A:8000@ "6000" ȅu:AT=14:L$="PARA REALIZAR A SUA TAREFA, ACPU NECESSITA ESTAR LIGADA COMAS MEMORIAS RAM E ROM E COMDISPOSITIVOS DE E/S." z s"9999":P=ç̼:P:ç,ç;" "'" ROM "'" "'" "'" RAM "'" "''" "'" E/S "'" " "8000":P " "6000" ,AT=14:u:L$="PARA COMUNICAR COM ESTAS UNI-DADES EXTERNAS, A CPU USA TRESLINHAS (O BUS): LINHA DE DADOS(DATA BUS), LINHA DE DIRECOES(ADDRESS BUS), E LINHA DE CON-TROLO (CONTROL BUS)." 6z JP=3248:40(,175-P:P/2+4,0:0,-568:-P/2-4,0:P:40(,156:88X,0:128,140:-78N,0 T&46.,124|:82R,0 hb9999':2,8;"control";4,8;" data ";6,8;"address" mXP=1960<16:59;-p/3.9y,175-p,1.5@:P:P=3 n`P=275028:44,+(p-24)/2,175-p,1.5@:P:P=3 rsP=274808:40(,175-P:(p-24)/2+4,0:P:P=3:8000@  6000p U:AT=14:L$="O BUS DE DIRECOES SERVE A CPUPARA PODER SELECIONAR UMA DASPOSICOES DE MEMORIA OU UM PORTDE E/S. ASSIM, DESTE DEPENDEA QUANTIDADE DE MEMORIA DIRE-CIONAVEL." z  6000p AT=13 :u:l$="O BUS DE DADOS, CONTRARIAMEN-TE AO DE DIRECOES E BIDIRE-CIONAL, QUER DIZER,TANTO SERVEA CPU TANTO PARA RECEBER DADOSDO EXTERIOR COMO PARA ENVIA--LOS.O DADO PODE ESTAR CONTIDONUMA AREA DA MEMORIA OU VIRDUM PORT E/S." z N 6000p XAT=13 :u:L$="O BUS DE CONTROLO AGRUPA UMCONJUNTO DE LINHAS COM DIFE-RENTES FUNCOES, MAS TODAS PARAO CONTROLO DA TOTALIDADE DOSISTEMA: POR EXEMPLO, MEDIANTEUMA SAIDA""W/R"" DO BUS DE CON-TROLO A CPU INDICA SE ENVIA OURECEBE UM DADO." bz  6000p AT=13 :u:L$="A SAIDA ""MREQ"" INDICA QUANDO ACPU COMUNICA COM PERIFERICOS;EXISTE NO ENTANTO UMA LINHA(""CK"") QUE DESDE UM OSCILADORPROPORCIONA A CPU A BASE DETEMPOS, ETC..." z Х8,9 ;" ";9 ,9 ;" B.T. ";10 ,9 ;" ":71G,100d:-20,0:546,100d,1.43333:8000@  6000p  AT=13 :U:L$="NO SEU INTERIOR, A CPU POSSUIREGISTOS DE MEMORIA,E' UMA ALU(OU UNIDADE ARITMETICO-LOGICA)ESTA UNIDADE REALIZA OPERACOESLOGICAS (ROTACOES DE BITS,AND,OR, NOT...) E ARITEMETICAS(SO-MA E SUBTRACAO) ENTRE DOIS RE-GISTOS." zZ:6000p U:L$="OS REGISTOS TEM DIVERSAS TARE-FAS:EXISTE UM PRINCIPAL CHAMA-DO ACUMULADOR MEDIANTE O QUAL,REALIZA UM GRANDE NUMERO DEOPERACOES. OS BITS DO ACUMULA-DOR SAO 8, TANTOS COMO OS QUEPODEM TRANSITAR PELO BUS DEDADOS." (P=9 : AT=13 :z:6000p U:L$="EXISTEM REGISTOS CHAMADOSPONTEIROS, QUE CONTEM DIRECOESUTEIS PARA O FUNCIONAMENTO DACPU(POR EXEMPLO, O CONTADOR DEPROGRAMA: PC), E UM REGISTODE FLAG (BANDEIRAS) QUE INDICACONDICOES DA CPU." u:z BP=10 :6000p LU:L$="MAS FALAREMOS AGORA MAIS DETA-LHADAMENTE DO SPECTRUM: A SUACPU E A Z80.POSSUI UM ACUMULA-DOR DE 8 BITS E OUTROS 9 RE-GISTOS PRINCIPAIS, ENTRE OSQUAIS ESTAO: O PONTEIRO DOSTACK(SP, 16 BITS), O CONTADORDE PROGRAMA (PC, 16 BITS)." Z:6000p u AT=14:L$="A SEDE DOS FLAGS (F, 8 BITS)E OS REGISTOS B,C,D,E,H,L DE8 BITS. O BUS DE DIRECOES EDE 16 BITS: ISTO SIGNIFICA QUEO Z80 PODE MANEJAR UM MAXIMODE 64 K DE MEMORIA."  7000X:6000p AT=15:U:L$="A BASE DE TEMPOS DO Z80 E DEAPROXIMADAMENTE 4.5 MHZ: ISTOSIGNIFICA QUE EXECUTA UMA ME-DIA DE APROXIMADAMENTE UM MI-LHAO DE INSTRUCOES ELEMENTA-RES POR SEGUNDO." F7000X:6000p xAT=13 :U:L$="NO INTERFACE EXISTEM TRES BUSFACILMENTE DETECTAVEIS: ODATA BUS COM AS SAIDAS D0, D1,..., D7; O BUS DE DIRECOESCOM AS SAIDAS A0, A1,..., A15;AS RESTANTES SAIDAS CONSTITUEMO BUS DE CONTROLO.":7000X  6000p }U:AT=16:L$="BEM "+N$+",":7000X:AT=18:L$=" QUERES VER DE NOVO ? (S/N)":7000X .1:0:="S"P=1:70F =="N"0:4:"":4:0::1600@ " 1550 @:1''''" POE EM MARCHA O GRAVADOR ":40( J!4:8000@:8000@ T 4:"" @3:1:A=13 20:A,1;S$("3"):A  01;6,A;" ";7,A;" ": zu#1;1;0,0;" ""5"" PAGINA ANTERIOR   ""8"" PAGINA SEGUINTE" (9999':10 :""6100 u#1;1;0,0;" ""5"" PAGINA ANTERIOR   ""8"" PAGINA SEGUINTE" I236066\,86V:236077\,123{:10 :""6100  6000p 19998':="8"P=P+1:"":P*100d 8#="5"P=P-(P>M):"":P*100d  6000p btA=1̱L$:AT+((A-1)/30),1+(((A-1)/30)-((A-1)/30))*30;L$(A) l0.002xn,1:A: @( A=110 :0.05|L,A:A: 'Q:((*1000000t$))1:"CAR"318008|,127*8:"":"": '/236066\,86V:236077\,123{: '-236066\,0:236077\,60<: bN ..........uzXS smLO BUS DE DIRECOES SERVE A CPUPARA PODER SELECIONAR UMA DASPOSICOES DE MEMORIA OU UM PORTDE E/S. ASSIM, DESTE DEPENDEA QUANTIDADE DE MEMORIA DIRE-CIONAVEL.>CAR HARD 8|e)#$$$~$$~$$$~$$~$~~bd&F(D(Zz  >>> @8Dp| |8H~|>@ƒB<" >\),0:(23613=\+256*23614>\+1),0 _"31969":z=ç:u=::"23609","20":"23658","8":"""31970":""F$():"23606",z:"23607","124":ڰ"7":z::ڰ"8":u;"10",z;" PARA O GRAVADOR ":I=Z̰"10":װ".01","I*5":I dF"23675","66":"23676","124":ٰ"9":CEN=Z:OP=U:"100":a="127" i"23296"=a"160" n:"10","3";"ESCREVE O TEU NOME NO TECLADO E PRIME":n$::"10","4";"ESTA BEM ESCRITO? (S/N)";"6","15-N$/2";U;" ";N$;" " ="N""110" "S"130 .i=u̱n$+u+u:23295Z+i,(a+n$+a)(i):i .n$="":i="23297"̰"1e6":ian$=n$+¾i:i ^ٰ"9":b$=" ":U="1":Z=U-U:RR="8150":TX="8300":IN="8400" =RC=U:ڰ"8":A$=" ASSEMBLER-LING. MAQUINA ":"8410":tx:rr Ўڰ"6"::Z,Z;U;" ...e aqui o efeito de uma tipica instrucao Assembler...",::t$=" ":xl="62":yl="16":i=z̰"7":"8480":i r"641 FLAGS","","6A5A ...","","983B ...","","9A3C ...","","<84D ...","","z:ٰ"9":"4000":ڰ"6"::U;" CODE CHAR HEX Z80 ", hMi="65"̰"72":t$:'U;ڰ"5"'"3";i;"10";i;"16";i-"24";"22";t$,:i ̑Z,"28":U;"255",Z:"19",Z;:U:ڰ"7":T$="DE QUALQUER MANEIRA, VAMOSCONSULTAR O APENDICE DOMANUAL DO .":"8330":,:Z 0^"LD B,C","LD B,D","LD B,E","LD B,H","LD B,L","LD B,(HL)","LD B,A","LD C,D","LD C,C","LD C,E" bRR:b$=" " Kٰ"8":ڰ"8":"4500":i=z̰"3":a,t$:j=z̰"17":j,"i*7";u;u;b$(a):j O"19",z,,,,,,"19",U;:"8330":RR:J=Z̰"17":J,"I*7";U;U;B$(A):j:I  "7","ESTA COLUNA CONTEM TODOSOS CODIGOS DESDE <0> ATE<255>...","7","..CADA UM DOS QUAIS ESTAASSIGNADO COM UM CARACTER.","6","ESTE E O VALOR COM BASE HEXA-DECIMAL","10","...E AQUI OS CODIGOS OPE-RATIVOS EM A EM-PREGAR PARA TRADUCAO." Qٰ"9":t$=" ":"5000":ڰ"7":in:yl="14":xl="85":u,u;u;"exemplo" "4","59":ڰ"4";"246",z  "8480" P i=z̰"3" ca$,t$:"6","10";a$:J="15"̰"20":ڰ"6";j,u;," ":J:"16",U;:"8330":rr:i k"6:1LD (NN),HL","","LD (NN),HL","O FLUXO DE DADOS ESTA DIRIGI-DO PELO 2 OPERADOR ATEAO 1" ,"LD (NN),HL"," REPRESENTA UM NUMERO FOR-MADO POR 2 BYTES (0...65535)","LD (NN),HL","OS PARENTISIS INDICAM QUE NAO REPRESENTA O OPERA-DOR, MAS SIM A DIRECAO DAPOSICAO DE MEMORIA QUE OCONTEM." 6}"LD (NN),HL","PORTANTO, ESTA INSTRUCAOCARREGA NA DIRECAO DE MEMO-RIA O CONTEUDO DO PARDE REGISTOS .." IN:"8070":"1000" @2Z:A$=" POE O GRAVADOR EM MARCHA ":"7":ڰ"7": JN=Z̰"29":װ".05","2*N" T2ٰ"4";"8",N;" @";"9",N;" ~|";"10",N;" \]" ^0N>"2"N<"29"1;"8",N;A$(N-2) hN rG8,30;" ";9 ,30;" ";10 ,30;" " | 7:"" *"7",U;:T$="ESCOLHE, "+n$+":":"8330" }"11","6";"F FIM";"13","6";"I VOLTA AO PRINCIPIO";"15","6";"C PASSO P/A PARTE";"16","6";" SEGUINTE" t$=:t$="F"  t$="I" t$="C""8000"  "8090" 't$=" PRIME UMA TECLA PARA CONTINUAR " /#Z;ڰ"6";U+U;U;U,Z;t$:.001wn,30 Ot$=t$(2)+t$(U):.0004uQX,45-:.0006vIQ,557:"""":  8160 ldA=Z:J=rc9999':F$(J,30)"%"F$(J,30)"#"A=A+U+(2F$(J,30)="&"):J mVC"10-a/2",U; n T$=F$(rc) v1"8330":T$="30"T$(30)="#"rc=rc+u: {'F$(rc,30)="%"rc=rc+u:"8300" rc=rc+u:"8302" ڰ"8":U;U;:c=Z:N=U̱t$ (T$(N)="%"8150:"8400":vc=u: T$(N)="`"N$: T$(N)="&"'U''" ";: T$(N)="#"P="8": +T$(N);:OPT$(N)" ".001wn,40( +OPT$(N)=".".1}L,30:20 "c=c+u:c=30c=Z:U;" "; N: ta=4:XL=248:YL=169:2::U+U,U;:3,3:a;XL,Z:a;Z,YL:a;-XL,Z:a;Z,-YL: ڌVC=Z:"8400":"3","15-A$/2";A$:YL="11":XL="8*A$+16":"126-XL/2","142":XL,Z:Z,YL:-XL,Z:Z,-YL:U,-U:XL,Z:Z,YL:"13",U;: !*`a$:a$y="A$(u)-48":x="A$(u+u)-48":b=A$("3"):t$()=a$(4):y,x;B;t$:"8490" !/xl !4;x="x*8-3":y="165-y*8":x,y:xl,z:z,yl:-xl,z:z,-yl: &HP"m";1;"ASSEMINTR1":*"M";1;"ASSEMINTR1":*"M";1;"ASSEMINTR1" zu <JA TEMOS VISTO QUE, TANTO OSISTEMA OPERATIVO DO SPECTRUMCOMO O SEU MICROPROCESSADORSO ACEITAM INSTRUCOES DADASNUMA LINGUAGEM ESPECIAL: A LINGUAGEM MAQUINA.% %ESTA E FORMADA POR NUMEROSASINSTRUCOES QUE FAZEM REFEREN-CIA A PORTS, REGISTOS, E COM-PONENTES HARDWARE, CADA UMADAS QUAIS ESTA COMPOSTA POR UMOU MAIS BYTES, REPRESENTADOSNORMALMENTE EM HEXADECIMAL.PORTANTO,OS PROGRAMAS ESCRITOSEM LINGUAGEM MAQUINA TEM ESTEASPECTO:& &01 0A FC 09 21 05 3F EB ...ETC.% %E FACIL IMAGINAR QUE, GERAL-MENTE E PRACTICAMENTE IMPOSSI-VEL ESCREVER DESTA FORMA PRO-PROGRAMAS POUCO MAIS DO QUEELEMENTARES. PORTANTO, SURGE ANECESSIDADE DE UMA LINGUAGEMQUE MANTENDO UMA ESTREITA PRO-XIMIDADE COM O CODIGO/M FACI-LITE O TRABALHO DE REDACCAO.ESTA E A LINGUAGEM ASSEMBLER:O SEU CORRESPONDENTE COMPILA-DOR TRADUZ FIELMENTE CADAINSTRUCAO, DADA SEGUNDO UM CO-DIGO MNEMONICO ( ,, ,ETC.), AO COR-RESPONDENTE CODIGO MAQUINA. %POR EXEMPLO,& &carrega o reg. B com 3& &escreve-se:& &LD B,3 (LOAD B,3)& &que traduzido sera <0603># #O ASSEMBLER PERMITE TAMBEMLIGAR (ETIQUETAS OUREFERENCIAS QUE IDENTIFICAMUMA DETERMINADA LOCALIZACAODE MEMORIA):& & LD C,3 carrega C com 3 ABC DEC C decrementa C JR ABC salta p/ ABC% %QUANDO O PROGRAMA A ESCREVERNAO FOR MUITO EXTENSO, PODE-SEREALIZAR UMA COMPILACAO... MANUAL, ESCREVENDO O PRO-GRAMA DE FORMA SIMBOLICA ETRADUZINDO-O INSTRUCAO PORINSTRUCAO.PARA TUDO ISTO PODE--SE CONSULTAR O MANUAL DOSPECTRUM (APENDICE A).# # PeaNSl Uc FE B yuxMbA LD (NN),HLT NTINUAR PRIME UMA TECLA PARA COCAR LING 2 |n"$$$~$$~$$$~$$~$~~bd&F(D(Zz  >>> @8Dp| |8H~|>@ƒB<" >,, ,ETC.), AO COR-RESPONDENTE CODIGO MAQUINA. %POR EXEMPLO,& &carrega o reg. B com 3& &escreve-se:& &LD B,3 (LOAD B,3)& &que traduzido sera <0603># #O ASSEMBLER PERMITE TAMBEMLIGAR (ETIQUETAS OUREFERENCIAS QUE IDENTIFICAMUMA DETERMINADA LOCALIZACAODE MEMORIA):& & LD C,3 carrega C com 3 ABC DEC C demunui C JR ABC salta p/ ABC% %QUANDO O PROGRAMA A ESCREVERNAO FOR MUITO EXTENSO, PODEREALIZAR-SE UMA COMPILACAO... MANUAL, ESCREVENDO O PRO-GRAMA DE FORMA SIMBOLICA ETRADUZINDO-O INSTRUCAO PORINSTRUCAO. PARA TUDO ISTO PODECONSULTAR-SE O MANUAL DOSPECTRUM (APENDICE A).# # LINGUAGEM2#<  EDICOES LATINAS  Zf(23613=\+256*23614>\),0:(23613=\+256*23614>\+1),0 _"31969":z=ç:u=::"23609","20":"23658","8":"""31970":""F$():"23606",z:"23607","124":ڰ"7":z::ڰ"8":u;"10",z;" PARA O GRAVADOR ":I=Z̰"10":װ".01","I*5":I dF"23675","66":"23676","124":ٰ"9":CEN=Z:OP=U:"100":a="127" i"23296"=a"160" n:"10","3";"ESCREVE O TEU NOME NO TECLADO E PRIME":n$::"10","4";"ESTA BEM ESCRITO ? (S/N)";"6","15-N$/2";U;" ";N$;" " ="N""110" "S"130 .i=u̱n$+u+u:23295Z+i,(a+n$+a)(i):i .n$="":i="23297"̰"1e6":ian$=n$+¾i:i ^ٰ"9":b$=" ":U="1":Z=U-U:RR="8150":TX="8300":IN="8400" Slm=u:A$="LINGUAGEM MAQUINA":"8410":'u;" (continuacao)"'':RC=U:ڰ"8":tx:rr tin:i=ṵ"20":i,u;ڰ"155555555513333331555"(i)," ":i:ڰ"8":u,u;" R E G I S T O S Z 80 " S"11",U;" - P R O G R A M A L/M - ";"18",U;" ---- B A S I C ---- " 4h:I=ṵ"4":"1+I*2","7";u;" BDH"(i)i>u;ڰ"7";" .... "i>u;:"16";u;"ACEL"(I);ڰ"7";" .... ":i "i="13"̰"16":t$:i,"5";t$:i f"29999 ... ......","30000 06 00 LD B,0","30002 14 03 LD C,3","30004 201 RET" .1"20",u;ڰ"7";" PRINT USR 30000 " "3000":rr:"7950" "20",u,"13" Fa,n;u;" ":u,u:"50":"14","5";u;" ":u,u:"100":rr _ "7950":"5","9";u;z;" 0 ":"100":"7950":"5","18";u;z;" 3 ":"100":"7950" '"14","12","17","15",j,n,"16",j,n H'a,"12";u;" ":u,u:rr oi="19"̰"28":"20",i;u;"------> 3 "(i-"16"):.1}L,"20":.1}L,"4":i:"20","24";u;" "  RR:IN:TX p+"6000":j=zu:lm=u:RR:IN:t$:"8330" "VEJAMOS COMO,POR EXEMPLO, ES-CREVER UMA ROTINA QUE CONVER-TA UM CARACTER ( NA LOCALI-ZACAO 32000 ) DE MAIUSCULA AMINUSCULA." Llm="14":I=Ṵ"5":a$,t$:"i*3+4",u;u;a$;:װ".2",i:"8330":"150":i 8"LD A,(32000)","Carrega o reg. A com o caracter.","RES 5,A","Poe a 0 o bit 5 do reg.A","LD C,A","Carrega o resul-tado em C","LD B,0","Poe a 0 o reg.B","RET","Volta ao BASIC" |".....e esta e a traducao aL/M","LD A,(32000)","58 0 125","RES 5,A","203 175","LD C,A","79","LD B,0","6 0","RET","201" j d~LM=U:rr:in:t$="DEPOIS VEREMOS COMO GUARDARO PROGRAMA EM MEMORIA E RELA-CIONA-LO ADEQUADAMENTE COM OBASIC.":"8330" rr:IN:"8070":"1000" l"50":ڰ"8":u:i=z̰"21":i,z,,:i:a,j,n:i=jn:a,i;u;" ":װ".1","*30":"6":a,i;u;" ":i: @2Z:A$=" POE O GRAVADOR EM MARCHA ":"7":ڰ"7": JN=Z̰"29":װ".05","2*N" T2ٰ"4";"8",N;" @";"9",N;" ~|";"10",N;" \]" ^0N>"2"N<"29"1;"8",N;A$(N-2) hN rG8,30;" ";9 ,30;" ";10 ,30;" " | 7:"" *"7",U;:T$="ESCOLHE, "+n$+":":"8330" }"11","6";"F FIM";"13","6";"I VOLTA AO PRINCIPIO";"15","6";"C PASSO P/A PARTE";"16","6";" SEGUINTE" t$=:t$="F"  t$="I" t$="C""8000"  "8090" 't$=" PRIME UMA TECLA PARA CONTINUAR " /#Z;ڰ"6";U+U;U;U,Z;t$:.001wn,30 Ot$=t$(2)+t$(U):.0004uQX,45-:.0006vIQ,557:"""":  8160 ldA=Z:J=rc9999':F$(J,30)"%"F$(J,30)"#"A=A+U+(2F$(J,30)="&"):J mVC"10-a/2",U; n T$=F$(rc) v1"8330":T$="30"T$(30)="#"rc=rc+u: {'F$(rc,30)="%"rc=rc+u:"8300" rc=rc+u:"8302" ڰ"8":U;lm;:c=lm-u:N=U̱t$ (T$(N)="%"8150:"8400":vc=u: T$(N)="`"N$: T$(N)="&"'U''" ";: T$(N)="#"P="8": +T$(N);:OPT$(N)" ".001wn,40( +OPT$(N)=".".1}L,30:20 $c=c+u:c=30c=lm-u:U;lm; N: ta=4:XL=248:YL=169:2::U+U,U;:3,3:a;XL,Z:a;Z,YL:a;-XL,Z:a;Z,-YL: ڌVC=Z:"8400":"3","15-A$/2";A$:YL="11":XL="8*A$+16":"126-XL/2","142":XL,Z:Z,YL:-XL,Z:Z,-YL:U,-U:XL,Z:Z,YL:"13",U;: zuI>PARA MEMORIZAR UM PROGRAMA EMLINGUAGEM MAQUINA,E NECESSARIORESERVAR-LHE EM PRIMEIRO LUGARUM ESPACO NA MEMORIA.% %NORMALMENTE EMPREGA-SE A AREACOMPREENDIDA ENTRE O FINAL DAZONA BASIC(RAMTOP) E O PRINCI-PIO DOS . COM BAIXA-SE A NA MEDIDANECESSARIA, DEPOIS ATRAVES DE OS CODIGOS SAO CARREGA-DOS(DEPOIS DE TEREM SIDO IN-CLUIDOS ANTERIORMENTE EM LI-NHAS ).% %O INTERCAMBIO DE DADOS PODEPRODUZIR-SE EM ZONAS DE MEMO-RIA RESERVADAS, USANDO RESPEC-TIVAMENTE (PRO-GRAMA BASIC) E (LIN-GUAGEM MAQUINA).% %PARA EXECUTAR UM PROGRAMA ES-CRITO EM L/M, NAO SE PODE USAR POIS ESTE DIZ RESPEITOAO BASIC.USA-SE ENTAO A FUNCAO, QUE EXECUTA UM ADIRECCAO DE MEMORIA ESPECIFI-CADA PELO ARGUMENTO, E DEVOLVEO CONTEUDO DO PAR DE REGISTOS NO AO BASIC.% % POR EXEMPLO,ESTANDO O PROGRAMAMEMORIZADO NA DIRECCAO 32000,PODEREMOS EXECUTA-LO COM:& & LET X=USR 32000, ou& &IF USR 32000=RIS THEN...& &ou tambem& &RANDOMIZE USR 32000 NO CASO DO COMANDO NAO SERUTILIZADO.# #OS PROGRAMAS ESCRITOS EM L/MOU ASSEMBLER TEM VELOCIDADEMAXIMA PERMITIDA PELO MICRO-PROCESSADOR E PERMITEM OPERA-COES INEXISTENTES NO BASIC.MAS,NORMALMENTE SAO MUITO MAISEXTENSOS DE ESCREVER E NAOADMITEM ERROS, UMA VEZ QUE AOMANEJAR O MICROPROCESSADOR DEFORMA DIRECTA, EXCLUEM-SE CON-TROLES E A GESTAO DE ERROS;ALEM DISSO, AO SE SAIR DO AM-BIENTE , PERDE-SE O USODO TECLADO, FICANDO EXCLUIDAQUALQUER COMUNICACAO COM OPROGRAMADOR.% % ACONSELHAMOS-TE PORTANTO, AGRAVAR OS PROGRAMAS ANTES DEOS USARES, E POUPARAS MUITOTEMPO E TRABALHO!.# # [t$eaNB l ALINGUAGEM MAQUINA 'l c TRESERVAR-LHE EM PRIMEIRO LUGARPCAR LING 2 |#$$$~$$~$$$~$$~$~~bd&F(D(Zz  >>> @8Dp| |8H~|>@ƒB<" >PARA MEMORIZAR UM PROGRAMA EMLINGUAGEM MAQUINA,E NECESSARIORESERVAR-LHE EM PRIMEIRO LUGARUM ESPACO NA MEMORIA.% %NORMALMENTE EMPREGA-SE A AREACOMPREENDIDA ENTRE O FINAL DAZONA BASIC(RAMTOP) E O PRINCI-PIO DOS . COM BAIXA-SE A NA MEDIDANECESSARIA, DEPOIS ATRAVES DE OS CODIGOS SAO CARREGA-DOS(DEPOIS DE TEREM SIDO IN-CLUIDOS ANTERIORMENTE EM LI-NHAS ).% %O INTERCAMBIO DE DADOS PODEPRODUZIR-SE EM ZONAS DE MEMO-RIA RESERVADAS, USANDO RESPE-TIVAMENTE (PRO-GRAMA BASIC) E (LIN-GUAGEM MAQUINA).% %PARA EXECUTAR UM PROGRAMA ES-CRITO EM L/M, NAO SE PODE USAR POIS ESTE DIZ RESPEITOAO BASIC.USA-SE ENTAO A FUNCAO, QUE EXECUTA UM ADIRECAO DE MEMORIA ESPECIFI-CADA PELO ARGUMENTO, E DEVOLVEO CONTEUDO DO PAR DE REGISTOS NO AO BASIC.% % POR EXEMPLO,ESTANDO O PROGRAMAMEMORIZADO NA DIRECAO 32000,PODEREMOS EXECUTA-LO COM:& & LET X=USR 32000, ou& &IF USR 32000=RIS THEN...& &ou tambem& &RANDOMIZE USR 32000 NO CASO DO COMANDO NAO SERUTILIZADO.# #OS PROGRAMAS ESCRITOS EM L/MOU ASSEMBLER TEM VELOCIDADEMAXIMA PERMITIDA PELO MICRO-PROCESSADOR E PERMITEM OPERA-COES INEXISTENTES NO BASIC.MAS,NORMALMENTE SAO MUITO MAISEXTENSOS DE ESCREVER E NAOADMITEM ERROS, UMA VEZ QUE AOMANEJAR O MICROPROCESSADOR DEFORMA DIRETA, EXCLUEM-SE OSCONTROLOS E A GESTAO DE ERROS;ALEM DISSO, AO SE SAIR DO AM-BIENTE , PERDE-SE O USODO TECLADO, FICANDO EXCLUIDAQUALQUER COMUNICACAO COM OPROGRAMADOR.% % ACONSELHAMOS-TE, PORTANTO, AGRAVACAO DOS PROGRAMAS ANTESDE OS USARES, E POUPARAS MUITOTEMPO E TRABALHO!# # EXERCICIOS  EDICOES LATINAS  f(23613=\+256*23614>\),0:(23613=\+256*23614>\+1),0 "31969":z=ç:u=::"23609","20":"23658","8":"""31970":"23606",z:"23607","124":ڰ"7":z::ڰ"8":u;"10",z;" PARA O GRAVADOR ":I=Z̰"10":װ".01","I*5":I dCEN=Z:OP=U:"100":a="127" i"23296"=a"160" n:"10","3";"ESCREVE O TEU NOME NO TECLADO E PRIME":n$::"10","4";"ESTA BEM ESCRITO ? (S/N)";"6","15-N$/2";U;" ";N$;" " ="N""110" "S"130 .i=u̱n$+u+u:23295Z+i,(a+n$+a)(i):i .n$="":i="23297"̰"1e6":ian$=n$+¾i:i ,I=U:PN=U:A$="LINGUAGEM MAQUINA":"8410" $ "8500" ~"8075":E"1000" @/A$=" POE O GRAVADOR EM MARCHA ":"7":ڰ"7": JN=Z̰"29":װ".05","2*N" T2ٰ"4";"8",N;" @";"9",N;" ~|";"10",N;" \]" ^0N>"2"N<"29"1;"8",N;A$(N-2) hN rG8,30;" ";9 ,30;" ";10 ,30;" " | 7:""  8150 3"8400":7,U;:T$="ESCOLHE, :":8330 E=Z:11 ,6;"F FIM";13 ,6;"E EXERCICIOS";15,6;"C PASSO P/A PARTE";16,6;" SEGUINTE"  ="F" ="E"I=PN:E=U: ="C"I=I+U:PN=I:  8090 't$=" PRIME UMA TECLA PARA CONTINUAR " /#Z;ڰ"6";U+U;U;U,Z;t$:.001wn,30 Ot$=t$(2)+t$(U):.0004uQX,45-:.0006vIQ,557:"""":  8160 l"u'u;:I=I9999':T$=F$(I) v%8330 :n<31T$(N)="" I c=Z:N=U̱t$ "T$(N)="%"8150:"8400": T$(N)="{"T$=N$:"8330" T$(N)="}"'U''" ";: T$(N)=""P="8": .T$(N);:OPT$(N)" ".001wn,40(:U +OPT$(N)=".".1}L,30:20 "c=c+u:c=30c=Z:U;" "; N: ta=4:XL=248:YL=169:2::U+U,U;:3,3:a;XL,Z:a;Z,YL:a;-XL,Z:a;Z,-YL: ڱ"8400":"3","15-A$/2";A$:YL="11":XL="8*A$+16":"127-XL/2","142":XL,Z:Z,YL:-XL,Z:Z,-YL:U,-U:XL,Z:Z,YL:5,5;"exemplos e exercicios";8,U;: ! t$:ñt$ !cenu;"16-t$/2"; ! "8330":"8450" !5J=U+a9 +a:j,u;6+(a=10 ),a$:j: ! A=U+U:J="18"̰"24"6:208-J/A,ER+J/A*.73333:J,Z:A,-A,/A:Z,-J*.73333,Z:-A,-A,-/A:-J,Z:-A,A,/A:Z,J*.73333:A,A,/A:J: !4 INTER !9-CEN=Z:"9400":"14",U;:"8450":"8150" !>Aa$=" ":"8400":ڰ"4";"4","91":ڰ"4";"246",z !4a="10":"8470":a=Z:"8470":T$:t$="""8740" !:"5","15-t$/2";:"8330":I=Z̰"50"Ͱ"5":װ".01",I:I !"14",U;:"8450" " "8150" " "8600" "$u,u;:T$="BEM, "+N$:"8330":U+U,u;:T$="TENTA ESCREVER AS INSTRUCOESQUE TE SEJAM PEDIDAS. ACTUACOM CALMA E VERAS QUE E FACIL.":"8330" "`"8150":cen=u:"8470":ER=Z "e "9530" "j b$:ñB$ "t"14",u;:"8450" "#u+U,u;ٰ"6";b$;:x="23688/2-U" " i=u̱b$ "b$(i)=""B$(I)=""x=x+u "ER="9"c$=b$(i):"9040" #(&#z;z,z;u;"K":z:c$=¾"23560":"" #-,"23617",Z:C$=°"14""23617",U:"9000" #.C$<" ""9000" #2(i=uC$<""C$>"9"C$=(C$+165) #4+I>UB$(I-U)=""C$<""C$=(C$+"165") #Z/u+U,u;ٰ"6";c$;:"(32-23688+x)>31"c$="?" #n\"5",x;a$(̰"(10X<21)+(30-X)*(X>20)"):c="(*3+2)"i=u:c=uj=ux:"5",j;U;" ";c$; #s3c="2"j=u+(ER="9")̰"4":j,u,a$;j+u,x;U;c$; #xKc="3"u+U,u;ٰ"6";c$;:j="23688-2"x-u:"5",j;U;c$;z;" ";°"8"; #}/c="4"j="9"̰"6"-u:j,u,a$;j-u,x;U;c$; #U:j #c$b$(i)u;"9","10";"ERRO !";"5",X;C$:U,"-18":"50":er=er+u:er<"3""9","10";U;"OUTRA VEZ!":"50":װ".1","20":"9","10",A$:"9000" #Wer="3""8470":U,U;7;U;"ESTA E A INSTRUCAO EXACTA:":er="9":"8860" #X="33-23688" #.1}L,i*3 #ERɰ"9"ER=Z #Li:er"9","11";u;"EXACTO !":"8150":J=Ṵ"20":J,U;J="10",A$:J #KEr"100":"8","10";"OUTRA VEZ!":װ".5","32":"8470":ER=Z:"8850" # "8810" $ D A T A  $"AGORA VEREMOS ALGUNS EXEMPLOSREFERENTES AO USO E INTERCAM-BIO DE INFORMACOES ENTRE O E O PROGRAMA EM LIN-GUAGEM MAQUINA.","" $"IF USR P THEN...","UMA VEZ QUEDEVOLVE O CON-TEUDO DO PAR DE REGISTOS ,A CONDICAO NAO SE VERIFICA SEAMBOS CONTIVEREM<0> NO MOMENTODE RETORNO.","" %u"POKE D,CODE ""R""","A UNICA MANEIRA DE PASSAR CA-RACTERES AO PROGRAMA EM L/M ETRANSMITINDO-LHE O SEU CODIGO.","" %o"PRINT CHR$ PEEK D","ESTE ULTIMO PODE SERVIR EVEN-TUALMENTE PARA A RECONSTRUCAODOS CARACTERES ENVIADOS.","" % "B=2 C=3","SE VALE<256>,COM OS REGIS-TOS ASSIM ESTABELECIDOS, OEVENTUAL DEVOLVERA: 2*256+3, E DECERTO 515.","" %z"PRINT PEEK D+256*PEEK(D+1)","QUANDO O INTERCAMBIO OCORRENA MEMORIA, PODE RECONSTRUIR--SE UM NUMERO DESTA FORMA.","" %"PRINT USR ""A""","A FUNCAO COM ARGUMENTO DEVOLVE A DIRECAO DO PRI-MEIRO UDG QUE CORRESPONDE NOR-MALMENTE AO FINAL DO ESPACODISPONIVEL PARA A L/M.","" %0"" %: INTER %D`"C=P","EXECUTA O PROGRAMA(L/M)","NA DIRECAO

E MEMORI-","ZA O RESULTADO EM .","" %Nb"D,N-(N/256)*256","MEMORIZA NA DIRECAO ","O BYTE MAIS BAIXO","DO NUMERO .","" %XL"D+1,(N/256)","...E O MAIS ALTO","NA DIRECAO SEGUINTE.","" %bl"29999","SUPOE QUE OS COME-","CAM NA DIRECAO <30100>","E RESERVA 100 BYTES","PARA A L/M.","" %lC"P","EXECUTA O PROGRAMA(L/M)","SITUADO NA DIRECAO

.","" %v["513"," CONTEM <2>"," CONTEM <1>.O QUE DEVOL-","VE O CORRESPONDENTE ?","" &G"" zut$eaNALINGUAGEM MAQUINA TAGORA VEREMOS ALGUNS EXEMPLOSREFERENTES AO USO E INTERCAM-BIO DE INFORMACOES ENTRE O E O PROGRAMA EM LIN-GUAGEM MAQUINA.c CAR EXER |#$$$~$$~$$$~$$~$~~bd&F(D(Zz  >>> @8Dp| |8H~|>@ƒB<" >