• CommodoreServer.com Official Blog

  • by CommodoreServer.com

Articles and information on Internet-enabling your Commodore 64 Computer.

Nov
22

V-1541 2.4 Released

V-1541 has an extensive API for Internet communication. New features make it even easier to write CommodoreServer programs in BASIC or Assembly.

No More Typing NEW

V-1541 now Automatically NEWs itself when enabled (e.g. typing SYS 49152).  Just enable it and start using it.

New Settings

There are two new settings (#6 and #8), though they are all listed here:

Setting # Description
0 (Read Only) Retrieve V-1541 version in .A/.X
1 Use fast mode when using 38K (blanks the screen)
2 RX Buffer location: 0 = Screen (Default), 1 = Use what is set in $F7/F8
3 Flash border during LOAD: 0 = No (Default), 1 = Yes
4 Reserved / Unused
5 Device # to use for RS-232 Load: 2 (Default), or other number. Can also be set with SYS49152,
6 LOAD/RUN BASIC program (regardless of size): 0 = Normal behavior (Default), 1=Ability to call LOAD from BASIC and RUN it automatically.
7 Reserved / Unused
8 Disable BASIC parameter checking on BASIC APIs - allows ML to use the same API functions as BASIC but without causing an error for BASIC parameter checking.

List-to-Array API

This is probably the most significant update in V-1541 2.4.  It allows you to receive CommodoreServer lists directly into an array so you do not have to parse them with BASIC.  Calling the List-to-Array API will receive any list from CommodoreServer and put each line into an array element dynamically.  This is no small feat! The BASIC ROM does not have the ability to find, move, or alter the size of arrays.  V-1541 will dynamically build any array you specify in this call, leaving it the exact size you need for the list.

For example, let's say you want to retrieve a list of chat rooms.  You do this by making the call to send the ROOMS command: SYS49164, "ROOMS".  To receive data, you pick the proper API to do so.  Normally you could just retrieve the list to the screen with RXLIST (SYS 49182).  But V-1541 2.4 adds parameters to this same call, allowing you to specify an array name variable and array size variable.  The array name is the name of your variable that you want to retrieve the list into.  The size variable will be set with the number of elements that were filled.  So to use this, you would do SYS 49182,R$,RL.  R$ is the name of the array and RL is the number of items that were filled.

Now you can use the array variable to do things like print it to the screen without having to retrieve it every time.  You can try this now, after LOADing V-1541 2.4 / SYS49152:

SYS 49164,"ROOMS":SYS49182,R$,RL
FOR X = 0 TO RL - 1: PRINT R$(X): NEXT

One downside to this is that you will have to wait for the entire list to be received before your program continues.  This is necessary because the List-to-Array feature must get the entire list so it knows how big it is.

Download

Download from the public disks: V-1541 2.4

Conclusion

V-1541 is not ONLY for LOADing programs from CommodoreServer like a virtual disk drive.  V-1541's APIs are very powerful and provide the ability to make BASIC or ML Internet-based programs quickly and easily.

Leave a Comment

You must be signed-in to post comments.

Responses