Jump to content
IGNORED

Force Command : kinda like command.com from 1985 (no TIPI required!)


Recommended Posts

8 hours ago, jedimatt42 said:

The infinite loop symptom indicates that VDP interrupts never get to the 4A console...   Is that true generally?  I see this note on ninerpedia: 

Hi @jedimatt42,

 

I think your assumption is correct. The VDP interrupt is generated on the EVPC2 card for the VDP RAM (192KB) there. And in the console I had to disconnect the EXTINT connection to the PEB.

You can see this in the REPL manual on page 15.

 

repl99x.pdf  It's in German, but the picture tells you something!

 

I'm using a PAL console, but it seems to work without a problem.

 

 

Link to comment
Share on other sites

10 hours ago, jedimatt42 said:

But, I'm guessing the REPL99 doesn't decode the VDP INT from some other sideport bus pin... VDP INT really needs to be sourced from the VDP or lots of compatibility issues are created.. is that a fair assessment?

Maybe have a look at the docs from SNUG: https://www.s-n-u-g.de/evpc/index_en.php

The relevant docs should be in the section EVPC.

  • Thanks 1
Link to comment
Share on other sites

So, looks like EVPC2 can send VDP-INT back to the 9901 on EXT-INT. Odd that my software works on MAME but not real hardware. I can't tell if EVPC on MAME is EVPC or EVPC2... I guess I should assume MAME is not EVPC2. 

 

My read of the EVPC docs lead me to think EVPC only supports the external wire going back to the console. 

 

My software is disabling interrupts at the cpu ( limi 0 ), then setting R12 to 0x0000, and testing bit 2, a cru input from the 9901 to see if the VDP-INT occurred. and then reading the VDP status register to clear it ( as if there is only one, but after detecting the VDP type, I am careful to set the VDP register-to-read back to 0 )

 

I don't see any way in mame to control the EVPC2 DIP settings, that control if the EXT-INT method is implemented or not. So I can only guess that MAME implements the jumper wire technique bringing the true VDP INT back to the 9901, and for EXT-INT, I would need to be testing some bit other than 2. I'll have to study the 9901 circuit...  So, again maybe not EVPC2... IDK... this won't get much attention again until I have some use for my isPal detection.

 

--------

 

As for the ERROR 07 issue... I guess I'll have to configure an actual floppy :( and reproduce the defect.

  • Like 1
Link to comment
Share on other sites

22 hours ago, mizapf said:

I implemented the EVPC in MAME with a separate VDP-INT wire plus the REPL99x.

That doesn't seem like a 'MAME' type decision. In the real world, a user would choose one or the other... external wire, and VDP-INT is readable on CRU bit 2, or REPL99x, and VDP interrupt is on EXT-INT which is CRU bit 1. 

Seems like MAME should emulate the software compatibility issues of EVPC w/REPL99x.

Link to comment
Share on other sites

The EVPC1 needs two cables: GRMCLK and VDPINT. With the REPL99x (see the docs where SNUG state that it can be used with EVPC1), the GRMCLK cable is not used anymore, but the video interrupt must still be led to the console via a separate cable because the EVPC1 does not latch its own video interrupt, so it cannot tell whether it was the originator of the EXTINT. This was changed with the EVPC2 which also has a modified DSR. Hence, the REPL99x does not need either cable with the EVPC2.

 

As I understood it, apart from leading the signals into the socket, and from terminating open bus lines, the REPL99x just provides an oscillator for 447 KHz (GRMCLK).

 

So what I emulated in MAME is the EVPC1 with the VDPINT cable and the oscillator in place of the VDP, that is, the REPL99x. How else should I have done it? Without the REPL99x, I would have needed two cables, and put the oscillator on the EVPC1. This should not be different from the point of using. I don't think the REPL99x has to do with VDPINT/EXTINT, but I may have misunderstood it.

  • Like 1
Link to comment
Share on other sites

You offered the best configuration, but the product offered compromises.

 

The REPL99x manual l read didn't explain itself as contextually and clearly as you just did. It primarily conveyed you don't need the wires.  If I care some other time, I'll have to re-read. I am not able to read the original German. I never saw anything in manuals for the EVPC that describe the potential for 2 cables... I think the nuances between the EVPC and EVPC2 were lost in me. I may have only seen an EVPC2 manual.

 

If the EVPC(1) supports the VDP interrupt choice of on the bus's EXT-INT or via external wire, then I would have expected a DIP option in MAME simulating the physical configuration jumper. I wasn't able to understand the difference between EVPC and EVPC2, so I mistakenly held that expectation.

 

 

Edited by jedimatt42
  • Like 2
Link to comment
Share on other sites

The English translations of the SNUG manuals do not convey 100% of the German version, as I noticed; some side comments were lost which may be interesting. I already planned to add a citation in the above post when I noticed that the German original was already formulated ambiguously. Writing specs is a proper art.

  • Like 2
Link to comment
Share on other sites

FWIW, the English translations were done from original German texts supplied by Harald Glaab. The English text was returned to him for proof reading after they were complete. What appears on the SNUG site is this combined effort. There were some changes made to my original translations. This is the first time there have been any issues with them since they were first published years ago. 

Edited by atrax27407
  • Like 1
Link to comment
Share on other sites

I can well imagine that they changed the wording in German later on and did not check the translation. The differences are not really big, but in the case of the REPL99x I missed a notice about the required wire in the translation. They said the VDPINT had to be "connected", but without further detail.

 

  • Like 1
Link to comment
Share on other sites

