Forum

From PMD 85 Infoserver

Jump to: navigation, search
:: back to start of topic :: back to topic list ::
Message
Author  Author ::  Roman Bórik
Posted  Posted ::  2015-03-27 09:05:35 AM
Subject  Subject ::  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?
 
Message
Author  Author ::  g0blinish
Posted  Posted ::  2015-03-27 11:02:32 AM
Subject  Subject ::  Re: Help with .COM for pmddos
hi!
Thank you for answer.
That do I want? No idea.
 
Message
Author  Author ::  g0blinish
Posted  Posted ::  2015-03-27 11:11:30 AM
Subject  Subject ::  Re: Help with .COM for pmddos
And little question about creating ptp:
How BASIC loader must look:
LOAD 00
JUMP NNNN
?
 
Message
Author  Author ::  Roman Bórik
Posted  Posted ::  2015-03-27 09:00:30 PM
Subject  Subject ::  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.
 
Message
Author  Author ::  g0blinish
Posted  Posted ::  2015-03-28 03:28:24 PM
Subject  Subject ::  Re: Help with .COM for pmddos
How to sync video output?

EI, HLT doesn't work(
 
Message
Author  Author ::  Roman Bórik
Posted  Posted ::  2015-03-28 04:13:12 PM
Subject  Subject ::  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.
 
Message
Author  Author ::  g0blinish
Posted  Posted ::  2015-03-28 05:31:30 PM
Subject  Subject ::  Re: Help with .COM for pmddos
So, unterrupt occurs every frame?
 
Message
Author  Author ::  Roman Bórik
Posted  Posted ::  2015-03-28 05:58:33 PM
Subject  Subject ::  Re: Help with .COM for pmddos
Yes, interrupt occurs every frame, at the time of the blanking pulse, what is every 20 ms.
 
Message
Author  Author ::  g0blinish
Posted  Posted ::  2015-03-29 06:02:22 AM
Subject  Subject ::  Re: Help with .COM for pmddos
seems interrupt occurs once time.
 
Message
Author  Author ::  Roman Bórik
Posted  Posted ::  2015-03-29 09:43:45 AM
Subject  Subject ::  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.
 
Message
Author  Author ::  g0blinish
Posted  Posted ::  2015-03-29 10:53:18 AM
Subject  Subject ::  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.
 
Message
Author  Author ::  Roman Bórik
Posted  Posted ::  2015-03-29 11:19:18 AM
Subject  Subject ::  Re: Help with .COM for pmddos
I believe, that all informations are here.
 
Message
Author  Author ::  g0blinish
Posted  Posted ::  2015-03-29 11:46:41 AM
Subject  Subject ::  Re: Help with .COM for pmddos
Thank you. seems i lost in the wiki?
 
Message
Author  Author ::  Roman Bórik
Posted  Posted ::  2015-03-29 11:50:20 AM
Subject  Subject ::  Re: Help with .COM for pmddos
I don't know. :-) Perhaps you only lost in translation... ;-)
 
Message
Author  Author ::  g0blinish
Posted  Posted ::  2015-03-29 12:08:01 PM
Subject  Subject ::  Re: Help with .COM for pmddos
yes, right xD
:: back to start of topic :: back to topic list ::