OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 29.03.2024, 00:50

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 18 ]  Přejít na stránku Předchozí  1, 2
Autor Zpráva
 Předmět příspěvku: Re: Výpočet goniometrických funkcí
PříspěvekNapsal: 06.02.2017, 15:59 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
_dworkin píše:
8086 assembler je strasna hruza oproti Z80. Koukam ze napisi XOR AL,AL...2 byty! Coze? MOV AL,0 je pakto same. Kratke instrukce pro rotace akumulatoru..kde? Invertovani akumulatoru? Nikde? INC AL jsou zase 2 byty! :o
Invertovanie akumulatora je NOT AX (alebo not eax) a tiez ma dva bajty :) Ale inak plne suhlasim, voci krasnemu Z80 je to hruoooza :bang:

Dodatok pod ciarou: Instrukcny kod 8086 bol vymysleny na zaklade 8080 tak, aby bolo mozne programy pisane pre 8080 priamo skompilovat do 8086. To znamena, ze x86 obsahuje vsetky instrukcie, alebo nejake (viacmenej) priame nahrady vsetkych instrukcii 8080.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Výpočet goniometrických funkcí
PříspěvekNapsal: 07.02.2017, 14:47 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1100
Has thanked: 100 times
Been thanked: 157 times
Tak vic to uz upravit asi nedokazi, zacinam se v tom jen zamotavat. Verze pro 287: https://github.com/DW0RKiN/FSINCOS-i287/blob/master/fsincos.asm
Je tam jedno WAIT ktery me tam dal samotny TLINK, tak jsem ho tam nechal. Kupodivu jen za instrukci pocitajici zbytek po celociselnem deleni, ostatni dve deleni ignoroval.


vanthomas píše:
Vyzkoušení na reálném železe není problém, mám funkční XT s V20+8087. Ale nejdřív příští týden, teď jsem pryč...
To by bylo super, ale musim to jeste nejak upravit protoze tam ted je 287 instrukce FSTSW AX. Ale mela by existovat i FSTSW mem16.
Nevim jak ale zjistit ze to bezi. Protoze by to chtelo nejakou rutinu na vypis na obrazovku cisla s plovouci carkou. Mam nco grafickeho ale nevim co tam mas za rezim a pouziva to VESA BIOS ver 2.

Nasel jsem zajimavou diskuzi k tematu emulace koprocesoru na 8086. http://www.vcfed.org/forum/archive/index.php/t-36579.html
Citace:
Hello,

I remember years ago reading something about 8087 emulation on 8086/8088, but IIRC I think it's more of a fallback used by some compiler to make fpu codes runnable on fpu-less machine than a real emulator.

fpu instructions are preceded by a wait 9Bh then the first byte op fpu opcode in the range D8h-DFh
I you replace 9Bh by CCh, you turn the fpu instruction into a call to an interrupt.
Then you just have to make handlers for fpu instructions.

In some dos interrupt lists, there is a dedicated range:

INT 34 - FLOATING POINT EMULATION - OPCODE D8h
INT 35 - FLOATING POINT EMULATION - OPCODE D9h
INT 36 - FLOATING POINT EMULATION - OPCODE DAh
INT 37 - FLOATING POINT EMULATION - OPCODE DBh
INT 38 - FLOATING POINT EMULATION - OPCODE DCh
INT 39 - FLOATING POINT EMULATION - OPCODE DDh
INT 3A - FLOATING POINT EMULATION - OPCODE DEh
INT 3B - FLOATING POINT EMULATION - OPCODE DFh
INT 3C - FLOATING POINT EMULATION - SEGMENT OVERRIDE
INT 3D - FLOATING POINT EMULATION - STANDALONE FWAIT
INT 3E - FLOATING POINT EMULATION - Borland "SHORTCUT" CALL

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Výpočet goniometrických funkcí
PříspěvekNapsal: 08.02.2017, 23:29 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1100
Has thanked: 100 times
Been thanked: 157 times
Tak jsem napsal nejakou funkci na tisk celosciselnych cisel :), volanou pote co vysledek nasobim 1000. Melo by to vypadat nejak jako na obrazku.

Kdyz jsem zadal cil 8086, tak TLINK 2.0 od Borlandu dal PRED a ZA kazdou instrukci koprocesoru WAIT! 287 jen pred FINIT, a za FPREM.

Preventivne jsem tam jeste dodal to cekani za instrukci koprocesoru co uklada nejaky data co pak mam cist. Tohle si nejsem jisty, zda to tam ma byt, protoze se ceka ze to udelam ja a kompiler to neuhodne kdy je to nutne a kdy ne, protoze treba delam neco nezavisleho zatimco pocita a nebo je to tam navic.

V SIN_TEST je ve zdrojaku ukazano jak to vypada po prekladu do 8086, plus ty navic ode me kdyz ctu data co mel spocitat koprocesor a procesor by na nej necekal.


Přílohy:
sin_dos.jpg
sin_dos.jpg [ 27.37 KiB | Zobrazeno 2396 krát ]
SOURCE.zip [13.86 KiB]
401 krát

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH
Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 18 ]  Přejít na stránku Předchozí  1, 2

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 6 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz