Giter Club home page Giter Club logo

imagebbs's Introduction

Image BBS

Two versions (1.2a and 2.0) of a bulletin board system for the Commodore 64. They are feature-packed and fun to use.

Version 3.0 is a radical departure in terms of module line numbering, and can be found in a separate repository.

C64List

Source code (both BASIC and assembly language) can be handled using Jeff Hoag's "C64List" utility.

C64List is a Windows command-line utility (which also works under WINE in Linux) to convert BASIC programs into a more easily-edited text format. Or, it can go the other way around, and convert text files into native PRG binaries. An assembler is included to either add assembly code to the end of a BASIC program, or write a standalone assembly program. There are many other features. Visit the Bit 64 Blog for more information.

With the release of C64List 4.04, BASIC code and quoted uppercase characters are now more easily readable. BASIC code can be lowercased with -keycase.

Previous Versions

When converting .prg (BASIC binaries) to .lbl files (where line number references are replaced with editable labels) with previous versions of C64List, continue to use -alpha:upper. There is a bash shell script which converts {$c1-$da} to {A-Z} (which are interpreted with C64List's {quoter:} directive).

Check out our wiki in progress.

Need a modem emulator? Here's tcpser source.

Want to telnet to some Image BBSes? Our network has 13 nodes! Check out the Commodore BBS Outpost!

Docker Build

Thanks to the efforts of user jcobol, we have the beginnings of a Docker-based build for the assembly language. See https://github.com/Pinacolada64/ImageBBS/tree/master/v2/docker for more information.

Sysop Documentation

Both the Image BBS sysop documentation and various quick-reference guides are in the process of being converted to a web-based format:

Image BBS 1.x, 2.0 and 3.0

Connect With Us

Need technical support or just want to chat about stuff?

Image 1.x and 2.0: Facebook

Image 3.x: Facebook

This #image-bbs Discord channel is a subset of Pinacolada's Puget Sound Commodore User's Group (PSCUG) server.

Brent's World Forum

8-Bit Boyz Forum

imagebbs's People

Contributors

pinacolada64 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

imagebbs's Issues

Who wants to write a Zmodem or Ymodem protocol?

Probably more of a feature request, but I don't have access to write into that area. I'm pretty sure the C-Net 128 software has Ymodem, and I wonder if it can be ported over for our purposes. Since so many people are running emulators to call and download from us, it seems almost a shame to limit them to Xmodem only.

+/IM.logon (login mods)

Writing data skewed by one record.
On the screen when editing a login instance, it looks correct, but after saving, if you go back and look at the changes, the data is skewed. Example. add 3 modules, and configure:

# name acs
1. news 1023
2. last 1023
3. grf 1023
Save the changes, then go back and edit and it will look like

# name acs
1. news 1023 0
2. last 1023 0
3. ^

The content of e.loginmods is
3
last 1023
grf 1023
news 1023

Before I edited it, the content (as is on the R2 disk set)
2
last
1023
news
1023

Update: it appears to be the write routine in +/IM.logon, because all 3 areas are affected in this manner.
Maint mods, login mods, and quicklist. Haven't tested wall ads, but I imagine it would be the same.
In my humble opinion, I think just adding another print#2 statement in between the variables will cure it.
Change 4040 fori=1tobr:print#2,tt$(i)r$a%(i):next:close2:return
to 4040 fori=1tobr:print#2,tt$(i):print#2,a%(i):next:close2:return
I'm guessing someone is using r$ as a soft carriage return but doesn't get translated that way when writing the file for some reason. Either that, or r$ was never loaded with the chr$(13) during the startup routine. Hell, perhaps the second print#2 statement can be mitigated by adding chr$(13) in it. Either way, that's beyond my pay grade.

** UPDATE (again)
I changed my +/IM.logon line 4040 to read
4040 fori=1tobr:print#2,tt$(i)chr$(13)a%(i):next:close2:return
and it worked like it should. I'm thinking someone just forgot to set r$=chr$(13) during init. I went further to just declare it in the master file +.IM at line 3000 with r$=chr$(13) and it cured all 3 of the areas mentioned. I know we're all about saving memory space, but cmon. :)

Message move utility gets "stuck"

