Autor ::g0blinish Poslaná :: 27.03.2015 11:11:30 Predmet ::Re: Help with .COM for pmddos
And little question about creating ptp:
How BASIC loader must look:
LOAD 00
JUMP NNNN
?
Správa
Autor ::Roman Bórik Poslaná :: 27.03.2015 21:00:30 Predmet ::Re: Help with .COM for pmddos
If you create program in machine code (assembler i8080), you not need use BASIC at all. Therefore, in Emulator uncheck "Insert ROM Module" checkbox on Settings-Tab "Computer model".
In this case, after reset, computer will be in so-called "System MONITOR" - message "++ Os ready ++" appears. Now you can use commands to save (MGSV), load (MGLD) or start (JUMP) machine code programs from tape (PTP).
MGLD XX - load program from tape with number XX MGSV XX AAAA BBBB NNNNNNNN - save program to tape with number XX, from address AAAA to address BBBB with name NNNNNNNN JUMP AAAA - start program in memory from address AAAA DUMP AAAA - dump memory from address AAAA SUB AAAA XX YY ZZ ... - substitute (change) memory content from address AAAA with bytes XX YY ZZ MEM AAAA - show 16 bytes of memory from address AAAA
Again. Please, see also short guide.
To create PTP files use utility Bin2Ptp.
You can use memory from 0000h to 7FFFh. But be aware that after program starts, system stack is under address 8000h.From 8000h to 8FFFh is 4kB ROM. Video RAM begins at 0C000h.
Správa
Autor ::g0blinish Poslaná :: 28.03.2015 15:28:24 Predmet ::Re: Help with .COM for pmddos
How to sync video output?
EI, HLT doesn't work(
Správa
Autor ::Roman Bórik Poslaná :: 28.03.2015 16:13:12 Predmet ::Re: Help with .COM for pmddos
Unfortunately, the original PMD 85 does not have video sync, as you it know from the ZX Spectrum.
But Emulator PMD 85 experimentally allows to switch on interrupt from VideoCPU.
In Emulátor itself it is need to check "Interrupt from Video CPU" checkbox on the Settings-Tab "Screen / Display".
Remember that you have to prepare the interrupt routine at address 0038h.
As I mentioned, it is experimental feature and HW solution is only under construction.
Správa
Autor ::g0blinish Poslaná :: 28.03.2015 17:31:30 Predmet ::Re: Help with .COM for pmddos
So, unterrupt occurs every frame?
Správa
Autor ::Roman Bórik Poslaná :: 28.03.2015 17:58:33 Predmet ::Re: Help with .COM for pmddos
Yes, interrupt occurs every frame, at the time of the blanking pulse, what is every 20 ms.
Správa
Autor ::g0blinish Poslaná :: 29.03.2015 06:02:22 Predmet ::Re: Help with .COM for pmddos
seems interrupt occurs once time.
Správa
Autor ::Roman Bórik Poslaná :: 29.03.2015 09:43:45 Predmet ::Re: Help with .COM for pmddos
It's not true.
Try this: http://pmd85.borik.net/_work/test-int.ptp
Start it JUMP 0100, then key Shift displays time counter.
But you must use monit2B.rom for PMD 85-2 or PMD 85-2A.
Správa
Autor ::g0blinish Poslaná :: 29.03.2015 10:53:18 Predmet ::Re: Help with .COM for pmddos
yes, right! ;)
I forgot about EI at interrupt handler(((((
And last question:
Where to read about values of beeper port $F6?
And how values for keyboard scan defined? Seems like row at keyboard must be defined.
Správa
Autor ::Roman Bórik Poslaná :: 29.03.2015 11:19:18 Predmet ::Re: Help with .COM for pmddos