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 ; ;****************************************************************************** ; ; ######## ## ## ######## ######## ; ## ### ## ## ## ## ; ## #### ## ## ## ## ; ###### ## ## ## ## ## ###### ; ## ## #### ## ## ## ; ## ## ### ## ## ## ; ######## ## ## ######## ######## ; ; ###### ### ## ######## ######## ####### ###### ; ## ## ## ## ## ## ## ## ## ## ## ## ## ; ## ## ## ## ## ## ## ## ## ## ## ; ## #### ## ## ## ####### ######## ######## ## ## ## #### ; ## ## ######### ## ## ## ## ## ## ## ## ; ## ## ## ## ## ## ## ## ## ## ## ## ; ###### ## ## ######## ## ## ## ####### ###### ; ;****************************************************************************** ;