+.MU (the message move utility, pity it doesn't work on 1.x) will load the message base directory, let me "get" a message to move, but then I can't "drop" it in the second message base I defined.

Terrible makefiles

I love this BBS software, but wow this source tree is terrible. This isn't meant as a personal attack or anything but as someone who likes to be able to just build my programs without having to fuck around in the makefiles too much, or fix errors, this is awful

I'm focused on the V2 tree here, (in master, NOT the v2 Branch)

First off you're relying on using wine on specific beta versions of freeware non-open source software (C64list), i recommend not doing that as a future update could fuck shit up, and since we don't have the source, it can't be unfucked. Not to mention they're distributing the binaries through links of facebook, ew.

Second of all, building. I believe the makefile is incomplete, but here are some pointers. I understand Makefile IS a major pain in the arse to work with, but it makes things easier for the user.

First off, there seem to be minor syntax errors in:
v2\asm\swap3.asm on line 112, thee's a missing space, it should be "ldy #0"
v2\asm\irqhn.asm on line 315 (I think just changing the #',' to #$2c shoould be equivelent?

Now, by using the latest version (4.03 at the moment) of C64 list it seems to build okayish, but not all the way into d64s or a d81.

I get ecs.bin garbage-collect.bin swap1.bin swap3.bin
editor.bin struct.bin swap2.bin wedge.bin

I haven't gone any further yet, but i'm hoping this is at least what i need to put into a disk with different names to get something to work?

Sorry if i sound super critical, i get this is tough work, but i do think it's important to at least get the project building or at least offer the latest working binaries in the Releases section so people can actually access the software easier without hunting down binaries elsewhere

GF broken

In non-cursor menu, the commands for editing and adding are broken. Z enters maint menu, but the only command that works in there is O for logoff.
I was able to add and view libraries using the cursor menu however.

Broken BRK handler

Some massaging of source code, and there's a halfway intelligible display. Not sure what it's all supposed to mean, but it could be an interesting exercise to fix.
broken brk handler

+.UU does not edit information

Issue 1: Ignores the menu mode. After selecting the user, the data is displayed in cursor menu mode.

Issue 2: No data can be selected
When selecting (either by cursor/return or letter) any item, the screen clears twice, then returns to view mode. No entry prompts appear, and no records are changed.

e.access writing garbage

Not sure what is causing it, but e.access seems to constantly add lines to the file until eventually it is completely overwritten.

image

Cursor Menu - Dialogs skewed

In an area where dialog menus (yellow overlays) are prominent (i.e.: GF maint or options menus) the only option is to use the letter/number item to access the options. The cursor appears at the bottom of the screen, and no marker seems to be present anywhere else on the screen.

+.lo - User forced off at failure to create temp account

After typing HELP, the message is displayed, followed by the prompt to create a temporary account. On answering NO, the time remaining is reduced to 0. Recommend rewriting 3188 to ifa=.then3136
If anything, I would offer raising tr by 2 minutes since they probably read the message slowly.

--original lines--
3186 lp=1:&"‹‹˜Would You Like To Log On With A œTemporary˜ Account? ":gosub1902
3188 ifa=.thentr%=.:goto3136

More Prompt - Messages Only is broke

This is a 2 part problem when the More Prompt is set to Messages Only

  1. Doesn't pause messages in the Sub Boards.
  2. Entering MP causes "Illegal Quantity Error in 1870"

NISSA "size" utility reports incorrect block size

This is size from the Christmas 1994 NISSA disk. Try running it multiple times (sys 52992) with the same program in memory. The block size keeps increasing (one less than the total blocks, it seems) between runs. The block size should be initialized to zero between runs.

SwiftLink driver: NMI disable during disk access

From @x-tec2017:

NMI is not getting disabled during serial port operation. If a program is loading and something comes on the SwiftLink, the program load will either get stuck and the drive activity light stays on, or if it manages to complete the load, the program that loaded will be corrupted. Try making the BBS load a large +.file like +.IM or +.EM and start hitting the Return key rapidly while logged on through the SwiftLink. That should duplicate the problem. The file rs232/swift.s has the routines for disabling and enabling NMI.

Possible Issue - Load Error

Not sure if it's just me, but here's how to recreate:

R from main prompt, type in a file that is not there, or select a drive that does not exist.
Results in break: load error in 2006

That said, something got really screwy with my etc files somehow. It got to where I could not load menus anymore, and then various modules started misbehaving. I noticed my e.Sig and e.Sub files were 121 blocks each, and going into SB would eventually result in bad subscript and other things.

I restored the etc drive from a week old backup, and now I can see menus again, and the subs work as expected (after I used the updated consig files Larry sent).
Just a heads up, and I don't know the root cause yet. I'm going to recreate what I did this week to make it happen again.

+/IM.logon (sysoplist)

When editing a sysop's flags, there is no way to exit the menu. Options exist for flags 1-8, but neither [CR], Q, or backarrow will get you out.
I had to break and goto1100 just to get back to the previous module.

+/IM.access missing from R2 set

I didn't discover this until I went to add the changed lines in +/IM.access. I have the i/IM.access from the December set, but I'm not sure what has been changed since then.

+.access - Downloads per call only one digit

Is this by design that the data field only allows one character? I can't think of a reason to give users less than 10 downloads per call. If that's the case, I'll just give them unlimited downloads and modify the credit ratio to allow 20-30 for most generic access levels.
Subops and Maint users get unlimited anyway. At least that's how I roll.
Otherwise, fix field 20 input to allow more than one character.

+.IM - new "time" sub-module

I am working on an idea to add a sub-module to IM. Moving the "Remote Time Editor" into its own sub-module will knock a few blocks off IM and add two features to the `Time Set" menu:

  • Set prime time start/end times, toggle prime time
  • Change clock set method/external device number

Maybe the menu item could be renamed to "Time Functions" or something.

Varlist at idle screen issues

Hopefully this is a gentle introduction to issue tracking for @x-tec2017.

There are a few issues with the idle screen variable display module +/lo.varlist.

  • Displays string variable name instead of string contents:
    broken-varlist

  • Goes into infinite loop when displaying array variable contents:
    varlist-loop

Idle screen terminal locks up before selecting transfer protocol

From @xtec2017:

? I'm stuck on something that maybe you can help with in Image 2.0.
Go into Image Term by holding down the CONTROL key and hitting the left arrow.
Select 3) Term Parameters
Select 3) U/D Protocol
The system gets stuck in line 2500

I've traced it this far:
in +.t
3210 gets an$' '3210 gosub3006' ' 3006 converts an$ to a (a=3)' '3212 on(3)goto3228' '3228 gosub1666' ' 1666 sets im=4: goto2406' ' 2406 sets a$=params:goto2500' ' 2500 gosub2510' ' 2510 loads "im.params"' ' 2512 return' ' 2500 gets stuck here'

it should continue in line 2500 with is=is+1:im$(is)=im$ then fall to 2502
2502 gosub60000:new60000:is=is-1:if is then a$=im$(is):gosub 2510 2504 return

WF does not overwrite

We need a better port of this. The 8/3/89 version for 1.2 allowed you to overwrite if exist, and use alternate filenames at the time of saving. It would also be useful to give the user a choice to stay in editor or return to main.
Also, using WF to create a file doesn't work, since it doesn't ask for filename on .save

More? prompt during logon

This didn't start happening until I set the "lines per screen" setting for sysop user. I wonder if this was somehow responsible for issue #15 where we got unwanted prompts.
Suggest setting a temporary lines/screen variable until the user profile is loaded.
See screenshot:
AltText

ECS Editor - missing modules

On the R2 disk (that I'm using) there were a few plus files missing from the distro. We either need to update the distro to include the missing files, or the existing ECS data on the distro should be modified to have them removed from the list.

+.TU
+.CD
+.word
+.NM/chess
+.OR
+.NW
+.TAG

Create a more comprehensive sysop setup experience

When configuring a new BBS, the current process has some deficiencies:

  • Mess up an answer, there's currently no way to go back and correct it without rebooting
  • (Mention in new version "You can change answers later.")
  • IM menu system could be used to answer these questions

Hardware:

  • Using Lt.Kernal device?
  • Configure modem/telnet bridge options (nimodem.dat)
  • Dallas Semiconductor DS12C887 RTC chip at $d500 (VICE)

Sysop config:

  • Graphic Menu mode available, enabled? lightbar options
  • Ask which style of menus the sysop prefers: text or graphic menu
  • Email vs. phone # mod of X-Tec's is something to consider, too
  • Configure BBS time zone
  • Configure Prime Time
  • Add user 1 to QuickList (instant mode login)

+.lo - Linefeeds assumed from failed login

Linefeeds don't reset to default at login screen.
Steps to recreate:

  1. Connect via ASCII or ANSI terminal that would normally need LFs
  2. Attempt to login as a user with no linefeeds (C64 user)
  3. Fail authentication with bad password
    at this point, the setting from that user's lf is used
  4. Return to login prompt and attempt login as anyone else
    settings (not sure how many) appear to be in effect for the attempted failed user

Would clear arrays be appropriate here? At this stage of login, we've already established baud, translation, and graphics status.

+.ED is the 1.2 version

Need an updated user editor that can access the new flags and stats portions of the 2.0 user files.
We don't have access to change the user's terminal parameters, or maintenance flags.
Another issue with this version is single digit entry for "Downloads per day" field.

If UU is the suggested editor, it's broken. See #29.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.