AV 20206 - Final release of Twilight II v2.0

This commit is contained in:
Antoine Vignau 2020-06-27 21:01:55 +02:00 committed by GitHub
parent 0983402651
commit 4415eb208f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 234 additions and 34 deletions

View File

@ -0,0 +1,17 @@
*------------------------------------------------------------------------------*
! DYADemo1: Source Code Part 1 v0.? February, 1990 Revision 4.1 !
! --------------------------------- -------------- ------------ !
! Programmed 100% by the wonderful ----> JiM MaRiCoNdO <---- DYA CoFoUnDEr! !
! With art by --> MaTT kEllER <-- and --> JIm mARiCoNdo <-- !
! !
! For use of DYA Members ONLY. If you've got any common sense you won't !
! distribute this source cuz if you do, I'll personally kick your ass. !
! ___________________ !
! | DYA: Why the hell --Jim Maricondo !
! | not? who spent a lot of time writing this!!! !
! !
! ==Digital Youth Alliance 1990== !
*------------------------------------------------------------------------------*
! Copyright Jim Maricondo, 1990. No parts of this source can be used without !
! written permission from the author. For exclusive use of DYA only! !
*------------------------------------------------------------------------------*

View File

@ -0,0 +1,14 @@
bs
cp beat.asm beat.asm.c
cp cdev.asm cdev.asm.c
cp dispatch.asm dispatch.asm.c
cp init.asm init.asm.c
cp ipc.asm ipc.asm.c
cp library.asm library.asm.c
cp misc.asm misc.asm.c
cp request.asm request.asm.c
cp setup.asm setup.asm.c
cp tii.rez tii.rez.c
cp blank.asm blank.asm.c
es

View File

@ -1527,7 +1527,7 @@ looped2 anop
iny
cpx #200
blt looped2
rts
rts
*************************************
@ -1575,10 +1575,10 @@ looped3 phy
End
*-----------------------------------------------------------------------------*
Alloc_DP Start
Alloc_DP Start
Using BlankDATA ; get module's DP space (1 page)
Using InitDATA
debug 'Alloc DP' ; AV 202005
debug 'Alloc_DP'
* Get another handle to give the module it's own direct page.

View File

@ -1,4 +1,4 @@
setcom 80
setcom 80
mcopy cdev.mac
copy 13:ainclude:e16.quickdraw
copy 13:ainclude:e16.control
@ -94,7 +94,7 @@ MyMessage anop
* str 'DYA (JRM): Twilight II'
* str 'Digital Creations: Twilight II (JRM)'
str 'DigiSoft Innovations: Twilight II (DYA)'
BlankPtr ptr 0 ; Pointer to the blanker entry point
BlankPtr ptr 0 ; Pointer to the blanker entry point
MyID ds 2 ; Our memory ID
ModulePath ptr 0 ; Ptr to full GS path of module folder
T2Pathname ptr 0 ; Ptr to our full pathname & filename
@ -122,7 +122,7 @@ HndlSize ds 4 ; size of a given handle
BlankTime ds 2 ; Number of minutes to blank * 720
Minutes ds 2 ; Number of minutes to blank
TimeTxt ds 2 ; Text string version of Minutes
T2WindP ptr 0 ; Pointer to the CDev window (Data1)
FM_dp_handle handle ; handle to the dp block we allocate

View File

@ -35,7 +35,7 @@ disptch2 equ $E10004
longm
PushLong #BellVectPatch ; source pointer
LongResult ; destionation handle space
LongResult 0 ; destionation handle space
PushLong #bPatchEnd-bPatchStart
~GetNewID #$2000 ; get new control program ID
PushWord #attrLocked+attrFixed+attrNoSpec+attrNoCross

View File

