Jump to content
IGNORED

Detecting Various Types of Drives via SIO


Zolaerla

Recommended Posts

12 minutes ago, _The Doctor__ said:

sadly very little does that, this is why so many devices in order to be successful must emulate and provide paths for ATR, CAR, BIN, CAS

Not true, most ATRs just work via SIOV. CAR and BIN are of course different matter, because these require a form of ROM emulation. CAS - as long as it is a program which really cannot be copied to a disk and it genuinely tied to the cassette - is an amusing example proving my point :)

  • Confused 1
Link to comment
Share on other sites

caveat caveat caveat, amusingly also proves the contrary point.

If everything ran so easily on every device, we wouldn't have all the different versions, they would all run w/ SparaDOS X off a super fast parallel device and not need to be anything other than an executable or a folder as the atr container and run from there. It would also run the same from just about any other DOS. If you are lucky enough you will find a handful of stuff that runs on everything and can return to the DOS system without a restart. At best we now have some abstracted hardware providing a bridge to this sort of functionality.

Edited by _The Doctor__
  • Thanks 1
Link to comment
Share on other sites

The only things I *really* care about my games running from are an SIO2PC and an emulator like Altirra or Atari 800. .atr files using divisor 0 SIO work pretty darned nicely for that. If a future emulator or device doesn't support what so many other people have done already for their games, they are shooting themselves in the foot causing compatibility problems. I do actually care about getting things to run from real floppies as well, since it's not much of a problem to do so, hence this silly project of trying to detect them and support high speed SIO where applicable.

 

However, considering the Atari 8-bit does not have much of a future (for the last 35 years, TBH), I don't think it matters if I support some newer way of running software than what just about everything else does already. I'll make my games on a disk (.atr) running a custom OS like other games have before (such as Alternate Reality), and if a purist doesn't like it and refuses to play it because of that, so be it. It's not like I'm expecting to make money off of this or something... I have a fairly high-paying RL job for that. This is for fun as a hobby.

Link to comment
Share on other sites

1 hour ago, Zolaerla said:

If a future emulator or device doesn't support what so many other people have done already for their games, they are shooting themselves in the foot causing compatibility problems.

According to this logic, you are shooting yourself in the foot (causing compatibility problems). Just as I said above.

 

1 hour ago, Zolaerla said:

However, considering the Atari 8-bit does not have much of a future (for the last 35 years, TBH), I don't think it matters if I support some newer way of running software than what just about everything else does already.

"Newer", i.e. 40 years old?

Edited by drac030
Link to comment
Share on other sites

4 hours ago, drac030 said:

According to this logic, you are shooting yourself in the foot (causing compatibility problems). Just as I said above.

 

"Newer", i.e. 40 years old?

 

Writing a game does not have the goal of being compatible with as many things as possible. There are very few examples I can think of that were even back in the day. However, emulators, .atr loaders, etc. would be aiming to be as compatible as possible. Most would like to say, "Full .ATR" compatible, not "Mostly .ATR" compatible. Hardly anybody is going to care if I make a game that will work on a real Atari 800 XL or higher (or 130 XE) that does NOT work on some specific esoteric device that doesn't actually have full .atr support... instead, they would wonder why that device couldn't properly support that .atr file. Heck, some popular things like the Numen demo don't even work on a stock Atari at all, but I wouldn't say Taquart shot themselves in the foot making it. It was definitely cool to see on a system that had the RAM to run it!

 

Back in 1983, who was making games explicitly to run in hard drives for the Atari 8-bit? I'm not talking about business software or utilities or the like... just games. Yes, some games ran from an EXE (now a .xex), but running from a hard drive was not a concern BITD for any Atari 8-bit games that I know of. There are plenty of examples where the creator of the game didn't care about running from DOS at all, let alone from a hard drive.

 

