Autor ::Roman Bórik Poslaná :: 27.03.2015 09:05:35 Predmet ::Re: Help with .COM for pmddos
For PMD 85 there are two disk systems, MIKROS and DOS PMD-32. Both are CP/M 2.2 with some modifications. We use only MIKROS. DOS PMD-32 is unusable for normal work.
Beside this, on both systems, COM files starting at address 0100h, as well as on original CP/M. Similarly, COM files are normal binary files with i8080 code, which use CP/M BDOS services.
PMD 85 uses disk drive PMD 32. On the Emulator and real machine we now use PMD 32-SD with P32 disk image files. To add files to the image you can use utility CP/M Image Manager.
Of course, original PMD 85 storage for programs was tape. Emulator is using PTP files as an "image" of the cassette tapes. See short guide how to work with programs on tape. You can create PTP file by using utility Bin2Ptp.
But I am not sure if this is information which you want... ;-)
What you want to do on PMD 85?
Správa
Autor ::g0blinish Poslaná :: 27.03.2015 11:02:32 Predmet ::Re: Help with .COM for pmddos
hi!
Thank you for answer.
That do I want? No idea.
Správa
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