devexpress asp.net pdf viewer : Extract one page from pdf acrobat SDK control API .net azure wpf sharepoint apple_iigs_technical_notes_80-915-part702

Apple II Technical Notes
Apple II
GS
12 of 10
#87:  Patching the Tool Dispatcher
bra @loop                    ; Now check this header.
NoErr  ldy #noError                 ; Report that all went well.
Exit   plp                          ; Restore the interrupt state.
pld                          ; Restore the previous direct page register.
tsc                          ; Restore the stack pointer.
clc
adc #zpsize
tcs
tya                          ; Value to return.
beq @noerr
sec                          ; Report that there was an error.
rtl
@noerr clc                          ; Report that there was no error.
rtl
endp
end
Further Reference
• Apple II
GS 
Toolbox Reference
• Apple II
GS
Technical Note #73, Using User Tool Sets
Extract one page from pdf acrobat - SDK control API:C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others
www.rasteredge.com
Extract one page from pdf acrobat - SDK control API:VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed VB.NET Guide for Extracting Pages from Microsoft PDF Doc
www.rasteredge.com
Apple II
GS
#88:  The Page One Stack in a 16-Bit World
1 of 1
Apple II
Technical Notes
Developer Technical Support
®
Apple II
GS
#88: The Page One Stack in a 16-Bit World
Written by: Dave Lyons
September 1990
This Technical Note clarifies the protocol for moving the stack pointer in and out of page one.
On page 13 of the Apple II
GS
Firmware Reference, under “Save the value of the native-mode
stack pointer,” there is a code sample showing how to switch to the page-one stack by setting the
stack pointer to $01xx, where xx is the contents of EMULSTACK at $01/0100.
However,  the manual does  not warn you about moving  the stack pointer  from page one to
another area.  When you do that, you must store the low byte of the stack pointer at EMULSTACK
before moving the stack pointer out of page one.  If you do not save the page-one stack properly,
interrupt routines or some toolbox calls may destroy a part of the page one stack that you go back
to later, expecting that return addresses are still there.
Note: If the auxiliary-memory stack and zero page are in use, you must use $01/0101
instead of $01/0100.  See the Apple IIe Technical Reference Manual, pp. 153-154
Further Reference
• Apple II
GS
Firmware Reference
• Apple IIe Technical Reference Manual
SDK control API:JPEG to PDF Converter | Convert JPEG to PDF, Convert PDF to JPEG
Adobe Acrobat Reader for conversion. Batch conversion is supported by JPEG to PDF Converter. JPEG to PDF Converter can convert image files to one PDF file or
www.rasteredge.com
SDK control API:PDF to WORD Converter | Convert PDF to Word, Convert Word to PDF
the support of Adobe Acrobat & Microsoft Word. Besides, PDF to Word Converter has a batch mode which can convert lots of image files to just one single file.
www.rasteredge.com
Apple II
GS
#89:  MessageByName—Catchy Messages
1 of 2
Apple II
Technical Notes
Developer Technical Support
®
Apple II
GS
#89: MessageByName—Catchy Messages
Written by: Dan Strnad & Dave Lyons
September 1990
This note clarifies MessageByName and provides examples of creating and retrieving a named
message.
Did You Say You Want To Get A Message?
All you have to do is ask.   Apple II
GS
Toolbox  Reference, Volume 3 already tells you how.
Here’s what the fine print says:  with the createItFlag set to FALSE and the name of the
message you are after in the nameString, you call MessageByName.  What’s unclear in the
manual is that if the message was found, no error is returned, the createFlag is returned as
FALSE, and messageID contains the ID you can pass to MessageCenter to retrieve the
contents of the message.  Here’s an example of MessageByName in use.
The following code creates a named message.
CreateNamedMessage
pha
pha
pea 1                                     ;create it
pushlong #MsgBlock
_MessageByName                            ;function $1701
pla
sta myMsgID                               ;keep the ID if you want
pla                                       ;check the createFlag if you
want
...
MsgBlock    dc.w MsgBlockEnd-MsgBlock
dc.b 28,'XYZ Software:My Cool Product'    ;Pascal-style string
... more data goes here
MsgBlockEnd
The following code retrieves the message.
pha
pha
pea 0                                     ;don't create message
pushlong #MsgBlock
_MessageByName                            ;function $1701
ply                                       ;keep id of existing message
pla                                       ;createFlag (ignore)
bcs noMessage                             ;carry set if an error occurred
SDK control API:TIFF to PDF Converter | Convert TIFF to PDF, Convert PDF to TIFF
hundred of PDF document to TIFF image at one time just a few clicks; Ability to convert PDF documents to use and upgrade; Easy to convert multi-page PDF files to
www.rasteredge.com
Apple II Technical Notes
2 of 2
#89:  MessageByName—Catchy Messages
Developer Technical Support
September 1990
Apple II
GS
#89:  MessageByName—Catchy Messages
3 of 2
pea 2                                     ;MessageCenter action: GET
 phy                                       