I don't know what your point is with all of this, other than to complain that I am not interested in the things you are interested in. I am the one on the defensive here, as I have not complained about your projects or how pointless they are or anything. I won't, because I don't feel anybody's projects are pointless so long as they are seeing value in it or are enjoying it. Can you just let people be different from you and have different goals or interests? I'm here trying to avoid stress and hopefully find other people who care about the things I care about. I do not want the stress of people arguing with me over the validity of the things I'm doing to entertain myself. Please just move on if it isn't aligned with your interests.

 

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

Releasing a game and making sure it works on other machines than the ones you own involves so much work alone, aiming for 100% compatibility with everyone's setups can just drive people to madness.

 

Another vote from me for @Zolaerla to a) do whatever feels fun personally, b) to get some stuff done and released. If they're good and people think that it's worth their time and something doesn't work, they can complain. And then any problems can be fixed. Just as long as we're all having fun - that's the main ingredient!

  • Thanks 1
Link to comment
Share on other sites

32 minutes ago, ggn said:

Releasing a game and making sure it works on other machines than the ones you own involves so much work alone, aiming for 100% compatibility with everyone's setups can just drive people to madness.

Testing on real hardware is usually enough, but that's unfortunately not always a given in light of the convenience of accuracy of modern emulators.

On 6/25/2023 at 4:41 AM, Zolaerla said:

Most would like to say, "Full .ATR" compatible, not "Mostly .ATR" compatible. Hardly anybody is going to care if I make a game that will work on a real Atari 800 XL or higher (or 130 XE) that does NOT work on some specific esoteric device that doesn't actually have full .atr support... instead, they would wonder why that device couldn't properly support that .atr file.

Just a pragmatic point: most of the ATRs which don't work with modern PBI solutions fail to do so because they bypass the SIO entirely and talk directly to the hardware. 'Full ATR support' is often assumed to be a synonym for 'full serial IO support', when it is nothing of the kind. The way to an easy life is using SIOV instead of driving POKEY IO directly, since all those esoteric devices do seek to be as compatible as possible with the Atari OS as designed, and ensure software written to use SIO need not know or care whether the end user is running the ATR from a FAT partition on an SD card connected to the ECI bus, or a real floppy disk drive.

 

It's actually easier and less labour intensive to produce something which works on most setups than not (in the real world, that is, which is a world in which not everyone opts for a serial IO-capable device just to be able to run a handful of titles written when no-one owned a hard disk, and in which few regularly run anything from a physcial floppy disk).

  • Like 1
Link to comment
Share on other sites

17 minutes ago, flashjazzcat said:

Testing on real hardware is usually enough, but that's unfortunately not always a given in light of the convenience of accuracy of modern emulators.

Just a pragmatic point: most of the ATRs which don't work with modern PBI solutions fail to do so because they bypass the SIO entirely and talk directly to the hardware. 'Full ATR support' is often assumed to be a synonym for 'full serial IO support', when it is nothing of the kind. The way to an easy life is using SIOV instead of driving POKEY IO directly, since all those esoteric devices do seek to be as compatible as possible with the Atari OS as designed, and ensure software written to use SIO need not know or care whether the end user is running the ATR from a FAT partition on an SD card connected to the ECI bus, or a real floppy disk drive.

 

It's actually easier and less labour intensive to produce something which works on most setups than not (in the real world, that is, which is a world in which not everyone opts for a serial IO-capable device just to be able to run a handful of titles written when no-one owned a hard disk, and in which few regularly run anything from a physcial floppy disk).

 

I am completely bypassing SIO for this entire project. I have no interest in using nor learning how to use the built in Atari OS at all: I just want to work with the raw hardware. That's why I actually cared about detecting the devices in the first place, since it's cool having an option to have it detect exactly what each of your drives is when it starts up. The XL/XE added the ability to disable the OS and use that RAM for your own, and I want to use that IMO very awesome feature.

 

So all software that bypasses SIOV doesn't work on these devices? Like, you cannot run `Alternate Reality: The Dungeon`, for example, from these "Full ATR Support" devices, because it uses its own SIO handler? I don't know other examples of software that uses their own SIO, but that's one I know for certain since I've disassembled and commented the entire game.

 