@ -0,0 +1,93 @@
_____
notes: ("=" indicates new note)
** YOU MUST DELETE YOUR OLD TWILIGHT.SETUP FILE! YOU HAVE BEEN WARNED!**
***YOUR FEEDBACK IS DESIRED ON THE FOLLOWING!!!!!!!***
= do you think it is OK for T2 v2.0 to REQUIRE a hard disk drive? I'm very close to making it not run off floppies.. is this okay?
= do you think it is OK to call GetCursorAdr and SetCursor when the busyflag is non-zero? right now the don't blank T2 cursor won't appear when the busyflag is non-zero, but I don't like that... should I changet it?
= Please test advanced options: new module path, and swap time. There is a definite bug (I think.. I haven't had time to check.) in swap mode that I don't have time to track down before kfest, that causes it sometime not to swap (I think..) But play around with it anyways. SHR Corners and Password options are not yet implemented. I think there might be another bug in swap mode, perhaps only when used with Moire, but that's just a guess... Try it and tell me what you see..
= I am not finished optimizing the interrupt routines. Right now, I no longer lose characters while communicating, but only IF QuickResponse is turned off. And when QuickResponse is turned off, sometimes a lot of keypresses can be missed by Twilight II. I will be fixing this after Kansas..
- busy flag should NOW be zero during a foreground blank. make sure this doesn't cause any problems because it's somewhat of a hack!
- when Twilight.Setup has been deleted, the next time you open T2 the first module will be selected. If no modules are toggled, T2 will automatically toggle fg fader when you close it.
- if more than one module is selected, blank now and about module and setup operate on the first selected module
- there might be a bug in universe causing it to trash memory. be on the lookout for it!
_________________
reminders for jim:
[= usuable without HD at all????????]
[= james's swap ideas.. worth it?]
- nonremovableT2 flag/fix random mode enabler -- work at all on floppy systems?
- when random mode cannot be used, only the first toggled module will be saved to disk
- interrupt hogging
- advanced options (on/off SHR corners, on/off Text corners, on/off mouse checking, T2 module directory path setting, and any others that you might recommend!!)
- scheduler hogging (in some rare cases)
- print shop/AOL blanking (possibly)
______
v1.2d4: 19 Jul 94
* 30 Jun 94 - T2 once again flashes the menubar box by writing directly to screen memory. This should stop it from showing up on printouts.
* 30 Jun 94 - Caps Lock Lock now defaults to ON.
* 30 Jun 94 - Control Heartbeat now runs every 4/60ths of a second, instead of every 2/60ths of a second before. SHR and Text heartbeats (neither active simultaneously) still run every 30/60ths second. adb_magic (QuickResponse) now is called every 52/60ths of a second instead of every 30/60ths second.
* 30 Jun 94 - Temporarily (now it's permanent -- July 8) disabled Text mode corners (I don't think anybody ever used them anyways and they just contributed to overhead). This may become permanent, or it may find a place on the upcoming "advanced options" setup page.
* 1 Jul 94 - T2 now opens a new port in between modules in random mode. Previously the same port was kept, causing problems (e.g. Headlines followed by PowerGrid caused PowerGrid's initial message to be printed in headline's last font.). Also, I eliminated a call to SetPort our port after OpenPort, because TBR2 says that OpenPort automatically sets the current port to the opened port. [Nathan]
* 1 Jul 94 - Right before BlankT2, T2 now keeps DECBUSY until the BUSYFLG = 0. After BlankT2, T2 calls INCBUSY an appropriate amount of times to restore the busy flag to what it originally was. I debated between this and simply saving BUSYFLG and STZ'ing it myself, without going thru DEC/INCBUSY. By going thru DEC/INCBUSY, pending scheduler tasks will be called. I figure this is OK because we are indirectly in a RunQ environment, which is a stable environment. As far as I can tell, the BUSYFLG gets incremented by the toolbox runQ routines before calling our BlankRunQ, and then it gets incremented once more by the toolbox when the BlankRunQ makes a SendRequest call to Blank_Screen. I should also note that d3 did not zero the busy flag as it claimed to do, because I didn't know SendRequest incremented the busy flag again. So now it works.
* 1-2 Jul 94 - Swap modules now implemented (albiet a bit crudely at this point..). Swap time is currently hardcoded at 15 seconds. You'll have to live with it until later.
* 2 Jul 94 - Twilight.Setup is now reopened during UnloadSetupT2, as per Nathan's request.
* 2 Jul 94 - T2 now updates the modification time/date (of the Twilight directory) stored in the header of Twilight.Data when it figures out that Twilight.data doesn't need rebuilding, but the time has changed since last time (like for instance if the finder has changed finder.data, while all the modules have remained the same, causing the mod time/date to change)
* 2 Jul 94 - added error checking to the routines that review and create and update Twilight.Data..
* 7-8 Jul 94 - made some more modifications to the heartbeats.. specifically, split the SHR heartbeat mouse routines away from the SHR heartbeat. The mouse routines are called one 1/2 second, and the other routines, the next 1/2 second. This should help eliminate overhead. Also cleaned up a __LOT__ of code.. (ongoing process) And fixed a bug where T2 was filling up the scheduler (a big OOPS!) in text mode. Also in the processed fixed Michael's bug report where caps-lock could lock the cursor in the "don't blank" image..
* 8 Jul 94 - cccp runQ now runs only every 5 seconds (versus 4)
* 8 Jul 94 - new thermometer control window to keep the user happy while the Twilight.Data file is being rebuilt..
* 8 Jul 94 - Twilight II print on main window is now always black
* 8 Jul 94 - new Advanced Options setup screen integrated into T2
* 9-10 Jul 94 - more work done on Advanced Options. Password resources created and integrated into T2's rfork.
* 19 Jul 94 - a couple touch-ups. Released prematurely but because I want it out before Kansas..
* ~2 Sep 94 - Fixed saving of swap mode time..
* 5 Sep 94 - Swap Mode should hopefully now work again..
* 5 Sep 94 - lzss can now exit if movePtr becomes true..
______
v1.2d3: Jan/Jun 94
* 14 Jan 94 - T2 Stop icon is now positioned correctly w/ new layout.
* Jan 94 - module list nathan bug (forgot to allocate enough list memory for Background and Foreground Faders.. oops) [Nathan]
* 10 Jun 94 - LZSS nathan bug. forgot to ever call GetRingMemory, so the ringbuffer was overwriting 4k of random memory, usually at $E12000. Oops! [Nathan]
* 10 Jun 94 - fixed jsl remove_patches (should have been jsr), and eliminated one call to cantOpen
* 29 Jun 94 - at remove_patches, we now check to make sure that our message has been retrieved before blatently jumping to it.. (thus put back the above call to cantOpen)
* 29 Jun 94 - fixed bug introduced when we allocated the right amount of memory for fg/bg faders in the list.. oops.
* 29 Jun 94 - now, t2 checks the modification time/date on the twilight module directory with a cached time/date stored in twilight.data when it was built. If the times match, t2 assumes twilight.data doesn't need to be rebuilt, saving a bunch of GetDirEntry calls for each module.. the only thing that now can be added is if T2 finds the times don't match, and then goes through and finds out that all the modules haven't changed, then T2 could go back and update the time in Twilight.Data to the new time of the directory. right now, T2 doesn't, so it must always keep checking with GetDirEntry each subsequent time. Make sense? I hope so. :) This also caused Twilight.Data and Twilight.Setup to be moved into the CDevs folder. Also fixed several bugs introduced by all the above modifications.
* 29 Jun 94 - busy flag should now be zero during a foreground blank. make sure this doesn't cause any problems because it's somewhat of a hack! [Nathan]
______
v1.2d2: 9 Jan 94
* 2-3 Jan 94 - T2 now uses Greg's revised Tool.Patch code. In addition, it will refuse to remove itself if something has nonstandardly patched the toolbox after T2. To do this, the RemoveToolPatches call had to be moved out of the removeT2 request and into the CDev.
* 3-4 Jan 94 - NEW Twilight.DATA file for caching the module information. Twilight II loads many eons faster now! (I'll time it later so I can put some impressive fact like "Loads up to 800% faster" in a future ad for T2 1.2)
* 4 Jan 94 - new "list.asm" source segment. also a bug or two left over from switching to "toggle"ing modules squelched.
* 5 Jan 94 - fixed silly bug where if nothing was toggled, you couldn't blank now [Eric, Nathan]
* 5 Jan 94 - adjusted T2 error string rects so that they will fit in the new T2 window [James]
* 5 Jan 94 - upon opening up T2 for the first time (after deleting twilight.setup), no module will be toggled, and the first module in the list will be selected. If no module is toggled before T2 is closed, foreground fader will automatically be toggled and saved.
* 7 Jan 94 - fixed bug in GetNextChecked that caused the "Error $0000 has occurred while loading blah module. T2 will not purge itself." message. Also fixed the bug that caused the error to be reported as Zero.
* 7 Jan 94 - new icon control
* 7 Jan 94 - background fader now handled properly (WHEW!!!!). It can only be toggled on when nothing else is toggled, and while it is toggled on, nothing else can be toggled.
______
v1.2d1: 2 Jan 93
* 30 Dec 93 - blinking box now defaults to OFF (more interrupt friendly, too)
* 30 Dec 93 - blinking box should now no longer blink on printouts
* 1 Jan 94 - list draw procedure now uses SetCharExtra on module names that won't fit in the module list ("America Held Hostage" fits better!)
* 1 Jan 94 - setup module name popup now has a fixed size so "America Held Hostage" fits
* 31 Dec 93 & 1 Jan 94 - new layout!
* 1 Jan 94 - new toggle button will eventually serve to toggle modules for random mode
* 2 Jan 94 - T2 now supports coolcursor, by installing a runQ to run every 4 seconds to ask cccp what the state of the cursor is (this runQ is ONLY installed on cccp systems!!) (Should it be more than 4 seconds or less?)

View File

@ -13,7 +13,7 @@
copy 13:ainclude:e16.cccp
keep init
copy equates
copy TII.equ
copy TII.equ
copy v1.2.equ
copy debug.equ
*-----------------------------------------------------------------------------*
@ -632,7 +632,7 @@ LoadDATA Data
SavePath C1Result 256
ModulePath C1Result 256 ; Full pathname of module folder
FolderStrPtr ptr
FolderStrPtr ptr 0
FolderStrLen ds 2
PathHandle handle
@ -734,13 +734,13 @@ MyMessage anop
str 'DigiSoft Innovations: Twilight II (DYA)'
ptr BlankRtn ; Pointer to the blanker entry point
MyID ds 2
;ModuleIDPtr ptr iModuleID ; pointer to module memory Id
;ModuleIDPtr ptr iModuleID ; pointer to module memory Id
ptr ModulePath_textLen ; Ptr to full GS path of module folder
ptr iNameBuffer_textLen ; Ptr to our full pathname & filename.
ptr DefaultB
dc h'5c' ; jmp long
dc a3'GetRezWord'
ConfigPathPtr ptr
ConfigPathPtr ptr 0
dc i4'ModuleFlags'
nonremovableT2Vol ds 2
ptr PrefRezFileID ; ptr to rezFileID and rezAppID of pref
@ -807,9 +807,9 @@ PrefID ds 2 ; rezFile id of pref rezFile
PrefErrorCode ds 2 ; error code (if applicable)
RectHandle handle
RectPtr ptr
RectPtr ptr 0
SetupPathHndl handle
SetupPathPtr ptr
SetupPathPtr ptr 0
* Current mouse clamp values

View File

@ -20,20 +20,21 @@
* V1.00 - 1.0d37 - September 13, 1992 by JRM - Implementation
* v1.1 - t2 1.1f4 - March 24, 1993 by JRM - inc/dec
ipcTurnOn Start
kind $1000 ; no special memory
ipcTurnOn Start
kind $1000 ; no special memory
Using InitDATA
debug 'T2TurnOn'
copy 22:debug.asm
copy 22:debug.asm
DefineStack
dpageptr word
dbank byte
retaddr block 3
dataOut long
dataIn long
request word
result word
dpageptr word
dbank byte
retaddr block 3
dataOut long
dataIn long
request word
result word
lda ipcT2Off ; 0 = T2 is on
beq done

View File

@ -1,7 +1,7 @@
setcom 80
mcopy list.mac
copy 13:ainclude:e16.memory
copy 13:ainclude:e16.gsos
mcopy list.mac
copy 13:ainclude:e16.memory
copy 13:ainclude:e16.gsos
copy 13:ainclude:e16.locator
copy 13:ainclude:e16.types
copy 13:ainclude:e16.resources

View File

@ -0,0 +1,75 @@
# Twilight II UNIX MakeFile
# by Jim Maricondo
# v1.0 (inital version) - 8/20/92 1:42am
# v1.1 (init modularity) - 8/24/92 6:00pm
# v1.2 (cdev modularity) - 8/28/92 8:16pm
# v1.3 (misc logic fixes) - 12/23/92 8:56pm
# v1.4 (new rez files) - 12/26/92 4:07pm
# v1.5 (ipc.asm) - 12/27/92 2:11am
# v1.6 (misc.asm) - 1/1/93 7:40pm
# v1.7 (equates->dsdb.equ) - 1/2/93 10:52pm
# v1.8 (library.asm) - 1/18/93 4:57pm
# v1.9 (o/) - 1/18/93 8:51pm
# v2.0 (dsdb.equ->debug.equ) - 2/22/93 3:06pm
# v2.1 (blank.asm) - 2/23/93 12:18am
# v2.2 (list.asm) - 4 Jan 94, 9:41pm (no skool!tue!) (some .root->.a)
# v2.3 (rez stuff!! what happened to it?) - 10 Jun 94 (beth?!)
# First deal with all the init files...
o/blank.root: blank.asm blank.mac debug.equ
compile +w blank.asm keep=o/blank
o/init.root: init.asm dispatch.asm init.mac debug.equ
compile +w init.asm keep=o/init
o/beat.root: beat.asm beat.mac debug.equ
compile +w beat.asm keep=o/beat
o/request.root: request.asm request.mac debug.equ
compile +w request.asm keep=o/request
o/ipc.root: ipc.asm ipc.mac debug.equ
compile +w ipc.asm keep=o/ipc
o/library.root: library.asm library.mac debug.equ
compile +w library.asm keep=o/library
o/init: o/init.root o/blank.root o/beat.root o/request.root o/ipc.root o/library.root
link +w -x o/init o/beat o/request o/blank o/ipc o/library keep=o/init
# Now work with the CDev...
o/cdev.a: cdev.asm cdev.mac debug.equ
compile +w cdev.asm keep=o/cdev
o/setup.a: setup.asm setup.mac debug.equ
compile +w setup.asm keep=o/setup
o/misc.root: misc.asm misc.mac debug.equ
compile +w misc.asm keep=o/misc
o/list.a: list.asm list.mac debug.equ
compile +w list.asm keep=o/list
o/cdev: o/cdev.root o/setup.root o/misc.root o/list.root
link +w -x o/cdev o/setup o/misc o/list keep=o/cdev
# Now handle the rezfork. (8808 = locked+nospec+converter)
# type 8017 = rCodeResource; type 8018 = rcdevcode
# rdelete -k twilight.ii $8018(1)
twilight.ii: tii.rez
compile tii.rez keep=twilight.ii rez=(-t $C7)
duplicate twilight.ii /jim1/system/cdevs/twilight.ii
twilight.ii: o/init o/cdev
compile newboth.rez keep=twilight.ii rez=(-a -t $C7)
duplicate twilight.ii /jim1/system/cdevs/twilight.ii
# /jim1/system/cdevs/twilight.ii: init
# compile newinit.rez keep=twilight.ii rez=(-a)
# duplicate twilight.ii /jim1/system/cdevs/twilight.ii
# /jim1/system/cdevs/twilight.ii: twilight.ii
# duplicate twilight.ii /jim1/system/cdevs/twilight.ii

View File

@ -1,17 +1,17 @@
setcom 80
mcopy setup.mac
copy tii.equ ; get all the equates
copy tii.equ ; get all the equates
copy v1.2.equ
copy equates
copy cdev.equ
copy debug.equ
copy 13:ainclude:e16.memory
copy 13:ainclude:e16.types
copy 13:ainclude:e16.window
copy 13:ainclude:e16.control
copy 13:ainclude:e16.resources
copy 13:ainclude:e16.gsos
copy 13:ainclude:e16.locator
copy 13:ainclude:e16.memory
copy 13:ainclude:e16.types
copy 13:ainclude:e16.window
copy 13:ainclude:e16.control
copy 13:ainclude:e16.resources
copy 13:ainclude:e16.gsos
copy 13:ainclude:e16.locator
copy 13:ainclude:e16.quickdraw
keep setup
*-----------------------------------------------------------------------------*