mbbsemu / MBBSEmu

The MajorBBS Emulation Project is an Open Source, Cross-Platform emulator for easily running The MajorBBS & Worldgroup Modules
https://www.mbbsemu.com
MIT License
129 stars 14 forks source link

[RTSLORD] T-LoRD - (C)onverse with Patrons issues #81

Closed dlightman311 closed 4 years ago

dlightman311 commented 4 years ago

Module Information

Describe the bug (C)onverse with Patrons option now displays the file contents but never reaches EOF and there is some cruft in the usernames. Additionally (A)dd to conversation crashes MBBSEmu when adding a new string

To Reproduce Steps to reproduce the behavior:

  1. Go to T-LoRD, enter the Inn select converse with patrons.
  2. Verify that the conversation never ends.
  3. (A)dd to Conversation to see the crash.

Expected behavior Conversation to stop when EOF is reached. New entry added with A option.

Screenshots Conversation loop: image

(A)dd to Conversation crash:

Unhandled exception. System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'Unable to locate FFFF:0001') at MBBSEmu.Memory.MemoryCore.GetByte(UInt16 segment, UInt16 offset) at MBBSEmu.CPU.CpuCore.GetOperandValueUInt8(OpKind opKind, EnumOperandType operandType) at MBBSEmu.CPU.CpuCore.Tick() at MBBSEmu.HostProcess.ExecutionUnits.ExecutionUnit.Execute(IntPtr16 entryPoint, UInt16 channelNumber, Boolean simulateCallFar, Boolean bypassState, Queue1 initialStackValues, UInt16 initialStackPointer) at MBBSEmu.Module.MbbsModule.Execute(IntPtr16 entryPoint, UInt16 channelNumber, Boolean simulateCallFar, Boolean bypassSetState, Queue1 initialStackValues, UInt16 initialStackPointer) at MBBSEmu.HostProcess.MbbsHost.WorkerThread() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location where exception was thrown --- at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart()

This is preceded by 10-15 log entries of:

2020-09-01 10:32:42.1808 Warn MBBSEmu.HostProcess.ExportedModules.Majorbbs.f_open Unable to find file /mbbs/newsys/lord/rtslord/MAIL0.DAT 2020-09-01 10:32:42.1808 Warn MBBSEmu.HostProcess.ExportedModules.Majorbbs.f_close Attempted to call FCLOSE on pointer not in File Stream Segment 0000:0000 (File Already Closed?)

Software Information:

enusbaum commented 4 years ago

Can you delete the RTSLORD\BAR.TXT file and try again? The original issue was it would get in an infinite loop writing to the file, so you might have like 100-200k in the file ATM which might be causing issues.

Deleting the file will allow the recreate routine to work properly and generate an accurate file -- which might solve the issue.

dlightman311 commented 4 years ago

Reinstalled T-LoRD and confirmed everything is working 100%. Thank you!