Keep in mind, there is also English -> English translation going on when I read this stuff... It's not like any of the 80s era manuals tell you 'this is how it should be', they are full of 'here's an option' and 'here's an option' and oh, if you use option 3, it behaves differently if you use the card this manual wasn't written for... or something... So someone who never touched this stuff, and doesn't have the ability to do so, trying to understand how the 'system' works requires synthesizing a mental model of the system. ( in 15 minutes or less cause this was just a misguided effort to determine if the system is PAL or NTSC for what turned out to be something I didn't want to use. ) 

 

Manuals originating in the language I'm supposed to call my 'native language' probably would have led me to the same difficulty.

 

 

Link to comment
Share on other sites

I have some questions:

- Is there a way to mute the 3-tones audio signal at FC startup?

- Why a "$" was chosen for the prompt instead of the classic ">"

- At startup, do you plan to display some configuration information, as the presence of the 32KB and SAMS RAM expansions, the Speech Synth (or others?).

  • Like 1
Link to comment
Share on other sites

The 3 tone beep does not happen if an AUTOCMD is found on the first device. AUTOCMD is like an AUTOEXEC.BAT 

 

$ was chosen cause I spend all my time at a bash prompt. It isn't bash, it isn't MSDOS, l should probably change it to a something unique.

 

I do imagine adding a SYSINFO command that would display some detected system summary.

Edited by jedimatt42
  • Like 2
Link to comment
Share on other sites

I really only imagined displaying things in my sysinfo command that influence the behavior of Force Command itself.. such as VDP type, and CPU memory. 

 

An external command could be written by someone using the API to more deeply analyze each potential piece of hardware and try to display it by brand or something... Like ROS does. 

 

I personally don't agree with all the expansion things that urinate on the TI title screen, just to show they exist. So I would never want that to be a default behavior in Force Command either.

 

 

 

 

  • Like 5
Link to comment
Share on other sites

3 hours ago, jedimatt42 said:

I personally don't agree with all the expansion things that urinate on the TI title screen, just to show they exist.

It was not my vision.  The only goal of the request was to be displayed the main information about the computer (the expansion RAMs like 32kb, SAMs or others) because it is important to know it before launching a program. And, but just for fun, why not also display one of the most emblematic expansion of the computer: the speech synth.  it's detection do not consumes many lines code. I didn't imagine no more. Yes, why not display the VDP installed although the fact to be in 40 or 80 columns display already gives an idea of the one installed. It is clearly unnecessary to display a list of any kinds of expansions installed, it is not the goal of such program.

  • Like 2
Link to comment
Share on other sites

5 hours ago, jedimatt42 said:

$ was chosen cause I spend all my time at a bash prompt. It isn't bash, it isn't MSDOS, l should probably change it to a something unique.


Yes, you're right, it is not MS-DOS... but you clearly inspired by it for the majority of the commands you create for FC. So, the ">" prompt could also have it's place on FC ? This is a more relevant prompt than a "$"

  • Like 2
Link to comment
Share on other sites


Yes, you're right, it is not MS-DOS... but you clearly inspired by it for the majority of the commands you create for FC. So, the ">" prompt could also have it's place on FC [emoji846] This is a more relevant prompt than a "$"
Just make it programmable so we can make it whatever we want

Sent from my LM-V600 using Tapatalk

  • Like 3
Link to comment
Share on other sites

2 hours ago, fabrice montupet said:

It was not my vision.  The only goal of the request was to be displayed the main information about the computer (the expansion RAMs like 32kb, SAMs or others) because it is important to know it before launching a program. And, but just for fun, why not also display one of the most emblematic expansion of the computer: the speech synth.  it's detection do not consumes many lines code. I didn't imagine no more. Yes, why not display the VDP installed although the fact to be in 40 or 80 columns display already gives an idea of the one installed. It is clearly unnecessary to display a list of any kinds of expansions installed, it is not the goal of such program.

 

I should apologize, my response was unnecessary. I did not think you were asking for anything like title screen banners I dislike, but I put up a wall to explain my boundaries on this to the general population.

 

Regarding recognizing the speech synthesizer... I hope to expose something eventually that utilizes it. 

  • Like 2
Link to comment
Share on other sites

I dug up the tandy 1000 HX DOS manual, and the example PROMPT setting they provide is $p$g which is path >

 

I haven't spent much time at a MS-DOS prompt since 1992.  Anyway, yesterday I wrote the PROMPT environment variable feature... and barrowed some codes from the MS-DOS manual. 

 

(DOS uses $ for these codes. I use \ because I use $ for variable references, and am not going back to %var%) 

 

\c - crubase followed by a '.'
\p - drive and directory (includes trailing '.')
\b - backspace
\g - greater than symbol '>' (this is escaped in MS-DOS cause they support redirects... maybe someday I will too)
\n - new line
\r - pipe '|' (cause MS-DOS supports process redirects... maybe late 2021 for me)
\s - space ' '
\t - 12 hour clock with am/pm (hint if you don't want the AM PM, use 2 backspaces)

 

so you can 

 

PROMPT=\p\g

if you like. 

 

If you really have trouble remembering your name, you can add that too (just kidding.. it has significance on multi-user systems):

 

PROMPT=me@4a \p\g

Notice, I didn't use \s for the space here... it isn't necessary the way I process the input unless you want a trailing space... I personally think \p\g looks too packed... so I like a trailing space. 

 

---

Of course, now that you can hide what your working directory is, I have to add a command that prints the working directory...  PWD

 

---

and cut-n-paste some of this post into the Force Command wiki.

 

 

  • Like 6
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...