Die Software zur Baugruppe GAL-Programmierer stellt für damalige Verhältnisse eine kleine Sensation dar. Damit war es möglich, diese damals neuartigen GAL-Bausteine mit einem Ausbildungscomputer zu programmieren. Die Software ist, trotz der vielfältigen Funktionen, auch recht kompakt programmiert, bleibt aber trotzdem strukturiert und lesbar.
;******************************************************************************
; ###### ### ## ######## ######## ####### ######
; ## ## ## ## ## ## ## ## ## ## ## ## ##
; ## ## ## ## ## ## ## ## ## ## ##
; ## #### ## ## ## ####### ######## ######## ## ## ## ####
; ## ## ######### ## ## ## ## ## ## ## ##
; ## ## ## ## ## ## ## ## ## ## ## ##
; ###### ## ## ######## ## ## ## ####### ######
;******************************************************************************
;******************************************************************************
; Visual Studio Code
; Plugin: https://enginedesigns.net/retroassembler
;******************************************************************************
;******************************************************************************
; MFA 4.14
; GAL - Programmierer V 2.3 VGS Koeln
; fuer MFA Computer
;
;******************************************************************************
;
; Anpassungen
; ( 12/2022 - Thilo Buhl - thilo@tau-alpha-c.de )
;
; Als Kommentar ist der jeweils Re-Assemblierte Originalcode enthalten
;
; # P00 02.12.2022
; 1. ReAssembler-Durchlauf
;
; # P01 03.12.2022
; Sprungziele in MAT85-Code (Systembefehle) angepasst
; RAM-Adressen fuer GAL-Pufferspeicher angepasst
;
; # P02 10.12.2022
; [01] CMD-Meldung im GAL-Modus: 'GAL >'
; Ein wenig Code bereinigt
;
;******************************************************************************
;# ToDo
; Unnoetige CR/LF bei Ausgaben noch entfernen
;
; Bug: Eingaberoutine ueberpruefen
; (CR fuehrt unkontrolliert zu Backspace)
;
;******************************************************************************
; # Benutzte Assembler-Anweisungen
;
; .target Prozessorsystem
; .format Ausgabeformat
; .org Anfangsadresse setzen
; .equ Zuweisung Variable
; .byte Definiere BYTE
; .word Definiere WORD (Lo/Hi-Byte)
; .text Definiere Textstelle
; .textz Definiere Textstelle mit $0 am Ende
;
;******************************************************************************
;******************************************************************************
.target "8085"
.format "BIN"
; version 2.3 P02
;******************************************************************************
; MAT85 - Systemcalls
;******************************************************************************
; Die eigentlich korrekten MAT85 Sprungmarken:
RCHAR .equ $0ae0 ; $0043 Ein Zeichen einlesen
WCHAR .equ $0bb6 ; $0052 Ein Zeichen ausgeben
WCHARI .equ $0bf7 ; $0055 Schreibe Zeichen direkt bis $0
WAHEX .equ $0b6f ; $0058 Zwei Hex-Stellen als ASCII ausgeben
WADEZ .equ $0b19 ; $0061 Dezimalzahl in ASCII ausgeben
WBLANK .equ $0b8e ; $0067 Leerzeichen ausgeben
WBUF .equ $0ba1 ; $006a Text ausgeben (HL Zeiger)
WBUFI .equ $0bb0 ; $006d Text ausgeben nach Aufruf (Ende durch $0)
WCRLF .equ $0c01 ; $0070 Zeilenschaltung ausgeben
WCRLFI .equ $0c13 ; $0073 Zeilenschaltung und direkten Text ausgeben
GROSS .equ $0ee9 ; Umwandeln in Grossbuchstaben
SYSCLS .equ $0890 ; SERIT3b Bildschirm loeschen ($0c an SER ausgeben) (SERIT3b)
MATCMD .equ $01ac ; CMD ($0040) KMD-Einsprung
MATHELP1 .equ $03b8 ; HELP1 Help-Tabelle ausgeben (HELP1)
SERO .equ $089f ; SERO Serielle Ausgabe (Zeichen im Akku)
MAT85_L1e17 .equ $1E17 ; PRTnotReady Printer not ready
MAT85_L1e90 .equ $1E90 ; Printer Printer einschalten
;******************************************************************************
; MAT85 - Systemspeicher
;******************************************************************************
STACKPOINT .equ $FC32 ; User-Stackpointer
SEROUT .equ $fc83 ; Sprungvektor fuer SEROUT
; in MINI-DOS: PRTST (muss im ASM-Code noch korrigiert werden)
CRTFLG .equ $fcc8 ; CRT-Flag (0=CRT,1=TTY)
; GAL - Anwender-Speicher
GAL_RAM_00 .equ $d000 ; GAL Pufferspeicher 1
GAL_RAM_80 .equ $d800 ; GAL-Pufferspeicher 2
GAL_RAM_83 .equ $d830
GAL_RAM_84 .equ $d840
GAL_RAM_85 .equ $d850
GAL_RAM_86 .equ $d860
GAL_RAM_88 .equ $d880
;******************************************************************************
;
; IO 8255 - Portadressen
;
;******************************************************************************
; Portadresse GAL-Programmierer
; Achtung! In der Standardkonfiguration liegt hier auch
; der EPROM-Programmierer der aus MAT85 und MAT85+ angesprochen wird
IO_GAL_CTRL .equ $D3
IO_GAL_PORT_A .equ $D0
IO_GAL_PORT_B .equ $D1
IO_GAL_PORT_C .equ $D2
; Portadresse Druckerschnittstelle
IO_PRT_CTRL .equ $E3
IO_PRT_PORT_A .equ $E0
IO_PRT_PORT_B .equ $E1
IO_PRT_PORT_C .equ $E2
;******************************************************************************
; *
; **
; ***
; *****************************************
.ORG $C000 ; ******* GAL-PROGRAMMIERER START-ADRESSE **
; *****************************************
; ***
; **
; *
;******************************************************************************
; START
;******************************************************************************
LC000:
jmp LC070 ;$c000 c3 70 c0
.text "(C) VGS KOELN 1990"
LC015:
call WBUFI ;$c015 cd b0 0b
.byte $0D,$0A,$0A
.text "GAL 16V8, 16V8A V2.3"
.byte $0D,$0A,$0A,0
ret ;$c033 c9
LC034: lxi h,GAL_RAM_00 ;$c034 21 00 d0
mvi b,$58 ;$c037 06 58
LC039:
mov m,b ;$c039 70
inx h ;$c03a 23
mov a,h ;$c03b 7c
cpi $d8 ;$c03c fe d8
jnz LC039 ;$c03e c2 39 c0
lxi h,GAL_RAM_80 ;$c041 21 00 d8
mvi b,$30 ;$c044 06 30
LC046:
mov m,b ;$c046 70
inx h ;$c047 23
mov a,l ;$c048 7d
cpi $12 ;$c049 fe 12
jnz LC046 ;$c04b c2 46 c0
lxi h,GAL_RAM_86 ;$c04e 21 60 d8
mvi b,$2d ;$c051 06 2d
LC053:
mov m,b ;$c053 70
inx h ;$c054 23
mov a,l ;$c055 7d
cpi $a0 ;$c056 fe a0
jnz LC053 ;$c058 c2 53 c0
lxi h,$d818 ;$c05b 21 18 d8
mov m,b ;$c05e 70
lxi h,GAL_RAM_84 ;$c05f 21 40 d8
mvi b,$2e ;$c062 06 2e
LC064:
mov m,b ;$c064 70
inx h ;$c065 23
mov a,l ;$c066 7d
cpi $48 ;$c067 fe 48
jnz LC064 ;$c069 c2 64 c0
mvi b,$00 ;$c06c 06 00
mov m,b ;$c06e 70
ret ;$c06f c9
LC070:
; Start ;
lxi sp,STACKPOINT ;$c070 31 32 fc
call SYSCLS ;$c073 cd 90 08 #MAT-OS Bildschirm loeschen (SERINIT)
lda GAL_RAM_80 + $15 ;$c076 3a 15 d8
cpi $47 ;$c079 fe 47
jz Lc0fa ;$c07b ca fa c0
call LC015 ;$c07e cd 15 c0
mvi a,$47 ;$c081 3e 47
sta GAL_RAM_80 + $15 ;$c083 32 15 d8
lda GAL_RAM_80 + $15 ;$c086 3a 15 d8
cpi $47 ;$c089 fe 47
jz Lc0a5 ;$c08b ca a5 c0
call WBUFI ;$c08e cd b0 0b
.text "*** KEIN RAM ***"
.byte $0D,$0A,$0A,0
Lc0a5:
mvi a,$81 ;$c0a5 3e 81
out IO_GAL_CTRL ;$c0a7 d3 d3
mvi a,$05 ;$c0a9 3e 05
call Lc7e7 ;$c0ab cd e7 c7
mvi a,$06 ;$c0ae 3e 06
call Lc7e7 ;$c0b0 cd e7 c7
lda $d815 ;$c0b3 3a 15 d8
ori $20 ;$c0b6 f6 20
mov b,a ;$c0b8 47
in IO_GAL_PORT_C ;$c0b9 db d2
cmp b ;$c0bb b8
jz Lc100 ;$c0bc ca 00 c1
mvi a,$9b ;$c0bf 3e 9b
out IO_GAL_CTRL ;$c0c1 d3 d3
call WBUFI ;$c0c3 cd b0 0b #MAT-OS WBUFI
.byte $0D,$0A,$0A
.text "*** PROGRAMMIERKARTE NICHT BEREIT ***"
.byte $0D,$0A,$0A,0
mvi a,$00 ;$c0f2 3e 00
sta $d815 ;$c0f4 32 15 d8
jmp MATCMD ;$c0f7 c3 ac 01
Lc0fa:
call Lc7e2 ;$c0fa cd e2 c7
jmp Lc10c ;$c0fd c3 0c c1
Lc100:
call Lc7dd ;$c100 cd dd c7
call Lc034 ;$c103 cd 34 c0
LC106:
lxi h,Lc149 ;$c106 21 49 c1
call MATHELP1 ;$c109 cd b8 03
Lc10c:
lxi sp,STACKPOINT ;$c10c 31 32 fc
call WCRLF ;$c10f cd 01 0c
call WCRLFI ;$c112 cd 13 0c #MAT-OS WCRLFI
.textz "GAL > " ; [01] sieht besser aus ... :-)
;.textz "KMD*> " ; Originalcode
Lc11c:
call Lc7a4 ;$c11c cd a4 c7
ora a ;$c11f b7
jz Lc11c ;$c120 ca 1c c1
lxi h,Lc149 ;$c123 21 49 c1
Lc126:
mov a,m ;$c126 7e
ora a ;$c127 b7
jnz Lc131 ;$c128 c2 31 c1
call Lc79a ;$c12b cd 9a c7
jmp Lc11c ;$c12e c3 1c c1
Lc131:
cmp c ;$c131 b9
jz Lc140 ;$c132 ca 40 c1
Lc135:
mov a,m ;$c135 7e
inx h ;$c136 23
ora a ;$c137 b7
jnz Lc135 ;$c138 c2 35 c1
inx h ;$c13b 23
inx h ;$c13c 23
jmp Lc126 ;$c13d c3 26 c1
Lc140:
inx h ;$c140 23
call WBUF ;$c141 cd a1 0b #MAT-OS WBUF
mov e,m ;$c144 5e
inx h ;$c145 23
mov d,m ;$c146 56
xchg ;$c147 eb
pchl ;$c148 e9
LC149:
.textz "EDIT"
.word LC48E
.textz "PROG"
.word LCBBD
.textz "DELETE"
.word LC7F3
.textz "HELP"
.word LC19E
.textz "TEST"
.word LC84B
.textz "READ"
.word LC9E5
.textz "LPRINT"
.word LC1F0
.textz "VERIFY"
.word LC9F3
.textz "CHANGE"
.word LC2B8
.textz "NEW"
.word LC1A4
.textz "QUIT"
.word LC1B0
.byte 0
;******************************************************************************
LC19E:
call WCRLF ;$c19e cd 01 0c #MAT-OS WCRLF
jmp LC106 ;$c1a1 c3 06 c1
LC1A4:
call SYSCLS ;$c1a4 cd 90 08
call LC015 ;$c1a7 cd 15 c0
call LC034 ;$c1aa cd 34 c0
jmp Lc10c ;$c1ad c3 0c c1
LC1B0:
call WCRLF ;$c1b0 cd 01 0c
jmp MATCMD ;$c1b3 c3 ac 01
LC1B6:
call WCRLF ;$c1b6 cd 01 0c
mvi a,$ab ;$c1b9 3e ab
out IO_PRT_CTRL ;$c1bb d3 e3
in IO_PRT_PORT_C ;$c1bd db e2
ani $20 ;$c1bf e6 20
jnz Lc1d3 ;$c1c1 c2 d3 c1
call WCRLF ;$c1c4 cd 01 0c
lxi h,MAT85_L1e17 ;$c1c7 21 17 1e
; ## MAT85 Code:
; .textz "*** PRINTER NOT READY ***"
call WBUF ;$c1ca cd a1 0b
call WCRLF ;$c1cd cd 01 0c
jmp Lc10c ;$c1d0 c3 0c c1
Lc1d3:
mvi a,$7f ;$c1d3 3e 7f
out IO_PRT_PORT_A ;$c1d5 d3 e0
Lc1d7: ; Sprungtabelle?
in IO_PRT_PORT_C ;$c1d7 db e2
ani $80 ;$c1d9 e6 80
jz Lc1d7 ;$c1db ca d7 c1
lxi h,MAT85_L1e90 ;$c1de 21 90 1e ## Ausgabe auf Drucker umleiten
; # MAT85-SystemCode $1e90
;L1E90 PUSH PSW ;
;L1E91 IN $E2 ;
; ANI $80 ;
; JZ L1E91 ;*
; POP PSW ;
; OUT $E0 ;
; JMP SERO ;*
shld SEROUT + 1 ;$c1e1 22 84 fc
lda CRTFLG ;$c1e4 3a c8 fc
sta $d813 ;$c1e7 32 13 d8
mvi a,$01 ;$c1ea 3e 01
sta CRTFLG ;$c1ec 32 c8 fc
ret ;$c1ef c9
LC1F0:
call WBUFI ;$c1f0 cd b0 0b
.textz "? "
Lc1f6:
call Lc7a4 ;$c1f6 cd a4 c7
ora a ;$c1f9 b7
jz Lc1f6 ;$c1fa ca f6 c1
mov a,c ;$c1fd 79
cpi $20 ;$c1fe fe 20
jz Lc23e ;$c200 ca 3e c2
cpi $0d ;$c203 fe 0d
jz Lc23e ;$c205 ca 3e c2
cpi $41 ;$c208 fe 41
jz Lc22c ;$c20a ca 2c c2
cpi $42 ;$c20d fe 42
jz Lc235 ;$c20f ca 35 c2
cpi $30 ;$c212 fe 30
jc Lc21d ;$c214 da 1d c2
mvi a,$37 ;$c217 3e 37
cmp c ;$c219 b9
jnc Lc223 ;$c21a d2 23 c2
Lc21d:
call Lc79a ;$c21d cd 9a c7
jmp Lc1f6 ;$c220 c3 f6 c1
Lc223:
call Lc1b6 ;$c223 cd b6 c1
call Lc287 ;$c226 cd 87 c2
jmp Lc275 ;$c229 c3 75 c2
Lc22c:
call Lc1b6 ;$c22c cd b6 c1
call Lc29e ;$c22f cd 9e c2
jmp Lc275 ;$c232 c3 75 c2
Lc235:
call Lc1b6 ;$c235 cd b6 c1
call Lc2ab ;$c238 cd ab c2
jmp Lc275 ;$c23b c3 75 c2
Lc23e:
call Lc1b6 ;$c23e cd b6 c1
call WBUFI ;$c241 cd b0 0b
.text " GAL 16V8, 16V8A"
.byte $0D,$0A,$0A,$0A,0
call Lc2ab ;$c260 cd ab c2
lxi h,GAL_RAM_00 ;$c263 21 00 d0
lxi d,GAL_RAM_86 ;$c266 11 60 d8
Lc269:
call Lc2be ;$c269 cd be c2
mov a,h ;$c26c 7c
cpi $d8 ;$c26d fe d8
jnz Lc269 ;$c26f c2 69 c2
call Lc29e ;$c272 cd 9e c2
Lc275:
lxi h,SERO ;$c275 21 9f 08
shld SEROUT + 1 ;$c278 22 84 fc
lda GAL_RAM_80 + $13 ;$c27b 3a 13 d8
sta CRTFLG ;$c27e 32 c8 fc
call WCRLF ;$c281 cd 01 0c
jmp Lc10c ;$c284 c3 0c c1
Lc287:
mov a,c ;$c287 79
ani $07 ;$c288 e6 07
ori $d0 ;$c28a f6 d0
mov h,a ;$c28c 67
mov a,c ;$c28d 79
ani $07 ;$c28e e6 07
rlc ;$c290 07
rlc ;$c291 07
rlc ;$c292 07
adi $60 ;$c293 c6 60
mov e,a ;$c295 5f
mvi d,$d8 ;$c296 16 d8
mvi l,$00 ;$c298 2e 00
call Lc2be ;$c29a cd be c2
ret ;$c29d c9
Lc29e:
lxi h,GAL_RAM_80 ;$c29e 21 00 d8
call Lc334 ;$c2a1 cd 34 c3
call WBUFI ;$c2a4 cd b0 0b
ldax b ;$c2a7 0a
ldax b ;$c2a8 0a
nop ;$c2a9 00
ret ;$c2aa c9
Lc2ab:
lxi h,GAL_RAM_84 ;$c2ab 21 40 d8
call Lc36f ;$c2ae cd 6f c3
call WBUFI ;$c2b1 cd b0 0b
ldax b ;$c2b4 0a
ldax b ;$c2b5 0a
nop ;$c2b6 00
ret ;$c2b7 c9
LC2B8:
call Lcd2e ;$c2b8 cd 2e cd
jmp Lc10c ;$c2bb c3 0c c1
Lc2be:
push h ;$c2be e5
lxi h,Lc37e ;$c2bf 21 7e c3
call WBUF ;$c2c2 cd a1 0b
pop h ;$c2c5 e1
mov a,h ;$c2c6 7c
ani $07 ;$c2c7 e6 07
ori $30 ;$c2c9 f6 30
call WCHAR ;$c2cb cd b6 0b
call WBUFI ;$c2ce cd b0 0b
dcr c ;$c2d1 0d
ldax b ;$c2d2 0a
ldax b ;$c2d3 0a
nop ;$c2d4 00
push h ;$c2d5 e5
lxi h,Lc391 ;$c2d6 21 91 c3
call WBUF ;$c2d9 cd a1 0b
pop h ;$c2dc e1
Lc2dd:
call Lc310 ;$c2dd cd 10 c3
Lc2e0:
mov a,m ;$c2e0 7e
inx h ;$c2e1 23
call WCHAR ;$c2e2 cd b6 0b
mov a,l ;$c2e5 7d
ani $03 ;$c2e6 e6 03
jnz Lc2e0 ;$c2e8 c2 e0 c2
call WBLANK ;$c2eb cd 8e 0b
mov a,l ;$c2ee 7d
ani $1f ;$c2ef e6 1f
jnz Lc2e0 ;$c2f1 c2 e0 c2
call WCHARI ;$c2f4 cd f7 0b
rim ;$c2f7 20
ldax d ;$c2f8 1a
inx d ;$c2f9 13
call WCHAR ;$c2fa cd b6 0b
call WCRLF ;$c2fd cd 01 0c
mov a,l ;$c300 7d
ora a ;$c301 b7
jz Lc308 ;$c302 ca 08 c3
jmp Lc2dd ;$c305 c3 dd c2
Lc308:
call WBUFI ;$c308 cd b0 0b
dcr c ;$c30b 0d
ldax b ;$c30c 0a
ldax b ;$c30d 0a
nop ;$c30e 00
ret ;$c30f c9
Lc310:
push b ;$c310 c5
mov a,h ;$c311 7c
ani $07 ;$c312 e6 07
mov b,a ;$c314 47
mov a,l ;$c315 7d
ani $e0 ;$c316 e6 e0
ora b ;$c318 b0
rlc ;$c319 07
rlc ;$c31a 07
rlc ;$c31b 07
push psw ;$c31c f5
ani $07 ;$c31d e6 07
cnz Lc32b ;$c31f c4 2b c3
pop psw ;$c322 f1
call WADEZ ;$c323 cd 19 0b
call WBLANK ;$c326 cd 8e 0b
pop b ;$c329 c1
ret ;$c32a c9
Lc32b:
call WBUFI ;$c32b cd b0 0b
.textz " "
ret ;$c333 c9
Lc334:
push h ;$c334 e5
lxi h,Lc3cb ;$c335 21 cb c3
call WBUF ;$c338 cd a1 0b
pop h ;$c33b e1
Lc33c:
call Lc369 ;$c33c cd 69 c3
call WBUFI ;$c33f cd b0 0b
.textz " "
call Lc369 ;$c346 cd 69 c3
call WBLANK ;$c349 cd 8e 0b
mvi b,$04 ;$c34c 06 04
Lc34e:
call WBLANK ;$c34e cd 8e 0b
call Lc369 ;$c351 cd 69 c3
call Lc369 ;$c354 cd 69 c3
call Lc369 ;$c357 cd 69 c3
call Lc369 ;$c35a cd 69 c3
dcr b ;$c35d 05
jnz Lc34e ;$c35e c2 4e c3
call WBUFI ;$c361 cd b0 0b
dcr c ;$c364 0d
ldax b ;$c365 0a
ldax b ;$c366 0a
nop ;$c367 00
ret ;$c368 c9
Lc369:
mov a,m ;$c369 7e
inx h ;$c36a 23
call WCHAR ;$c36b cd b6 0b
ret ;$c36e c9
Lc36f:
push h ;$c36f e5
lxi h,Lc418 ;$c370 21 18 c4
call WBUF ;$c373 cd a1 0b
pop h ;$c376 e1
Lc377:
call WBUF ;$c377 cd a1 0b
call WCRLF ;$c37a cd 01 0c
ret ;$c37d c9
LC37E:
.textz " AND-ARRAY "
Lc391:
.text " NR: 0 4 8 12 16 20 24 28 PTD"
.byte $0D,$0A
.textz "(OE)"
Lc3cb:
.text " AUSGANGS-STEUERWORT"
.byte $0D,$0A,$0A
.text " SYN AC0 0 AC1 7 0 XOR 7"
.byte $0D,$0A
.textz " "
Lc418:
.text " BAUSTEIN-BEZEICHNUNG"
.byte $0D,$0A,$0A
.textz " "
Lc440:
.byte $0D,$0A
.text " *** ACHTUNG ***"
.byte $0D,$0A
.text "BAUSTEIN WURDE SCHON MEHR"
.byte $0D,$0A
.text "ALS 100 MAL PROGRAMMIERT"
.byte $0D,$0A,0
LC48E:
call WBUFI ;$c48e cd b0 0b
.textz "? "
Lc494:
call Lc7a4 ;$c494 cd a4 c7
ora a ;$c497 b7
jz Lc494 ;$c498 ca 94 c4
mov a,c ;$c49b 79
cpi $0d ;$c49c fe 0d
cz Lc533 ;$c49e cc 33 c5
cpi $20 ;$c4a1 fe 20
cz Lc533 ;$c4a3 cc 33 c5
cpi $41 ;$c4a6 fe 41
jz Lc682 ;$c4a8 ca 82 c6
cpi $42 ;$c4ab fe 42
jz Lc731 ;$c4ad ca 31 c7
cpi $53 ;$c4b0 fe 53
jz Lc63a ;$c4b2 ca 3a c6
cpi $30 ;$c4b5 fe 30
jc Lc4c0 ;$c4b7 da c0 c4
mvi a,$37 ;$c4ba 3e 37
cmp c ;$c4bc b9
jnc Lc4c6 ;$c4bd d2 c6 c4
Lc4c0:
call Lc79a ;$c4c0 cd 9a c7
jmp Lc494 ;$c4c3 c3 94 c4
Lc4c6:
mov a,c ;$c4c6 79
ani $07 ;$c4c7 e6 07
ori $d0 ;$c4c9 f6 d0
mov h,a ;$c4cb 67
mov a,c ;$c4cc 79
ani $07 ;$c4cd e6 07
rlc ;$c4cf 07
rlc ;$c4d0 07
rlc ;$c4d1 07
adi $60 ;$c4d2 c6 60
mov e,a ;$c4d4 5f
mvi d,$d8 ;$c4d5 16 d8
Lc4d7:
mvi l,$00 ;$c4d7 2e 00
push h ;$c4d9 e5
push d ;$c4da d5
call SYSCLS ;$c4db cd 90 08
pop d ;$c4de d1
push d ;$c4df d5
call Lc2be ;$c4e0 cd be c2
call WBUFI ;$c4e3 cd b0 0b
.byte $0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B
.byte $09,$09,$09,$09,$09,$09,$09,$09,0
pop d ;$c4f9 d1
pop h ;$c4fa e1
mov b,h ;$c4fb 44
mov c,e ;$c4fc 4b
Lc4fd:
call RCHAR ;$c4fd cd e0 0a
call GROSS ;$c500 cd e9 0e
cpi $58 ;$c503 fe 58
jz Lc54b ;$c505 ca 4b c5
cpi $2d ;$c508 fe 2d
jz Lc54b ;$c50a ca 4b c5
cpi $20 ;$c50d fe 20
jz Lc53d ;$c50f ca 3d c5
cpi $50 ;$c512 fe 50
jz Lc5cb ;$c514 ca cb c5
cpi $0d ;$c517 fe 0d
jz Lc537 ;$c519 ca 37 c5
cpi $08 ;$c51c fe 08
jz Lc583 ;$c51e ca 83 c5
cpi $09 ;$c521 fe 09
jz Lc54c ;$c523 ca 4c c5
cpi $0b ;$c526 fe 0b
jz Lc5a3 ;$c528 ca a3 c5
cpi $0a ;$c52b fe 0a
jz Lc5b8 ;$c52d ca b8 c5
jmp Lc4fd ;$c530 c3 fd c4
Lc533:
mvi a,$30 ;$c533 3e 30
mov c,a ;$c535 4f
ret ;$c536 c9
Lc537:
call SYSCLS ;$c537 cd 90 08
jmp Lc10c ;$c53a c3 0c c1
Lc53d:
mov a,h ;$c53d 7c
cpi $d7 ;$c53e fe d7
jz Lc682 ;$c540 ca 82 c6
mov a,c ;$c543 79
adi $08 ;$c544 c6 08
mov e,a ;$c546 5f
inr h ;$c547 24
jmp Lc4d7 ;$c548 c3 d7 c4
Lc54b:
mov m,a ;$c54b 77
Lc54c:
inx h ;$c54c 23
call WCHAR ;$c54d cd b6 0b
call Lc559 ;$c550 cd 59 c5
cz Lc566 ;$c553 cc 66 c5
jmp Lc4fd ;$c556 c3 fd c4
Lc559:
mov a,l ;$c559 7d
ani $1f ;$c55a e6 1f
rz ;$c55c c8
ani $03 ;$c55d e6 03
rnz ;$c55f c0
call WBLANK ;$c560 cd 8e 0b
ori $ff ;$c563 f6 ff
ret ;$c565 c9
Lc566:
mov a,b ;$c566 78
cmp h ;$c567 bc
jc Lc57d ;$c568 da 7d c5
call WBUFI ;$c56b cd b0 0b
.byte $09,$09,$09,$0D,$0A
.byte $09,$09,$09,$09,$09,$09,$09,$09,0
ret ;$c57c c9
Lc57d:
dcx h ;$c57d 2b
call WCHARI ;$c57e cd f7 0b
.byte $08 ;$c581 08
ret ;$c582 c9
Lc583:
push psw ;$c583 f5
mov a,l ;$c584 7d
ani $1f ;$c585 e6 1f
jnz Lc58e ;$c587 c2 8e c5
Lc58a:
pop psw ;$c58a f1
jmp Lc4fd ;$c58b c3 fd c4
Lc58e:
pop psw ;$c58e f1
call WCHAR ;$c58f cd b6 0b
dcx h ;$c592 2b
push psw ;$c593 f5
mov a,l ;$c594 7d
ani $03 ;$c595 e6 03
cpi $03 ;$c597 fe 03
jnz Lc58a ;$c599 c2 8a c5
pop psw ;$c59c f1
call WCHAR ;$c59d cd b6 0b
jmp Lc4fd ;$c5a0 c3 fd c4
Lc5a3:
call Lc5a9 ;$c5a3 cd a9 c5
jmp Lc4fd ;$c5a6 c3 fd c4
Lc5a9:
mov a,l ;$c5a9 7d
ani $e0 ;$c5aa e6 e0
rz ;$c5ac c8
mov a,l ;$c5ad 7d
sui $20 ;$c5ae d6 20
mov l,a ;$c5b0 6f
call WCHARI ;$c5b1 cd f7 0b
dcx b ;$c5b4 0b
ori $ff ;$c5b5 f6 ff
ret ;$c5b7 c9
Lc5b8:
mov a,l ;$c5b8 7d
ani $e0 ;$c5b9 e6 e0
cpi $e0 ;$c5bb fe e0
jz Lc4fd ;$c5bd ca fd c4
mov a,l ;$c5c0 7d
adi $20 ;$c5c1 c6 20
mov l,a ;$c5c3 6f
call WCHARI ;$c5c4 cd f7 0b
ldax b ;$c5c7 0a
jmp Lc4fd ;$c5c8 c3 fd c4
Lc5cb:
inx h ;$c5cb 23
call WCHARI ;$c5cc cd f7 0b
dad b ;$c5cf 09
call Lc559 ;$c5d0 cd 59 c5
jnz Lc5cb ;$c5d3 c2 cb c5
dcx h ;$c5d6 2b
Lc5d7:
call Lc5a9 ;$c5d7 cd a9 c5
jnz Lc5d7 ;$c5da c2 d7 c5
call WBLANK ;$c5dd cd 8e 0b
call WBLANK ;$c5e0 cd 8e 0b
Lc5e3:
call RCHAR ;$c5e3 cd e0 0a
call GROSS ;$c5e6 cd e9 0e
cpi $58 ;$c5e9 fe 58
jz Lc60a ;$c5eb ca 0a c6
cpi $2d ;$c5ee fe 2d
jz Lc60a ;$c5f0 ca 0a c6
cpi $0b ;$c5f3 fe 0b
jz Lc628 ;$c5f5 ca 28 c6
cpi $0a ;$c5f8 fe 0a
jz Lc60a ;$c5fa ca 0a c6
cpi $20 ;$c5fd fe 20
jz Lc53d ;$c5ff ca 3d c5
cpi $0d ;$c602 fe 0d
jz Lc537 ;$c604 ca 37 c5
jmp Lc5e3 ;$c607 c3 e3 c5
Lc60a:
call WCHAR ;$c60a cd b6 0b
cpi $0a ;$c60d fe 0a
jz Lc619 ;$c60f ca 19 c6
stax d ;$c612 12
call WBUFI ;$c613 cd b0 0b
.byte $08,$0A,0
Lc619:
inx d ;$c619 13
mov a,e ;$c61a 7b
ani $07 ;$c61b e6 07
jnz Lc5e3 ;$c61d c2 e3 c5
call WCHARI ;$c620 cd f7 0b
dcx b ;$c623 0b
dcx d ;$c624 1b
jmp Lc5e3 ;$c625 c3 e3 c5
Lc628:
push b ;$c628 c5
mov a,c ;$c629 79
inr a ;$c62a 3c
mov c,a ;$c62b 4f
mov a,e ;$c62c 7b
sub c ;$c62d 91
pop b ;$c62e c1
jc Lc5e3 ;$c62f da e3 c5
call WCHARI ;$c632 cd f7 0b
dcx b ;$c635 0b
dcx d ;$c636 1b
jmp Lc5e3 ;$c637 c3 e3 c5
Lc63a:
call WBUFI ;$c63a cd b0 0b
.textz "ECURITYBIT "
lda GAL_RAM_80 + $18 ;$c649 3a 18 d8
call WCHAR ;$c64c cd b6 0b
call WBLANK ;$c64f cd 8e 0b
Lc652:
call RCHAR ;$c652 cd e0 0a
call GROSS ;$c655 cd e9 0e
cpi $58 ;$c658 fe 58
jz Lc66a ;$c65a ca 6a c6
cpi $2d ;$c65d fe 2d
jz Lc66a ;$c65f ca 6a c6
cpi $0d ;$c662 fe 0d
jz Lc678 ;$c664 ca 78 c6
jmp Lc652 ;$c667 c3 52 c6
Lc66a:
sta GAL_RAM_80 + $18 ;$c66a 32 18 d8
call WCHAR ;$c66d cd b6 0b
call Lc7b9 ;$c670 cd b9 c7
cpi $00 ;$c673 fe 00
jz Lc652 ;$c675 ca 52 c6
Lc678:
call WBUFI ;$c678 cd b0 0b
.byte $09,$0D,$0A,0
jmp Lc10c ;$c67f c3 0c c1
Lc682:
call SYSCLS ;$c682 cd 90 08
lxi h,GAL_RAM_80 ;$c685 21 00 d8
call Lc334 ;$c688 cd 34 c3
call WBUFI ;$c68b cd b0 0b
.byte $0B,$0B,$09,$09,$09,$09,$09,$09,$09,$09,$09,0
lxi h,GAL_RAM_80 ;$c69a 21 00 d8
Lc69d:
call RCHAR ;$c69d cd e0 0a
cpi $30 ;$c6a0 fe 30
jz Lc6c5 ;$c6a2 ca c5 c6
cpi $31 ;$c6a5 fe 31
jz Lc6c5 ;$c6a7 ca c5 c6
cpi $20 ;$c6aa fe 20
jz Lc731 ;$c6ac ca 31 c7
cpi $08 ;$c6af fe 08
jz Lc700 ;$c6b1 ca 00 c7
cpi $09 ;$c6b4 fe 09
jz Lc6c6 ;$c6b6 ca c6 c6
cpi $0d ;$c6b9 fe 0d
jnz Lc69d ;$c6bb c2 9d c6
call WCHARI ;$c6be cd f7 0b
ldax b ;$c6c1 0a
jmp Lc10c ;$c6c2 c3 0c c1
Lc6c5:
mov m,a ;$c6c5 77
Lc6c6:
inx h ;$c6c6 23
call WCHAR ;$c6c7 cd b6 0b
mvi b,$04 ;$c6ca 06 04
mov a,l ;$c6cc 7d
cpi $01 ;$c6cd fe 01
jz Lc6ee ;$c6cf ca ee c6
cpi $02 ;$c6d2 fe 02
jz Lc6ed ;$c6d4 ca ed c6
cpi $06 ;$c6d7 fe 06
jz Lc6ec ;$c6d9 ca ec c6
cpi $0a ;$c6dc fe 0a
jz Lc6ec ;$c6de ca ec c6
cpi $0e ;$c6e1 fe 0e
jz Lc6ec ;$c6e3 ca ec c6
cpi $12 ;$c6e6 fe 12
jz Lc6f8 ;$c6e8 ca f8 c6
dcr b ;$c6eb 05
Lc6ec:
dcr b ;$c6ec 05
Lc6ed:
dcr b ;$c6ed 05
Lc6ee:
dcr b ;$c6ee 05
jz Lc69d ;$c6ef ca 9d c6
call WBLANK ;$c6f2 cd 8e 0b
jmp Lc6ee ;$c6f5 c3 ee c6
Lc6f8:
dcx h ;$c6f8 2b
call WCHARI ;$c6f9 cd f7 0b
.byte $08
jmp Lc69d ;$c6fd c3 9d c6
Lc700:
mov a,l ;$c700 7d
cpi $00 ;$c701 fe 00
jz Lc69d ;$c703 ca 9d c6
mvi b,$04 ;$c706 06 04
cpi $01 ;$c708 fe 01
jz Lc724 ;$c70a ca 24 c7
cpi $02 ;$c70d fe 02
jz Lc723 ;$c70f ca 23 c7
cpi $06 ;$c712 fe 06
jz Lc722 ;$c714 ca 22 c7
cpi $0a ;$c717 fe 0a
jz Lc722 ;$c719 ca 22 c7
cpi $0e ;$c71c fe 0e
jz Lc722 ;$c71e ca 22 c7
dcr b ;$c721 05
Lc722:
dcr b ;$c722 05
Lc723:
dcr b ;$c723 05
Lc724:
mvi a,$08 ;$c724 3e 08
Lc726:
call WCHAR ;$c726 cd b6 0b
dcr b ;$c729 05
jnz Lc726 ;$c72a c2 26 c7
dcx h ;$c72d 2b
jmp Lc69d ;$c72e c3 9d c6
Lc731:
call WCHARI ;$c731 cd f7 0b
ldax b ;$c734 0a
call WCRLF ;$c735 cd 01 0c
lxi h,GAL_RAM_84 ;$c738 21 40 d8
call Lc36f ;$c73b cd 6f c3
call WBUFI ;$c73e cd b0 0b
.byte $0B
.textz " "
lxi h,GAL_RAM_84 ;$c74b 21 40 d8
Lc74e:
call RCHAR ;$c74e cd e0 0a
call GROSS ;$c751 cd e9 0e
cpi $08 ;$c754 fe 08
jz Lc78b ;$c756 ca 8b c7
cpi $09 ;$c759 fe 09
jz Lc778 ;$c75b ca 78 c7
cpi $0d ;$c75e fe 0d
jnz Lc76a ;$c760 c2 6a c7
call WCHARI ;$c763 cd f7 0b
ldax b ;$c766 0a
jmp Lc10c ;$c767 c3 0c c1
Lc76a:
cpi $20 ;$c76a fe 20
jc Lc74e ;$c76c da 4e c7
mov b,a ;$c76f 47
mvi a,$5a ;$c770 3e 5a
cmp b ;$c772 b8
jc Lc74e ;$c773 da 4e c7
mov a,b ;$c776 78
mov m,a ;$c777 77
Lc778:
inx h ;$c778 23
call WCHAR ;$c779 cd b6 0b
mov a,l ;$c77c 7d
cpi $48 ;$c77d fe 48
jnz Lc74e ;$c77f c2 4e c7
mvi a,$08 ;$c782 3e 08
call WCHAR ;$c784 cd b6 0b
dcx h ;$c787 2b
jmp Lc74e ;$c788 c3 4e c7
Lc78b:
mov a,l ;$c78b 7d
cpi $40 ;$c78c fe 40
jz Lc74e ;$c78e ca 4e c7
mvi a,$08 ;$c791 3e 08
call WCHAR ;$c793 cd b6 0b
dcx h ;$c796 2b
jmp Lc74e ;$c797 c3 4e c7
Lc79a:
call WBUFI ;$c79a cd b0 0b
.byte $08,$20,$08,0
mvi a,$00 ;$c7a1 3e 00
ret ;$c7a3 c9
Lc7a4:
call RCHAR ;$c7a4 cd e0 0a
call GROSS ;$c7a7 cd e9 0e
mov c,a ;$c7aa 4f
cpi $0d ;$c7ab fe 0d
rz ;$c7ad c8
cpi $20 ;$c7ae fe 20
rz ;$c7b0 c8
cpi $30 ;$c7b1 fe 30
jc Lc7a4 ;$c7b3 da a4 c7
call WCHAR ;$c7b6 cd b6 0b
Lc7b9:
call RCHAR ;$c7b9 cd e0 0a
cpi $7f ;$c7bc fe 7f
jz Lc79a ;$c7be ca 9a c7
cpi $20 ;$c7c1 fe 20
rz ;$c7c3 c8
cpi $0d ;$c7c4 fe 0d
rz ;$c7c6 c8
jmp Lc7b9 ;$c7c7 c3 b9 c7
Lc7ca:
mvi a,$05 ;$c7ca 3e 05
call Lc7e7 ;$c7cc cd e7 c7
mvi a,$06 ;$c7cf 3e 06
call Lc7e7 ;$c7d1 cd e7 c7
call Lc84a ;$c7d4 cd 4a c8
mvi a,$04 ;$c7d7 3e 04
call Lc7e7 ;$c7d9 cd e7 c7
ret ;$c7dc c9
Lc7dd:
mvi a,$04 ;$c7dd 3e 04
call Lc7ef ;$c7df cd ef c7
Lc7e2:
mvi a,$81 ;$c7e2 3e 81
out IO_GAL_CTRL ;$c7e4 d3 d3
ret ;$c7e6 c9
Lc7e7:
push psw ;$c7e7 f5
ori $80 ;$c7e8 f6 80
Lc7ea:
rlc ;$c7ea 07
out IO_GAL_CTRL ;$c7eb d3 d3
pop psw ;$c7ed f1
ret ;$c7ee c9
Lc7ef:
push psw ;$c7ef f5
jmp Lc7ea ;$c7f0 c3 ea c7
LC7F3:
call Lc86c ;$c7f3 cd 6c c8
jnc Lc10c ;$c7f6 d2 0c c1
call Lc7ca ;$c7f9 cd ca c7
mvi a,$07 ;$c7fc 3e 07
call Lc7e7 ;$c7fe cd e7 c7
mvi a,$39 ;$c801 3e 39
out IO_GAL_PORT_A ;$c803 d3 d0
mvi a,$01 ;$c805 3e 01
out IO_GAL_PORT_B ;$c807 d3 d1
call Lc828 ;$c809 cd 28 c8
call Lcd10 ;$c80c cd 10 cd
call Lc7dd ;$c80f cd dd c7
call Lc83d ;$c812 cd 3d c8
lda GAL_RAM_83 + $3 ;$c815 3a 33 d8
inr a ;$c818 3c
jm Lc81f ;$c819 fa 1f c8
sta GAL_RAM_83 + $3 ;$c81c 32 33 d8
Lc81f:
call Lc8b4 ;$c81f cd b4 c8
call Lc900 ;$c822 cd 00 c9
jmp Lc10c ;$c825 c3 0c c1
Lc828:
ori $02 ;$c828 f6 02
out IO_GAL_PORT_B ;$c82a d3 d1
call Lc84a ;$c82c cd 4a c8
ani $01 ;$c82f e6 01
out IO_GAL_PORT_B ;$c831 d3 d1
ret ;$c833 c9
Lc834:
mvi a,$06 ;$c834 3e 06
call Lc7ef ;$c836 cd ef c7
call Lc7e7 ;$c839 cd e7 c7
ret ;$c83c c9
Lc83d: ; Zeitschleife (Programmier-Verzoegerung?)
push psw ;$c83d f5
push b ;$c83e c5
lxi b,$0350 ;$c83f 01 50 03
Lc842:
dcx b ;$c842 0b
mov a,b ;$c843 78
ora c ;$c844 b1
jnz Lc842 ;$c845 c2 42 c8
pop b ;$c848 c1
pop psw ;$c849 f1
Lc84a:
ret ;$c84a c9
LC84B:
call Lc86c ;$c84b cd 6c c8
jnc Lc863 ;$c84e d2 63 c8
call Lc7ca ;$c851 cd ca c7
lxi h,GAL_RAM_85 ;$c854 21 50 d8
call Lc960 ;$c857 cd 60 c9
call Lc7dd ;$c85a cd dd c7
call WCRLF ;$c85d cd 01 0c
call Lc36f ;$c860 cd 6f c3
Lc863:
call Lc8c6 ;$c863 cd c6 c8
call WCRLF ;$c866 cd 01 0c
jmp Lc10c ;$c869 c3 0c c1
Lc86c:
call Lc7ca ;$c86c cd ca c7
lxi h,GAL_RAM_83 + $3 ;$c86f 21 33 d8
call Lc8ae ;$c872 cd ae c8
call Lc7dd ;$c875 cd dd c7
lda GAL_RAM_83 + $5 ;$c878 3a 35 d8
cpi $00 ;$c87b fe 00
stc ;$c87d 37
rz ;$c87e c8
cpi $1a ;$c87f fe 1a
stc ;$c881 37
rz ;$c882 c8
call WBUFI ;$c883 cd b0 0b
.byte $0D,$0A
.text "*** KEIN GAL 16V8, ODER 16V8A ***"
.byte $0D,$0A,0
ora a ;$c8ac b7
ret ;$c8ad c9
Lc8ae:
push h ;$c8ae e5
mvi a,$3a ;$c8af 3e 3a
jmp Lc963 ;$c8b1 c3 63 c9
Lc8b4:
call Lc7ca ;$c8b4 cd ca c7
mvi a,$07 ;$c8b7 3e 07
call Lc7e7 ;$c8b9 cd e7 c7
mvi a,$3a ;$c8bc 3e 3a
out IO_GAL_PORT_A ;$c8be d3 d0
lxi h,GAL_RAM_83 + $03 ;$c8c0 21 33 d8
jmp Lcc9f ;$c8c3 c3 9f cc
Lc8c6: ; Schleifendurchlauf 32768, oder RIM %1000 0000 ?
lxi b,$7fff ;$c8c6 01 ff 7f
Lc8c9:
rim ;$c8c9 20
ani $80 ;$c8ca e6 80
jz Lc8d6 ;$c8cc ca d6 c8
dcx b ;$c8cf 0b
mov a,b ;$c8d0 78
ora c ;$c8d1 b1
jnz Lc8c9 ;$c8d2 c2 c9 c8
ret ;$c8d5 c9
Lc8d6:
call RCHAR ;$c8d6 cd e0 0a
cpi $11 ;$c8d9 fe 11
rnz ;$c8db c0
call Lc86c ;$c8dc cd 6c c8
call WBUFI ;$c8df cd b0 0b
.textz " "
lxi h,GAL_RAM_83 + $06 ;$c8eb 21 36 d8
mvi b,$04 ;$c8ee 06 04
Lc8f0:
mov a,m ;$c8f0 7e
call WAHEX ;$c8f1 cd 6f 0b
call WBLANK ;$c8f4 cd 8e 0b
dcx h ;$c8f7 2b
dcr b ;$c8f8 05
jnz Lc8f0 ;$c8f9 c2 f0 c8
call WCRLF ;$c8fc cd 01 0c
ret ;$c8ff c9
Lc900:
call Lc7ca ;$c900 cd ca c7
mvi h,$00 ;$c903 26 00
Lc905:
mov a,h ;$c905 7c
out IO_GAL_PORT_A ;$c906 d3 d0
call Lc834 ;$c908 cd 34 c8
mvi b,$40 ;$c90b 06 40
call Lc936 ;$c90d cd 36 c9
mov a,h ;$c910 7c
cpi $1f ;$c911 fe 1f
jz Lc91a ;$c913 ca 1a c9
inr h ;$c916 24
jmp Lc905 ;$c917 c3 05 c9
Lc91a:
mvi a,$3c ;$c91a 3e 3c
out IO_GAL_PORT_A ;$c91c d3 d0
call Lc834 ;$c91e cd 34 c8
mvi b,$52 ;$c921 06 52
call Lc936 ;$c923 cd 36 c9
mvi a,$20 ;$c926 3e 20
out IO_GAL_PORT_A ;$c928 d3 d0
call Lc834 ;$c92a cd 34 c8
mvi b,$40 ;$c92d 06 40
call Lc936 ;$c92f cd 36 c9
call Lc7dd ;$c932 cd dd c7
ret ;$c935 c9
Lc936:
call Lc985 ;$c936 cd 85 c9
ani $01 ;$c939 e6 01
jz Lc943 ;$c93b ca 43 c9
dcr b ;$c93e 05
jnz Lc936 ;$c93f c2 36 c9
ret ;$c942 c9
Lc943:
call Lc7dd ;$c943 cd dd c7
call WBUFI ;$c946 cd b0 0b
.byte $0D,$0A,$0A
.text "*** DEFEKT ***"
.byte $0D,$0A,0
jmp Lc10c ;$c95d c3 0c c1
Lc960:
push h ;$c960 e5
mvi a,$20 ;$c961 3e 20
Lc963:
out IO_GAL_PORT_A ;$c963 d3 d0
call Lc834 ;$c965 cd 34 c8
mvi c,$08 ;$c968 0e 08
Lc96a:
mvi d,$00 ;$c96a 16 00
mvi b,$08 ;$c96c 06 08
Lc96e:
call Lc985 ;$c96e cd 85 c9
ani $01 ;$c971 e6 01
ora d ;$c973 b2
rrc ;$c974 0f
mov d,a ;$c975 57
dcr b ;$c976 05
jnz Lc96e ;$c977 c2 6e c9
mov m,a ;$c97a 77
inx h ;$c97b 23
dcr c ;$c97c 0d
jnz Lc96a ;$c97d c2 6a c9
mvi a,$00 ;$c980 3e 00
mov m,a ;$c982 77
pop h ;$c983 e1
ret ;$c984 c9
Lc985:
in IO_GAL_PORT_C ;$c985 db d2
push psw ;$c987 f5
mvi a,$00 ;$c988 3e 00
call Lc828 ;$c98a cd 28 c8
pop psw ;$c98d f1
ret ;$c98e c9
Lc98f:
mov a,l ;$c98f 7d
adi $20 ;$c990 c6 20
mov l,a ;$c992 6f
jnc Lc997 ;$c993 d2 97 c9
inr h ;$c996 24
Lc997:
mov a,h ;$c997 7c
cpi $d8 ;$c998 fe d8
rnz ;$c99a c0
mov a,l ;$c99b 7d
adi $01 ;$c99c c6 01
ani $1f ;$c99e e6 1f
rz ;$c9a0 c8
mov l,a ;$c9a1 6f
mvi h,$d0 ;$c9a2 26 d0
inr e ;$c9a4 1c
ret ;$c9a5 c9
Lc9a6:
mov a,e ;$c9a6 7b
out IO_GAL_PORT_A ;$c9a7 d3 d0
call Lc834 ;$c9a9 cd 34 c8
Lc9ac:
call Lc985 ;$c9ac cd 85 c9
ani $01 ;$c9af e6 01
jnz Lc9b9 ;$c9b1 c2 b9 c9
mvi b,$58 ;$c9b4 06 58
jmp Lc9bb ;$c9b6 c3 bb c9
Lc9b9:
mvi b,$2d ;$c9b9 06 2d
Lc9bb:
lda GAL_RAM_80 + $16 ;$c9bb 3a 16 d8
cpi $52 ;$c9be fe 52
mov a,b ;$c9c0 78
jz Lc9d2 ;$c9c1 ca d2 c9
cmp m ;$c9c4 be
rz ;$c9c5 c8
cpi $58 ;$c9c6 fe 58
jnz Lc9d0 ;$c9c8 c2 d0 c9
mvi a,$31 ;$c9cb 3e 31
jmp Lc9d2 ;$c9cd c3 d2 c9
Lc9d0:
mvi a,$30 ;$c9d0 3e 30
Lc9d2:
mov m,a ;$c9d2 77
sta GAL_RAM_80 + $17 ;$c9d3 32 17 d8
ret ;$c9d6 c9
Lc9d7:
call Lc985 ;$c9d7 cd 85 c9
ani $01 ;$c9da e6 01
ori $30 ;$c9dc f6 30
mov m,a ;$c9de 77
inx h ;$c9df 23
dcr b ;$c9e0 05
jnz Lc9d7 ;$c9e1 c2 d7 c9
ret ;$c9e4 c9
LC9E5:
call Lc9eb ;$c9e5 cd eb c9
jmp Lc10c ;$c9e8 c3 0c c1
Lc9eb:
mvi a,$52 ;$c9eb 3e 52
sta GAL_RAM_80 + $16 ;$c9ed 32 16 d8
jmp Lca09 ;$c9f0 c3 09 ca
LC9F3:
call Lc9f9 ;$c9f3 cd f9 c9
jmp Lc10c ;$c9f6 c3 0c c1
Lc9f9:
call WCRLF ;$c9f9 cd 01 0c
call Lcd2e ;$c9fc cd 2e cd
Lc9ff:
mvi a,$56 ;$c9ff 3e 56
sta GAL_RAM_80 + $16 ;$ca01 32 16 d8
mvi a,$45 ;$ca04 3e 45
sta GAL_RAM_80 + $17 ;$ca06 32 17 d8
Lca09:
call Lc86c ;$ca09 cd 6c c8
rnc ;$ca0c d0
lxi h,GAL_RAM_00 ;$ca0d 21 00 d0
call Lc7ca ;$ca10 cd ca c7
mvi a,$00 ;$ca13 3e 00
mov e,a ;$ca15 5f
sta $d814 ;$ca16 32 14 d8
Lca19:
call Lc9a6 ;$ca19 cd a6 c9
Lca1c:
call Lc98f ;$ca1c cd 8f c9
jz Lca36 ;$ca1f ca 36 ca
lda $d814 ;$ca22 3a 14 d8
cmp e ;$ca25 bb
jnz Lca2f ;$ca26 c2 2f ca
call Lc9ac ;$ca29 cd ac c9
jmp Lca1c ;$ca2c c3 1c ca
Lca2f:
mov a,e ;$ca2f 7b
sta GAL_RAM_80 + $14 ;$ca30 32 14 d8
jmp Lca19 ;$ca33 c3 19 ca
Lca36:
mvi a,$3c ;$ca36 3e 3c
out IO_GAL_PORT_A ;$ca38 d3 d0
call Lc834 ;$ca3a cd 34 c8
lda GAL_RAM_83 + $05 ;$ca3d 3a 35 d8
ora a ;$ca40 b7
jnz Lca5c ;$ca41 c2 5c ca
call Lca84 ;$ca44 cd 84 ca
call Lca92 ;$ca47 cd 92 ca
call Lca9e ;$ca4a cd 9e ca
call Lcaa7 ;$ca4d cd a7 ca
call Lcab3 ;$ca50 cd b3 ca
call Lcabc ;$ca53 cd bc ca
call Lcac5 ;$ca56 cd c5 ca
jmp Lcad3 ;$ca59 c3 d3 ca
Lca5c:
call Lca92 ;$ca5c cd 92 ca
call Lca9e ;$ca5f cd 9e ca
call Lca84 ;$ca62 cd 84 ca
call Lcac5 ;$ca65 cd c5 ca
call Lcaa7 ;$ca68 cd a7 ca
call Lcab3 ;$ca6b cd b3 ca
call Lcabc ;$ca6e cd bc ca
jmp Lcad3 ;$ca71 c3 d3 ca
Lca74:
lda $d816 ;$ca74 3a 16 d8
cpi $56 ;$ca77 fe 56
jz Lca80 ;$ca79 ca 80 ca
lxi h,GAL_RAM_80 ;$ca7c 21 00 d8
ret ;$ca7f c9
Lca80:
lxi h,GAL_RAM_80 + $20 ;$ca80 21 20 d8
ret ;$ca83 c9
Lca84:
lxi h,GAL_RAM_86 ;$ca84 21 60 d8
Lca87:
call Lc9ac ;$ca87 cd ac c9
inx h ;$ca8a 23
mov a,l ;$ca8b 7d
cpi $80 ;$ca8c fe 80
jnz Lca87 ;$ca8e c2 87 ca
ret ;$ca91 c9
Lca92:
call Lca74 ;$ca92 cd 74 ca
mov a,l ;$ca95 7d
adi $0a ;$ca96 c6 0a
mov l,a ;$ca98 6f
mvi b,$04 ;$ca99 06 04
jmp Lc9d7 ;$ca9b c3 d7 c9
Lca9e:
mov a,l ;$ca9e 7d
sui $0d ;$ca9f d6 0d
mov l,a ;$caa1 6f
mvi b,$05 ;$caa2 06 05
jmp Lc9d7 ;$caa4 c3 d7 c9
Lcaa7:
call Lca74 ;$caa7 cd 74 ca
mov a,l ;$caaa 7d
adi $06 ;$caab c6 06
mov l,a ;$caad 6f
mvi b,$04 ;$caae 06 04
jmp Lc9d7 ;$cab0 c3 d7 c9
Lcab3:
mov a,l ;$cab3 7d
sui $0a ;$cab4 d6 0a
mov l,a ;$cab6 6f
mvi b,$01 ;$cab7 06 01
jmp Lc9d7 ;$cab9 c3 d7 c9
Lcabc:
mov a,l ;$cabc 7d
adi $0d ;$cabd c6 0d
mov l,a ;$cabf 6f
mvi b,$04 ;$cac0 06 04
jmp Lc9d7 ;$cac2 c3 d7 c9
Lcac5:
lxi h,GAL_RAM_88 ;$cac5 21 80 d8
Lcac8:
call Lc9ac ;$cac8 cd ac c9
inx h ;$cacb 23
mov a,l ;$cacc 7d
cpi $a0 ;$cacd fe a0
jnz Lcac8 ;$cacf c2 c8 ca
ret ;$cad2 c9
Lcad3:
lda GAL_RAM_80 + $16 ;$cad3 3a 16 d8
cpi $56 ;$cad6 fe 56
jz Lcae1 ;$cad8 ca e1 ca
lxi h,GAL_RAM_84 ;$cadb 21 40 d8
jmp Lcae4 ;$cade c3 e4 ca
Lcae1:
lxi h,GAL_RAM_85 ;$cae1 21 50 d8
Lcae4:
call Lc960 ;$cae4 cd 60 c9
lda GAL_RAM_80 + $16 ;$cae7 3a 16 d8
cpi $52 ;$caea fe 52
jz Lcbb2 ;$caec ca b2 cb
mvi a,$41 ;$caef 3e 41
sta GAL_RAM_80 + $19 ;$caf1 32 19 d8
lxi h,GAL_RAM_80 ;$caf4 21 00 d8
lxi b,GAL_RAM_80 + $20 ;$caf7 01 20 d8
mvi d,$12 ;$cafa 16 12
Lcafc:
ldax b ;$cafc 0a
cmp m ;$cafd be
mvi a,$2e ;$cafe 3e 2e
jz Lcb09 ;$cb00 ca 09 cb
sta GAL_RAM_80 + $19 ;$cb03 32 19 d8
jmp Lcb0a ;$cb06 c3 0a cb
Lcb09:
stax b ;$cb09 02
Lcb0a:
dcr d ;$cb0a 15
jz Lcb13 ;$cb0b ca 13 cb
inx h ;$cb0e 23
inx b ;$cb0f 03
jmp Lcafc ;$cb10 c3 fc ca
Lcb13:
mvi a,$42 ;$cb13 3e 42
sta GAL_RAM_80 + $1a ;$cb15 32 1a d8
lxi h,GAL_RAM_84 ;$cb18 21 40 d8
lxi b,GAL_RAM_85 ;$cb1b 01 50 d8
mvi d,$08 ;$cb1e 16 08
Lcb20:
ldax b ;$cb20 0a
cmp m ;$cb21 be
mvi a,$2e ;$cb22 3e 2e
jz Lcb2d ;$cb24 ca 2d cb
sta GAL_RAM_80 + $1a ;$cb27 32 1a d8
jmp Lcb2e ;$cb2a c3 2e cb
Lcb2d:
stax b ;$cb2d 02
Lcb2e:
dcr d ;$cb2e 15
jz Lcb37 ;$cb2f ca 37 cb
inx h ;$cb32 23
inx b ;$cb33 03
jmp Lcb20 ;$cb34 c3 20 cb
Lcb37:
lda GAL_RAM_80 + $17 ;$cb37 3a 17 d8
cpi $45 ;$cb3a fe 45
jz Lcb66 ;$cb3c ca 66 cb
call WBUFI ;$cb3f cd b0 0b
.byte $0D,$0A,$0A
.text " *** AND-ARRAY UNGLEICH ***"
.byte $0D,$0A,0
LCB66:
lda GAL_RAM_80 + $19 ;$cb66 3a 19 d8
cpi $41 ;$cb69 fe 41
jz Lcb8f ;$cb6b ca 8f cb
call WBUFI ;$cb6e cd b0 0b
dcr c ;$cb71 0d
ldax b ;$cb72 0a
ldax b ;$cb73 0a
nop ;$cb74 00
lxi h,GAL_RAM_80 ;$cb75 21 00 d8
call Lc334 ;$cb78 cd 34 c3
call WBUFI ;$cb7b cd b0 0b
.byte $0B
.textz " IC "
lxi h,GAL_RAM_80 + $20 ;$cb89 21 20 d8
call Lc33c ;$cb8c cd 3c c3
Lcb8f:
lda GAL_RAM_80 + $1a ;$cb8f 3a 1a d8
cpi $42 ;$cb92 fe 42
jz Lcbb2 ;$cb94 ca b2 cb
call WCRLF ;$cb97 cd 01 0c
lxi h,GAL_RAM_84 ;$cb9a 21 40 d8
call Lc36f ;$cb9d cd 6f c3
call WBUFI ;$cba0 cd b0 0b
.textz " IC "
lxi h,GAL_RAM_85 ;$cbac 21 50 d8
call Lc377 ;$cbaf cd 77 c3
Lcbb2:
call Lc7dd ;$cbb2 cd dd c7
ret ;$cbb5 c9
Lcbb6:
lxi h,Lc440 ;$cbb6 21 40 c4
call WBUF ;$cbb9 cd a1 0b
ret ;$cbbc c9
LCBBD:
call Lc86c ;$cbbd cd 6c c8
jnc Lc10c ;$cbc0 d2 0c c1
lxi h,GAL_RAM_83 + $03 ;$cbc3 21 33 d8
mvi a,$64 ;$cbc6 3e 64
sub m ;$cbc8 96
cc Lcbb6 ;$cbc9 dc b6 cb
call WBUFI ;$cbcc cd b0 0b
.byte $0D,$0A
.textz " CHANGE"
call Lcd2e ;$cbde cd 2e cd
call WBUFI ;$cbe1 cd b0 0b
.textz ", PROG"
call Lc7ca ;$cbeb cd ca c7
mvi a,$07 ;$cbee 3e 07
call Lc7e7 ;$cbf0 cd e7 c7
lxi h,GAL_RAM_00 ;$cbf3 21 00 d0
mvi a,$00 ;$cbf6 3e 00
mov e,a ;$cbf8 5f
sta GAL_RAM_80 + $14 ;$cbf9 32 14 d8
Lcbfc:
mov a,e ;$cbfc 7b
out IO_GAL_PORT_A ;$cbfd d3 d0
Lcbff:
call Lcd25 ;$cbff cd 25 cd
call Lc98f ;$cc02 cd 8f c9
jz Lcc19 ;$cc05 ca 19 cc
lda GAL_RAM_80 + $14 ;$cc08 3a 14 d8
cmp e ;$cc0b bb
jz Lcbff ;$cc0c ca ff cb
call Lcd10 ;$cc0f cd 10 cd
mov a,e ;$cc12 7b
sta GAL_RAM_80 + $14 ;$cc13 32 14 d8
jmp Lcbfc ;$cc16 c3 fc cb
Lcc19:
call Lcd10 ;$cc19 cd 10 cd
mvi a,$3c ;$cc1c 3e 3c
out IO_GAL_PORT_A ;$cc1e d3 d0
lda $d835 ;$cc20 3a 35 d8
ora a ;$cc23 b7
jnz Lcc3f ;$cc24 c2 3f cc
call Lcc57 ;$cc27 cd 57 cc
call Lcc5f ;$cc2a cd 5f cc
call Lcc67 ;$cc2d cd 67 cc
call Lcc6f ;$cc30 cd 6f cc
call Lcc77 ;$cc33 cd 77 cc
call Lcc7f ;$cc36 cd 7f cc
call Lcc87 ;$cc39 cd 87 cc
jmp Lcc8f ;$cc3c c3 8f cc
Lcc3f:
call Lcc5f ;$cc3f cd 5f cc
call Lcc67 ;$cc42 cd 67 cc
call Lcc57 ;$cc45 cd 57 cc
call Lcc87 ;$cc48 cd 87 cc
call Lcc6f ;$cc4b cd 6f cc
call Lcc77 ;$cc4e cd 77 cc
call Lcc7f ;$cc51 cd 7f cc
jmp Lcc8f ;$cc54 c3 8f cc
Lcc57:
lxi h,GAL_RAM_86 ;$cc57 21 60 d8
mvi b,$20 ;$cc5a 06 20
jmp Lcd1c ;$cc5c c3 1c cd
Lcc5f:
lxi h,GAL_RAM_80 + $0a ;$cc5f 21 0a d8
mvi b,$04 ;$cc62 06 04
jmp Lcd1c ;$cc64 c3 1c cd
Lcc67:
lxi h,GAL_RAM_80 + $01 ;$cc67 21 01 d8
mvi b,$05 ;$cc6a 06 05
jmp Lcd1c ;$cc6c c3 1c cd
Lcc6f:
lxi h,GAL_RAM_80 + $06 ;$cc6f 21 06 d8
mvi b,$04 ;$cc72 06 04
jmp Lcd1c ;$cc74 c3 1c cd
Lcc77:
lxi h,GAL_RAM_80 ;$cc77 21 00 d8
mvi b,$01 ;$cc7a 06 01
jmp Lcd1c ;$cc7c c3 1c cd
Lcc7f:
lxi h,GAL_RAM_80 + $0e ;$cc7f 21 0e d8
mvi b,$04 ;$cc82 06 04
jmp Lcd1c ;$cc84 c3 1c cd
Lcc87:
lxi h,GAL_RAM_88 ;$cc87 21 80 d8
mvi b,$20 ;$cc8a 06 20
jmp Lcd1c ;$cc8c c3 1c cd
Lcc8f:
call Lcd10 ;$cc8f cd 10 cd
call Lcc98 ;$cc92 cd 98 cc
jmp Lccba ;$cc95 c3 ba cc
Lcc98:
mvi a,$20 ;$cc98 3e 20
out IO_GAL_PORT_A ;$cc9a d3 d0
lxi h,GAL_RAM_84 ;$cc9c 21 40 d8
Lcc9f:
mvi c,$08 ;$cc9f 0e 08
Lcca1:
mvi b,$08 ;$cca1 06 08
mov a,m ;$cca3 7e
Lcca4:
push psw ;$cca4 f5
call Lcd26 ;$cca5 cd 26 cd
pop psw ;$cca8 f1
rrc ;$cca9 0f
dcr b ;$ccaa 05
jnz Lcca4 ;$ccab c2 a4 cc
inx h ;$ccae 23
dcr c ;$ccaf 0d
jnz Lcca1 ;$ccb0 c2 a1 cc
call Lcd10 ;$ccb3 cd 10 cd
call Lc7dd ;$ccb6 cd dd c7
ret ;$ccb9 c9
Lccba:
call WBUFI ;$ccba cd b0 0b
.textz ", VERIFY"
call Lc9ff ;$ccc6 cd ff c9
lda GAL_RAM_80 + $17 ;$ccc9 3a 17 d8
cpi $45 ;$cccc fe 45
jnz Lc10c ;$ccce c2 0c c1
lda GAL_RAM_80 + $19 ;$ccd1 3a 19 d8
cpi $41 ;$ccd4 fe 41
jnz Lc10c ;$ccd6 c2 0c c1
lda GAL_RAM_80 + $1a ;$ccd9 3a 1a d8
cpi $42 ;$ccdc fe 42
jnz Lc10c ;$ccde c2 0c c1
lda GAL_RAM_80 + $18 ;$cce1 3a 18 d8
cpi $58 ;$cce4 fe 58
jnz Lc10c ;$cce6 c2 0c c1
push psw ;$cce9 f5
call WBUFI ;$ccea cd b0 0b
.text ", PROGS"
.byte $0D,$0A,0
LCCF7:
call Lc7ca ;$ccf7 cd ca c7
mvi a,$07 ;$ccfa 3e 07
call Lc7e7 ;$ccfc cd e7 c7
mvi a,$3d ;$ccff 3e 3d
out IO_GAL_PORT_A ;$cd01 d3 d0
pop psw ;$cd03 f1
call Lcd26 ;$cd04 cd 26 cd
call Lcd10 ;$cd07 cd 10 cd
call Lc7dd ;$cd0a cd dd c7
jmp Lc10c ;$cd0d c3 0c c1
Lcd10:
mvi a,$06 ;$cd10 3e 06
call Lc7ef ;$cd12 cd ef c7
call Lc83d ;$cd15 cd 3d c8
call Lc7e7 ;$cd18 cd e7 c7
ret ;$cd1b c9
Lcd1c:
call Lcd25 ;$cd1c cd 25 cd
inx h ;$cd1f 23
dcr b ;$cd20 05
jnz Lcd1c ;$cd21 c2 1c cd
ret ;$cd24 c9
Lcd25:
mov a,m ;$cd25 7e
Lcd26:
ani $01 ;$cd26 e6 01
out IO_GAL_PORT_B ;$cd28 d3 d1
call Lc828 ;$cd2a cd 28 c8
ret ;$cd2d c9
Lcd2e:
lxi h,GAL_RAM_00 ;$cd2e 21 00 d0
Lcd31:
call Lcd49 ;$cd31 cd 49 cd
inx h ;$cd34 23
mov a,h ;$cd35 7c
cpi $d8 ;$cd36 fe d8
jnz Lcd31 ;$cd38 c2 31 cd
lxi h,GAL_RAM_86 ;$cd3b 21 60 d8
Lcd3e:
call Lcd49 ;$cd3e cd 49 cd
inx h ;$cd41 23
mov a,l ;$cd42 7d
cpi $a0 ;$cd43 fe a0
jnz Lcd3e ;$cd45 c2 3e cd
ret ;$cd48 c9
Lcd49:
mov a,m ;$cd49 7e
cpi $31 ;$cd4a fe 31
jnz Lcd53 ;$cd4c c2 53 cd
mvi a,$2d ;$cd4f 3e 2d
mov m,a ;$cd51 77
ret ;$cd52 c9
Lcd53:
cpi $30 ;$cd53 fe 30
rnz ;$cd55 c0
mvi a,$58 ;$cd56 3e 58
mov m,a ;$cd58 77
ret ;$cd59 c9
;
;******************************************************************************
;
; ######## ## ## ######## ########
; ## ### ## ## ## ##
; ## #### ## ## ## ##
; ###### ## ## ## ## ## ######
; ## ## #### ## ## ##
; ## ## ### ## ## ##
; ######## ## ## ######## ########
;
; ###### ### ## ######## ######## ####### ######
; ## ## ## ## ## ## ## ## ## ## ## ## ##
; ## ## ## ## ## ## ## ## ## ## ##
; ## #### ## ## ## ####### ######## ######## ## ## ## ####
; ## ## ######### ## ## ## ## ## ## ## ##
; ## ## ## ## ## ## ## ## ## ## ## ##
; ###### ## ## ######## ## ## ## ####### ######
;
;******************************************************************************
;
