(C) 2oo2 Disabler /
DPL
Disabler Production LabAratory
Presents:
`-1 - Introduction
Hayushki, people! With you again Disabler and regular program
of DPL. At this time you have the opportunity to oprobyvat
the work of a new shell for writing programs. Its structure
This system is similar to MustDie'95. The program structure so
as very similar, ie you create a window with the text options,
or prompts, and then describes the reaction to the choice of a
specific option.
`-2 - System Requirements
To run the system must:
Required:
■ 128kb of main memory (Ram)
■ 16kb additional memory (Cashe)
■ TR-Dos 5.03 with the team IN A, (# 1F)
Desirable:
■ System SetUP v2.04
■ Kempston Mouse
■ 32kb additional memory (Cashe)
Ideal:
■ 1024kb static ram + turbo 14mHz no wait!
■ 256kb of additional memory (Cashe)
`-3 - Structure
Program for SinOS consists of three main parts:
1. File descriptor, which consists of ID-String'a accessories
file
to the system, program name, address, major launches.
2. Descriptors windows.
3. Set of reactions to choose from.
;-------------------------------------------------
-------------; Example file for SinOS v1.00
;-------------------------------------------------
-------------; (c) 2001 Disabler Production Labaratory
;-------------------------------------------------
-------------
DB "SinOS v1.00"; ID-String file
DB "Name bend!"; Guess ...
DW adres_okna_install
DW adres_okna_second_open
;-------- Format Descriptor window -------
DB Y_koordinata_okna, X_koordinata_okna
DB razmer_okna_po_X, razmer_okna_po_y
DB "Zagolovok_okna, 1; <- HA CLED.CTPOKU
DB 1; <- HA CLED.CTPOKU
DB "Tekst option # 1", 1
DB "Tekst option # 2, 1
; .... ....................
DB "Tekst option # N"
DB 0; <- KOHETS OPICATELEY Option
DW Adres_protsedury_'open '
DB y_koord_poloski_ # 1, # 1 x_koord_poloski_
DB dlina_poloski_vybora_optsii_ # 1
DB marker_optsii_ # 1
DW adres_ # 1
DB y_koord_poloski_ # 2, # 2 x_koord_poloski_
DB dlina_poloski_vybora_optsii_ # 2
DB marker_optsii_ # 2
DW adres_ # 2
; .... .................
DB y_koord_poloski_ # N, # N x_koord_poloski_
DB dlina_poloski_vybora_optsii_ # N
DB marker_optsii_ # N
DW adres_ # N
DB # ff; <- Konets descriptors selection
DB marker_'close '
DW adres_'close '
FAQ:
Q: What is the>>> adres_okna_install <<??
A: Address the window that opens only once, at
boot program.
Q: What is the>>> adres_okna_second_open <<??
A: The address of the first (main) window.
Q: What is the>>> adres_protsedury_'open '<<??
A: This is the address of procedure to be invoked immediately
after
open the window. If the do not need it, instead it can be
write TO_RET, where TO_RET - mark on the team RET, ie
TO_RET RET
Q: What is the>>> marker_optsii_ # N, adres_ # N <<<???
A: This determines the token response to the selection of
options.
# 00 - OPEN the following window 'adres_ # N'.
# 01 - 3akryt the current window and return to the 'ADREC_ #
N'
for updating it.
# 02 - 3akryt current and open a new window 'adres_ # N'
# FE - Byzvat procedure 'adres_ # N'
Q: What is the>>> marker_'close 'adres_'close' <<??
A: This is an analogue of the marker response to selection, but
operates at about Mahe, ie when not selected any of the
options and pressed
selection button.
- Example of a simple program for SinOS -
DB "SinOS v1.00"
DB "Test Program ..."
DW w_inst
DW w_main
w_inst DB 3,3,5,17, # 57
DB "Program Installer", 1,1
DB "Program has installed", 1
DB "-----> Yep <-----", 0
DW install
DB 6,3,18,2
DW w_main
DB # ff, # fe
DW to_ret
w_main DB 3,3,5,17, # 47
DB "SinOS Test Program!", 1,1
DB "Reinstall Program", a
DB "Exit to SinOS", 0
DW to_ret
DB 5,3,18,2
DW w_inst
DB 6,3,18,1
p_exit DW 0
DB # ff, # fe
DW to_ret
install LD HL, (23773)
LD (p_exit), HL
to_ret RET
;-----------------------------------
Now some useful information for
writing programs under SinOS:
■ All the reactions on the choice of ending the command RET
■ Program assembled under the address # C000 (49152)
■ size Program # 4000 (16384) bytes
■ Programs are loaded into the page # 14, # 16, # 17
■ It is advisable to Cashe to hit the Reset button
■ If you press the Reset + Symbol Shift, then SinOS open a
window, the address
which is specified at 23,728 (reaction to the NMI)
■ If you press the Reset + Any Key (except SS, Enter) you can
get into
mate Cashe, if you have it 32kb.
■ If you load the command RST # 10 is available kernal.
Accessing kernalyu this:
RST # 10
DB function
You have the following functions:
cls EQU 00 - clearing the screen without changing the
attributes of
IN: -
OUT: -
fill EQU 01 - fill the screen color
IN: A - Color
OUT: -
paint EQU 02 - filling in a single byte of memory
IN: HL - address of the beginning
BC - unit size-1
A - byte fill
OUT: -
fone EQU 03 - generation wallpaper
IN: -
OUT: -
window EQU 04 - opening the window without saving the background
IN: HL - window handle
OUT: -
window2 EQU 05 - opening a window while preserving the
background
IN: HL - window handle
OUT: -
pop_win EQU 06 - Restoring the background under the window
IN: -
OUT: -
pop_all EQU 07 - Restoring the background under all windows
IN: -
OUT: -
print EQU 08 - print line, 00 .. 0D - end of line
IN: HL - address of the text
DE - address on the screen
OUT: -
xprint EQU 09 - Print Text, 00 - End of Text
01 .. 0D - end of line
IN: HL - address of the text
DE - address on the screen
OUT: -
down_hl EQU 10 - conversion of the addresses in the screen
below the line
IN: HL - address on the screen
OUT: HL - restated address
down_de EQU 11 - analog down_hl, but de
IN: DE - address on the screen
OUT: DE - restated address
de_adr EQU 12 - calculation of addresses in the screen
IN: DE - coordinates in the familiarity
OUT: HL - address on the screen
DE - address attributes
cancel EQU 13 - call box on the principle of clicking on the
choice
IN: HL - address of the window
A - handle 'open'
OUT: -
last_hl EQU 14 - inversion of the current band of choice
IN: -
OUT: -
fl_hl EQU 15 - change the color of window title
IN: A - color of title
OUT: -
get EQU 16 - saving the background under the cursor
IN: -
OUT: -
put EQU 17 - drawn in
IN: -
OUT: -
rest EQU 18 - Restoring the background under the cursor
IN: -
OUT: -
read EQU 19 - reading of sectors
IN: HL - Address
DE - track / sector
B - number of sectors
OUT: -
write EQU 20 - recording sectors
IN: HL - Address
DE - track / sector
B - number of sectors
OUT: -
get_xy EQU 21 - the cursor location in pixels
IN: -
OUT: HL - coordinates of the cursor
`-4 - Author, Rights
Author of SinOS v1.00: .................. Disabler / DPL
Copyright: ............ Disabler Production Labaratory
Distribute: ................................ No Limits
`-5 - SetUP v2.04
You've probably already asked the question, what is this
SetUP??? So, this sort of thing that allows you to configure
the hardware performance of your computer programmatically. And
now more detail about what can SetUP:
1. Selection of types of ROM, provided that the Basic and Dos
is in a different ROM. There are other four main ROM (from
BASIC), and two with Dos'om. Personally, I like this:
Number Zero First
Rom Half Half
# 00 Quick Commander Basic'2000
# 01 NeOS v1.0 Basic'2000
# 02128 Basic/91y 48 Basic/91y
# 03128 Basic/82y 48 Basic/82y
DOS # 0 TR-Dos 5.03 for Honey Commander
DOS # 1 TR-Dos 5.04 turbo
2. Switch up to eight switches. Seven of them support
SinOS and one backup. I've done this:
Lock 48kb rom ......... Nop - disable zero bank ROM
Emulate rom by cashe .. Nop - emulation of the bank's zero-ROM
with
using a zero bank Cashe
Write to cashe ........ Yep - you can write to Cashe
Entry to cashe by ..... NMI - Button activation Cashe (NMI /
Reset) Set black border ...... Yep - Forcing BORDER 0
Devided bright ........ Nop - change bits for the Flash on the
brightness
paper (for separate brightness and
Ink
Paper)
Tactes per line ....... 228 - line size of the screen
horizontally
ticks (228/232)
■ SetUP activated when Reset'e in Cashe.
■ off when writing to the port # FFFF or when the Cashe
■ Port Settings - # FE77
■ Port ROM - # FF77, where there is a feature: lower four bits
choose one of four ROM, ie zero allows the sample,
the remaining bits should be equal to unity. Fourth bit
indicate the type of ROM Dos.
`-6 - Contact phone numbers
Phones:
8 (928) 91-33-007 Andrew (Disabler)
8 (903) 40-22-186 Andrew (Disabler)
8 (863) 2-404-905 Mike (Mick)