-
Content Count
4,006 -
Joined
-
Last visited
-
Days Won
13
Posts posted by Asmusr
-
-
1 hour ago, GDMike said:CLS LI R0, 0
LI R1, >2000
CL BLWP @VMBW
INC R0
CI R0,768
JLT CL
VSMW is looping for you. All you need is:
CLR R0 LI R1,>2000 LI R2,768 BLWP @VSMWThe problem is there are many coding styles and ways to pass parameters in assembly. I even find it difficult to reuse my own routines from one game to the next.
-
1
-
1
-
-
5 minutes ago, Airshack said:Hmm...not sure what I’d be looking for here. What exactly would one expect to change?
You need to check if the name table at >0000 and the pattern table at >2000 contain the expected data.
-
32 minutes ago, jedimatt42 said:I have fixes for the PROGRAM save issue, and a few other things, and was trying to stream-line the sdcard image configuration to be more friendly to QEMU and to the user... but I cannot get beyond reset now..
Are there un-pushed changes required?
I don't see anything pending in js99er-angular's branch for tipi vs master, or pete's tipi fork of tipi...
Just a stupid mistake. Try now.
-
1
-
1
-
-
25 minutes ago, jedimatt42 said:I have fixes for the PROGRAM save issue, and a few other things, and was trying to stream-line the sdcard image configuration to be more friendly to QEMU and to the user... but I cannot get beyond reset now..
Are there un-pushed changes required?
I don't see anything pending in js99er-angular's branch for tipi vs master, or pete's tipi fork of tipi...
Looks like I broke the TIPI emulation. I will fix it later tonight.
-
3 minutes ago, Lee Stewart said:That certainly makes sense—just as long as nothing untoward happens when writing to nonexistent VDP registers, such as what would happen if register numbers are masked to allow only the low-order 3 bits. In fbForth and TurboForth, it is presumed that the user knows whether they have an 80-column-capable VDP. If they choose 80-column text mode with a TMS9918A, the system will go off into the weeds precisely because higher-order register-number bits are masked out by the TMS9918A. As I said, if the same thing were to happen with @speccery’s VDP implementation of 80-column text mode, the above Forths will fail.
...lee
Right, so he could implement the same solution as the F18A, which is to mask to 3 bits unless the 80 columns mode is selected, in which case writes to registers >= 8 are ignored.
-
1
-
-
1 hour ago, Lee Stewart said:They cannot be ignored. I am pretty sure I tried. I would need to retest to be certain. What I have set were tweaked by Tim (@InsaneMultitasker) and Michael (@mizapf) several years ago. Below are what are set for fbForth and TurboForth:
Please, I'm not talking about what you should do but which registers @speccery would have to implement to support 80 columns. You're enabling the mouse and setting a bit related to the VRAM organisation, but speccery can ignore that if he supports neither. And then you're setting some blinking options that he probably doesn't want to support either. I think he still only needs to support the mode bit in VR0.
-
2
-
-
I have released a new version of JS99er with some bugfixes related to the TIPI: there was a problem when you enabled and disabled the emulation, and the CPU is now suspended until the websocket is running.
I have managed to load programs from the TIPI, but when I try to save a simple BASIC program (SAVE TIPI.BAS.HELLO) I get an I/O ERROR 66. What am I doing wrong?
And what is the correct way to shut down QEMU?
Thanks.
-
1
-
-
I forgot that the F18A firmware 1.8 and above ignores writes to VR8 and above if 80 columns mode is selected and it's not unlocked. So that's why it doesn't hurt to write to VR8-VR15 on the F18A. On the V9938 those regs have the following meaning:
- VR8: Mouse, light pen, sprite disable, etc
- VR9: Vertical line count and other output related bits
- VR10: Color table high
- VR11: Sprite attribute table high
- VR12: Text and background blink color
- VR13: Blinking period register
- VR14: VRAM access base register
- VR15: Status register pointer
To implement a simple 80 column x 24 row mode, I think all of these can be ignored. The only issue is if software uses VR15 to set status register 1 in order to detect the V9938 or F18A, then that would have to be implemented.
-
1
-
12 hours ago, Lee Stewart said:Nevertheless, the settings for VR08 – VR14 were designed to allow setup of 80-Column Text mode without needing to know which VDP, F18A or V9938, was installed.
...lee
Are you detecting if an V9938/F18A is present or are you setting these registers blindfolded? I think in addition to the bit in VR0 @speccery might have to support detection.
-
7 minutes ago, Lee Stewart said:It looks like VR10 and VR11 are all that may be needed for the F18A (not absolutely sure about that), but the 9938 definitely needs most or all of VR08 – VR14 managed. Otherwise, you get undesirable behaviour like blinking text, etc. I believe Tim (@InsaneMultitasker) worked out these details for Mark Wills (@Willsy) for TurboForth, which is where I got them for fbForth.
...lee
VR10 and VR11 on the F18A are for setting name table and color table of tile layer 2. They are not needed to set 80 color mode. If the F18A is locked you will address VR2 and VR3 instead.
-
1
-
-
2 hours ago, Lee Stewart said:TurboForth and fbForth set 15 VDP registers (VR00 – VR14) to effect 80-Column Text mode for both the F18A and the V9938—so, 7 additional registers.
...lee
What is the reason for setting all those registers? I would have answered that he only needed to support one extra bit of register 0 (bit weight >04).
-
1
-
-
But finally it works!
-
1
-
-
I think it takes even longer to set up (90 minutes and counting...) with the tipi image than it did with the generic image I used before. Isn't it possible to pre-install the dependencies on the image?
-
On 6/13/2020 at 2:03 PM, ti99iuc said:- could be hard to include a possibility to press a key, like "M" and see the Map with the own position?
I have added a map. Press M to see it, press Up to close it.
I'm not sure it will stay as easy as that that. Maybe you will have to find the map first? Maybe it should only show areas you have visited?
-
2
-
1
-
-
29 minutes ago, Omega-TI said:Bloody Awesome! Are you sitting right on top of a Fiber Optic line next to a major hub?
I don't know about the hub, but it's a fiber alright. We could also get 1000 Mbps if we paid for it. But actually the change from our old ~11 Mbps ADSL wasn't that noticeable, except when I upload to YouTube.
-
2
-
-
29 minutes ago, Omega-TI said:Here's mine
-
3
-
-
1 hour ago, jedimatt42 said:@Asmusr running from js99er.net will be the ideal. Is there any browser security controls required to let the app use data from an alternative source such as this websocket?
No the CORS policy doesn't seem to apply to websockets.
-
1
-
-
7 hours ago, jedimatt42 said:It looks like Pete sets the TIPI_WEBSOCKET environment variable to the path where the js99er build output is, so the websocket can host the files and all is delivered to the browser from one source.
Ahh, so that's what it's for. But I always run from https://js99er.net unless I'm changing the emulator.
-
1
-
-
On 6/16/2020 at 7:53 AM, PeteE said:Done.
You probably noticed that I already deployed your changes to https://js99er.net, but I still haven't been able to get the RPi side up and running myself. My QEMU is running with this configuration, and all the services on the RPi appear to be running except the TIPI boot service:
qemu-system-arm -kernel kernel-qemu-4.19.50-buster -dtb versatile-pb-buster.dtb -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -drive "file=2020-02-13-raspbian-buster.img,index=0,media=disk,format=raw" -device e1000,netdev=net0 -netdev user,id=net0,hostfwd=tcp::9901-:9901In JS99er it seems to be making a websocket connection (at least it's different from not running QEMU), but it's closing after a short time, and nothing happens. Do you have any ideas hot to troubleshoot this?
-
21 hours ago, PeteE said:I've checked in my changes to support whole tipi messages in websocket binary frames. The tipi server fork is here, and the js99er fork is here. The latency is quite improved, and js99er seems to load "CALL TIPI" at the same speed compared to hardware. The websocket server implements the "RESET" text command, and adds a new "SYNC" text command, which precedes a sent or received binary message (when TC=0xf1 and RC=0xf1.) @jedimatt42 I moved the TipiMessage procotol handling to the tipiports C module, since the API layer works on the message level now. I haven't tested it on actual hardware though, there's a chance that I broke something.
Can you make a pull request for me to get your changes?
-
1
-
-
3 hours ago, ralphb said:Is there also a way to deactivate an unlocked F18A? For a while I checked for an F18A in the SDD 99 power-up routine, which involved unlocking the F18A.
; check for F18A li r0, >391c ; unlock potential F18A bl @vwtr bl @vwtr li r0, >01c0 bl @vwtr movb @vdpsta, r1 ; check if F18A present li r0, >0f01 bl @vwtr movb @vdpsta, r2 dec r0 bl @vwtr cb r1, r2 jeq powerup_cart li r0, sys_f18a_en ; mark F18A available mov r0, @x_sysWith F18A active, however, the TI BASIC output is totally garbled:
This should look like below, and the only difference between both shots is the presence of above snippet in the DSR.
Note that the DSR does not modify any VDP registers except for F18A detection. I have no idea how this can even happen ... Are some default register values different? Maybe some F18A experts know?
(NOTE: Neither image looks really that normal. That's because my F18A or the VGA connector or the connecting cable has some "issues". If you watched my SDD 99 video, you know that there was a green tinge and some fuzz to the screen. After "rerouting" the cable inside my TI, I now have NO green at all! 🤪)
EDIT: I looks a little bit like bitmap mode ...
You can reset and lock the F18A with: LI R0,>3280 BL @VWTR
Did you try you code in js99er?
-
1
-
-
6 minutes ago, ralphb said:I guess the fix is just to write one >D0 at the right place, but should this really happen?
Yes, you can use sprites in text mode if the F18A is unlocked.
-
4
-
-
Did you try to produce a list file and look at the string in that?
-
1
-
-


Assembly code samples
in TI-99/4A Development
Posted · Edited by Asmusr
Sorry, after reading TheBF's post, I realize it's of course VSMW that should be used in my post above. Don't know if it's part of the standard E/A routines?