IBM 1410 ALD to FPGA: Volume VII Testing Now Complete

Volume VII started off interesting right off the bat with page 15.49.01.1. First of all, I ran into more cases where “B” level signals fed into DOT functions, and recognized these situations are ANDs because the gates transistors go to 0V when on (logic 0, rather than one) and go to 6V when off (logic 1, rather than 0). Any single transistor turning on is enough to bring the signal to logic 0 – a logical AND. This triggered a move to have logic generation recognize when a DOT function is feeds a gate with a “B” level input or feeds a sheet edge with a B level signal, and makes it an AND – which I then later changed to snagging the logic function to use out of the signal levels table.

Also, on this same page, I discovered that I had mis-interpreted the logic function for two logic gates on card type DND as NOR, when they are actually NAND. As a result of investigating what to do about page 15.50.05.1, I also discovered I had goofed on card type YLJ as well, confirmed by comparing the logic on page 16.20.13.1 with the ILD figure 30. (Later I also found the same miss-interpretation for card type YLH).

Trouble in River City, page 15.50.*.1

Page 15.50.05.1 (and, really, all of the pages 15.50.01.1 – 15.50.09.1) are problematic, because they are not for the IBM 1410 Accelerator feature. This feature uses a fair amount of DTL (IBM DDTL) logic to speed things up. The card location diagram for panel 11C3 shows the DTL cards, but the ALD’s I have don’t match, and generally use SDRTL. For the most part, it doesn’t matter to the actual logic that I will produce for the FPGA. Rather than figure out exactly what the DDTL would be, I have been deferring to the ALD’s. However, on page 15.50.05.1, I ran into a problem. that page takes two inputs not shown on the ALD to produce an output which is also not shown on the ALD (or ILD, for that matter) and that signal is used on page 15.50.10.1 – which is for the accelerator feature.

The input signals are: “-B B CH MIN+INV PLUS SIGN GATED” (which I will refer to as signal “A”) and “-B B CH PLU+IN MIN SIGN GATED” (which I will refer to as signal “B”). The page also produces an output signal, “+B B CH PL+INV MIN SIGN GATED”, which I will refer to as signal “C”). Note that the wording of the output signal is slightly different than the input signal “B”, and is also +B vs -B.

Page 15.50.10.1 also uses signal “A” “-B B CH MIN+INV PLUS SIGN GATED” which originates on page 16.16.06.1, and it is , logically speaking (B CH Minus and Use B Ch Sign) or (B Ch Plus and Use Inv B Ch Sign) as one of many signals that can set the NOT Zone C Bit.

The ILD for page 15.50.10.1 does not match the ALD – it shows a pair of signals used among others in a large “OR” arrangement to set the ASSM Ch Zone C Bit: B CH Plus Sign Gated and B CH Invert Minus Sign Gated – which clearly matches signal “C”), and does not show “A” at all.

The upshot is, the equation for signal “C” might be as simple as C <= not B, but it is quite possible that it should be C <= not B and A. That latter equation would be equivalent in most circumstances, should not be harmful, and would automatically prevent this signal from setting the Zone C bit when its partner (signal not A) is setting the NOT Zone C bit – so that is what I chose to do.

To make that happen, I “fudged” some gates. I had on sheet 15.50.05.1 a DND gate (B level inverter) and a YLJ (NAND, B level input S level output) from the card location chart (which is for the accelerator feature) that I was not actually using as they don’t appear on the ALD. That combination produces NOT(NOT “B” and “A”) – the desired logic, but at a “-S” level. But 15.50.10.1 expects a “+B” level input. So I “tacked” on a gate “borrowed” from card type YLK 11C3F05. YLK is a an inverter accepting “-S” level input and producing “+B” level output. I doubt that this is how it was actually done, but since my ALD is using mostly SDRTL (“S” level) logic, and there aren’t any accelerator feature ILD’s, I went with this approach. Time will tell if it works.

Back to the more mundane stuff