Does that mean the APT doc you gave me isn't a hardware thing, but instead is a software-only thing?

Edited by Zolaerla
Link to comment
Share on other sites

12 hours ago, Zolaerla said:

I am completely bypassing SIO for this entire project.

My God. I hadn't realised that. I'll try to make this quick, then. :)

12 hours ago, Zolaerla said:

So all software that bypasses SIOV doesn't work on these devices?

Naturally, unless said device has a physical connection to the serial IO bus, it cannot interact with direct communication over said bus. The nice thing about the Atari OS is that SIOV acts as an abstraction layer between the application (and DOS) and the hardware itself, so - as mentioned - DOS and the application need not concern themselves about the host media at all. This is the entire reason it's even possible for PBI/ECI host adapters with no physical connection to the serial bus to 'fully' implement ATR support, such that the system will boot just as happily from a disk image stored on an IDE Plus 2.0, for instance, as from a floppy disk drive.

12 hours ago, Zolaerla said:

Like, you cannot run `Alternate Reality: The Dungeon`, for example, from these "Full ATR Support" devices, because it uses its own SIO handler?

That title uses a custom loader which bypasses SIOV, so requires the storage media to be physically connected to the SIO bus. Nevertheless, as Konrad pointed out:

On 6/24/2023 at 10:36 PM, drac030 said:

most ATRs just work via SIOV

I may not be much of a gamer, but I do maintain serveral game loaders, and I can therefore verify that the above is true. Were I inclined to run one of the titles which bypasses the SIO entirely, I would fall back - I suppose - on SIO2PC and divisor 0, although since this is still five times slower than a hard disk, it's not a solution I'd want to use on a regular basis (not to mention that some titles which employ custom serial loaders also insist on running transfers at stock divisors, and thus ponderously slowly). And in spite of the existence of intelligent SIO-only solutions (FujiNet, etc) and even SOC-based cartridges which can be simultaneously present on the parallel and SIO bus (prompting some modern developers to turn the bypassing of SIO and slow loading into virtues about which they seek to signal incessantly), parallel/cartridge-based solutions without serial IO connections exist, have always existed, and continue to sell well (perhaps because of their unparallelled speed, and - variously - because of the firmware shipped on them).

 

So: whether it is deemed important or not to 'be compatible' with 'esoteric devices' (which in fact form the mainstay of the hardware base), just know that you can use SIO and be compatible with everything, or bypass it and be compatible with some.

12 hours ago, Zolaerla said:

Does that mean the APT doc you gave me isn't a hardware thing, but instead is a software-only thing?

If you mean the XDCB and DISK/DEVINFO protocol Konrad drafted: it's an API (Application Programming Interface), or protocol, if you will. It will work with whatever device - serial or parallel - implements it, since the SIO layer is hardware abstracted. You could emit the same commands directly across the serial bus, bypassing SIO, but it would be a bit stupid because you'd then fail to detect any hard disks on the system.

Edited by flashjazzcat
Link to comment
Share on other sites

6 hours ago, flashjazzcat said:

My God. I hadn't realised that. I'll try to make this quick, then. :)

 

 

I meant SIOV. It is bypassing SIOV, since the Atari OS isn't in use. I'm using the hardware-level SIO communications through POKEY's SEROUT/SERIN and all that. Not that the results are changed by that with actual SIO devices if anybody repeats the same tests with a standard Atari OS that isn't intercepting and modifying the data.

Link to comment
Share on other sites

  • 11 months later...
On 11/10/2022 at 11:39 PM, E474 said:

I snagged a list of drives and SIO commands they support a while back:

 

