Previous Thread
Next Thread
Print Thread
Page 31 of 78 1 2 29 30 31 32 33 77 78
Joined: Feb 2014
Posts: 852
Likes: 48
G
Senior Member
Offline
Senior Member
G
Joined: Feb 2014
Posts: 852
Likes: 48
Got different intensities working from 0 to 7: (not that anybody ever used this, but I suppose it's more authentic 8-)

[Linked Image]

Joined: Feb 2014
Posts: 852
Likes: 48
G
Senior Member
Offline
Senior Member
G
Joined: Feb 2014
Posts: 852
Likes: 48
Having some silly fun, 2 printers at the same time, in slots 1 and 2.

Zoom Grafix is awesome:

[Linked Image]

3x3 rotated:

[Linked Image]

It gets a bit slow, but skip 10/10 unthrottle with F10 makes it fly at 800%.

Joined: Feb 2014
Posts: 852
Likes: 48
G
Senior Member
Offline
Senior Member
G
Joined: Feb 2014
Posts: 852
Likes: 48
If you want to play with the silentype:

https://github.com/goldnchild/mame/commit/621d051f50803aa23fd4c17d84508ba19a22609e

You don't need to boot into DOS 3.3, just launch mame's apple2p driver with -sl1 silentype,hit reset, type PR#1 and you are sending data to the printer.

CTRL+Q will dump the hi-res screen.


Intensity is stored in 0xCF10:

POKE -12528,0 for intensity 0
POKE -12528,7 for intensity 7

or CALL -151 and then CF10:7 for example.

CTRL+T toggles screen echo

(if you enable screen echo, output is limited to 40 columns so if you LIST an applesoft program it won't be 80 columns wide)


And you can have multiple silentypes which is kind of fun: -sl1 silentype -sl2 silentype. PR#2 will send data to the printer in slot #2.

It will save each page to the snap directory under a silentype directory with a filename that includes the slot number like so:

silentype_slot2_page1.png

There's something really satisfying about watching the emulated printhead move back and forth.



I always felt bad when my silentype printer broke years ago due to a flimsy plastic printhead and a wrinkle in the paper.

I don't feel so bad now that I can run it in mame. 8-)

Joined: Jun 2014
Posts: 90
P
Member
Offline
Member
P
Joined: Jun 2014
Posts: 90
Let me know if you want any help with the ProDOS support. I have code to read and write ProDOS disks without relying on ProDOS itself.

Joined: Mar 2006
Posts: 1,073
Likes: 5
L
Very Senior Member
Offline
Very Senior Member
L
Joined: Mar 2006
Posts: 1,073
Likes: 5
That sounds like it could be useful in imagetool/floptool.


"When life gives you zombies... *CHA-CHIK!* ...you make zombie-ade!"
Joined: Feb 2014
Posts: 852
Likes: 48
G
Senior Member
Offline
Senior Member
G
Joined: Feb 2014
Posts: 852
Likes: 48
Hi Peter,

Sure, any help is appreciated. 8-) I got so interested in the silentype I haven't done much with the disk reading stuff for a while.

I've been studying the books Beneath Apple Prodos and Universal File Conversion.

The one thing that had me really stumped was the different sector orders between dos 3.3 and prodos.

[Linked Image]

So dos 3.3 logical sector 1 maps to prodos logical sector 0xE for example.

I came up with this function which seems to work (it's really useful to look at hexdumps).

Code
-- prodos order to dos order
function mappotodo(a) local map={0,14,13,12,11,10,9,8,7,6,5,4,3,2,1,15} return map[a+1] end
-- function has an interesting property: calling it twice results in inverting the function
-- mappotodo(maptptodo(i))  == i
--
-- example: to hexdump a track in normal dos order
-- for i=0,15 do hexdumpts(0,i) end
-- example: to hexdump the same track in prodos order 
-- for i=0,15 do hexdumpts(0,mappotodo(i)) end


Joined: Jun 2014
Posts: 90
P
Member
Offline
Member
P
Joined: Jun 2014
Posts: 90
Hi Golden Child,
Yes, you have it mapped correctly, provided that the disk image is really in ProDOS ordering, of course. It's really physical order rather than DOS order, though.
DOS ordering is 0, 13, 11, 9, 7, 5, 3, 1, 14, 12, 10, 8, 6, 4, 2, 15.
The problem that we have is .dsk and .po aren't fixed in their format, so we might have DOS-ordered sectors in .po files, ProDOS-ordered sectors in .dsk files, physical ordering in both, etc.
Emulators tend to have heuristics to detect what's what, but as you might have seen with the latest release of Anti-M for the Apple II, MAME failed to boot it because the file format was wrong and the heuristic was defeated.

Joined: Feb 2014
Posts: 852
Likes: 48
G
Senior Member
Offline
Senior Member
G
Joined: Feb 2014
Posts: 852
Likes: 48
I think I'm very close to getting the Apple Graphics Tablet working...

You PR#4 then print some configuration strings, then IN#4 and INPUT the X,Y and STATUS. If you use

INPUT "";X$,Y$,Z$ you won't see a ? mark on the screen.

after you input the string, IN#0 to reset the input to the keyboard.


What input device can mame map to a tablet? I hooked up a joystick just for testing, just mapping the 0 to 255 values.


[Linked Image]

[Linked Image]

[Linked Image]

Joined: Mar 2001
Posts: 16,920
Likes: 57
R
Very Senior Member
Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,920
Likes: 57
GC: Your Silentype implementation is pretty good, but you can get the slot number in an A2 card by calling slotno(). For instance, the zipdrive/focus drive has the common setup of separate CnXX images in the ROM for each slot:

Code
uint8_t a2bus_zipdrivebase_device::read_cnxx(uint8_t offset)
{
	int const slotimg = slotno() * 0x100;

	// ROM contains CnXX images for each of slots 1-7 at 0x0 and 0x1000
	return m_rom[offset+slotimg+0x1000];
}

Joined: Feb 2014
Posts: 852
Likes: 48
G
Senior Member
Offline
Senior Member
G
Joined: Feb 2014
Posts: 852
Likes: 48
Originally Posted by R. Belmont
GC: Your Silentype implementation is pretty good, but you can get the slot number in an A2 card by calling slotno(). For instance, the zipdrive/focus drive has the common setup of separate CnXX images in the ROM for each slot:

Code
uint8_t a2bus_zipdrivebase_device::read_cnxx(uint8_t offset)
{
	int const slotimg = slotno() * 0x100;

	// ROM contains CnXX images for each of slots 1-7 at 0x0 and 0x1000
	return m_rom[offset+slotimg+0x1000];
}



Hi RB:

Thanks! I knew there had to be an easier way to find out the slot number. I was getting ready to ask you for any suggestions/comments.


I've got to clean up a couple of bugs too:

Code
	    // clear paper to bottom from the current head position

	    // this doesn't make sense
	    // clear to the bottom
	    //m_bitmap.plot_box(m_ypos*7/4,3,PAPER_WIDTH-1,PAPER_HEIGHT-1,rgb_t::white());
           // I think it should be:
	    m_bitmap.plot_box(0,m_ypos*7/4+7,PAPER_WIDTH,PAPER_HEIGHT,rgb_t::white());



Hacking on mame is so darn addictive...

Page 31 of 78 1 2 29 30 31 32 33 77 78

Link Copied to Clipboard
Who's Online Now
1 members (belegdol), 25 guests, and 10 robots.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,100
Posts119,238
Members5,019
Most Online890
Jan 17th, 2020
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Forum hosted by www.retrogamesformac.com