On page 15.62.01.1 I discovered a signal name error. Usually I catch these the first time I come across them. This one was a little different, because the origin page, being for the 1311 disk, is not present in my print set. On page 15.62.01.1 I had miss-read the signal as “-S RECEIVER LATCH*1311” when the correct signal name is “-S RECOVER LATCH*1311” – the latter also appeared on an earlier page as well. Easy fix.

Page 15.62.03.1, which controls the strobe of I/O data was a tiny adventure. First, although the VDHL I wrote to handle SMS gate type TAM has the capability of being forced reset by an attached DOT function, I hadn’t told the database to assign that function to the faux pin “T”. In addition, both of the triggers on this page have their gates tied to ground (since these are SDRTL, that means LOGIC ONE), but the database did not reflect that – an easy fix. Finally, the ILD figure 44 has an error where it shows the various buffer strobes going into an OR which feeds the forced reset on the E Ch Strobe trigger, when in fact they feed into the clock (gated set) input on the trigger. It was pretty obvious when the test I wrote based on the ILD failed the first time that forced reset came into effect.

Page 15.70.33.1, the last page in this volume, also had a signal name error: there was an extra blank on the signal name “-C CPU TO CH TAU C BIT” which prevented group generation from generating a bit vector for it. Easily fixed. (FYI, TAU on the IBM 1410 stands for Tape Adapter Unit).

Triggers are a Pain

In working on page 15.62.04.1 I was reminded that the SMS trigger circuits are a pain. I had already dealt with the fact that another single gate “DOT-ed” with an on or off output can force that output on (either the “on” output or the “off” output can be so affected.) A second issue, though, is that some inputs are typically AC coupled – edge triggered, if you will. That means tracking state, because once an AC coupled input has reached logic 1, it cannot trigger again until it goes back to logic 0. I had dealt with the edge triggering before, but on this page my test tripped up because the variables that were tracking the edge were undefined. That bit me for the first time on this page, because I had neglected to force the trigger counters (4 of them, as there are 4 AC inputs, each requiring tracking 3 FPGA clock pulses to look for a logic-one-going pulse) to reset when the trigger is forced to a 1 or 0 – just initializing them to logic 0 didn’t help. This issue cropped up with card type TAM, which I fixed, but could also happen with card type DEY or DEZ (and maybe others I haven’t run into yet) as well. Did I mention that triggers are a pain? 😉

And, indeed, page 15.62.05.1 had the same issue, with card type SMS_DEY. Did I mention that triggers are a pain? 😉

Another thing about triggers: sometimes they are daisy-chained together, which means one has to be very careful about the relationship between test assertions and clock pulses. In a couple of tests I had to save what the state of the first trigger in a chain WAS before clocking in the 2nd trigger, which sets the 2nd trigger based on the state of the first one, but also clears the first one. Did I mention that triggers are a pain? 😉

Work to do merging switches

Not surprisingly, several switches on the IBM 1410 are multi-deck affairs. Right now the HDL group generation code does not recognize them, such that if a group contains multiple decks of the same switch, it gets it wrong. What it ought to do is recognize when the name of the switch and its number of positions match, and use a common bit vector for them. Until this gets fixed, I have to either test such pages separately, or tweak the generated group and test bench by hand.

1410 ALD to FPGA Volume VI is in the bag

The first adventure in Volume VI was on page 14.50.08.1, which generates +S INDEX REQUIRED and +S INDEX NOT REQUIRED . (They are not simply inverses of each other). The ILD figure 21 depicts part of the index not required signal as 1401 mode and Index C tag and NOT Hundreds position B and NOT Hundreds position B. When I wrote the test bench based on this it failed. No wonder: the 1401 uses the TENS position for indexing. The ALD itself was correct – the ILD was wrong. I actually don’t mind these kinds of “adventures” as long as there are not too many, as it validates the process I am using for testing when I catch errors like this.

Immediately following that was another non-adventure. The ILDs list ALD pages in ALD page order near the end of the ILDs. That table references 3 pages, 14.61.02.1 (twice, which is odd in and of itself), 14.61.03.1 and 14.61.04.1. However these pages are not listed anywhere, and no signals flow to or from them – they are completely nonexistent. These entries reference figure 24, which in fact covers pages 14.16.*.1. So, the table is simply wrong.

