Previous Thread
Next Thread
Print Thread
Page 61 of 61 1 2 59 60 61
Joined: Mar 2001
Posts: 16,612
R
Very Senior Member
Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,612
That would be a non-hack solution. I like it.

Joined: Feb 2004
Posts: 2,194
Very Senior Member
Online Content
Very Senior Member
Joined: Feb 2004
Posts: 2,194
Can you add a synchronisation barriers on the status signals? I’d rather not use arbitrary quantum values if it can be avoided.

Joined: Feb 2014
Posts: 500
G
Senior Member
Online Content
Senior Member
G
Joined: Feb 2014
Posts: 500
Ok, I tried to put machine().scheduler().synchronize(); before the a2pic would start the strobe but it doesn't seem to be make any difference.

Calling synchronize is supposed to let the other devices run to catch up to this device so that the time is equal?

Joined: Mar 2001
Posts: 16,612
R
Very Senior Member
Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,612
I'd put it right after the strobe and latch writes, since the goal is to get the ap2000 to react to it in time.

Joined: Feb 2014
Posts: 500
G
Senior Member
Online Content
Senior Member
G
Joined: Feb 2014
Posts: 500
I put synchronize before the latches, after the latches, put both before and after, sprinkling them around and couldn't get it to work. Both ap2000 and the a2pic.

Then I stuck a synchronize in the top of a2bus_pic_device::read_cnxx(u8 offset) and then it started working. I'll take a few of the others away and see if it keeps working.

Is machine().scheduler().syncronize() the same as just plain synchronize()?

Joined: Mar 2001
Posts: 16,612
R
Very Senior Member
Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,612
Try a machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(10)); on the strobe/latch write without the synchronize(). That's a fairly common pattern in MAME to let other CPUs catch up for a certain amount of time after something happens that should synchronize them.

Joined: Feb 2014
Posts: 500
G
Senior Member
Online Content
Senior Member
G
Joined: Feb 2014
Posts: 500
Thanks for the suggestion about boost_interleave but I couldn't get it to work.

So far the only things I've managed to get working for 030b_Combined_Enhanced_Graphics.dsk and Amperdump.dsk are either

// config.set_maximum_quantum(attotime::from_usec(15));

or

u8 a2bus_pic_device::read_cnxx(u8 offset)
{
synchronize();


Those two disks are pretty good test subjects for whether it'll work or not because they will immediately hit the timing issue when trying to print (basically hit the issue within about 10 characters or so.)

However, I still can't get this simple basic program to work as it hits the timing issue.

[Linked Image from i.imgur.com]
Code
             1 REM TWO PAGE HI-RES DUMP BY BOB DIAZ OF EPSON
            10 GOSUB 1000
            20 FOR X=39 TO 0 STEP -1
            30 PRINT SPC(10); CHR$(27);"K";CHR$(127);CHR$(1);
            40 FOR I = 1 TO 383
            50 IF PEEK(49601) > 127 THEN 50  : REM C1C1
            60 POKE 49296, PEEK(A(I) + X)  : REM C090
            70 NEXT I
            80 PRINT
            90 NEXT X
            99 PRINT ""
            100 PRINT CHR$(27);"A";CHR$(12); : PR#0 : END
            1000 REM SET UP ARRAY
            1010 DIM A(384) : I = 0
            1011 PR#1 : PRINT : PRINT CHR$(27);"A";CHR$(7);
            1020 FOR P = 8192 TO 16384 STEP 8192
            1030 FOR Y1 = 0 TO 80 STEP 40
            1040 FOR Y2 = 0 TO 896 STEP 128
            1050 FOR Y3 = 0 TO 7169 STEP 1024
            1060 I = I + 1 : A(I)= Y1 + Y2 + Y3 + P
            1061 REM PRINT I " "Y1" "Y2" "Y3" "P" "A(I)
            1070 NEXT Y3,Y2,Y1,P
            1080 RETURN
            

Joined: Feb 2004
Posts: 2,194
Very Senior Member
Online Content
Very Senior Member
Joined: Feb 2004
Posts: 2,194
I’ll have another look over it at some point and see if there’s a simple way to deal with it.

Joined: Feb 2014
Posts: 500
G
Senior Member
Online Content
Senior Member
G
Joined: Feb 2014
Posts: 500
Just for fun, I wanted to see if the Cauzin softstrip "stripper" program would run.

[Linked Image from i.imgur.com]

After messing around with S2.DSK which has the stripper.e program, I nearly gave up since it errored out with "ERROR DURING READ, PROGRAM ABORTED".

Why not try booting from a regular dos disk in flop1 -flop2 S2.DSK and RUN STRIPPER.E,D2 and voila! - it prints something that looks like a strip.

[Linked Image from i.imgur.com]
[Linked Image from i.imgur.com]
[Linked Image from i.imgur.com]

STRIPPER.I is supposed to make strips from an Imagewriter.
STRIPPER.E is the Epson version of the program.

According to a page I read:

"The electronics
consist of an ATMS 7040 8-bit
microprocessor and a custom VLSI
chip that contains the reader logic,
control and communications using
four nested phase-locked-loops and
several hardware and software
servos." which I think means a TMS7040.

Page 61 of 61 1 2 59 60 61

Link Copied to Clipboard
Who's Online Now
0 members (), 37 guests, and 1 robot.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics8,834
Posts116,214
Members4,921
Most Online890
Jan 17th, 2020
Powered by UBB.threads™ PHP Forum Software 7.7.5