Upgrade: 1050 duplicator
Manufacturer: Duplicator Technologies [DT]
Year: 1986
Features: SS SD/ED/DD 3x speed increase. Whole track buffering (18 sectors / 8KiB)
Navigate/edit/create non-standard formats, copying software included
Later versions = CheerUp Upgrade, by Happy Computers, Inc., 1987, upgrades
and 1050 Duplicator replaced by Happy 1050 Enhancement software compatible
Commands: 21, 22, 3F, 4E, 4F, 50, 52, 53, 57, 61, 62, 63, 64, 66, 67, 68, 6A, 6D, 6E, 72, 73, 74, 75, 76, 77
Upgrade: Bitwriter
Manufacturer: Computer Software Services (CSS)
Year: 1988
Features: enhancement to Super Archiver - Writes bits rather than sectors, for increased copy capabilities
Commands 21, 22, 3F, 42, 43, 44, 46, 47, 4C 4E, 4F, 50, 52, 53, 54, 57, 5A, 62, 63, 64, 66, 67, 68, 6A, 6D, 6E, 71, 72, 73, 74, 75, 76,
Upgrade: Bitwriter Replica
Manufacturer: tf_hh
Year: 2016
Features: Super Archiver 1050/ BitWriter 1050 - copies all copy-protected games for backup or software preservation
Reading/Writing/Formatting Double Density
Highspeed SIO
Upgrade: Copy Card 7.0
Manufacturer: ? [Europe]
Year: 198?
Features: SS SD/ED/DD
Happy 1050 copy but not full clone, ICD US Doubler emulation
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77
Upgrade: Density Doubler 1050
Manufacturer: Duplicating Technologies (DT)
Year: 1986
Features: SS SD/ED/DD up to 3x speed increase.
Commands: 21, 22, 3F, 4E, 4F, 50, 52, 53, 57, 66
Upgrade: Happy 1050
Manufacturer: Happy Computer
Year: 1984-1989
Features: SSDD, 52kbps speed, 36 sector buffer. Can also read/write 180k MS-DOS.
Adds true single-sided, double density (180KiB) operation
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77
Upgrade: Happy 1050 Maximiser
Manufacturer: Happy Computer
Year: 1985
Features: SSDD, 52kbps speed, 36 sector buffer. Can also read/write 180k MS-DOS.
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77
Upgrade: High Speed Board 1050
Manufacturer: Irata Verlag, West Germany
Year: 1985
Features: SSDD, 52kbps speed, 36 sector buffer. Can also read/write 180k MS-DOS.
Happy 1050 clone
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77[/b]
Upgrade: Hyperdrive
Manufacturer: ? UK
Year: 1986
Features: SS SD/ED/DD
Happy 1050 clone
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77
Upgrade: Hyperdrive - re-issue
Manufacturer: Chaos! Computers
Year: 1995
Features: SS SD/ED/DD
Happy, US Doubler UltraSpeed 1050 clone
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77
Upgrade: I.S. Doubler
Manufacturer: Robert Perry, Innovated Software [UK]
Year: 1985
Features: SSDD, 54kbps speed, sector skewing, ICD US Doubler clone
Commands: 21, 22, 3F, 4E, 4F, 50, 52, 53, 57, 66
Upgrade: I.S. Plate 1050
Manufacturer: Robert Perry, Innovative Software
Year: 1986
Features: fully Happy 1050 compatible, board (fits 6507 socket) with 6502 and 16KiB RAM buffer.
IS Doubler/US Doubler, Archiver/Chip, standard 1050 emulation, 16-drive support.
software included; IS Doubler/US Doubler high-speed disk copiers (standard and 130XE versions),
file loader, custom disk format (incl bad sectors), track tracer
Late units: Software instead built-in on ROM
Early units: ISP Gremlin Grabber (sold separately)
Most units included Gremlin Grammer II or Gremlin Grabber III
Commands: 20, 21, 22, 3F, 41, 44, 4B, 4C, 4D, 4E, 4F, 50, 51, 52, 53, 57, 60, 62, 68, 69
Upgrade: Kiwi Systems
Manufacturer: (New Zealand)
Year: 1986
Features: SSDD, 54kbps speed, Lazer (Happy) 1050 clone, with Archiver.
Bundled with 1050 to Kiwi Chip Archiver (Kiwi Systems)
Commands: 20, 21, 22, 3F, 41, 44, 4B, 4C, 4D, 4E, 4F, 50, 51, 52, 53, 57, 60, 62, 68, 69
Upgrade: Klone
Manufacturer: Computer Software Services [USA]
Year: 1986
Features: SS SD/ED/DD
Happy 1050 clone, bundled Happy Warp Speed Software
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77
Upgrade: Klone II
Manufacturer: Computer Software Services (CSS) [USA]
Year: 1987
Features: SS SD/ED/DD
Happy 1050 clone, bundled Happy Warp Speed Software
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77
Upgrade: Lazer 1050
Manufacturer: Utility House
Year: 1986
Features: SSDD, 54kbps speed, Happy 1050 clone
Bundled with [Utility House] Lazer Drive Supercharger software
Commands: 20, 21, 22, 3F, 41, 44, 4B, 4C, 4D, 4E, 4F, 50, 51, 52, 53, 57, 60, 62, 68, 69
Upgrade: Mega Speedy 1050
Manufacturer: Compy Shop (now ABBUC)
Year: 2014
Features: SSDD, 57kbps speed, 8kb buffer, incl DOS/copier. Track display and audio.
1050 Turbo and 1050 Duplicator modes, can also emulate Happy 1050, US Doubler,
Super Archiver and Supermax
Commands: 20, 21, 22, 3F, 41, 44, 4B, 4C, 4D, 4E, 4F, 50, 51, 52, 53, 57, 60, 62, 68, 69
Upgrade: Reproducer
Manufacturer: Gardner Computing
Year: 1984
Features: SSDD, sector skewing. Navigate/edit/create nonstandard format disks (software included)
Commands: 21, 22, 3F, 4E, 4F, 50, 52, 53, 57, 66
Upgrade: Speedy 1050
Manufacturer: Compy Shop (now ABBUC)
Year: 1986
Features: SSDD, 57kbps speed, 8kb buffer, incl DOS/copier. Track display and audio.
Commands: 20, 21, 22, 3F, 41, 44, 4B, 4C, 4D, 4E, 4F, 50, 51, 52, 53, 57, 60, 62, 68, 69
Upgrade: Super Archiver
Manufacturer: Computer Software Services (CSS)
Year: 1987
Features: SSDD, 54kbps speed, copies and creates fuzzy & phantom sectors. Navigate/edit/create nonstandard format disks. Bundled
Super Archiver Fuzzy Sector Maker, The Archiver Tracer, Super Archiver Diagnostic
Commands 21, 22, 3F, 42, 43, 44, 46, 47, 4C 4E, 4F, 50, 52, 53, 54, 57, 5A, 62, 63, 64, 66, 67, 68, 6A, 6D, 6E, 71, 72, 73, 74, 75, 76,
Upgrade: Super Archiver II
Manufacturer: Computer Software Services (CSS)
Year: 1988
Features: SSDD, 54kbps speed, copies and creates fuzzy & phantom sectors. Navigate/edit/create nonstandard format disks. Bundled
Super Archiver Fuzzy Sector Maker, The Archiver Tracer, Super Archiver Diagnostic
Commands 21, 22, 3F, 42, 43, 44, 46, 47, 4C 4E, 4F, 50, 52, 53, 54, 57, 5A, 62, 63, 64, 66, 67, 68, 6A, 6D, 6E, 71, 72, 73, 74, 75, 76,
Upgrade: Super Speedy 1050 prototype
Manufacturer: Compy Shop (now ABBUC)
Year: 1986
Features: SSDD, 57kbps speed, 8kb buffer, incl DOS/copier. Track display and audio.
Commands: 20, 21, 22, 3F, 41, 44, 4B, 4C, 4D, 4E, 4F, 50, 51, 52, 53, 57, 60, 62, 68, 69
Upgrade: Supermax 1050
Manufacturer: Super Products (Australia)
Year: 1987
Features: switchable ROM, true double density with 4x increase in the read/write speed (with SuperDOS or other hi speed DOS). Sup
Varying accounts say this was either a straightforward plugin or a plugin board with one cable to solder. Remove rom and ram, plug in
Commands: 20, 21, 22, 3F, 41, 44, 4B, 4C, 4D, 4E, 4F, 50, 51, 52, 53, 57, 60, 62, 68, 69
Upgrade: TOMS Multi Drive 1050
Manufacturer: TOMS
Year: 1991
Features: SS SD/ED/DD/IBM Turbodrive 68200 bit/s, sector skew
IBM format: 40 tracks/9 sectors 180KiB
1050 Turbo/Top Drive compatible UltraSpeed emulation
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77
Upgrade: Top Drive 1050
Manufacturer: Ataserw
Year: 1987/8
Features: SS SD/ED/DD - 1050 Turbo clone, ROM by P.Z. Karen, brand of of LDW
TUR DOS disk/cartridge, upgrades to 1050 Happy compatiblity
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77
Upgrade: Turbo-1050 aka "Engl-Turbo-1050"
Manufacturer: Bernhard Engl for Gerald Engl Computertechnik
Year: 1985-1988
Features: SSDD, "turbodrive" 70kbps (68200bps) speed, non-US Doubler skew.
software on ROM: Backup Machine II, Magic Formatter, Maintenance Box
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77
Upgrade: Tygrys 1050 1.0
Manufacturer: Navitron - Marek Bojarski
Year: 1988
Features: SS SD/ED/DD; 53 kbit/s
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77
Upgrade: Tygrys 1050 2.0
Manufacturer: Mediacom 1993 - Marek Bojarski
Year: 1993
Features: SS SD/ED/DD; 70 kbit/s
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77
Upgrade: US Doubler
Manufacturer: ICD
Year: 1984
Features: SSDD, 54kbps speed, sector skewing, many units bundled with ICD Spartados disk
Commands: 21, 22, 3F, 4E, 4F, 50, 52, 53, 57, 66
Upgrade: Warp Drive
Manufacturer: Stocksoft [UK]
Year: 1986
Features: SS SD/ED/DD
Happy 1050 clone, Rev 2 onwards upgrade = "The Chip Archiver" emulation
Commands: 21, 22, 24, 3F, 48, 4E, 4F, 50, 51, 52, 53, 57, 70, 72, 77
Currently compiling info on:-
Chipmunk
The Chip (by Spartan)
The Protector
The Black Patch
The Backup Master
Happy to Chip Converter
Command List:
20 - Format auto
21 - Format
22 - Format ED
23 - 1050 diags 1
24 - 1050 diags 2
3F - Get high-speed index
41 - Add/Remove Command
42 - Configure
43 - N/K
44 - Configure drive
46 - N/K
47 - N/K
48 - Happy Configure Command
4B - Slow/fast config
49 - Indexed Formatting
4C - Jump without message
4D - Jump with message
4E - Read PERCOM block
4F - Write PERCOM block
50 - Write sector
51 - Quit
52 - Read sector
53 - Get status
54 - Read Address
55 - Motor On
56 - Verify Sector
57 - Write sector with verify
5A -
60 - Write Track
61 - N/K
62 - Read Track
63 - N/K
64 - N/K
66 - Format with skew
67 - N/K
68 - Get SIO Length
69 - Get SIO Routine
6A - N/K
6D - N/K
6E - N/K
70 - N/K
71 - N/K
72 - N/K
73 - N/K
74 - N/K
75 - N/K
76 - N/K
77 - N/K

 

You'd probably have to ask if anyone had ownership of any of those drives, and take it from there (there might be info at http://atariki.krap.pl/index.php/or similar), or look at the utility disks for these drives, and monitor what they send over SIO.

Just for completeness to that list, the original Hyperdrive was manufactured by HF Developments. :)

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...