I am now using the new technique where I generate a test vector from an integer counter to test pages that don’t have latches or triggers. This creates a more thorough test, and as I get more comfortable with the process, it is usually quicker than what I had been doing.

A very curious thing happened on page 14.71.32.1 using this technique. There was a time period when the main output signal, to read out the C address register on the waveform trace was, well, blank – it was not ANY valid STD_LOGIC value. Yet VHDL code that was added to check to make sure the value was either ‘0’ or ‘1’ did not detect anything amiss. Finally, in desperation, I added a slight time delay before setting the variables that were changing the most slowly on the test vector which affected the output, and the anomaly went away. The equations that were generated from the ALD look fine, so I suspect it was some kind of bug in the waveform display code in Vivado 2018.2

Page 14.71.41.1 proved challenging. First, I found I really have not implemented switches right, so for now I am faking it a bit in the test benches. Secondly, there was a discrepancy between the ILD and the ALD for signal “+S ADDR MOD SET TO ZERO”. The ILD shows a term for an and which is NOT 1401 STORE AR OP CODE *AND* NOT 1ST SCAN CTRL. However, the ALD actually implements NOT 1401 STORE AR OPCOD *OR* NOT 1ST SCAN CTRL. Have to ponder which is right, but usually the ALD is. This is not the first discrepancy – I should have been better at documenting them as I go.

