Post AxlFxmwpE1oBC4tKSW by asie@mk.asie.pl
(DIR) More posts by asie@mk.asie.pl
(DIR) Post #AxkS2iJWsyJoYufMe0 by foone@digipres.club
2025-09-01T02:27:11Z
0 likes, 0 repeats
I'm hacking on a Wonderswan game now, and it's got a fun CPU:An NEC V30, which is an 80186 clone. So this is basically an 186 portable!
(DIR) Post #AxkS6IyJ38qR7fS41Y by xgranade@wandering.shop
2025-09-01T02:27:49Z
0 likes, 0 repeats
@foone The fuck? That's wild!
(DIR) Post #AxkSJD5kDs8meP5Iga by tofu@is-a.cat
2025-09-01T02:30:05Z
0 likes, 0 repeats
@foone 186 is already bizarre stuff
(DIR) Post #AxkT72W7oRfkKkBUAK by poundquerydotinfo@forum.virctuary.com
2025-09-01T02:39:08Z
0 likes, 0 repeats
@foone I think that's true only for software - it was hardware compatible with the 8086, not the 80186?I recall the V30 being sold as a cheap upgrade to the Intel 8086 in Amstrad's PC1512 (An 8086-based IBM compatible that was popular in Europe in the late 1980s.)As well as being slightly faster, the V30 could also natively run 8080 software, so PC1512 users would use it to run CP/M software at native speeds.Computing was still fun back then.
(DIR) Post #AxkTAmlOKJjadH6xAe by foone@digipres.club
2025-09-01T02:39:16Z
0 likes, 0 repeats
eww. they set the stack segment to 0000 so they can use zero-page arguments without actually using the stack. and this code works by setting SP to the target work ram and using PUSH to put new graphics into it
(DIR) Post #AxkTDkfkYcYF13t2vI by foone@digipres.club
2025-09-01T02:40:01Z
0 likes, 0 repeats
@poundquerydotinfo yeah, it's technically an 8086, but they included some 80186 features
(DIR) Post #AxkTJxiYy4YtDHAEG8 by StumpyTheMutt@social.linux.pizza
2025-09-01T02:41:25Z
0 likes, 0 repeats
@foone I worked on a cubesat that used a V53. Another improvement on the 80186.
(DIR) Post #AxkV9yQZfpRsQY7B8y by foone@digipres.club
2025-09-01T03:02:05Z
0 likes, 0 repeats
"A notable consequence of this is that, unlike most other platforms, non-power-of-two ROM images are expected to be padded to the last bank downwards, rather than the first bank upwards; for example, a 768 KiB ROM image will be padded to 1 MiB by appending 256 KiB of padding data to the beginning, rather than the end of the ROM. "THE FUCK?
(DIR) Post #AxkY8NT1uDhXMyC4lk by foone@digipres.club
2025-09-01T03:35:26Z
0 likes, 0 repeats
it's also x86 with bankswitching. which is fun
(DIR) Post #Axkb6rYVMoL9yCixIO by darryl@toot.community
2025-09-01T04:08:30Z
0 likes, 0 repeats
@foone Incredible decision. Simultaneously clever and unhinged. Demoscene levels of “yeah this’ll work”
(DIR) Post #Axkdg3o20nLE0XtinQ by wyatt@soc.megatokyo.moe
2025-09-01T04:30:33.508824Z
0 likes, 0 repeats
@foone is the V20/V30 actually a 186 clone? I thought it was some sort of enhanced 8086 but had instructions that 186's didn't have (which is why some games only work right on PC-98's with a V30 CPU and not on ones with an 8086, or with a 286 or higher).
(DIR) Post #Axkdg4laRMyozFlHcm by foone@digipres.club
2025-09-01T04:36:03Z
0 likes, 0 repeats
@wyatt yeah my understanding is that it's not a 100% 186, but they added some of the 186 instructions to an otherwise 8086 core
(DIR) Post #AxkeAovPOBLepf12YK by asie@mk.asie.pl
2025-09-01T04:43:16.656Z
0 likes, 0 repeats
@foone@digipres.club To be clear, a stack segment of 0000 reaches the entirety of the console's internal RAM, and ensures that interrupt handlers can access it without setting up (pushing, popping, the works) the data segment.As the WonderSwan's internal memory is so limited (16 KiB on the mono model, and because the Swan is an unified memory architecture, that's shared with graphics data!), at least some games written in C, as well as everything WonderWitch, use cartridge SRAM as the data segment, and internal RAM as the stack segment - but you still need to write video data!(ASM developers, meanwhile, may have borrowed habits from other platforms...)
(DIR) Post #AxkeNbSQluM6pQYayu by asie@mk.asie.pl
2025-09-01T04:44:36.649Z
0 likes, 0 repeats
@foone@digipres.club The x86 reset vector is FFFF:0000, and the WonderSwan cartridge format replicates this; as such, the ROM header is actually the footer (last 16 bytes), stored in the final bank (0x...FF) - everything follows from there.
(DIR) Post #AxkeQ3gWnHwoxAK03c by asie@mk.asie.pl
2025-09-01T04:46:09.211Z
0 likes, 0 repeats
@foone@digipres.club @wyatt@soc.megatokyo.moe That's true for the V20/V30, but not the V30MZ.The V30MZ is, architecturally, very different - much more RISC-y on the inside, with one-cycle ALU/register operations, a fetch/decode/execute pipeline, et cetera. While designing it, NEC also fixed most of the incompatibilities between the V30 family and the Intel 80186 and removed the V20/V30's custom opcodes. As such, aside from instruction timings and undefined opcode behaviou, the V30MZ is "essentially an 80186".
(DIR) Post #AxkeT86eoNk9XE0YAC by asie@mk.asie.pl
2025-09-01T04:46:49.302Z
0 likes, 0 repeats
@foone@digipres.club @wyatt@soc.megatokyo.moe That's true for the V20/V30, but not the V30MZ.The V30MZ is, architecturally, very different - much more RISC-y on the inside, with one-cycle ALU/register operations, a fetch/decode/execute pipeline, et cetera. While designing it, NEC also fixed most of the incompatibilities between the V30 family and the Intel 80186 and removed the V20/V30's custom opcodes. As such, aside from instruction timings and undefined opcode behaviour, the V30MZ is "essentially an 80186".
(DIR) Post #Axkein44oNd8uPGhRw by asie@mk.asie.pl
2025-09-01T04:49:38.028Z
0 likes, 0 repeats
@foone@digipres.club (By the way, if you find the WSdev wiki or existing documentation lacking in any way, shout at me - I'm always looking for feedback.)
(DIR) Post #AxkfxLcZEFD45juG7U by foone@digipres.club
2025-09-01T05:03:04Z
0 likes, 0 repeats
@asie @wyatt oh, very cool. Thanks for explaining!
(DIR) Post #Axkj1tTVbPdU6mWqC8 by foone@digipres.club
2025-09-01T05:37:28Z
0 likes, 0 repeats
this code uses the DI register to determine the source of a copy.that's just backwards
(DIR) Post #AxkkWGqZN1xvEkMckK by brouhaha@mastodon.social
2025-09-01T05:54:11Z
0 likes, 0 repeats
@foone Someone's x86 assembly programming license should be revoked.
(DIR) Post #AxkmnXPTF7jXRA3A3s by foone@digipres.club
2025-09-01T06:19:43Z
0 likes, 0 repeats
oh god, they're using a jmp table to run this function in reverse ordered chunks
(DIR) Post #Axko4766QP68hwSUHA by foone@digipres.club
2025-09-01T06:34:00Z
0 likes, 0 repeats
when displaying a dialog, the first thing DoGraphicsFunc does is call ClearRAM. Then it calls function 10, which begins by calling ClearRAM! YOU CALLED IT TWICE FOR NO REASON
(DIR) Post #AxkqJEPphKhjen1Wym by darkrabite@infosec.exchange
2025-09-01T06:58:54Z
0 likes, 0 repeats
@foone I loved the wonderswan. It had so much promise!Now I see why people said it was 'hard to develop for'. 😑Wouldn't keep me from snapping up a wonderwitch if I see one.
(DIR) Post #AxlFxmwpE1oBC4tKSW by asie@mk.asie.pl
2025-09-01T11:46:46.735Z
0 likes, 0 repeats
@darkrabite@infosec.exchange @foone@digipres.club I'd say compared to its direct contemporary, the 8-bit Game Boy Color, it's nowhere near as difficult. The main difficulty for commercial development was, from what I've read, few companies springing up for the licensing costs of the official C compiler (LSI C) or figuring out a way to plug in a different one. Meanwhile, the main difficulty for homebrew development is that the GB/GBC folk have done a lot more refinement work on their toolchains!However, compared to its other competitors - the 32-bit Neo Geo Pocket (Color) and the Game Boy Advance...
(DIR) Post #AxlKMxkMbyVdk6K1yq by vito@ruby.social
2025-09-01T12:35:48Z
0 likes, 0 repeats
@foone Just making sure it is *really* clean! :P
(DIR) Post #AxlPxVhQLylNEyC4P2 by oblomov@sociale.network
2025-09-01T13:38:22Z
0 likes, 0 repeats
@foone it's to ensure it's extra clear, 99.99% germs removed.
(DIR) Post #AxlR8qVbQQ3Sv2dKl6 by joknopp@chaos.social
2025-09-01T13:51:45Z
0 likes, 0 repeats
@foone Have you ever cleared your throat twice before speaking in public? Maybe the dialog is a bit nervous when it needs to interact with a real human being.
(DIR) Post #AxlvQwPLEEqT3HFWCW by foone@digipres.club
2025-09-01T19:31:07Z
1 likes, 0 repeats
@asie will do! I've found it all very informative so far