'=========================================================================== ' Subject: DISK BASE TABLE EDITOR Date: 11-14-97 (16:44) ' Author: Andrew S. Gibson Code: QB, QBasic, PDS ' Origin: zapf_dingbat@juno.com Packet: DISK.ABC '=========================================================================== ' Disk Base Table editor is Qbasic, QuickBASIC compatible. ' All you need to do is just to load and run this, and read *everything* !!! ' Press for help, I wrote all of this. You can Email me if you have any ' questions/comments at Zapf_DingBat@JUNO.COM DEFINT A-Z DECLARE SUB Center (Row!, TEXT$, Bold!) DECLARE SUB DBT (MSDT!, DVFS!, MSUT!) DECLARE SUB DBTCurrentSettings () DECLARE SUB Delay (Period!) DECLARE SUB DFS () DECLARE SUB HELP () DECLARE SUB INTFACE () DECLARE SUB MST () DECLARE SUB INTROandCOMPINFO () DECLARE SUB SAVE () DECLARE SUB WaitForKey () DECLARE SUB WMS () DIM SHARED SEGMENT, OFFSET, MSDT!, DVFS!, MSUT!, DBTDefaults(3), TEXT.ADAPTER.MODE!, AlreadySet DIM SHARED Sucess, Title$(0 TO 195) CONST FALSE = 0, TRUE = NOT FALSE RESTORE Greetings FOR Scroller = 0 TO 195: READ Title$(Scroller): NEXT Scroller INTROandCOMPINFO INTFACE END Greetings: DATA " ÛßßßßßßßßßÛ ÛßßßßßßÛ ÛßßßßßßßßßÛ ÛßßßßÛ ÛßßßÛ" DATA " ßÛ ÛßßßÛ ßÛ ßßÛ Ûßß Û ÛßßßßÛ Û ßÛ Ûß Ûß Ûßß" DATA " Û Û Û Û Û Û Û Û ßßß Û Û Ûß Ûß" DATA " Û Û Û Û Û Û Û ßßßßßßßÛ Û ßßß ßßÛ" DATA " Û Û Û Û Û Û ßßßßßßßÛ Û Û ÛßßßÛ Û" DATA " Û Û Û Û Û Û ÛßÛ Û Û Û Û Û Û" DATA " Ûß ßßßßß Ûß Ûßß ßßÛ Û ßßßßßß Û Ûß ßÛ Ûß ßÛ" DATA " ßßßßßßßßßßß ßßßßßßßß ßßßßßßßßßßß ßßßßßß ßßßßßß" DATA "Blank" DATA " ÛßßßßßßßßßÛ ÛßßßßßßßßÛ ÛßßßßßßßßßÛ ÛßßßßßßßßßÛ" DATA " ßÛ ÛßßßÛ ßÛ Û ÛßßÛ Û Û ÛßßßßÛ Û ßÛ ÛßßßÛ Û" DATA " Û Û Û Û Û Û Û Û Û Û ßßß Û Û ßßß" DATA " Û ßßßßß Û Û ßßßß Û Û ßßßßßßßÛ Û ßßßÛ" DATA " Û ÛßßßÛ Û Û ÛßßÛ Û ßßßßßßßÛ Û Û Ûßßß" DATA " Û Û Û Û Û Û Û Û ÛßÛ Û Û Û Û ÛßÛ" DATA " Ûß ßßßßß Ûß Ûß ßÛÛß ßÛ Û ßßßßßß Û Ûß ßßßßß Û" DATA " ßßßßßßßßßßß ßßßßßßßßßßßß ßßßßßßßßßßß ßßßßßßßßßßß" DATA "Blank" DATA " ÛßßßßßßßßßßÛ ÛßßßßßßßßÛ ÛßßßßßßßßßÛ ÛßßßßÛ ÛßßßßßßßßßÛ" DATA " Û ÛßÛ ÛßÛ Û Û ÛßßÛ Û ßÛ ÛßßßÛ ßÛ ßÛ Ûß ßÛ ÛßßßÛ Û" DATA " ßßß Û Û ßßß Û Û Û Û Û Û Û Û Û Û Û Û ßßß" DATA " Û Û Û ßßßß Û Û ßßßßß Û Û Û Û ßßßÛ" DATA " Û Û Û ÛßßÛ Û Û ÛßßßÛ Û Û Û Û Ûßßß" DATA " Û Û Û Û Û Û Û Û Û Û Û Û ÛßÛ Û Û ÛßÛ" DATA " Ûß ßÛ Ûß ßÛÛß ßÛ Ûß ßßßßß Ûß Ûß ßßßßß Û Ûß ßßßßß Û" DATA " ßßßßßß ßßßßßßßßßßßß ßßßßßßßßßßß ßßßßßßßßßßß ßßßßßßßßßßß" DATA "Blank" DATA " ÛßßßßßßßßßÛ ÛßßßßßßßßßÛ ÛßßßßßßÛ ÛßßßßßßßßßßÛ ÛßßßßßßßßßÛ ÛßßßßßßßßßßÛ" DATA " ßÛ ÛßßßÛ Û ßÛ ÛßßßÛ ßÛ ßßÛ Ûßß Û ÛßÛ ÛßÛ Û Û ÛßßßÛ Û ßÛ ÛßßßÛ Û" DATA " Û Û ßßß Û Û Û Û Û Û ßßß Û Û ßßß Û Û Û Û Û Û Û Û" DATA " Û ßßßÛ Û Û Û Û Û Û Û Û Û Û Û Û Û ßßßßß Û" DATA " Û Ûßßß Û Û Û Û Û Û Û Û Û Û Û Û Û ÛÛ Ûßßß" DATA " Û Û ÛßÛ Û Û Û Û Û Û Û Û Û Û Û Û Û ÛßÛ ßÛ" DATA " Ûß ßßßßß Û Ûß ßßßßß Ûß Ûßß ßßÛ Ûß ßÛ Û ßßßßß Û Ûß ßÛßÛ ßßÛ" DATA " ßßßßßßßßßßß ßßßßßßßßßßß ßßßßßßßß ßßßßßß ßßßßßßßßßßß ßßßßßß ßßßßß" DATA "Blank" DATA " ÜÛÛÜ ÜÛÛÜ ÜÛÛÜ" DATA " Ò Â ÜÛÛÛÛÛ ÜÛÛÛÛÛ ÜÛÛÛÛÛ" DATA " º ³ ßßÛÛÛÛ ßßÛÛÛÛ ßßÛÛÛÛ" DATA " Ó· ÚÙ ÒÄÄ¿ ÒÄÄ¿ ÖÄ¿ ÄÒÄ ÖÄÄ¿ ÖÄÄ¿ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ" DATA " º ³ ÇÄ ÇÄÂÙ ÓÄ¿ º º ³ º ³ ÜÛÛÛÛÜ ÜÛÛÜ ÜÛÛÛÛÜ ÜÛÛÛÛÜ" DATA " ÓÄÄÄÙ ÐÄÄÙ Ð Á ÓÄÄÙ ÄÐÄ ÓÄÄÙ Ð Á ßÛÛÛÛÛÛß ßÛÛß ßÛÛÛÛÛÛß ßÛÛÛÛÛÛß" DATA "Blank" DATA "Blank" DATA " ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ" DATA " ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ" DATA " ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ" DATA " ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ" DATA " ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ" DATA " ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ" DATA "Blank" DATA "Blank" DATA " ßÜ ßÜ ßÛßßÜ Û ÛßßÜßßÛ ÛßßÜßßÛ ÜßÛßßßß ßÛÜ ßÜ ßÛßßÜ ÜßÜ ßÜ" DATA " Û Û Û Û Û Û Û Û Û Û Û Û Û ßÜ Üß Û" DATA " Û Û Û ßÛßÛß Û Û Û ÜÛÜÜ Û Û Û ßÛßßßÛ Û" DATA " Û Û Û Û Û ßÜ Û Û Û ß Û Û Û Û Û Û Û Û" DATA " ÜÛß Ûß ß ß ßÜ ÜÛÜ ÜÛÜ ÜßÜÜÜÜ Üß ßÜß ß ßßß ß" DATA "Blank" DATA "Blank" DATA " ÜÛÛÛÛÛÛÛÜ ÜÛÛÜ ÜÛÛÜ ÜÛÛÛÛÛÛÛÛÜ ÜÛÛÛÛÛÛÛÛÜ ÜÛÛÛÛÛÛÛÛÛÜ ÜÛÛÜ ÜÛÛÜ" DATA " ÛÛÛÛßßßÛÛÛÛ ÛÛÛÛÛÜ ÛÛÛÛ ÛÛÛÛ ßÛÛÛ ÛÛÛß ßÛÛÛ ÛÛÛÛ ßßß ÛÛÛÛ ÛÛÛÛ" DATA " ÛÛÛÛÜÜÜÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛ ÛÛÛÜ ÜÛÛÛ ÛÛÛÛÜÜÜÜÜ ÛÛÛÛ ÛÛÛÛ" DATA " ÛÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛßÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛ ÛÛÛÛÛÛÛÛÛß ÛÛÛÛßßßßß ÛÛÛÛÜÛÜÛÛÛÛ" DATA " ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ßÛÛÛÛ ÛÛÛÛÜÜÜÛÛÛß ÛÛÛÛ ßÛÛÛÛÜ ÛÛÛÛ ÜÜÜ ÛÛÛÛÛÛÛÛÛÛÛ" DATA " ßÛÛß ßÛÛß ßÛÛß ßÛÛß ßÛÛÛÛÛÛÛß ßÛÛß ßÛÛß ßÛÛÛÛÛÛÛÛÛß ßÛÛß ßÛÛß" DATA "Blank" DATA " ÜÛÛÛÛÛÛÛÛÜ ÜÛÜ ÜÛÛÛÛÛÛÛÛÜ ÜÛÛÛÛÛÛÛÜ ÜÛÛÛÛÛÛÛÜ ÜÛÛÜ ÜÛÛÜ" DATA " ÛÛÛÛß ßßß ÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛß ßÛÛÛÛ ÛÛÛÛßßßÛÛÛÛ ÛÛÛÛÛÜ ÛÛÛÛ" DATA " ÛÛÛÛ ÜÜÜÜ ÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛß ßÛÛÛÛÛÜÜ ÛÛÛ ÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛ" DATA " ÛÛÛÛ ßßÛÛÛ ÛÛÛÛÛ ÛÛÛÛßßßÛÛÛÜ ßßÛÛÛÛÛÜ ÛÛÛ ÛÛÛ ÛÛÛÛßÛÛÛÛÛÛ" DATA " ÛÛÛÛÛÜÜÜÛÛÛ ÛÛÛÛÛ ÛÛÛÛÜÜÜÛÛÛÛ ÛÛÛÛÜ ÜÛÛÛÛ ÛÛÛÛÜÜÜÛÛÛÛ ÛÛÛÛ ßÛÛÛÛ" DATA " ßÛÛÛÛÛÛÛÛß ßÛß ßÛÛÛÛÛÛÛÛß ßÛÛÛÛÛÛÛß ßÛÛÛÛÛÛÛß ßÛÛß ßÛÛß" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA " ÛßßßßßßßßßßßßÛ ÛßßßßßßßßÛ ÛßßßßÛ ÛßßßßÛ ÛßßßßÛÛßßßßÛ" DATA " Û ÛßÛ ÛßÛ Û Û ÛßßÛ Û Û ßÛ ßÛ Ûß ßÛ ÛßßÛ Ûß" DATA " Û Û Û Û Û Û Û Û Û Û Û ÛÛ ßÛ Û Û Û Û Û Û" DATA " Û Û Û Û Û Û Û ßßßß Û Û ÛßÛ ßÛ Û Û Û ßßßß Û" DATA " Û Û Û Û Û Û Û ÛßßÛ Û Û Û ßÛ ßÛÛ Û ßßßÛ Ûßßß" DATA " Û Û ßßßß Û Û Û Û Û Û Û Û ßÛ ßÛ Û Û Û" DATA " Ûß ßÛ Ûß ßÛ Ûß ßÛÛß ßÛ Ûß ßÛ ßÛ Û Ûß ßÛ" DATA " ßßßßßß ßßßßßß ßßßßßßßßßßßß ßßßßßß ßßßßßß ßßßßßß" DATA "Blank" DATA " ÖÄÄÄÄÄÄ" DATA "ÿÿÿÿÿÿÿº" DATA " º ÚÄ¿ ÒÄÄ¿ ÒÄÄ¿ ÒÄÄ¿ ÖÄÒÄ¿ ÄÒÄ ÖÄÄ¿ ÖÄÄ¿ ÖÄ¿ ÖÄÄ¿ ÖÄÄ¿ ÒÄÄ¿" DATA " º ³ ÇÄÂÙ ÇÄ ÇÄ º º º ³ º Ä¿ ÓÄ¿ ÇÄÄ´ º ³ º ³" DATA " ÓÄÄÄÄÄÙ Ð Á ÐÄÄÙ ÐÄÄÙ Ð ÄÐÄ Ð Á ÓÄÄÙ ÓÄÄÙ Ð Á Ð Á ÐÄÄÙ" DATA "Blank" DATA " ÜÜÜÜÜÜÜ ÜÜÜ ÜÜÜ ÜÜÜÜÜÜÜ ÜÜÜ ÜÜÜ ÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜ" DATA " ÛÜÜ ÜÜÛ Û ÛÜÛ Û Û ÜÜÜ Û Û ßÛÛ Û Û Ûß ÜÛ Û ÜÜÜÜÛ" DATA " Û Û Û ÜÜÜ Û Û ÜÜÜ Û Û ÛÜß Û Û Ü ßÛÜ ÛÜÜÜÜ Û" DATA " ÛÜÛ ÛÜÛ ÛÜÛ ÛÜÛ ÛÜÛ ÛÜÛßÛÜÛ ÛÜÛÛÜÜÛ ÛÜÜÜÜÜÛ" DATA "Blank" DATA " ÚÂÄÄ ÚÂÄÄ¿ ÚÂÄÄ¿ Ú¿ ¿ ÚÄÂÂÄ¿ ÚÄÂÂÄ¿ ÚÂÄÄ¿ ::" DATA " ô ¿ ô ³ ô ³ ô ³ ô ô ô ³" DATA " ÀÁÄÁÙ ÀÁÄÄÙ ÀÁÄÄÙ ÀÁÄÄÙ ÀÙ ÀÙ ÀÁÄÄÙ ::" DATA "Blank" DATA "ÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜß" DATA "Blank" DATA " Steven Thomason, Sysop of Wonk's World and Staff" DATA " (817)-439-1814" DATA "Blank" DATA " Papa Bear, Sysop of The Bear Cave" DATA " (817)-861-2832" DATA "Blank" DATA "Other Groups & people at random:" DATA " Depeche Mode, Erasure, Duran Duran, R. E. M., Future Crew, Microsoft Corp.," DATA "fellow & female coders, Rush Limbaugh, International Business Machines, All " DATA "Acomplished Musicians, Creatives Labs Inc., All Demo Groups, Radio Shack," DATA "Apple Computer Corp., Tandy Corp. (why did they bail on the Coco 3 ?)," DATA "Nintendo Corp., Talented Graphic artists, Ziff Davis Publishing, Peter Norton," DATA "Trident Micro Systems, Digital Corporation, Labtec Enterprises Inc., J. Haynie" DATA "Sanyo Electric Company Limited., Sony Corparation, Kitty, Seeker, Christopher" DATA "Weis, China, William Yu and so many others !!!!!!" DATA "Blank" DATA "Thank you so very much !" DATA "Blank" DATA " Well I'm tired, so in a few lines I'll start this all over again." DATA "Blank" DATA " Sorry the scroller is jerky, one day i'll get it right :}" DATA " and it is also the embodiment of K. I. S. S. Keep It Simple" DATA " Stupid." DATA "Blank" DATA " ßßßßßß ßß ßß ßßßßßßß ßßßßßß ßß ßß ßßßßßßß ßß ßß ßß ßß ßß ßß" DATA " ßß ßß ßß ßß ßß ßß ßß ßß ßß ßß ßß ßß ßß ßß ßß ßß" DATA " ßßßßßß ßßßß ßßßßß ßßßßßß ßßßß ßßßßß ßß ßß ßß ßß ßß ßß" DATA " ßß ßß ßß ßß ÜÜ ßß ßß ßß ßß ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ" DATA " ßßßßßß ßß ßßßßßßß ßÛ ßßßßßß ßß ßßßßßßß ßß ßß ßß ßß ßß ßß" DATA "Blank" DATA "ßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜ" DATA "Blank" DATA " ÞßßßßßÝ ÞßßßßßßÝ ÞßßßßßÝ ÞßßßßßÝ ÞßßßßßÝ ÞßÝ ÞßßßßßÝ ÞßßßßßÝ ÞßÝ" DATA " Þ ÜÜÜ Ý Þ ÜÜÜÜ Ý Þ ÜÜÜÜÝ Þ ÜÜÜÜÝ Þ ÜÜÜÜÝ ÞßÜÝ Þ ÜÜÜÜÝ Þ ÜÜÜ Ý ÞÜßÝ" DATA " Þ ßßß Ý Þ ßßßß Ý Þ ßßÝ Þ ßßßßÝ Þ ßßßßÝ ÞßÜÝ Þ ßßÝ Þ ßßß Ý ÞÜßÝ" DATA " Þ ÜÜÜÜÝ Þ ÜÜÜ ÜÝ Þ ÜÜÝ ÞÜÜÜÜ Ý ÞÜÜÜÜ Ý ÞÜßÝ Þ ÜÜÝ Þ ÜÜÜ Ý ÞßÜÝ" DATA " Þ Ý Þ Ý Þ ßÝ Þ ßßßßÝ Þßßßß Ý Þßßßß Ý ÞÜßÝ Þ Ý Þ ßßß Ý ÞßÜÝ" DATA " ÞÜÝ ÞÜÝ ÞÜÜÝ ÞÜÜÜÜÜÝ ÞÜÜÜÜÜÝ ÞÜÜÜÜÜÝ ÞÜÝ ÞÜÝ ÞÜÜÜÜÜÝ ÞÜÝ" DATA "Blank" DATA " ÞßßßßßÝ ÞßßßßßßÝ ÞßßßßßßÝ ÞßÝ ÞßÝ ÞßßßßßÝ ÞßÝ ÞßßßßßÝ" DATA " Þ ÜÜÜÜÝ Þ ÜÜÜÜ Ý Þ ÜÜÜÜ Ý Þ Ý Þ Ý Þ ÜÜÜÜÝ Þ Ý Þ ÜÜÜ Ý" DATA " Þ ßßÝ Þ Ý Þ Ý Þ ßßßß Ý Þ ßßß Ý Þ ßßÝ Þ Ý Þ ßßß Ý" DATA " Þ ÜÜÝ Þ Ý Þ Ý Þ ÜÜÜ ÜÝ Þ ÜÜÜ Ý Þ ÜÜÝ Þ Ý Þ ÜÜÜÜÝ" DATA " Þ Ý Þ ßßßß Ý Þ Ý Þ ßÝ Þ Ý Þ Ý Þ ßßßßÝ Þ ßßßÝ Þ Ý" DATA " ÞÜÝ ÞÜÜÜÜÜÜÝ ÞÜÝ ÞÜÜÝ ÞÜÝ ÞÜÝ ÞÜÜÜÜÜÝ ÞÜÜÜÜÝ ÞÜÝ" DATA "Blank" DATA " ÛÛÛÛÛÛÜ ÛÛÛÛÛÛÜ ÜÛÛÛÛÛÛ ÜÛÛÛÛÛÜ ÜÛÛÛÛÛÜ ÜÛÛÛÛÛÜ ÜÛÛÛÛÛÜ ÛÛ ÛÛ" DATA " ÛÛÜÜÜÛÛ ÛÛ ÛÛ ÛÛÜÜÜÜ ÛÛÜÜÜÜ ÛÛÜÜÜÜ ÛÛÜÜÜÛÛ ÛÛ ÛÛ ÛÛÜ ÜÛÛ" DATA " ÛÛßßßß ÛÛÛÛÛÛ ÛÛßßßß ßßßßÛÛ ßßßßÛÛ ÛÛßßßÛÛ ÛÛ ÛÛ ßÛÛÛß" DATA " ÛÛ ÛÛ ßÛÛ ßÛÛÛÛÛÛ ßÛÛÛÛÛß ßÛÛÛÛÛß ÛÛ ÛÛ ÛÛ ÛÛ ÞÛÝ" DATA "Blank" DATA " ÛÛ ÜÛÛ ÜÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛÛ ÜÛÛÛÛÛÜ" DATA " ÛÛÜÛÛß ÛÛÜÜÜÜ ÛÛÜ ÜÛÛ ÞÛÝ ÛÛ ÛÛ" DATA " ÛÛßÛÛÜ ÛÛßßßß ßÛÛÛß ÞÛÝ ÛÛ ÛÛ" DATA " ÛÛ ßÛÛ ßÛÛÛÛÛÛ ÞÛÝ ÞÛÝ ßÛÛÛÛÛß" DATA "Blank" DATA " ÜÛÛÛÛÛÜ ÜÛÛÛÛÛÜ ÜÛÛÛÛÛÜ ÛÛÛÛÛÛÛ ÞÛÛÝ ÜÛÛÛÛÛÜ ÛÛ ÛÛ ÜÛÛÛÛÛÛ" DATA " ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÞÛÝ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÜÜÜÜ" DATA " ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÞÛÝ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛßßßß" DATA " ßÛÛÛÛÛß ßÛÛÛÛÛß ÛÛ ÛÛ ÞÛÝ ÞÛÛÝ ÛÛ ÛÛ ßÛÛÛÛÛß ßÛÛÛÛÛÛ ÛÛ" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" DATA "Blank" Handle: DEF SEG : CLOSE SELECT CASE ERR CASE 5 Center 18, "Error Number :" + STR$(ERR) + " Cannot perform internal function request", 1: SLEEP 3: END CASE 7 Center 18, "Error Number :" + STR$(ERR) + " Malloc Error: Out of memory", 1: SLEEP 3: END CASE 14 Center 18, "Error Number :" + STR$(ERR) + " Stralloc Error: Out of string space", 1: SLEEP 3: END CASE 51 Center 18, "Error Number :" + STR$(ERR) + " Program Error: INTERNAL ERROR", 1: SLEEP 3: END CASE 52 Sucess = FALSE Center 18, "Error Number :" + STR$(ERR) + " Disk Error: Bad File Name or number", 1 CASE 57 Sucess = FALSE Center 18, "Error Number :" + STR$(ERR) + " System Interaction Error: Device I/O error", 1 CASE 58 Sucess = FALSE Center 18, "Error Number :" + STR$(ERR) + " Disk Error: File already exists", 1 CASE 61 Sucess = FALSE Center 18, "Error Number :" + STR$(ERR) + " Disk Error: Disk FULL", 1 CASE 64 Sucess = FALSE Center 18, "Error Number :" + STR$(ERR) + " Disk Error: Bad file name", 1 CASE 67 Sucess = FALSE Center 18, "Error Number :" + STR$(ERR) + " Program Error: Too many open files", 1 CASE 68 Sucess = FALSE Center 18, "Error Number :" + STR$(ERR) + " Program Error: Device UNAVAILABLE", 1 CASE 71 Sucess = FALSE Center 18, "Error Number :" + STR$(ERR) + " Disk Error: Disk not Ready", 1 CASE 72 Sucess = FALSE Center 18, "Error Number :" + STR$(ERR) + " Disk Error: Disk-Media error", 1 CASE 75 Sucess = FALSE Center 18, "Error Number :" + STR$(ERR) + " Disk Error: Path/File access error", 1 CASE 53 CLOSE Sucess = FALSE Center 18, "Error Number :" + STR$(ERR) + " Disk Error: File not found", 1 CASE ELSE Sucess = FALSE Center 18, "Error Number :" + STR$(ERR) + " One or more errors have occurred.", 1 END SELECT Center 19, "Press Ctrl, Alt or Shift to continue.", 1: SLEEP FOR xx = 16 TO 21: LOCATE xx, 1: PRINT STRING$(80, 32): NEXT xx RESUME NEXT SUB Center (Row!, TEXT$, Bold!) IF Bold! = 0 THEN COLOR 7, 0 ELSE COLOR 15, 0 LOCATE Row!, 41 - LEN(TEXT$) / 2, 0 PRINT TEXT$; COLOR 7, 0 END SUB SUB DBT (MSDT!, DVFS!, MSUT!) ' Disk Base Table set DEF SEG = SEGMENT POKE OFFSET + 2, MSDT! ' Wait time until Motor turned off POKE OFFSET + 8, DVFS! ' Data in Formatted Sector POKE OFFSET + 10, MSUT! ' Motor spin-up Time DEF SEG END SUB SUB DBTCurrentSettings DEF SEG = 0 OFFSET = PEEK(120 + 0) + 256 * PEEK(120 + 1) SEGMENT = PEEK(120 + 2) + 256 * PEEK(120 + 3) IF SEGMENT <= &HF000 THEN PRINT "The ROM disk base table is in use. Cannot continue.": SLEEP 2: END DEF SEG = SEGMENT DBTDefaults(1) = PEEK(OFFSET + 2) ' Wait time until Motor turned off DBTDefaults(2) = PEEK(OFFSET + 8) ' Data in Formatted Sector DBTDefaults(3) = PEEK(OFFSET + 10) ' Motor spin-up Time DEF SEG MSDT! = DBTDefaults(1): DVFS! = DBTDefaults(2): MSUT! = DBTDefaults(3) END SUB SUB Delay (Period!) Begin! = TIMER DO UNTIL (TIMER - Begin! > Period!) OR (TIMER - Begin! < 0) LOOP END SUB SUB DFS ' Data in Formatted Sector LOCATE 16, 1: PRINT "Ú"; : Center 16, STRING$(78, 196), 0: LOCATE 16, 80: PRINT "¿"; LOCATE 17, 1: PRINT "³"; : Center 17, STRING$(78, 32), 0: LOCATE 17, 80: PRINT "³"; LOCATE 18, 1: PRINT "³"; : Center 18, STRING$(78, 32), 0: LOCATE 18, 80: PRINT "³"; LOCATE 19, 1: PRINT "³"; : Center 19, STRING$(78, 32), 0: LOCATE 19, 80: PRINT "³"; LOCATE 20, 1: PRINT "³"; : Center 20, STRING$(78, 32), 0: LOCATE 20, 80: PRINT "³"; LOCATE 21, 1: PRINT "À"; : Center 21, STRING$(78, 196), 0: LOCATE 21, 80: PRINT "Ù"; Center 17, "Use the left or right arrow keys to change the data in the formatted sectors;", 1 Center 18, "The data is an ASCII byte from 0 to 255. Press F1 to see the ASCII byte.", 1 Center 19, "Press Enter to set, Esc to exit.", 0 LOCATE 20, 4: PRINT USING "Data in formatted sectors ----------------------> ###"; DVFS!: LOCATE 20, 65: PRINT "Hex: "; HEX$(DVFS!); IF AlreadySet = FALSE THEN DataInFormatedSector = DBTDefaults(2) ELSE DataInFormatedSector = DVFS! DO C$ = INKEY$ IF C$ = CHR$(0) + CHR$(59) THEN GOSUB ShowASCIIByte IF C$ = CHR$(0) + "M" THEN GOSUB ASCII.UpOne IF C$ = CHR$(0) + "K" THEN GOSUB ASCII.DownOne IF C$ = CHR$(27) THEN FOR xx = 16 TO 21: LOCATE xx, 1: PRINT STRING$(80, 32): NEXT xx Center 18, "Data in formatted sector option not set OK.", 1 SLEEP 2: LOCATE 18, 1: PRINT STRING$(80, 32); EXIT SUB END IF LOOP WHILE C$ <> CHR$(13) FOR xx = 16 TO 21: LOCATE xx, 1: PRINT STRING$(80, 32): NEXT xx LOCATE 18, 41 - LEN("Data to be placed in formatted sector(s) is ASCII number ") / 2: PRINT USING "Data to be placed in formatted sector(s) is ASCII number ###"; DataInFormatedSector DVFS! = DataInFormatedSector SLEEP 2: LOCATE 18, 1: PRINT STRING$(80, 32); LOCATE 11, 12: PRINT USING "Motor is now set to reach full speed in ##.## seconds"; ABS(100 / 18 * MSUT! / 100) LOCATE 12, 12: PRINT USING "Data to be placed in formatted sector(s) is ASCII number ###"; DVFS! LOCATE 13, 12: PRINT USING "Motor is now set to turn off after ##.## seconds"; ABS(100 / 18 * MSDT! / 100) AlreadySet = TRUE EXIT SUB ShowASCIIByte: Center 17, "Ú" + STRING$(76, 196) + "¿", 0 Center 18, "³" + STRING$(76, 32) + "³", 0 Center 19, "³" + STRING$(76, 32) + "³", 0 Center 20, "À" + STRING$(76, 196) + "Ù", 0 Center 18, "This is the ASCII data byte (character): ", 0 DEF SEG = TEXT.ADAPTER.MODE!: POKE 2840, DataInFormatedSector: DEF SEG Center 19, "Press any key to continue ...", 1 WaitForKey Center 20, "À" + STRING$(76, 196) + "Ù", 0: Center 20, STRING$(76, 196), 0 Center 19, "³" + STRING$(76, 32) + "³", 0: Center 19, STRING$(76, 32), 0 Center 18, "³" + STRING$(76, 32) + "³", 0: Center 18, STRING$(76, 32), 0 Center 17, "Ú" + STRING$(76, 196) + "¿", 0: Center 17, STRING$(76, 196), 0 LOCATE 16, 1: PRINT "Ú"; : Center 16, STRING$(78, 196), 0: LOCATE 16, 80: PRINT "¿"; LOCATE 17, 1: PRINT "³"; : Center 17, STRING$(78, 32), 0: LOCATE 17, 80: PRINT "³"; LOCATE 18, 1: PRINT "³"; : Center 18, STRING$(78, 32), 0: LOCATE 18, 80: PRINT "³"; LOCATE 19, 1: PRINT "³"; : Center 19, STRING$(78, 32), 0: LOCATE 19, 80: PRINT "³"; LOCATE 20, 1: PRINT "³"; : Center 20, STRING$(78, 32), 0: LOCATE 20, 80: PRINT "³"; LOCATE 21, 1: PRINT "À"; : Center 21, STRING$(78, 196), 0: LOCATE 21, 80: PRINT "Ù"; Center 17, "Use the left or right arrow keys to change the data in the formatted sectors;", 1 Center 18, "The data is an ASCII byte from 0 to 255. Press F1 to see the ASCII byte.", 1 Center 19, "Press Enter to set, Esc to exit.", 0 LOCATE 20, 4: PRINT USING "Data in formatted sectors ----------------------> ###"; DataInFormatedSector: LOCATE 20, 65: PRINT "Hex: "; HEX$(DataInFormatedSector); RETURN ASCII.UpOne: DataInFormatedSector = DataInFormatedSector + 1 IF DataInFormatedSector >= 256 THEN DataInFormatedSector = 0 LOCATE 20, 4: PRINT "Data in formatted sectors ----------------------> ": LOCATE 20, 65: PRINT STRING$(10, 32); LOCATE 20, 4: PRINT USING "Data in formatted sectors ----------------------> ###"; DataInFormatedSector: LOCATE 20, 65: PRINT "Hex: "; HEX$(DataInFormatedSector); RETURN ASCII.DownOne: DataInFormatedSector = DataInFormatedSector - 1 IF DataInFormatedSector <= -1 THEN DataInFormatedSector = 255 LOCATE 20, 4: PRINT "Data in formatted sectors ----------------------> ": LOCATE 20, 65: PRINT STRING$(10, 32); LOCATE 20, 4: PRINT USING "Data in formatted sectors ----------------------> ### "; DataInFormatedSector: LOCATE 20, 65: PRINT "Hex: "; HEX$(DataInFormatedSector); RETURN END SUB SUB HELP CLS Center 1, "Help for The Disk Base Table Editor", 1 Center 2, STRING$(80, 196), 0 PRINT PRINT "Pressing 1 or F1 will save the changes to ram and these changes will stay active" PRINT "until you change them or another program does (after you exit).": PRINT PRINT "Pressing 2 or F2 will allow you to change the length of time that the floppy" PRINT "drive's motor will `spin-up' to full speed. You can use this to save the floppy" PRINT "drive motor if it's is old. Using a value of 0.00 may cause immediate or" PRINT "intermitting activation of the motor, not really a great idea for archaic" PRINT "hardware.": PRINT PRINT "Pressing 3 or F3 will allow you to change the byte that format writes to" PRINT "freshly formatted clusters when tests their validity. Default should be 246.": PRINT PRINT "Pressing 4 or F4 will allow you to change the length of time that the floppy" PRINT "drive's motor will `spin-down' to turn off. You can use this to keep the floppy" PRINT "drive motor active if your doing something where you would want the motor to" PRINT "stay on. Using a value of 0.00 may cause the immediate cessation of the motor" PRINT "activity or the motor will stay on for a really long time, not really a great" PRINT "idea for archaic hardware.": PRINT PRINT "Pressing 5 or F5 will just quit the Disk Base Table Editor.": PRINT PRINT "Pressing F7 will restore the original disk base table settings." Center 25, "Press any key to continue", 1 WaitForKey CLS Center 1, "Help for The Disk Base Table Editor", 1 Center 2, STRING$(80, 196), 0 PRINT PRINT "Pressing F8 will show you this help .": PRINT PRINT "Pressing F9 will save the settings to disk for future reference in a file named" PRINT "DBT_SET.TXT DBT_SET.TXT will be written anywhere & will be overwritten if" PRINT "DBT_SET.TXT already exists.": PRINT PRINT "Pressing F10 will quit and ABANDON any changes you made!": PRINT Center 10, "Disclaimer", 1 Center 11, STRING$(80, 196), 0 PRINT "I the programmer make no claims or warranty to this program's fitness for a" PRINT "particular purpose, nor shall I be responsible for any damage that may arise" PRINT "from the use of DBTED.BAS Said program may not be compatible with your" PRINT "computer as claimed (while every effort was so made).": PRINT Center 17, "Rights & Costs", 1 Center 18, STRING$(80, 196), 0 PRINT "You may use this program for free but may not disassemble, edit, reverse" PRINT "engineer DBTED.BAS Doing so may cause it not to work. However, you may" PRINT "distribute DBTED.BAS in any archive format or with any other computer" PRINT "programs. This program is completely free, it costs you nothing at all" PRINT "except your evaluation time." Center 24, "I believe this will be the only documentation that you shall require.", 0 Center 25, "Press any key to continue", 1 WaitForKey CLS 'Menu restore Center 1, "Disk Base Table Editor", 1 Center 2, STRING$(80, 196), 0 Center 3, "Press the appropriate number for your selection or function key.", 0 Center 5, "1) Save current selection to RAM ONLY !!" + SPACE$(8), 0 Center 6, "2) Set motor spin-up time" + SPACE$(23), 0 Center 7, "3) Change the value stored in a formatted sector", 0 Center 8, "4) Set motor spin-down time" + SPACE$(21), 0 Center 9, "5) Exit Disk Base Table Editor." + SPACE$(17), 0 LOCATE 11, 12: PRINT USING "Motor is now set to reach full speed in ##.## seconds"; ABS(100 / 18 * MSUT! / 100) LOCATE 12, 12: PRINT USING "Data to be placed in formatted sector(s) is ASCII number ###"; DVFS! LOCATE 13, 12: PRINT USING "Motor is now set to turn off after ##.## seconds"; ABS(100 / 18 * MSDT! / 100) Center 25, "F7 = RESTORE DEFAULTS F8 = HELP F9 = SAVE SETTINGS TO DISK F10 = ABANDON", 0 END SUB SUB INTFACE ' Menu Interface CLS Center 1, "Disk Base Table Editor", 1 Center 2, STRING$(80, 196), 0 Center 3, "Press the appropriate number for your selection or function key.", 0 Center 5, "1) Save current selection to RAM ONLY !!" + SPACE$(8), 0 Center 6, "2) Set motor spin-up time" + SPACE$(23), 0 Center 7, "3) Change the value stored in a formatted sector", 0 Center 8, "4) Set motor spin-down time" + SPACE$(21), 0 Center 9, "5) Exit Disk Base Table Editor." + SPACE$(17), 0 LOCATE 11, 12: PRINT USING "Motor is now set to reach full speed in ##.## seconds"; ABS(100 / 18 * DBTDefaults(3) / 100) LOCATE 12, 12: PRINT USING "Data to be placed in formatted sector(s) is ASCII number ###"; DBTDefaults(2) LOCATE 13, 12: PRINT USING "Motor is now set to turn off after ##.## seconds"; ABS(100 / 18 * DBTDefaults(1) / 100) Center 25, "F7 = RESTORE DEFAULTS F8 = HELP F9 = SAVE SETTINGS TO DISK F10 = ABANDON", 0 DO X$ = INKEY$ IF X$ = "1" OR X$ = CHR$(0) + CHR$(58) THEN DBT MSDT!, DVFS!, MSUT! ' Disk Base Table set FOR xx = 16 TO 21: LOCATE xx, 1: PRINT STRING$(80, 32): NEXT xx Center 18, "Manually configured values are now active.", 1 SLEEP 2: LOCATE 18, 1: PRINT STRING$(80, 32); END IF IF X$ = "2" OR X$ = CHR$(0) + CHR$(60) THEN MST ' Motor spin-up Time IF X$ = "3" OR X$ = CHR$(0) + CHR$(61) THEN DFS ' Data in Formatted Sector IF X$ = "4" OR X$ = CHR$(0) + CHR$(62) THEN WMS ' Wait time until Motor turned off IF X$ = "5" OR X$ = CHR$(0) + CHR$(63) THEN SCREEN 0, 0, 0 ' Quit CLS FOR AA = 1 TO 15 LOCATE 1, 1, 0: COLOR 0, 7: PRINT "Your exiting the Disk Base Table Editor." Delay .15 LOCATE 1, 1, 0: COLOR 7, 0: PRINT "Your exiting the Disk Base Table Editor." Delay .15 NEXT AA: COLOR 7, 0: LOCATE 1, 1, 0: PRINT STRING$(80, 32); : LOCATE 1, 1, 1 EXIT DO END IF IF X$ = CHR$(0) + CHR$(65) THEN Center 16, "Ú" + STRING$(78, 196) + "¿", 0 ' Restore defaults Center 17, "³" + STRING$(78, 32) + "³", 0 Center 18, "À" + STRING$(78, 196) + "Ù", 0 Center 17, "The disk base table defaults have been restored to their former state!", 1 MSDT! = DBTDefaults(1): DVFS! = DBTDefaults(2): MSUT! = DBTDefaults(3) DBT MSDT!, DVFS!, MSUT! SLEEP 2: LOCATE 16, 1: PRINT STRING$(80, 32); : LOCATE 17, 1: PRINT STRING$(80, 32); : LOCATE 18, 1: PRINT STRING$(80, 32); LOCATE 11, 12: PRINT USING "Motor is now set to reach full speed in ##.## seconds"; ABS(100 / 18 * MSUT! / 100) LOCATE 12, 12: PRINT USING "Data to be placed in formatted sector(s) is ASCII number ###"; DVFS! LOCATE 13, 12: PRINT USING "Motor is now set to turn off after ##.## seconds"; ABS(100 / 18 * MSDT! / 100) END IF IF X$ = CHR$(0) + CHR$(66) THEN HELP ' Get user some help ! IF X$ = CHR$(0) + CHR$(67) THEN SAVE 'Save to DISK IF X$ = CHR$(0) + CHR$(68) THEN SCREEN 0, 0, 0 ' Quit and abandon changes CLS FOR AA = 1 TO 15 LOCATE 1, 1, 0: COLOR 0, 7: PRINT "Your exiting the Disk Base Table Editor. I'm abandoning changes OK !!!!" Delay .15 LOCATE 1, 1, 0: COLOR 7, 0: PRINT "Your exiting the Disk Base Table Editor. I'm abandoning changes OK !!!!" Delay .15 NEXT AA: COLOR 7, 0: LOCATE 1, 1, 0: PRINT STRING$(80, 32); : LOCATE 1, 1, 1 MSDT! = DBTDefaults(1): DVFS! = DBTDefaults(2): MSUT! = DBTDefaults(3) DBT MSDT!, DVFS!, MSUT! EXIT DO END IF LOOP END SUB SUB INTROandCOMPINFO DBTCurrentSettings VIEW PRINT 2 TO 25: CLS : LOCATE 25, 1, 0: Linenum = 0 DO Delay .24 IF Title$(Linenum) = "Blank" THEN PRINT ELSE LOCATE 25, 1: PRINT Title$(Linenum) END IF IF Linenum = 195 THEN Linenum = -1 Linenum = Linenum + 1 LOOP WHILE INKEY$ = "" FOR zxzz = 0 TO 21: PRINT : NEXT: VIEW PRINT 1 TO 25: FOR zxzz = 0 TO 21: PRINT : NEXT ' determine Color or Monochrome segment DEF SEG = 0: IF (PEEK(1040) AND 48) = 48 THEN TEXT.ADAPTER.MODE! = 45056! ELSE TEXT.ADAPTER.MODE! = 47104!: DEF SEG END SUB SUB MST ' Motor spin-up Time LOCATE 16, 1: PRINT "Ú"; : Center 16, STRING$(78, 196), 0: LOCATE 16, 80: PRINT "¿"; LOCATE 17, 1: PRINT "³"; : Center 17, STRING$(78, 32), 0: LOCATE 17, 80: PRINT "³"; LOCATE 18, 1: PRINT "³"; : Center 18, STRING$(78, 32), 0: LOCATE 18, 80: PRINT "³"; LOCATE 19, 1: PRINT "³"; : Center 19, STRING$(78, 32), 0: LOCATE 19, 80: PRINT "³"; LOCATE 20, 1: PRINT "³"; : Center 20, STRING$(78, 32), 0: LOCATE 20, 80: PRINT "³"; LOCATE 21, 1: PRINT "À"; : Center 21, STRING$(78, 196), 0: LOCATE 21, 80: PRINT "Ù"; Center 17, "Use the left or right arrow keys to change the spin-up time; the time", 1 Center 18, "in seconds is a calculated estimate. Press Enter to set, Esc to exit.", 1 Center 19, "0.00 seconds, fastest reaction time <--> 14.17 seconds, slow reaction time", 0 LOCATE 20, 4: PRINT USING "Time in seconds ----------------------> ##.##"; ABS(100 / 18 * MSUT! / 100) MotorSpinupTime = DBTDefaults(3) DO C$ = INKEY$ IF C$ = CHR$(0) + "M" THEN GOSUB More.TimeAdjust IF C$ = CHR$(0) + "K" THEN GOSUB Less.TimeAdjust IF C$ = CHR$(27) THEN FOR xx = 16 TO 21: LOCATE xx, 1: PRINT STRING$(80, 32): NEXT xx Center 18, "Motor spin-up time option not set OK.", 1 SLEEP 2: LOCATE 18, 1: PRINT STRING$(80, 32); EXIT SUB END IF LOOP WHILE C$ <> CHR$(13) FOR xx = 16 TO 21: LOCATE xx, 1: PRINT STRING$(80, 32): NEXT xx LOCATE 18, 41 - LEN("Motor is now set to reach full speed in seconds") / 2: PRINT USING "Motor is now set to reach full speed in ##.## seconds"; ABS(100 / 18 * MotorSpinupTime / 100) MSUT! = MotorSpinupTime SLEEP 2: LOCATE 18, 1: PRINT STRING$(80, 32); LOCATE 11, 12: PRINT USING "Motor is now set to reach full speed in ##.## seconds"; ABS(100 / 18 * MSUT! / 100) LOCATE 12, 12: PRINT USING "Data to be placed in formatted sector(s) is ASCII number ###"; DVFS! LOCATE 13, 12: PRINT USING "Motor is now set to turn off after ##.## seconds"; ABS(100 / 18 * MSDT! / 100) EXIT SUB More.TimeAdjust: MotorSpinupTime = MotorSpinupTime + 1 IF MotorSpinupTime >= 256 THEN MotorSpinupTime = 0 LOCATE 20, 4: PRINT "Time in seconds ----------------------> " LOCATE 20, 4: PRINT USING "Time in seconds ----------------------> ##.##"; ABS(100 / 18 * MotorSpinupTime / 100) RETURN Less.TimeAdjust: MotorSpinupTime = MotorSpinupTime - 1 IF MotorSpinupTime <= -1 THEN MotorSpinupTime = 255 LOCATE 20, 4: PRINT "Time in seconds ----------------------> " LOCATE 20, 4: PRINT USING "Time in seconds ----------------------> ##.##"; ABS(100 / 18 * MotorSpinupTime / 100) RETURN END SUB SUB SAVE Y$ = RTRIM$(LTRIM$(STR$(DVFS!))) Sucess = TRUE ' Assume Best case ON ERROR GOTO Handle OPEN "DBT_SET.TXT" FOR OUTPUT AS #1 PRINT #1, USING "Motor is now set to reach full speed in ##.## seconds."; ABS(100 / 18 * MSUT! / 100) PRINT #1, "Data to be placed in formatted sector(s) is ASCII number "; Y$ PRINT #1, USING "Motor is now set to turn off after ##.## seconds."; ABS(100 / 18 * MSDT! / 100) CLOSE #1 IF Sucess = TRUE THEN FOR xx = 16 TO 21: LOCATE xx, 1: PRINT STRING$(80, 32): NEXT xx Center 18, "DBT_SET.TXT saved sucessfully.", 1 SLEEP 2: LOCATE 18, 1: PRINT STRING$(80, 32); ELSEIF Sucess = FALSE THEN FOR xx = 16 TO 21: LOCATE xx, 1: PRINT STRING$(80, 32): NEXT xx Center 18, "DBT_SET.TXT *CANNOT* be saved sucessfully.", 1 SLEEP 2: LOCATE 18, 1: PRINT STRING$(80, 32); END IF END SUB SUB WaitForKey DO: ZXZ$ = INKEY$: LOOP WHILE ZXZ$ = "" END SUB SUB WMS ' Wait time until Motor turned off LOCATE 16, 1: PRINT "Ú"; : Center 16, STRING$(78, 196), 0: LOCATE 16, 80: PRINT "¿"; LOCATE 17, 1: PRINT "³"; : Center 17, STRING$(78, 32), 0: LOCATE 17, 80: PRINT "³"; LOCATE 18, 1: PRINT "³"; : Center 18, STRING$(78, 32), 0: LOCATE 18, 80: PRINT "³"; LOCATE 19, 1: PRINT "³"; : Center 19, STRING$(78, 32), 0: LOCATE 19, 80: PRINT "³"; LOCATE 20, 1: PRINT "³"; : Center 20, STRING$(78, 32), 0: LOCATE 20, 80: PRINT "³"; LOCATE 21, 1: PRINT "À"; : Center 21, STRING$(78, 196), 0: LOCATE 21, 80: PRINT "Ù"; Center 17, "Use the left or right arrow keys to change the spin-down time; the time", 1 Center 18, "in seconds is a calculated estimate. Press Enter to set, Esc to exit. ", 1 Center 19, "0.00 seconds, fastest reaction time <--> 14.17 seconds, slow reaction time", 0 LOCATE 20, 4: PRINT USING "Time in seconds ----------------------> ##.##"; ABS(100 / 18 * MSDT! / 100) MotorSpinDownTime = DBTDefaults(1) DO C$ = INKEY$ IF C$ = CHR$(0) + "M" THEN GOSUB More.TimeAdjust2 IF C$ = CHR$(0) + "K" THEN GOSUB Less.TimeAdjust2 IF C$ = CHR$(27) THEN FOR xx = 16 TO 21: LOCATE xx, 1: PRINT STRING$(80, 32): NEXT xx Center 18, "Motor spin-down time option not set OK.", 1 SLEEP 2: LOCATE 18, 1: PRINT STRING$(80, 32); EXIT SUB END IF LOOP WHILE C$ <> CHR$(13) FOR xx = 16 TO 21: LOCATE xx, 1: PRINT STRING$(80, 32): NEXT xx LOCATE 18, 41 - LEN("Motor is now set to turn off after seconds") / 2: PRINT USING "Motor is now set to turn off after ##.## seconds"; ABS(100 / 18 * MotorSpinDownTime / 100) MSDT! = MotorSpinDownTime SLEEP 2: LOCATE 18, 1: PRINT STRING$(80, 32); LOCATE 11, 12: PRINT USING "Motor is now set to reach full speed in ##.## seconds"; ABS(100 / 18 * MSUT! / 100) LOCATE 12, 12: PRINT USING "Data to be placed in formatted sector(s) is ASCII number ###"; DVFS! LOCATE 13, 12: PRINT USING "Motor is now set to turn off after ##.## seconds"; ABS(100 / 18 * MSDT! / 100) EXIT SUB More.TimeAdjust2: MotorSpinDownTime = MotorSpinDownTime + 1 IF MotorSpinDownTime >= 256 THEN MotorSpinDownTime = 0 LOCATE 20, 4: PRINT "Time in seconds ----------------------> " LOCATE 20, 4: PRINT USING "Time in seconds ----------------------> ##.##"; ABS(100 / 18 * MotorSpinDownTime / 100) RETURN Less.TimeAdjust2: MotorSpinDownTime = MotorSpinDownTime - 1 IF MotorSpinDownTime <= -1 THEN MotorSpinDownTime = 255 LOCATE 20, 4: PRINT "Time in seconds ----------------------> " LOCATE 20, 4: PRINT USING "Time in seconds ----------------------> ##.##"; ABS(100 / 18 * MotorSpinDownTime / 100) RETURN END SUB