BASIC CALLs - jedimatt42/tipi GitHub Wiki

BASIC and TIPI

DSR subroutines

TIPI adds two CALL subroutines, CALL TIPI, and CALL FILES.

CALL FILES

Adjust the VDP memory stack to allocate sector buffers matching TI Floppy controller memory layout.

This behaves like the standard TIFDC CALL FILES(x) if the CRU base for TIPI is >1100 (the same as TIFDC). If the CRU base is anything else, then TIPI's CALL FILES routine does nothing, and allows DSRLNK to cascade to the next DSR ROM for an appropriate implementation.

Practical values are 1 through 3. 0 is an illegal value.

TIPI does not actually use these buffers. Some programs get confused if the VDP stack is not where it expects it to be on powerup. Other programs attempt to call this routine to make room file bitmap graphics mode in conjunction with file operations.

Cassette based TI systems had more memory available to BASIC than disk systems, due to these sector buffers in VDP. Technically disk drives can be used without 32k expansion. Since a cassette only BASIC program could use more memory, it is possible to have these programs not able to load from a disk system.

You should be able to load these larger programs with TIPI if the CRUBASE is not at >1100, and you have no floppy controller in the system.

CALL TIPI

CALL TIPI is an EA5 program image file loader.

If no string parameter is passed, the default path of "TIPI.TIPICFG" is loaded.

CALL TIPI given a path will load any EA5 program that the TIPI can access through level 3 IO.

bugs we know that some EA5 programs do not work correct due to starting from the environment set up by TI BASIC.

examples:

  • CALL TIPI - loads "TIPI.TIPICFG"
  • CALL TIPI("TIPI.GAMES.ATARI.PACMAN") - loads PACMAN from your ATARI directory.
  • CALL TIPI("PI.http://www.cwfk.net/4afiles/AMBULANCE") - loads a TIFILES file off a web-server.
  • CALL TIPI("URI3.AMBULANCE") - loads a TIFILES file using a web-server alias.
  • CALL TIPI("DSK1.DEADLINE") - loads DEADLINE from a disk mapping.