--------------- FIDO MESSAGE AREA==> TOPIC: 214 POWER BASIC Ref: D4H00000 Date: 04/12/96 From: ERIC SCHONNING Time: 3:04:am \/To: DAVE NAVARRO (Read 3 times) Subj: Re: PowerBASIC for OS/2 DN> had no problems finding reference material on Windows internals. Howe DN> finding the same information on OS/2 is an exercise in futility. DN> In fact, if anyone has any recommendations on system level programming DN> for OS/2, I'd really appreciate it. You said in a previous message that IBM was involved in this somehow, are they no help with developing this product? You would think they would bend over backwards trying to get something like this done. Perhaps this is why OS/2 is not doing as well as it should be, if information is this hard to come by. eric --- QM v1.00 * Origin: Creekside Manor (805) 484-8016 CdCom Support BBS (1:206/2512.0) --------------- FIDO MESSAGE AREA==> TOPIC: 214 POWER BASIC Ref: D4H00001 Date: 04/11/96 From: THOMAS GOHEL Time: 12:00am \/To: SANDER SMEENK (Read 3 times) Subj: Re: Ansi Read Sander Smeenk meinte am 07.04.96 zum Thema "Ansi Read" Hallo Sander !! > Does someone have sourcecode to read (and display!) ANSI or AVATAR > screens??? > > But 100% pure code.. So ANSI.SYS isn't needed... 'LANSI_31.BAS' (28kByte) at '2:2410/301' or '2:2410/399' (10:00-23:30) or in any BasNet-Box in Germany. > sander@taf.idn.nl Tschau ---------------- / / h o m a s PBSOUND: We make the Sound in PowerBASIC ... :-))) --- CrossPoint v3.1 R * Origin: -= http://www.snafu.de/~pbsound/ =- (2:2410/301.12) --------------- FIDO MESSAGE AREA==> TOPIC: 214 POWER BASIC Ref: D4H00002 Date: 04/05/96 From: DANIEL STASINSKI Time: 10:29am \/To: JOE MILOSCH (Read 3 times) Subj: 80 X 50 Ansi -> It is something else which I'm overlooking. The 80X25 bsaved ansi is -> about 4K in size. The 80X50 bsaved ansi is about 8K. When I use your -> method, only the top 25 lines of the 50 line ansi is displayed. -> I'm using DEF SEG=&HB800 : BLOAD"ansi.bsv",0 -> So for some reason, I'm only giving enough video memory for half of the -> file. Well, you're getting all of the memory, there is no way around that, so something else must be happening. Very strange. -> I called your DSE BBS and was given the chance to get PBVISION/PRO at -> the nice price of 49.95 plus shipping. -> For some reason your automatic order taker didn't "pass it on to the sysop". -> I wrote to DSE via internet e-mail and received no reply. -> I was never charged for the software, so it's only an aggravation. I dunno, I found your name on the BBS but could not find any record of an order from you. I did find an entry in the error log, but I don't recall the exact date. Not sure why your email didn't get here. Did you try "dse@pacific.net". It's possible that it was accidentally deleted. Please try again and i'll even throw in something extra for your troubles. Daniel --- WILDMAIL!/WC v4.12 * Origin: PB/VISION PRO for PowerBASIC 707-459-4484 (1:125/123.0) --------------- FIDO MESSAGE AREA==> TOPIC: 214 POWER BASIC Ref: D4H00003 Date: 04/10/96 From: DANIEL STASINSKI Time: 09:14am \/To: SANDER SMEENK (Read 3 times) Subj: Interrupts? -> How do I get PowerBasic to set Register AL, AH and BL? -> The help only says something about AX,BX,CX etc... ! mov AH, 33 ! mov BL, 88 etc. Daniel at DSE --- --- WILDMAIL!/WC v4.12 * Origin: PB/VISION PRO for PowerBASIC 707-459-4484 (1:125/123.0) --------------- FIDO MESSAGE AREA==> TOPIC: 214 POWER BASIC Ref: D4J00000 Date: 04/13/96 From: JOE NEGRON Time: 02:10am \/To: JAMES GOLDBLOOM (Read 3 times) Subj: PowerBasic for OS/2 ** Quoting James Goldbloom to Joe Negron: JN> What I think you're missing here is that PB has a *big* job > competing with Visual Basic (I don't believe PB Windows' sales > are doing that well) - the OS/2 market for a BASIC compiler is > wide open. JG> Joe... it's been explained by Dave. I'm sure Dave is simply attempting to justify PB Inc.'s current policy - that doesn't mean their current policy is in their best interest (though I imagine that they think so). JG> Nobody is doubting there is a needed market. It's just a matter of > priorities and common sense approach to satisfying a larger market > first, the Windows crowd. Nobody is doubting that the Windows market is larger than the OS/2 market. I, however, *am* doubting that, for PB Inc., at least, that the Windows market is more *profitable* than the OS/2 market - being a small fish in an ocean compared to being a big fish in a small pond and all of that, you know. JG> I agree with their decision, I can wait. I don't. The longer they wait, the greater the risk that another company will beat them to the punch. I'm currently researching something called SoftBridge BASIC (at this point, I don't know a thing about it, other than it exists). --From Bay Ridge, Brooklyn, NY, Sat, 04-13-96-- --Internet: joe.negron@consultant.com-- --- Maximus/2 3.01 * Origin: The Programmer's Mark * Brooklyn, NY, USA: 718-921-9267 1:278/216) --------------- FIDO MESSAGE AREA==> TOPIC: 214 POWER BASIC Ref: D4N00000 Date: 04/14/96 From: ESTEVE VALENTI Time: 06:41pm \/To: ALL (Read 3 times) Subj: Ansi Read (1/3) SS>Does someone have sourcecode to read (and display!) ANSI or AVATAR scre SS>Not like: SS>OPEN "CON:" FOR OUTPUT AS #1 SS>But 100% pure code.. So ANSI.SYS isn't needed... The bload.ansi subroutine need the source of the three messages to run. And don't need ANSI.SYS file loaded in memory. This source is a part of my Screen Editor program E-SCREEN v3.01a. '-------------------------------------------------------------- '------------- PBVANSI.INC ------------------------------------ '-------------------------------------------------------------- ' 'ͻ ' SUB :bload.ansi 02-09-1992 '͹ ' ACTION: ' ' ' TO PASS: ' file$ ===> ' ' RETURN: ' 'ͼ sub bload.ansi( file$ ) shared cfgc%, cbgc% ansi$ = dsk.file.get$( file$ ) ' get the file from the disk cfgc% = 7 cbgc% = 0 fgc% = 7 bgc% = 0 y% = 1 x% = 1 columns% = scr.cols% esc$ = chr$(27) crlf$ = chr$(13,10) find0$ = esc$+"[s" + crlf$+esc$+"[u" replace find0$ with "" in ansi$ replace "[" with esc$+"[" in ansi$ replace "`[" with esc$+"[" in ansi$ lenansi% = len(ansi$) do ansi.esc$ = bload.ansi.get.esc$(ansi$) lenansi% = lenansi% - len(ansi.esc$) p% = instr(ansi.esc$, any "ABCDfHhJKlmnRsu") num$ = mid$(ansi.esc$, 3, p% - 3) ins$ = mid$(ansi.esc$, p%, 1) txt$ = right$(ansi.esc$, len(ansi.esc$) - p%) n% = val(num$) if n% = 0 then n% = 1 select case ins$ case "A" ' UP n lines. if n=0 then n=1 y% = y% - n% case "B" ' DOWN n lines. if n=0 then n=1 y% = y% + n% case "C" ' RIGHT n lines. if n=0 then n=1 x% = x% + n% case "D" ' LEFT n lines. if n=0 then n=1 x% = x% - n% case "f", "H", "R" ' LOCATE n;f. if n or f = 0 then 1 if num$ <> "" then m% = instr(num$, ";") if m% > 0 then y% = val(left$(num$, m%-1)) x% = val(mid$(num$,m%+1,len(num$)-m%)) else y% = val(num$) x% = 1 end if else y% = 1 x% = 1 end if if c$ = "R" then oldy% = y% oldx% = x% end if case "h", "l" ' type of screen scr% = val(num$) select case scr% case 0 ' 40*25 black and white width 40 columns% = 40 case 1 ' 40*25 color width 40 columns% = 40 case 2 : width 80 ' 80*25 black and withe case 3 : width 80 ' 80*25 color case 4 : screen 1 ' 320*200 color case 5 : screen 1 ' 320*200 black and white case 6 : screen 2 ' 640*200 black and white case 7 : scroll%=-1 ' scroll up when end of screen case else ' other case end select case "J" ' clear screen. CLS if fgc% <> 0 or bgc% <> 0 then cfgc% = fgc% cbgc% = bgc% else cfgc% = 7 cbgc% = 0 end if color cfgc%, cbgc% cls case "K" ' clear to end of line color cfgc%, cbgc% print space$(scr.cols% - x%); color fgc%, bgc% locate y%, x% case "m" ' set colors call scr.ansi2color.fn( num$, fgc%, bgc% ) case "n", "s" ' hold the cursor position in memo oldy% = y% oldx% = x% case "u" ' restart the cursor position holded. y% = oldy% x% = oldx% case else error 102 end select if mfgc% <> fgc% or mbgc% <> bgc% then color fgc%, bgc% mfgc% = fgc% mbgc% = bgc% end if if x% < 1 then x% = 1 if y% < 1 then y% = 1 if y% > scr.rows% then call scr.text.8x8 if x% > scr.cols% then width 80 crlf% = instr(txt$, crlf$) if crlf% > 0 then replace crlf$ with "" in txt$ locate y%, x% print left$(txt$,crlf%); txt$ = right$(txt$, len(txt$)+1-crlf%) incr y% x% = 1 end if if txt$ <> "" then locate y%, x% print txt$; y% = csrlin x% = pos(0) end if loop while lenansi% end sub ' 'ͻ ' FUNCTION :bload.ansi.get.esc$ 02-09-1992 '͹ ' ACTION: ' ' ' TO PASS: ' ansi$ ===> ' ' RETURN: ' bload.ansi.getesc===> ' 'ͼ function bload.ansi.get.esc$(ansi$) static p% if p% = 0 then p% = 1 e% = instr( p%+1, ansi$, chr$(27) ) if e% > 0 then bload.ansi.get.esc$ = mid$(ansi$, p%, e%-p% ) p% = e% else bload.ansi.get.esc$ = mid$(ansi$, p%, len(ansi$)+1-p%) p% = 0 end if end function ' 'ͻ ' SUB :scr.attr2ansi.fn 10-19-1992 '͹ ' ACTION: Return all ANSI colors values of a passed color attribute ' value. ' TO PASS: ' attr% ===> Calour attribute value. ' ' RETURN: ' afgc% ===> ANSI Fore Ground Colour number ' abgc% ===> ANSI Back Ground Colour number ' inten% ===> Intensity. TRUE (-1) or FALSE (0) ' blink% ===> Blink. TRUE (-1) or FALSE (0) ' 'ͼ sub scr.attr2ansi.fn( attr%, afgc%, abgc%, inten%, blink% ) afgc% = attr% mod 8 ' extract fore ground color afgc% = scr.ansi2color%( afgc% )' true basic color abgc% = attr% \ 16 ' extract back ground color abgc% = abgc% mod 8 abgc% = scr.ansi2color%( abgc% )' true basic color inten% = 0 ' intensity FALSE blink% = 0 ' blink FALSE if (attr% and 8) <> 0 then inten% = -1 ' intensity TRUE if (attr% and 128) <> 0 then blink% = -1 ' blink TRUE end sub ' 'ͻ ' SUB :scr.ansi2color.fn 10-19-1992 '͹ ' ACTION: Extract from an ANSI color value into a character string ' the Fore Ground and Back Ground color values ' ' TO PASS: ' num$ ===> ANSI color value. ' ' RETURN: ' fgc% ===> Fore ground color PowerBasic value ' bgc% ===> Back ground color PowerBasic value ' 'ͼ sub scr.ansi2color.fn( num$, fgc%, bgc% ) local p%, m%, c$, c% static blink%, inten% ' Static var. to blink and Intensity shared cfgc% ' PUBLIC VARIABLES!!! usables for the shared cbgc% ' main program to clear screen. ' Fore Ground and Back Ground colors. p% = 0 do m% = instr(p% + 1, num$, ";") - 1 ' find ; into ANSI string if m% < 1 then m% = len(num$) - p% c$ = mid$(num$, p% + 1, m%) ' extract secuent color c% = val(c$) ' color char. to color integer select case c% case 0, 8 ' clear screen colors fgc% = 7 bgc% = 0 inten% = 0 blink% = 0 case 1 : inten% = -1 ' intensity TRUE case 2 : inten% = 0 ' intensity FALSE case 5 : blink% = -1 ' blink TRUE case 30 to 37 ' fore ground c% = c% - 30 fgc% = scr.ansi2color%( c% ) ' true basic color case 40 to 47 ' back ground c% = c% - 40 bgc% = scr.ansi2color%( c% ) ' true basic color end select p% = instr(p% + 1, num$, ";") loop while p% if inten% then ' Intensity select case fgc% case <8 , 16 to 23 fgc% = fgc% + 8 end select end if if blink% and fgc% < 16 then ' Blink fgc% = fgc% + 16 end if end sub ' 'ͻ ' FUNCTION :scr.ansi2color% 10-19-1992 '͹ ' ACTION: Translate ANSI color value to a PowerBasic color value ' ' TO PASS: ' acolor% ===> ANSI color value. ' ' RETURN: ' scr.ansi2color%===> PowerBasic color value ' 'ͼ function scr.ansi2color%( acolor% ) local PBcolor% select case acolor% ' change ANSI color to PB color case 1: PBcolor% = 4 case 3: PBcolor% = 6 case 4: PBcolor% = 1 case 6: PBcolor% = 3 case else: PBcolor% = acolor% end select scr.ansi2color% = PBcolor% end function * Wave Rider 1.20 [NR] * ... UNREGISTERED EVALUATION COPY --- Wave Rider v1.20 * Origin: Clot BBS 34-3-2324070 (A 14K4) / 34-3-2654579 (A 28K8) (757:101/24)