;message ID for MessageCenter,
below
pha
pha                                       ;space for NewHandle result
lda #0                                    ;size of handle (0)
pha
pha
ldx MyID                                  ;ID for empty
phx
pha                                       ;handle attributes (0)
pha
pha                                       ;no special location
_NewHandle
lda 3,s
sta mcHandle+2
lda 1,s
 sta mcHandle                              
;keep a copy of the handle for
later
_MessageCenter                            
;takes Action, Msg ID, and
Handle
lda mcHandle+2
pha
lda mcHandle
pha
phd
tsc
tcd
ldy #2
lda [3],y
tax
lda [3]
sta 3
stx 5
* now read data from the message at [3]
ldy #$xxxx                                ;index past the name string
lda [3],y
...
pld
pla
pla
lda mcHandle+2
pha
lda mcHandle
pha
_DisposeHandle
noMessage   ...
mcHandle    dc.l 0
myMsgID     dc.w 0
MessageByName is available in Tool Locator versions 3.0 and later (System Software 5.0 and
later).
Further Reference
• Apple II
GS
Toolbox Reference, Volumes 2-3
Apple II
GS
#90:  65816 Tips and Pitfalls 
1 of 3
Apple II
Technical Notes
Developer Technical Support
®
Apple II
GS
#90: 65816 Tips and Pitfalls
Revised by: Matt “Matt” Deatherage
March 1991
Written by: Dave “Dave” Lyons
September 1990
This Technical Note presents short 65816 assembly language examples illustrating pitfalls and
clever techniques.
Changes since November 1990:  Added more explanations about the JSL table and corrected a
comment.
Dispatching Through an Address Table
The 65816 has a JSR ($aaaa,X) instruction for calling a selected subroutine from a table of
addresses, but it has no JSL ($aaaa,X) instruction.  If you need to dispatch to one of several
routines that are not all in the same bank, you need an approach like the following.  The idea is to
perform a JSL to a routine which does a long jump by pushing a three-byte “RTL address” on
the stack and then doing an RTL.
jsl LngJmp           ;go jump to the routine
...
LngJmp   asl a                ;take routine number in A and
asl a                ; multiply it by 4
tax                  ;put table index into X
lda table+1,x        ;get “middle” word of address
pha                  ; and push it
lda table,x          ;get low word and
dec a                ; decrement it by one
phb                  ;push a single throw-away byte
sta 1,s              ;store over low two of the 3 bytes
rtl                  ;transfer control to the routine
table      dc.l routine1        ;table of 4-byte subroutine addresses
dc.l routine2
dc.l routine3
...
This code is correct because RTL pulls three bytes off the stack and increments the two low bytes
without incrementing the high byte.
Note: This approach to a table-based JSL is more flexible than JML ($XXXX) because it does
not require any fixed-location storage or bank zero space, other than the stack.
Apple II Technical Notes
Apple II
GS
2 of 3
#90:  65816 Tips and Pitfalls
On the other hand, the following code is not correct.   The approach here is to make a table of
addresses minus one.
asl a             W
asl a             R  ;multiply index by 4
tax               O  ; and put it in X
lda table+1,x     N  ;get the “middle” word
pha               G  ; and push it
lda table,x       !  ;get the low word
phb               W  ;push a single throw-away byte
sta 1,s           R  ;store over low two bytes
rtl               O  ;transfer control to the routine
table  dc.l routine1-1   N  ;table of 4-byte addresses minus one
dc.l routine2-1   G
dc.l routine3-1   !
...
This second sample code fragment fails if any of the routines in the table comes at the first byte
of a bank.  For example, if routine1 is at $060000, the address pushed is $05FFFF, and RTL
transfers control to $050000, not $060000.
Dereferencing Handles Without Direct Page Space
When  your  code  gets  called with  the  D  register undefined,  you  must  not  use  direct  page
addressing without setting D to a known good value.  Preserving and restoring locations on the
caller’s direct page is not reliable, because D could be pointing at bytes below the stack pointer
(which can be destroyed by interrupts) or even at the $C0xx soft switches (that would make your
direct page accesses accidentally fiddle with hardware).
A common way to get temporary direct page space is to point D at part of your stack.   This
following code dereferences a handle stored in the A and X registers (if the handle is $E01234
and refers to a block of memory at $056789, then on entry A=$00E0 and X=$1234, and on exit
A=$0005 and X=$6789).
phd                  ;save caller’s direct-page register
pha                  ;push high word of handle
phx                  ;push low word of handle
tsc                  ;get stack pointer in A
tcd                  ;and put it in D
lda [1]              ;get low word of master pointer (no “,Y”!)
tax                  ; and put it in X
ldy #$0002           ;offset to high word of master pointer
lda [1],y            ;get high word
ply                  ;remove low word of handle
ply                  ; and high word
pld                  ;restore the caller’s direct-page register
Developer Technical Support
March 1991
Apple II
GS
#90:  65816 Tips and Pitfalls 
3 of 3
Direct page addressing isn’t the only way to address through pointers.  Here’s the same routine
as before, but using the Data Bank register (B) instead of fiddling with D.  (Note that handles do
not have to be in bank $E0 or $E1, although they usually are.)
phb                  ;save caller’s data bank register
pha                  ;push high word of handle on stack
plb                  ;sets B to the bank byte of the pointer
lda |$0002,x         ;load the high word of the master pointer
pha                  ; and save it on the stack
lda |$0000,x         ;load the low word of the master pointer
tax                  ;and return it in X
pla                  ;restore the high word in A
plb                  ;pull the handle's high word high byte off the stack
plb                  ;restore the caller’s data bank register
Emulation Mode Has 65816 Features
You don’t have to switch into Native mode just to do an eight-bit operation with long addressing.
Most  65816-specific  instructions  and  addressing  modes  work  in  emulation  mode  in
approximately the same way they work in eight-bit native mode.  See the “Further Reference”
for details.
Further Reference
• Apple II
GS
Hardware Reference
• Programming the 65816, Including the 6502, 65C02 and 65802 (Eyes and Lichty, 1986,
Brady)
Apple II
GS
#91:  The Wonderful World of Universal Access 
1 of 4
Apple II
Technical Notes
Developer Technical Support
®
Apple II
GS
#91: The Wonderful World of Universal Access
Revised by: Dave Lyons
May 1992
Written by: Don J. Brady, Matt Deatherage, & Ron Lichty
September 1990
This Technical Note discusses how your applications can be compatible with Universal Access
software.
Changes since July 1991:  Added caution against reading the keyboard with interrupts disabled.
What’s “Universal Access?”
Universal Access is the name given to software components designed to make Apple computers
(in this case, the Apple II
GS
) more accessible to people who might have difficulty using them.
The Apple II
GS
is very dependent on graphic objects, a keyboard and mouse; not all people can
use these things very easily.
There are several components to Apple’s Universal Access software:
• CloseView.  CloseView magnifies the Apple II
GS 
screen so that it’s more easily
seen  by  those  with  visual  impairments.   The  hardware  screen  contains  a
magnification from two to twelve times as large as the “real” 32K Super Hi-Res
graphics screen.
• Video  Keyboard.   Video Keyboard is a New Desk Accessory that emulates a
keyboard.  A picture of a keyboard appears on the screen; a mouse-down event in
any “key”  makes Video Keyboard  post  a  key-down event, so you  can use  a
pointing device as a keyboard.  ADB hardware is available to allow people to use
head  gear  or  other devices instead  of mice; Video  Keyboard lets  these same
devices replace the keyboard as well.
• Easy Access.   Easy Access comes in two parts: Sticky Keys and Mouse Keys.
Sticky  Keys  makes  the  keyboard  easier  to  use  for  those  who  have  trouble
pressing more than one key at a time; while Sticky Keys is activated, modifier
keys may be released and still apply to the next keystroke.  Mouse Keys allows
the numeric keypad to be used as a mouse substitute.   Sticky Keys and Mouse
Keys are included in all ROM 03 Apple II
GS
computers.  The software versions
allow all Apple II
GS
computers to provide these functions, and provide additional
icon feedback (in the upper right menu bar) for Sticky Keys.
Apple II Technical Notes
Apple II
GS
2 of 4
#91:  The Wonderful World of Universal Access
Documents you may be interested
Documents you may be interested