Page 14.71.51.1 had a different challenge: it has 2 input signals and one output signal that are referred to from other pages, but don’t actually appear on the sheet. Signal +S LOGIC GATE E2 is an input and +S STOP AGE G*ARITH is the other “extra” input (the latter from page 16.42.04.1). The output signal is clearly a NAND of these two: -S STOP AT G . LOGIG GATE E used on page 12.12.31.1, as are most of the other signals originating on this page. The only question is that the rest of these sorts of signals also feed a DOT connection to generate -Y WRITE CALL. My guess is that this one would as well – but I did not research it. As for gates, fortunately the card type TAU at 11C1F12 has an available gate (#2) that fits right in with the rest (and is also used on this page).

Another missing page has also been recovered: Page 15.41.06.1, which detected a record mark on the A Channel (The A and B “channels” are not I/O Channels, but rather really just busses inside the machine). In this case it was easy: the card location chart showed 8 gates of type DFF, which is almost identical to page 15.41.03.1.

A really interesting thing happened on pages 15.41.04.1 and 15.41.07.1, which detect blanks and group mark characters with word marks on the B Channel. These pages use DTL logic, with +B logic levels. However, though the system fundamentals manual which depicts DTL as using voltage levels of +Y 0V for logic 1 and -Y or -6V for logic 0, these sheets are using +B as +6V for logic 1 and -B as 0V for logic 0, and instead the gates using pull “ups” to logic 0 (a negative voltage), they have pull ups to +6V – logic one, and if the output transistor turns on it pulls the output DOWN to 0v – like traditional DTL — and the system fundamentals manual doesn’t describe that (it was added for the Accelerator feature which reduces the machine cycle time from 4.5us to 4.0us). Furthermore, on both of these sheets, the outputs from more than one gate are “DOT” ed together. With +S/-S or +Y/-Y logic, when gate outputs are joined, if one transistor turns on it brings the output to 0V – the DOT function therefore acts as an “OR”. However, with +B/-B, the transistor still brings the output to ground – but for +B/-B ground is logic *zero*, thus the DOT function behaves as an AND.

I had anticipated that I might run into this – in away I am surprised it took so long. So, I modified my application so that I could explicitly specify the logic function for a DOTed connection. (If this were in wide use, I’d also modify it so one could specify the default on a per-machine basis.) This change will also be helpful when I eventually go back and fix how switches work. Another great thing about this issue was that I caught it running my tests. It is good to have tests fail when they ought to. 😉

This also cropped up on the first page of Volume VII. It would probably be possible to automate the detection, based on the output logic level of the gates feeding the DOT Function being “B” or, alternatively, for the destination for the DOT function being a gate or sheet edge signal with logic level B. But, for now, I am holding off on that until I can write a report that looks at the DOT functions to make sure changing it now would not break anything I have already generated. I am thinking of adding a column to the logic levels table to set the default for based on logic level.

Page 15.41.12.1, which generates the E Channel Reset also presented a challenge. Pages that feed it send it signals for I Ring 2 time and for E CH Wrong Length Record (the latter being page 13.63.03.1), however page 15.41.12.1 does not use either signal. I caught this one with the test, as well – I had entered the sheet using the aforementioned wrong length record signal. Upon examination, page 15.41.12.1 is a later ECO that 13.63.03.1, so I changed it to match the ALD, using I Ring 1 Time instead of the wrong length record signal.

One other milestone that I crossed while working on this volume was that the first of two pages of the ALD sheet to ILD index was finished.

These all point to being well over half-way done with this process!

The MT Dungeon – Sessions #0 through #3

Palebank Village

Our hardy pre-heroes met up in the little hamlet of Palebank, on the continent of Wildemount. They found that Palebank is quite small, certainly no shops dedicated to magic or magical weapons, though there is a store that sells general goods and maybe a potion or two which they have yet to visit. Three of the party’s elves, Budgerigar, Kirknarnan and Feanor had acquaintance with each other owing to their lineage. Connections with the others in the party, Gandoff, Delenn and Popeye were less certain. Some may have journeyed by ship to reach Palebank, others may have come overland.

The Graveyard

Seeing that the town was nearly deserted, the found out that there was a funeral that day for a Dwarf, Urgon Wenth. While they were paying their respects, they were approached by Elro Aldataur an elven resident of the village who seemed to posses some authority and respect in the town (he is in fact the leader of the Village).

They learned that Urgon had visited the island area to the Northwest of Palebank called Eiselcross for about a year, in search of adventure and treasure. Urgon had returned two months ago, after exploring Eiselcross. A few days after his return, he started moving quite slowly and blue veins appeared on his body. The priests of the nearby villages tried with various spells to heal Urgon, but nothing worked. Eventually his body turned to ice, and so he died.

Elro also revealed that a second Dwarf had become ill, Tulgi Lutan, who seemed to be moving more slowly than normal, with a distinct blue color to her veins, and he explained that when he approached Tulgi to try and obtain more background information on the affliction, she rebuffed him, having no trust in authority, and asked that she be allowed to die in peace. Elro suggested that they visit Urgon’s cabin near the edge of town and/or Tulgi’s Cabin, nearby, and that he would make sure that the party was authorized to have access to Urgon’s cabin.

Elro offered 100 gold pieces for uncovering the cause of the affliction.

Urgon’s Cabin

With plenty of time left in the day, the adventurers decided to take Elro up on his offer, and trudged off in the snow. There they found a guard named Mila Teno, one of the “Glassblades”, who seemed to already know of their approach and agreement with Elro. The group entered the cabin, and began an investigation. Things were strewn all over the floor the cabin, as though it had been robbed or someone had been there looking for something. While taking a close look at the books, a bookmark was discovered which turned out to be a receipt for the sale of certain items by Urgon to Pelc’s Curosities, an antique shop in town. The items were listed as a dagger, a scroll case, a jade statuette, a quiver of twenty arrows, a silver ring set with a jasper, and two blue glass vials. Examination of the cabin and the surrounding grounds also led the adventurers discover some tracks in the snow which appeared to lead to Tulgi Lutan’s Cabin.

The group were concerned with what they eventually figured out was the head of a Yeti, mounted above the mantle, and wondered if perhaps it could be a factor in the mystery, as they are native to Eiselcross.

Tulgi’s Cabin

The group arrived at Tulgi’s cabin, only to find the door locked. Despite thie locked door, there were clear indications of someone within – smoke from the chimney and the light from a fire peaking through the shuttered windows. When Kirknarnan knocked, Tulgi made it very clear that she wanted everyone to leave her alone, but though a combination of charm and good luck, Kirknarnan and the rest of the group were able to gain entry to the cabin.

They found the cabin to be extremely hot. Indeed Gandoff only barely missed setting his robes on fire from standing too close to the hot brazier. Through some “persuasion” with the force to back it up, the group convinced Tulgi to divulge what she knew. It wasn’t all that hard, as she figures she is “dead meat” anyway.

Tulgi came to Palebank Village a few years back from Shadycreek Run with her sister, Hulil. Both work for the Uttolot family. The Uttolots sent the sisters and a few others to the village to keep an eye out for treasures coming back from Eiselcross—with the intent of stealing them. When such artifacts come through the small settlement, they are often unusual goods that treasure hunters are trying to keep away from Uthodurn or the Dwendalian Empire, the major ruling force on the continent. When Urgon Wenth returned to Palebank Village with treasures from Eiselcross, Tulgi saw her chance. She waited for Urgon to sell his finds to Pelc’s Curiosities, then stole them all.

Tulgi gave most of Urgon’s relics to her sister, Hulil, but kept one for herself—an ornate dagger, which after a couple of tries the group discovered. Tulgi offered the dagger to the group, but the group declined, fearing it could have a part to play in the affliction. Delenn cast a spell to determine if the blade was evil or not, and reported that she did not detect any evil. Tulgi admitted that she was the one who searched Urgon’s cabin, convinced that the dead dwarf must have had magic or other secrets stored away there.

Tulgi also told them that Hulil has the other items in a site north of the village known as Croaker Cave. The group discussed whether to go to Pelc’s Curiosities or Croaker’s Cave, but owing to the diminishing light on a short Winter’s day, opted for Pelc’s Curiosities.

Pelc’s Curiosities

When the adventurers arrived at the store, they found the door ajar. After a perhaps ill-advised immediate entry, they discovered a band of bandits there and battle ensued. Our developing group quickly subdued the villains, with Budgerigar and Feanor playing pivotal rolls, terminating the lives of three bandits, and tying up the remaining two.

Upon questioning one of the remaining bandits had little choice but to “fess up” or die. The bandit revealed that they were in the employ of Hulil Lutan, Tulgi’s sister, who holds forth at Croaker’s cave, and that Hulil is also sick, moving slowly with blue veins on her body. Hulil had ordered the bandits to rummage through Pelc’s Curiosities in search of potions, scrolls, or other items that might help cure her. Despite their thorough search, the bandits found nothing useful.

The bandits also revealed that Hulil is a dwarf priestess of Tiamat, the “Scaled Tyrant”. Tiamat is the evil queen of dragons – a goddess of greed, envy and hoarded wealth, and patron of most chromatic dragons.

When Popeye ventured into the back room he discovered the owner of the shop, Verla Pelc, frozen like what modern day people in our plane of existence might call a Popsicle.

Having defeated the bandits they found them carrying no “coin” but did “relieve” them of their weaponry, perhaps to be pawned later for coin. At this point, the adventurers, weary from their battle and investigations, decided to seek respite for the day at the local Inn.

During the day, Kirknarnan was discovered to have an alter-ego “Tough Bandit” attached to his representation on the gaming plane. The all-powerful DM cast a spell the next day to banish the corrupted container to another folder of existence, renaming him “Kirknarnan the Broken” and the former adventurer bequeathed all that he was and all the he possessed to the reconstituted Kirknarnan, who seems none the worse for wear.

[DM Ed: I decided to leave it there, rather than moving the characters to the Inn. We can do that next session, and thus everyone can learn how to apply a Long Rest to their character.]

A Visit with Elro

After dispatching with the thieves occupying Pelc’s Curiosities, the group did a little exploring to see if there was more to be seen in the shop building, but came up empty. There was some consternation about the two thieves who remained alive: some in the part were not comfortable just leaving them be, and others were concerned that they would likely trot back to Hulil’s hideout at Croaker Cave, only to be fought yet again. So, they left Budgerigar Tealeaf to guard them, went to town in search of Elro to report on their progress.

Elro sent Mila over to the curiosity shop to relieve “Budgie” who returned a short time later. He was saddened to hear of the new that Vela Pelc had become a frozen icicle, and not terribly surprised to learn that Hulil Lutan had also fallen ill. Elro provided the adventurer’s with directions to Croaker cave, which the village generally knew was the abode of giant frogs and toads and thieves as well.

The group, slowly becoming friends over their shared experience spent the night at the local Inn and awoke the next morning with wounds healing and spells refereshed.

After breaking their fast, a quick visit to the local general store in town provided some much needed gold in exchange for the weapons recovered from Hulil’s band of thieves the day before. Soon they were off to find Croaker Cave.

Croaker Cave

The cave area was not difficult to find. There was only one obvious entrance, and a fair amount of exploration by “Cap’n” Kirknarnan revealed no alternate entrances. Near the entrance, a bit to the east, they could see smoke rising out of a fissure in the rocks above the cave area: it seems that the cave is occupied.

Near the cave entrance was a large pool of water. Careful investigation revealed a blue-skinned ice frog lurking just below the service. Approaching the pool, Feanor espied a heavy wooden beam. He also drew an attack from the giant ice frog, whose teeth were no match for even his meager armor.

Kirk attempted to wrap a ball of pitons on the end of a rope and cast the rope across the pool. That effort was successful, however there was nothing on the other side to hold the rope firm, and it was subsequently retrieved.

Battle ensued, and it soon became clear the there was more than one ice frog in the pool. Caught by surprise, its attempt to bite fell short. Concentrating on the first frog, Popeye and Budgerigar did sufficient damage that the frog exited the cave in an attempt to flee. However, in the escape attempt, it was finished off by a slash from Kirk, and perished.

That left the second ice frog known to be in the pool. Delenn then stepped up to the plate and from near the back of the group, cast a spell of Command on the second frog, and commanded it to flee. Although it took some damage in the process, it was able to escape the area.

Unfortunately, the ruckus attracted the attention of a pair of Hulil’s thieves. Based on their stature and build, it seems one of them is an elf, the other a dwarf.

Tune in next time for the next episode of “The MT Dungeon”, the Battle for Croaker Cave.

Croaker Cave – Continued

In Session #2 the group continued to explore Croaker Cave. The two aforementioned thieves started making guerilla attacks on the group from the other side of the pool while the group tried to figure out how they were going to get to the other side. After a spectacular failure climbing by Vash, a monk that Elros sent over to try and help, eventually Kirknarnan and Feanor managed to scramble up one side, while Popeye climbed up the other.

Vash did subsequently manage to climb up, but one of the thieves’ arrows found its mark, dashing her into the water, leaving her at the first stage of exhaustion. Once the group got across, they discovered that they had managed to disturb a host of annoying bats. Soon the bats’ numbers had been significantly diminished by attacks from the adventurers, and so fled the cave.

In doing battle with the thieves, the thieves managed to lure the explorers close to a second pool, where two more giant frogs awaited. These two were dispatched, along with two of what turned out to be three bandits. During the battle Delenn had ample opportunities to try out her wand of healing. Popeye managed to grapple the remaining thief who seemed pretty scared and unhappy, and revealed that Hulil Lutan is residing further into the cave, but plans to set out for Shadycreek Run, hoping that trading some of the items her sister Tulgi stole from Pelc’s Curiosities will allow her to pay for healing that will cure her. Poor dwarf: she does not yet seem to know that that sort of cure had already been tried, and was not helpful.

The hearty adventurers were considering whether to bed down for the night and rest when the session ended.

Hulil Lutan’s Hideout in Croaker Cave

Picking up in session #3, the group decided against a rest period, perhaps being unsure if there were any more bandits about. Exploring the cave Budgerigar, Popeye, Gandoff and Vash started rummaging through the bandit campsite. The fire was cold, and so was the pit that Budgie managed to fall into. A rope, with a lift from Vash and then the very strong Popeye quickly got her back above ground. Continue to examine the bedrolls, Budgie also managed to uncover a bottle of Bad Dwarf Whiskey, which is said to be quite a bit more sought-after than the what used to be in the bottles of swill that littered the floor.

Kirk, Delenn and others traveled up the passage to the North of the encampment, but they quickly discovered this just led them back to the bat cave (and not the one Robin frequents). The group then proceeded up the other passage, to the Northeast, and discovered another pool. Perhaps through luck or perhaps a shrewd guess based on the giant frogs in the other pool, Feanor discovered that there was indeed an occupant in this third pool – not just any old frog, the the giant toad Old Croker himself. He also managed, through exceptional animal handling, to convince Old Croaker to ferry him across the pool – and the rest of the party as well, though Popeye opted to use his above average strength and athletics ability to scale the wall and get to the other side on his own. Meanwhile Gandoff went back to see if he might retrieve the plank that most of the party used to cross the first pool, only to realize it was far too long to be able to make the necessary turns to get to the third pool.

For a while the group managed to quietly assembly on the far side of the third pool. They espied a large dragon mural on the North wall – likely a rendition of the evil dragon Tiamat. There was also a roaring fire in the middle of the room. Eventually their discussions alerted Hulil and her companion in worship of Tiamat to their presence. Hulil was annoyed by the presence of the party on what she considered sacred ground dedicated to Tiamat. Tense moments ensued and a brief battle erupted, as Hulil was skeptical of a couple of group members’ claims that they were there to help. In the process, Vash got a little too close to the roaring fire for comfort and got singed, and Budgerigar got hit with a sleep spell casted by Gandoff . Eventually Hulil was convinced by Budgie that the group really was just trying help.

Along the way, one of the group also discovered that the stone chest in the middle room appeared to be trapped with a strange blue powder in some small holes in the chest, which also is emblazoned with the image of a dragon.

When finally convinced by Budgereigar that perhaps the group was trying to help, Hulil Lutan demanded that her companion be awakened before she would discuss anything further. After that had occurred, Hulil revealed several bits of important information:

  • The disease from which Hulil Lutan and her sister suffer from is known as “Frigid Woe”
  • Hulil believes that she contracted the ailment from one of the blue vials that Tulgi and her bandits stole from Pelc’s Curiosities. That particular vial was cracked when she and Tulgi handled it, revealing that the vials’ lovely color was the result of a dark blue dust clinging to the interior surface of the vial.
  • She plans to go to Shadycreek Run before the malady runs it’s course, hopeing to trade the goods that were stolen in exchange for a cure.
  • Hulil sold one of the vials to a human named Irven Liel, a merchant who was traveling with his family, and was staying at the Jolly Dwarf Inn in Palebank.

Hulil was adamant that she would not reveal nor provide the contents of the chest to the explorers – who, after all, had claimed they were there to help.

Our fledgling adventurers then discussed at length what to do next. Things took an unexpected turn when Gandoff, for reasons known only to himself, decided to attack Hulil’s companion with magic missiles, leaving her nearly unconscious, lying on the floor of the cave. This naturally enraged Hulil, and as the session ended, it seemed likely that another battle would ensue.

Advice from the DM: Several of the characters (Budgerigar is a notable exception) seem to not be played in their alignment, and/or perhaps some of the players don’t fully understand what the characteristics of their character’s alignment might be. Below is some “homework” for reading up on alignment and how it affects characters’ behavior. Feel free to engage in discussion on this topic on the MT Dungeon Facebook group page, too.

A simplified explanation from the D&D5e System Reference Document (SRD) can be found at https://dnd5e.info/beyond-1st-level/alignment/

A discussion of alignment that goes beyond the basic rules can be found at easydamus.com – perhaps starting with easydamus.com/neutralgood.html

In particular, the DM notes for the benefit of the players that it is not absolutely necessary for evil beings to attack good beings, or vice versa – motivations are more complex than that, though I do recall one particular Paladin back in the day who was sworn to do so, and occasionally had to be restrained from leading the party into disaster.